Árvore de páginas

Ponto-de-Entrada: VA010AB1 - Alteração de campos na tabela SB1 referente ao veículo
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)
Descrição:
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.
Eventos

 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)  

Programa Fonte
VEIVM000, VA010AB1
Sintaxe

VA010AB1 - Alteração de campos na tabela SB1 referente ao veículo ( [ aIncSB1 ] ) --> aIncSB1

Parâmetros:
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.
Retorno
    aIncSB1(vetor)
  • O mesmo vetor que é passado como parâmetro, mas atualizado com os campos conforme escolha do usuário.
Exemplos
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜܱ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±±±º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)
Variáveis
Nome Tipo Escopo Pode Alterar descrição
Array of Record Global Não