Tempo aproximado para leitura: 00:10:00min
Dúvida
Como posso criar Rotina Automática MATA103 para Exclusão do Documento de Entrada?
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha Protheus) - Gestão de Compras - Versão 12
Solução
Siga o exemplo abaixo:
//EXCLUSÃO DE DOCUMENTO DE ENTRADA (SEM ABERTURA DE TELA)
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"
User Function EXEC103()
Local nOpc := 5
Local aCab := {}
Local aItens := {}
Local aLinha := {}
Local aAuxDKD := {}
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "COM" FUNNAME "MATA103"
aadd(aCab,{"F1_TIPO" ,"N" ,NIL})
aadd(aCab,{"F1_FORMUL" ,"N" ,NIL})
aadd(aCab,{"F1_DOC" ,"M103STELA",NIL})
aadd(aCab,{"F1_SERIE" ,"001" ,NIL})
aadd(aCab,{"F1_EMISSAO" ,dDataBase,NIL})
aadd(aCab,{"F1_DTDIGIT" ,dDataBase,NIL})
aadd(aCab,{"F1_FORNECE" ,"000001" ,NIL})
aadd(aCab,{"F1_LOJA" ,"01" ,NIL})
aadd(aCab,{"F1_ESPECIE" ,"NFE" ,NIL})
aadd(aCab,{"F1_COND" ,"000" ,NIL})
aAdd(aCab,{"F1_STATUS","A",NIL})
aItens := {}
aAdd(aItens,{'D1_DOC',"M103STELA",NIL})
aAdd(aItens,{'D1_SERIE',"0001",NIL})
aAdd(aItens,{'D1_FORNECE',"000001",NIL})
aAdd(aItens,{'D1_LOJA',"01",NIL})
aAdd(aLinha,aItens)
MSExecAuto({|x,y,z,b,a| MATA103(x,y,z,b,,,,,,,,,,,a)},aCab,aLinha,nOpc,.F.,aAuxDKD)
If lMsErroAuto
MostraErro()
Else
Alert("Execauto MATA103 de exclusão sem tela executado com sucesso!")
EndIf
RESET ENVIRONMENT
Return
//EXCLUSÃO DE DOCUMENTO DE ENTRADA (COM ABERTURA DE TELA)
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"
User Function EXEC103()
Local cNumDoc := "M103CTELA"
Local cSerie := "001"
Local cForn := "000001"
Local cLoja := "01"
Local nOpc := 5
Local aCab := {}
Local aItens := {}
Local aLinha := {}
Private lMsErroAuto := .F.
DbSelectArea("SF1")
SF1->(DbSetOrder(1))
SF1->(DbSeek(xFilial("SF1") + cNumDoc + cSerie + cForn + cLoja ))
aadd(aCab,{"F1_TIPO" , "N" ,NIL})
aadd(aCab,{"F1_FORMUL" , "N" ,NIL})
aadd(aCab,{"F1_DOC" , SF1->F1_DOC,NIL})
aadd(aCab,{"F1_SERIE" , SF1->F1_SERIE ,NIL})
aadd(aCab,{"F1_EMISSAO" , dDataBase,NIL})
aadd(aCab,{"F1_DTDIGIT" , dDataBase,NIL})
aadd(aCab,{"F1_FORNECE" , SF1->F1_FORNECE ,NIL})
aadd(aCab,{"F1_LOJA" , SF1->F1_LOJA ,NIL})
aadd(aCab,{"F1_ESPECIE" , SF1->F1_ESPECIE ,NIL})
dbSelectArea("SD1")
SD1->(dbSetOrder(1))
SD1->(DbSeek(xFilial("SD1")+SF1->F1_DOC+SF1->F1_SERIE+SF1->F1_FORNECE+SF1->F1_LOJA))
While !Eof() .And. SD1->D1_FILIAL+SD1->D1_DOC+SD1->D1_SERIE+SD1->D1_FORNECE+SD1->D1_LOJA == ;
SF1->F1_FILIAL+SF1->F1_DOC+SF1->F1_SERIE+SF1->F1_FORNECE+SF1->F1_LOJA
aItens := {}
aAdd(aItens,{'D1_DOC',SD1->D1_DOC ,NIL})
aAdd(aItens,{'D1_SERIE',SD1->D1_SERIE ,NIL})
aAdd(aItens,{'D1_FORNECE',SD1->D1_FORNECE,NIL})
aAdd(aItens,{'D1_LOJA',SD1->D1_LOJA ,NIL})
aadd(aItens,{"D1_ITEM",SD1->D1_ITEM ,NIL})
aadd(aItens,{"D1_COD" ,SD1->D1_COD ,NIL})
aadd(aItens,{"D1_UM" ,SD1->D1_UM ,NIL})
aadd(aItens,{"D1_LOCAL",SD1->D1_LOCAL ,NIL})
aadd(aItens,{"D1_QUANT",SD1->D1_QUANT ,NIL})
aadd(aItens,{"D1_VUNIT",SD1->D1_VUNIT ,NIL})
aadd(aItens,{"D1_TOTAL",SD1->D1_TOTAL ,NIL})
aadd(aItens,{"D1_TES" ,SD1->D1_TES ,NIL})
aAdd(aLinha,aItens)
SD1->(dbSkip())
EndDo
MSExecAuto({|x,y,z,b,a| MATA103(x,y,z,b,,,,,,,,,,,a)},aCab,aLinha,nOpc,.T.,)
If lMsErroAuto
MostraErro()
EndIf
Return
Saiba Mais:
- PCOM12003 - Documento de Entrada (Rotina Automática MATA103 - EXECAUTO)
- PÁGINA CENTRALIZADORA COMPRAS
- Mais Artigos Materiais - Compras (SIGACOM)
0 Comentários