Árvore de páginas

Tempo aproximado para leitura: 02 min

01. DADOS GERAIS

Linha de Produto:Microsiga Protheus
Segmento:Varejo
Módulo:Veículos (SIGAVEI)
Função:Atend. Modelo 2 (VEIXA018)
Ticket:7530902
Requisito/Story/Issue (informe o requisito relacionado) :MMIL-5236
Pacote(s) Gerado(s):

12.1.25: https://suporte.totvs.com/portal/p/10098/download?e=844543

12.1.23: https://suporte.totvs.com/portal/p/10098/download?e=844542

12.1.17: https://suporte.totvs.com/portal/p/10098/download?e=844541


02. SITUAÇÃO/REQUISITO

Há necessidade da rotina Atend. Modelo 2 (VEIXA018) ser executada automaticamente a partir de outras rotinas (execauto).

03. SOLUÇÃO

Implementada melhoria no Módulo SIGAVEI através de alterações na rotina Atend. Modelo 2 (VEIXA018) para que esta seja executada automaticamente a partir de outras rotinas (execauto).


Observação: A forma de pagamento disponibilizada para execução do ExecAuto é a Entradas (Tipo 6)



#include "totvs.ch"



User Function AddAtend()

    Local aAutoCab := {}
    Local aAutoVV9 := {}
    Local aAutoItens:= {} // Campos Itens
    Local aAutoIt 

    nTipoAdd := AVISO("Tipo de Inclusão",;
        "Tipo de Inclusão de Atendimento" + chr(13) + chr(10) + chr(13) + chr(10) + ;
        "Um Veículo - Venda futura por modelo " + chr(13) + chr(10) + ;
        "Dois Veículos - Venda futura por modelo " + chr(13) + chr(10) + ;
        "Por Chassi - Venda com chassi 5NPDH4AE7FH550004" ;
        , { "Um Veículo" , "Dois Veículos" , "Por Chassi" } , 3)

    If ! MsgYesNo("Confirma execucao")
        Return
    EndIf

    aAdd(aAutoVV9, { "VV9_CODCLI" , "000006"            , NIL } )
    aAdd(aAutoVV9, { "VV9_LOJA"   , "01"                , NIL } )
//  aAdd(aAutoVV9, { "VV9_TELVIS" , "111"               , NIL } )

    aAutoCab := {} // Campos Cabecalho
//  aAdd(aAutoCab,{"VV0_TIPFAT"  ,"0"                   ,Nil})
//  aAdd(aAutoCab,{"VV0_OPEMOV"  ,"1"                   ,Nil})
//  aAdd(aAutoCab,{"VVA_SIMVDA"  ,"S"                   ,Nil})
//  aAdd(aAutoCab,{"VV0_VDAFUT"  ,"1"                   ,Nil})
    aAdd(aAutoCab,{"VV0_CODCLI"  ,"000006"              ,Nil})
    aAdd(aAutoCab,{"VV0_LOJA"    ,"01"              ,Nil})
