Árvore de páginas

EXECAUTO VEIXX000 - Entrada de Veículos

Produto:

Protheus

Versões:

Todas

Ocorrência:

Rotina Automática - VEIXX000 Entrada de Veículos (Execauto)

Ambiente:

SIGAVEI - Veículos

Descrição:Rotina automática que permite a entrada de veículos).
Parâmetros:
NomeTipoDescriçãoConteúdo Default
ExpA1ArrayArray contendo os dados do cabeçalho da Entrada de Veículos.
ExpA2

Array

Array contendo os itens da Entrada de Veículos.
ExpA3ArrayArray contendo a forma de pagamento da Entrada de Veículos. Caso não haja, informe um array vazio.
ExpN1NuméricoOpção desejada: 3-Inclusão; 5-Cancelamento.
ExpC1Caractere

Tipo de Entrada desejado:

"0"=Normal (entrada por compra)
"1"=Ped.Fabrica
"2"=Remessa
"3"=Transferencia
"4"=Consignacao
"5"=Devolucao
"6"=Frete
"7"=Retorno de Remessa
"8"=Retorno de Consignacao


ExpA4ArrayUso interno
ExpL1LógicoBooleano que define se deve exibir mensagens padrão da rotina..t.
ExpA5BooleanoArray contendo as informações da nota fiscal já gerada. Caso não haja, não informe nenhum conteúdo.{.t.,"",""}
ExpC2Caractere

Tipo do Documento a ser considerado:

"1" = Gera nota fiscal de Entrada - SD1/SF1
"2" = Gera movimentacao interna - SD3
"3" = Nao gera movimentacao de entrada Back Office (Nota Fiscal de Entrada / Mov. Interna de Estoque)
Neste caso o veiculo pode ser importado do mercado internacional e a nota fiscal já foi digitada no BackOffice
"4" = Nao gera movimentacao de entrada Back Office (Nota Fiscal de Entrada / Mov. Interna de Estoque)
Neste caso o veiculo foi produzido pela montadora através de uma Ordem de Produção no PCP

"1"

Passo a passo:

//Inclusão de uma entrada de veículos por compra gerando nota fiscal

#include "totvs.ch"

User Function INCVX0NF()
    Local xEAutoCab     := {} // Campos Cabecalho
    Local xEAutoItens   := {} // Campos Itens
    Local xAutoIt       := {}

    Private lMsErroAuto := .f.

    //////////////////////////
    // NF ENTRADA          //
    /////////////////////////
    aAdd(xEAutoCab,{"VVF_FILIAL"  , xFilial("VVF")  ,Nil})
    aAdd(xEAutoCab,{"VVF_FORPRO"  , "1"             ,Nil})
    aAdd(xEAutoCab,{"VVF_CLIFOR"  , "F"             ,Nil})
    aAdd(xEAutoCab,{"VVF_CODFOR"  , "000001"        ,Nil})
    aAdd(xEAutoCab,{"VVF_LOJA "   , "01"            ,Nil})
    aAdd(xEAutoCab,{"VVF_DATEMI"  , dDataBase       ,Nil})
    aAdd(xEAutoCab,{"VVF_FORPAG"  , "001"           ,Nil})
    aAdd(xEAutoCab,{"VVF_NATURE"  , "9999999999"    ,Nil})
    aAdd(xEAutoCab,{"VVF_ESPECI"  , "SPED"          ,Nil})

    //ITEM
    xAutoIt := {}
    aAdd(xAutoIt,{"VVG_FILIAL"  , xFilial("VVG")    ,Nil})
    aAdd(xAutoIt,{"VVG_CHASSI"  , "CHASSI_TESTE"   ,Nil})
    aAdd(xAutoIt,{"VVG_CHAINT"  , "000000"          ,Nil})
    aAdd(xAutoIt,{"VVG_CODTES"  , "001"             ,Nil})
    aAdd(xAutoIt,{"VVG_LOCPAD"  , "MN"              ,Nil})
    aAdd(xAutoIt,{"VVG_VALUNI"  , 999999.99         ,Nil})
    aAdd(xAutoIt,{"VVG_ESTVEI"  , "0"               ,Nil})
    aAdd(xAutoIt,{"VVG_CODORI"  , "0"               ,Nil})
    aAdd(xAutoIt,{"VVG_SITTRI"  , "0"               ,Nil})
    aAdd(xEAutoItens,aClone(xAutoIt))

    cBkpFunName := FunName()
    SetFunName('VEIXA001')

    MSExecAuto( { |a,b,c,d,e,f,g,h,i| VEIXX000(a,b,c,d,e,f,g,h,i) }, xEAutoCab,xEAutoItens,{} ,3 ,"0", ,.f. )

    SetFunName(cBkpFunName)

    If lMsErroAuto
        MostraErro()
    Else
        MsgInfo("Movimento criado com sucesso")
    EndIf

