Abrangências: | Microsiga Protheus 10 , Microsiga Protheus 11 |
Versões: | Microsiga Protheus 10 , Microsiga Protheus 11 |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
Idiomas: | Português (Brasil) |
Este ponto de entrada está localizado na rotina de Entrada (VEIVM000). No momento da criação do registro na tabela SB1, referente ao veículo (VV1), é possível passar para o vetor que fará a integração com o MATA010, os campos que serão inclusos/alterados.
Function Ve000Inc(cAlias,nReg,nOpc)
Local oDlg,lInclui
Local nOpca := 0
Local lRet := .f.
Local lAchou := .f.
Local cArea := GetArea()
Local bCampo := { |nCPO| Field(nCPO) }
Local nCntFor := 0
Local nPICM := 0
Local vv := 0
Local cTipoMov := "N"
if cParPrg == "1"
cTipoMov := "N"
Elseif cParPrg == "2"
cTipoMov := "R"
Elseif cParPrg == "3"
cTipoMov := "T"
Elseif cParPrg == "4"
cTipoMov := "C"
Endif
if Empty(M->VVG_CHASSI)
Return( .f. )
Endif
lAchou := FG_Seek("VV1","M->VVG_CHASSI",2,.f.)
if !Inclui
M->VVG_CHASSI := VV1->VV1_CHASSI
Endif
if VV1->VV1_SITVEI == "0" //Estoque
Help(" ",1,"VEJACDM010")
Return .f.
Elseif VV1->VV1_SITVEI == "3" //Em Remessa
if MsgYesNo(STR0089 ,STR0020) //Essa entrada e um retorno de remessa? - Atencao
Aviso( OemToAnsi(STR0059) , OemToAnsi(STR0060) , { OemToAnsi(STR0061) } )
Return .f.
endif
Elseif VV1->VV1_SITVEI == "4" //Consignado
Aviso( STR0090 , STR0091 , { STR0092 } ) //Veiculo Consignado - Antes de fazer a Entrada deste Veiculo e' necessario usar a opcao SAIDA DE CONSIGNADOS (Retorno da Entrada de Veiculo Consignado - ok
Return .f.
Elseif empty(M->VVG_CHASSI)
Return .f.
Endif
if VV1->VV1_CODORI == "3" .and. cParPrg # "1"
Aviso( STR0093 , STR0094 , { STR0092 } ) //Veiculo Virtual - Apenas e' possivel realizar a Entrada deste Veiculo por ENTRADA NORMAL - OK
RETURN .F.
endif
acols[n,FG_POSVAR("VVG_ESTVEI")] := VV1->VV1_ESTVEI // Usado
M->VVG_ESTVEI := VV1->VV1_ESTVEI // Usado
acols[n,FG_POSVAR("VVG_CODORI")] := VV1->VV1_CODORI // Usado
M->VVG_CODORI := VV1->VV1_CODORI // Usado
/*
if lAchou
If VV1->VV1_NUMTRA # Space(10)
acols[n,FG_POSVAR("VVG_ESTVEI")] := "1" // Usado
M->VVG_ESTVEI := "1" // Usado
Else
acols[n,FG_POSVAR("VVG_ESTVEI")] := "0" // Novo
M->VVG_ESTVEI := "0" // Novo
Endif
Else
acols[n,FG_POSVAR("VVG_ESTVEI")] := "0" // Novo
M->VVG_ESTVEI := "0" // Novo
Endif
*/
FS_AlmVei()
dbSelectArea("VV1")
For vv := 1 to fcount()
&("M->"+fieldname(VV)) := fieldget(VV)
Next
lChaTemp := .t.
//MaFisRef("IT_PRODUTO","VVG00",VV1->VV1_CHAINT)
MaFisRef("IT_PRODUTO",cProg,SB1->B1_COD)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Carrega matriz com campos que serao alterados neste cadastro ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SX3")
dbSeek("VV1")
While !EOF() .And. (X3_ARQUIVO == cAlias)
if !lAchou
wVar := "M->"+x3_campo
if x3_campo <> "VV1_CHAINT"
&wVar:= CriaVar(x3_campo)
Else
&wVar:= Space(TamSx3("VV1_CHAINT")[1])
Endif
Endif
DbSkip()
EndDO
if lAchou
//Traz o TES padrao para esta operacao de saida (S) normal (N)
dbSelectArea("VZA")
dbSetOrder(1)
if dbSeek(xFilial("VZA")+"E"+cTipoMov+VV1->VV1_ESTVEI )
aCols[n,FG_POSVAR("VVG_CODTES")] := VZA->VZA_CODTES
M->VVG_CODTES := VZA->VZA_CODTES
MaFisRef("IT_TES","VVG00",VZA->VZA_CODTES)
Endif
M->VVG_CHAINT := VV1->VV1_CHAINT
// Atualiza aCols com Chassi Interno do Veiculo
aCols[n,FG_POSVAR("VVG_CHAINT")] := VV1->VV1_CHAINT
RegToMemory("VV1",.F.)
If ExistBlock("VA010DPGR")
ExecBlock("VA010DPGR",.f.,.f.,{VV1->VV1_CHAINT,3,0})
EndIf
// Atualiza aCols com Situacao Tributaria
SB1->(DBSetOrder(7))
IF SB1->(DBSeek(xFilial("SB1")+cGruVei+VV1->VV1_CHAINT)) .and. !Empty(SB1->B1_ORIGEM)
aCols[n,FG_POSVAR("VVG_SITTRI")] := M->VVG_SITTRI := SB1->B1_ORIGEM
else
if VV1->VV1_PROVEI == "1"
aCols[n,FG_POSVAR("VVG_SITTRI")] := M->VVG_SITTRI := "0"
endif
endif
//
ATEND000()
Return( .t. )
Endif
dbSelectArea(cAlias)
Private aTELA[0][0],aGETS[0]
wChassi := M->VVG_CHASSI
lInclui := Inclui
Inclui := .t.
aMemosSlv := aClone(aMemos)
aMemos := {{"VV1_OBSMEM","VV1_OBSERV"}}
nOpca := AxInclui(cAlias,nReg,nOpc,aCampoVV1,"GRAVAVV1",,"VEIVA600().and.FS_VAL000()")
aMemos := aClone(aMemosSlv)
if nOpca <> 1
Return .f.
Endif
aCols[n,FG_POSVAR("VVG_CHASSI")] := M->VVG_CHASSI := VV1->VV1_CHASSI
ConfirmSx8()
Inclui := lInclui
VA010GvVO5(VV1->VV1_CHAINT,3)
//MaFisRef("IT_PRODUTO","VVG00",VV1->VV1_CHAINT)
MaFisRef("IT_PRODUTO",cProg,SB1->B1_COD)
If nOpca == 1
lRet := .t.
EndIf
VV2->(dbSeek(xFilial("VV2")+VV1->VV1_CODMAR+VV1->VV1_MODVEI))
if VV8->(dbSeek(xFilial("VV8")+VV2->VV2_TIPVEI))
if M->VVG_ESTVEI == "0" //Novo
nPICM := VV8->VV8_ALINOV
Else
nPICM := VV8->VV8_ALIUSA
Endif
Endif
// Atualiza aCols com Situacao Tributaria
if VV1->VV1_PROVEI == "1"
aCols[n,FG_POSVAR("VVG_SITTRI")] := M->VVG_SITTRI := "0"
endif
//
DBSelectArea("SB1")
DBSetOrder(7)
IF !(DBSeek(xFilial("SB1")+cGruVei+VV1->VV1_CHAINT))
// If !FG_Seek("SB1","cGruVei+VV1->VV1_CHAINT",7,.f.)
FG_Seek("VE4","VV1->VV1_CODMAR")
cCodFab := VE4->VE4_CODFAB+VE4->VE4_LOJA
FG_Seek("SA1","cCodFab",1,.f.)
cNomFab := SA1->A1_NREDUZ
// cCodSB1 := GetSxENum("SB1","B1_COD")
cCodSB1 := Left(GetMv("MV_GRUVEI")+Space(10),Len(SB1->B1_GRUPO))+"_"+VV1->VV1_CHAINT
aIncSB1:= {}
aAdd(aIncSB1,{"B1_FILIAL" ,xFilial("SB1") ,Nil})
aAdd(aIncSB1,{"B1_COD" ,cCodSB1 ,Nil})
aAdd(aIncSB1,{"B1_CODITE" ,VV1->VV1_CHAINT ,Nil})
aAdd(aIncSB1,{"B1_DESC" ,VV1->VV1_CHASSI ,Nil})
aAdd(aIncSB1,{"B1_TIPO" ,GetMv("MV_TIPVEI"),Nil})
aAdd(aIncSB1,{"B1_UM" ,"UN" ,Nil})
aAdd(aIncSB1,{"B1_LOCPAD" ,If(!Empty(M->VVG_LOCPAD),M->VVG_LOCPAD,VV1->VV1_LOCPAD) ,Nil})
aAdd(aIncSB1,{"B1_PICM" ,nPICM ,Nil})
aAdd(aIncSB1,{"B1_IPI" ,M->VVG_ALIIPI ,Nil})
aAdd(aIncSB1,{"B1_TE" ,M->VVG_CODTES ,Nil})
aAdd(aIncSB1,{"B1_PRV1" ,M->VV1_SUGVDA ,Nil})
aAdd(aIncSB1,{"B1_CONTA" ,M->VVG_CONTA ,Nil})
aAdd(aIncSB1,{"B1_CC" ,M->VVG_CENCUS ,Nil})
aAdd(aIncSB1,{"B1_PESO" ,1 ,Nil})
aAdd(aIncSB1,{"B1_TIPOCQ" ,"M" ,Nil})
aAdd(aIncSB1,{"B1_FABRIC" ,cNomFab ,Nil})
aAdd(aIncSB1,{"B1_CONTRAT" ,"N" ,Nil})
aAdd(aIncSB1,{"B1_LOCALIZ" ,"N" ,Nil})
aAdd(aIncSB1,{"B1_CODBAR" ,M->VVG_CHAINT ,Nil})
aAdd(aIncSB1,{"B1_ORIGEM" ,M->VVG_SITTRI ,Nil})
aAdd(aIncSB1,{"B1_IRRF" ,"N" ,Nil})
aAdd(aIncSB1,{"B1_CONTSOC" ,"N" ,Nil})
aAdd(aIncSB1,{"B1_MRP" ,"N" ,Nil})
aAdd(aIncSB1,{"B1_GRUPO" ,GetMv("MV_GRUVEI"),Nil})
aAdd(aIncSB1,{"B1_GRTRIB" ,VV1->VV1_GRTRIB ,Nil})
// aAdd(aIncSB1,{"B1_PPIS" ,nAliPis ,Nil})
// aAdd(aIncSB1,{"B1_PCOFINS" ,nAliCof ,Nil})
aAdd(aIncSB1,{"B1_POSIPI " ,VV1->VV1_POSIPI ,Nil})
if GetNewPar("MV_MARGSOL",0) > 0
aAdd(aIncSB1,{"B1_PICMENT" ,GetNewPar("MV_MARGSOL",0) ,Nil})
Endif
//Ponto de Entrada p/ Atualizar o Cadastro de Produto
If ExistBlock("VA010AB1")
aIncSB1 := ExecBlock("VA010AB1",.f.,.f.,{aIncSB1})
EndIf
lMsErroAuto := .f.
MsExecAuto({|x| mata010(x)},aIncSB1)
VEIVM000, VA010AB1
VA010AB1 - Alteração de campos na tabela SB1 referente ao veículo ( [ aIncSB1 ] ) --> aIncSB1
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
aIncSB1 | Vetor | Contém os campos que serão passados para o MATA010 criar o SB1. |
-
aIncSB1(vetor)
- O mesmo vetor que é passado como parâmetro, mas atualizado com os campos conforme escolha do usuário.
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜܱ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±±±ºPrograma ³ VA010AB1 ºAutor ³ Thiago º Data ³ 20/01/11 º±±±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±±±ºDesc. ³ Ponto de Entrada para cadastrar campos customizados no SB1 º±±±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/User Function VA010AB1()Local aitem := ParamIXB[1] aAdd(aitem,{"B1_NVL" ,"1" ,Nil}) MsgInfo("Ponto de Entrada para cadastrar campos customizados no SB1")Return (aitem)
Nome | Tipo | Escopo | Pode Alterar | descrição | ||||||||||
Array of Record | Global | Não |