//  aAdd(aAutoCab,{"VV0_TIPO"    ,"N"                   ,Nil})
//  aAdd(aAutoCab,{"VV0_CODVEN " ,"000001"              ,Nil})
    aAdd(aAutoCab,{"VV0_TIPVEN"  ,"01"   , NIl })
    aAdd(aAutoCab,{"VV0_CODVEN" , "000003"      , NIl })
    aAdd(aAutoCab,{"VV0_FORPAG" , "002"     , NIl })

    aAutoItens:= {} // Campos Itens

    If nTipoAdd == 1
        aAutoIt := {}
        aAdd( aAutoIt , { 'VVA_CODMAR' , 'HYU'                            , NIL} )
        aAdd( aAutoIt , { 'VVA_GRUMOD' , 'GR01  '                         , NIL} )
        aAdd( aAutoIt , { 'VVA_MODVEI' , 'GBZ5                          ' , NIL} )
        aAdd( aAutoIt , { 'VVA_SEGMOD' , '1K20K42S  '                     , NIL} )
        aAdd( aAutoIt , { 'VVA_CODTES' , '501'                            , NIL} )
        aAdd( aAutoIt , { 'VVA_VALTAB' ,  90000                           , Nil} )
    //  aAdd( aAutoIt , { 'VVA_VALVDA'  ,100000                 ,Nil})
    //  aAdd( aAutoIt , { 'VVA_VALMOV'  ,100000                 ,Nil})
        aAdd(aAutoItens,aAutoIt)
    ElseIf nTipoAdd == 2
        aAutoIt := {}
        aAdd( aAutoIt , { 'VVA_CODMAR' , 'HYU' , NIL} )
        aAdd( aAutoIt , { 'VVA_GRUMOD' , 'GR01  ' , NIL} )
        aAdd( aAutoIt , { 'VVA_MODVEI' , 'GBZ5                          ' , NIL} )
        aAdd( aAutoIt , { 'VVA_SEGMOD' , '4S20K42S  ' , NIL} )
        aAdd( aAutoIt , { 'VVA_CODTES' , '501' , NIL} )
        aAdd(aAutoItens,aAutoIt)

        aAutoIt := {}
        aAdd( aAutoIt , { 'VVA_CODMAR' , 'HYU' , NIL} )
        aAdd( aAutoIt , { 'VVA_GRUMOD' , 'GR01  ' , NIL} )
        aAdd( aAutoIt , { 'VVA_MODVEI' , 'GBZ5                          ' , NIL} )
        aAdd( aAutoIt , { 'VVA_SEGMOD' , '4S20K42S  ' , NIL} )
        aAdd( aAutoIt , { 'VVA_CODTES' , '501' , NIL} )
        aAdd( aAutoIt , { 'VVA_VALTAB'  ,50000                  ,Nil})
        aAdd(aAutoItens,aAutoIt)
    ElseIf nTipoAdd == 3
        aAutoIt := {}
        aAdd( aAutoIt , { 'VVA_CHASSI' , '5NPDH4AE7FH550004        '      , NIL} )
        aAdd( aAutoIt , { 'VVA_CODTES' , '507'                            , NIL} )
        aAdd( aAutoIt , { 'VVA_VALTAB' ,  81081.08                        , Nil} )
        aAdd(aAutoItens,aAutoIt)
    EndIf

//  CriaAtendimento(xAutoCab,xAutoItens)

    Begin Transaction

        SetFunName("VEIXA018")
        lMSHelpAuto := .t.
        lMsErroAuto := .f.
        //VEIXX002(xAutoCab,xAutoItens,xAutoCP,nOpc,aRecInter)
        MSExecAuto({|x,y,z,w| VEIXX002(x,y,,z,,w )}, aAutoCab, aAutoItens, 3, aAutoVV9)
        // VEIXX002(                          xAutoCab, xAutoItens,xAutoCP,nOpc,aRecInter)
        if lMsErroAuto
            DisarmTransaction()
            RollbackSx8()
            MsUnlockAll()
            MostraErro()
            Return .f.
        Endif

        ConOut("---------------------------------------------------------------------------")
        ConOut(" ")
        Conout("VVA POSICIONADO  - " + VVA->VVA_NUMTRA + VVA->VVA_ITETRA )
        ConOut(" ")
        ConOut("---------------------------------------------------------------------------")

    End Transaction
    
    
Return

#include "totvs.ch"



User Function AddChassi()

    Local aAutoCab := {}
    Local aAutoVV9 := {}
    Local aAutoItens:= {} // Campos Itens
    Local aAutoIt 

    Local aParParambox := {}
    Local aRetParamBox := {}
    
    AADD( aParParamBox , { 1 , "Atendimento"        , Space(TamSX3("VV0_NUMTRA")[1]), "", "", "", "", 40, .t. })
    AADD( aParParamBox , { 1 , "Chassi"             , Space(TamSX3("VV0_CHASSI")[1]), "", "", "", "", 40, .t. })
    AADD( aParParamBox , { 1 , "Valor de Tabela"    , 0 ,"@E 999,999.99",""         ,"","",50,.f.}) 
    AADD( aParParamBox , { 1 , "Valor do Movimento" , 0 ,"@E 999,999.99",""         ,"","",50,.f.}) 
    If ! ParamBox(aParParamBox,"Avan�ar Atendimento",@aRetParamBox,,,,,,,, .f., .f.)
        Return
    EndIf

    If ! MsgYesNo("Confirma execucao")
        Return
    EndIf

    aAdd(aAutoVV9, { "VV9_NUMATE" , aRetParamBox[1] , NIL } )

    aAutoCab := {} // Campos Cabecalho
    aAutoItens:= {} // Campos Itens

    aAutoItens:= {} // Campos Itens
    aAutoIt := {}
    aAdd( aAutoIt , { 'VVA_CHASSI' , '5NPDH4AE7FH550004        '      , NIL} )
    aAdd( aAutoIt , { 'VVA_CODTES' , '507'                            , NIL} )
    If aRetParamBox[3] > 0
        aAdd( aAutoIt , { 'VVA_VALTAB' , aRetParamBox[3]               , Nil} )
    EndIf
    If aRetParamBox[4] > 0
        aAdd( aAutoIt , { 'VVA_VALMOV' , aRetParamBox[4]               , Nil} )
    EndIf
    aAdd(aAutoItens,aAutoIt)

    Begin Transaction

        SetFunName("VEIXA018")
        lMSHelpAuto := .t.
        lMsErroAuto := .f.
        //VEIXX002(xAutoCab,xAutoItens,xAutoCP,nOpc,aRecInter)
        MSExecAuto({|x,y,z,w| VEIXX002(x,y,,z,,w )}, aAutoCab, aAutoItens, 4, aAutoVV9)
        // VEIXX002(                          xAutoCab, xAutoItens,xAutoCP,nOpc,aRecInter)
        if lMsErroAuto
            DisarmTransaction()
            RollbackSx8()
            MsUnlockAll()
            MostraErro()
            Return .f.
        Endif

        ConOut("---------------------------------------------------------------------------")
        ConOut(" ")
        Conout("VVA POSICIONADO  - " + VVA->VVA_NUMTRA + VVA->VVA_ITETRA )
        ConOut(" ")
        ConOut("---------------------------------------------------------------------------")

    End Transaction
    
    