Return


//Cancelamento de uma entrada de veículos

#include "totvs.ch"

User Function DELVX0NF()

    Local xAutoCab := {} // Campos Cabecalho
    Local xAutoItens := {} // Campos Itens
    Local xAutoIt := {}



    Local aParParamBox := {}
    Local aRetParamBox := {}

    Private lMsHelpAuto := .t.
    Private lMsErroAuto := .f.

    AADD( aParParamBox , { 1 , RetTitle("F1_DOC") , Space(TamSX3("F1_DOC" )[1]) , "" , "" , "" , "" , 40 , .T. } )
    AADD( aParParamBox , { 1 , RetTitle("F1_SERIE") , Space(TamSX3("F1_SERIE" )[1]) , "" , "" , "" , "" , 40 , .T. } )
    AADD( aParParamBox , { 1 , RetTitle("F1_FORNECE") , Space(TamSX3("F1_FORNECE")[1]) , "" , "" , "" , "" , 40 , .T. } )
    AADD( aParParamBox , { 1 , RetTitle("F1_LOJA") , Space(TamSX3("F1_LOJA" )[1]) , "" , "" , "" , "" , 40 , .T. } )

    If ! ParamBox(aParParamBox,"Entrada Veiculo - NF",@aRetParamBox,,,,,,,, .f., .f.)
        Return
    EndIf

    // F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA+F1_TIPO
    //cNota := "1812110021 00001601"
    cNota := aRetParamBox[1] + aRetParamBox[2] + aRetParamBox[3] + aRetParamBox[4]
    //cNota := FMX_INPUTBOX("Numero da nota fiscal de entrada", Space(TamSX3("F1_DOC")[1] + TamSX3("F1_SERIE")[1]))
    //cNota := FMX_INPUTBOX("Numero da nota fiscal de entrada", cNota )

    SF1->(dbSetOrder(1))
    If ! SF1->(dbSeek(xFilial("SF1") + cNota ))
        MsgStop("Nota fiscal não encontrada")
        Return
    EndIf

    cPergunta := "Nota: " + SF1->F1_SERIE + " - " + SF1->F1_DOC + CHR(13) + CHR(10) + ;
        "Fornecedor: " + sf1->F1_FORNECE + " - " + sf1->F1_LOJA

    If ! MsgYesNo("Confirma Cancelamento da nota fiscal " + chr(13) + chr(10) + chr(13) + chr(10) + cPergunta )
        Return
    EndIf

    aAdd(xAutoCab, { 'VVF_NUMNFI'   , SF1->F1_DOC , NIL } )
    aAdd(xAutoCab, { 'VVF_SERNFI'   , SF1->F1_SERIE , NIL } )
    aAdd(xAutoCab, { 'VVF_CODFOR'   , SF1->F1_FORNECE , NIL } )
    aAdd(xAutoCab, { 'VVF_LOJA'     , SF1->F1_LOJA , NIL } )

    MSExecAuto(;
        { |a,b,c,d,e,f,g,h,i| ;
        VEIXX000(a ,b ,c ,d ,e ,f ,g ,h ,i ) },;
        xAutoCab,{} ,{} ,5 ,"0" , ,.f. , , )
    If lMsErroAuto
        MostraErro()
    Else
        MsgInfo("Movimento cancelado com sucesso.")
    EndIf

Return

Observações:

Esta rotina de Execução Automática se aplica as rotinas abaixo:

Entrada Por Compra (VEIXA001)

Entr. Por Remessa (VEIXA003)

Entr Retorno Remes (VEIXA006)

Entr. devol. Venda (VEIXA002)

Entr. Por Consig. (VEIXA005)

Entrada Por Transf (VEIXA004)

Entr Remess Consig (VEIXA008)

Entr. Ret. Consig. (VEIXA007)