Return

#include "totvs.ch"



User Function AvaAtend()

    Local aAutoCab := {}
    Local aAutoVV9 := {}
    Local aAutoItens:= {} // Campos Itens
    Local cSerParam := ""
    Local lRet

    Local aParParambox := {}
    Local aRetParamBox := {}
    
    AADD( aParParamBox , { 1 , "Atendimento", Space(TamSX3("VV0_NUMTRA")[1]), "", "", "", "", 40, .t. })
    If ! ParamBox(aParParamBox,"Avan�ar Atendimento",@aRetParamBox,,,,,,,, .f., .f.)
        Return
    EndIf

    If ! MsgYesNo("Avan�ar atendimento")
        Return
    EndIf

    VV9->(dbSetOrder(1))
    If ! VV9->(dbSeek(xFilial("VV9") + aRetParamBox[1]))
        Return 
    EndIf

    nRet := AVISO("Avan�ar Atendimento", "Avan�ar at� a fase de ?", { "Aprova��o", "Faturar" }, 1)
    Do Case
    Case nRet == 0
        Return .t.
    Case nRet == 1
        cFaseAte := "L"
    Case nRet == 2
        lRet := SX5NumNota(@cSerParam, GetNewPar("MV_TPNRNFS","1"))
        If !lRet
            Return .t.
        EndIf
        cFaseAte := "F"
    End Case

    aAdd(aAutoVV9, { "VV9_NUMATE" , aRetParamBox[1] , NIL } )

    aAutoCab := {} // Campos Cabecalho
    aAutoItens:= {} // Campos Itens

    // Nao pode estar dentro de uma transacao ...

    SetFunName("VEIXA018")
    lMSHelpAuto := .t.
    lMsErroAuto := .f.
    MSExecAuto({|x,y,z,w,u,v,t| VEIXX002(x       , y         ,       , z  ,         , w      ,        ,        , u         , v         , t       )}, aAutoCab, aAutoItens, 4     , aAutoVV9,.t.,cFaseAte, cSerParam)
//  VEIXX002(                            xAutoCab, xAutoItens,xAutoCP,nOpc,aRecInter,xAutoVV9,xOpcCanc,xMotCanc,xAutoAvanca, xFaseInter, xSerieNF)
    if lMsErroAuto
        MostraErro()
        Return .f.
    Endif

    
Return

#include "totvs.ch"



User Function CanAtend()

    Local aAutoCab := {}
    Local aAutoVV9 := {}
    Local aAutoItens:= {} // Campos Itens
    Local aAutoIt 

    Local aParParambox := {}
    Local aRetParamBox := {}

    AADD( aParParamBox , { 1 , "Atendimento", Space(TamSX3("VV0_NUMTRA")[1]), "", "", "", "", 40, .t. })
    If ! ParamBox(aParParamBox,"Cancela Atendimento",@aRetParamBox,,,,,,,, .f., .f.)
        Return
    EndIf

    If ! MsgYesNo("Confirma Cancelamento do Atendimento")
        Return
    EndIf

    VV9->(dbSetOrder(1))
    If ! VV9->(dbSeek(xFilial("VV9") + aRetParamBox[1]))
        Return 
    EndIf

    aAdd(aAutoVV9, { "VV9_NUMATE" , aRetParamBox[1] , NIL } )

    aAutoCab := {} // Campos Cabecalho
    aAutoItens:= {} // Campos Itens

    //�����������������������������������������������������������������
    //� Motivo do Cancelamento do Atendimento                         �
    //�����������������������������������������������������������������
    aMotCancel := OFA210MOT("000001","1",VV9->VV9_FILIAL,VV9->VV9_NUMATE,.t.) // Filtro da consulta do motivo de Cancelamentos ( 000001 = Atendimento de Veiculos )
    If len(aMotCancel) <= 0
        Return .f.
    EndIf

    Begin Transaction

        nOpcCanc := 1 // Volta para aberto
        nOpcCanc := 2 // Cancela atendimento

        SetFunName("VEIXA018")
        lMSHelpAuto := .t.
        lMsErroAuto := .f.
        MSExecAuto({|x,y,z,w,u,v| VEIXX002(x,y,,z,,w,u,v)}, aAutoCab, aAutoItens, 5, aAutoVV9,nOpcCanc,aMotCancel)
        if lMsErroAuto
            DisarmTransaction()
            RollbackSx8()
            MsUnlockAll()
            MostraErro()
            Return .f.
        Endif

    End Transaction
    
    
Return

#include "totvs.ch"



User Function AddAtend()

    Local aAutoCab := {}
    Local aAutoVV9 := {}
    Local aAutoItens:= {} // Campos Itens
    Local aAutoIt := {}
    Local aAutoPagto := {} // Campos Pagamento
    Local aAutoPg := {}
    Local aAuxPagto := {}
    

    If ! MsgYesNo("Confirma execução?")
        Return
    EndIf

    aAdd(aAutoVV9, {"VV9_CODCLI"  , "000001"         , NIL } )
    aAdd(aAutoVV9, {"VV9_LOJA"    , "01"        , NIL } )

    aAdd(aAutoCab, {"VV0_CODCLI"  , "000001"        , Nil } )
    aAdd(aAutoCab, {"VV0_LOJA"    , "01"       , Nil } )

    aAdd(aAutoCab, {"VV0_TIPVEN"  , " " , NIl } ) 
    aAdd(aAutoCab, {"VV0_CODVEN"  , "000001"    , NIl } )
    aAdd(aAutoCab, {"VV0_FORPAG"  , "002"    , NIl } )

    aAdd( aAutoIt , {"VVA_CHASSI" , "CHASSI_33"    , NIL} )
    aAdd( aAutoIt , {"VVA_CODTES" , "501"    , NIL} )
    aAdd( aAutoIt , {"VVA_VALTAB" , 130000    , Nil} )

    aAdd( aAutoItens, aAutoIt  )

    
    aAuxPagto := {"6",{}} //Forma de Pagamento - Entradas
    
    aAutoPg := {}
    AADD( aAutoPg , { "VS9_TIPPAG" , 'DP' , NIL } )
    AADD( aAutoPg , { "VS9_DATPAG" , DataValida(dDataBase + 10)  , NIL } )
    AADD( aAutoPg , { "VS9_VALPAG" , 30000.00                    , NIL } )
    AADD( aAutoPg , { "VS9_SEQUEN" , "01"                  , NIL } )
    
    AADD(aAuxPagto[2], aClone(aAutoPg) )
    
    aAutoPg := {}
    AADD( aAutoPg , { "VS9_TIPPAG" , 'DP' , NIL } )
    AADD( aAutoPg , { "VS9_DATPAG" , DataValida(dDataBase + 10)  , NIL } )
    AADD( aAutoPg , { "VS9_VALPAG" , 100000.00                   , NIL } )
    AADD( aAutoPg , { "VS9_SEQUEN" , "02"                  , NIL } )

    AADD(aAuxPagto[2], aClone(aAutoPg) )

    AADD( aAutoPagto , aAuxPagto )

    Begin Transaction

        SetFunName("VEIXA018")
        lMSHelpAuto := .t.
        lMsErroAuto := .f.
        MSExecAuto({|x,y,z,w,v| VEIXX002(x,y,,z,,w,,,,,,v)}, aAutoCab, aAutoItens, 3, aAutoVV9, aAutoPagto)
        if lMsErroAuto
            DisarmTransaction()
            RollbackSx8()
            MsUnlockAll()
            MostraErro()
            Return .f.
        Endif

        ConOut("---------------------------------------------------------------------------")
        ConOut(" ")
        Conout("VVA POSICIONADO  - " + VVA->VVA_NUMTRA + VVA->VVA_ITETRA )
        ConOut(" ")
        ConOut("---------------------------------------------------------------------------")

    End Transaction
    
    
Return


04. DEMAIS INFORMAÇÕES

Não há.


05. ASSUNTOS RELACIONADOS

Não há.