quarta-feira, 12 de dezembro de 2018

execAuto Documento Entrada MATA103

Abaixo um exemplo de fonte execAuto Documento Entrada MATA103
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"

/* execAuto Doc Entrada */

User Function ExecAu103()

Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local aColsCC := {}
Local aCodRet := {}
Local nX := 0
Local nY := 0
Local cDoc := ""
Local lOk := .T.
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.

//| Abertura do ambiente
ConOut(Repl("-",80))
ConOut(PadC("Teste de Inclusao de 1000 documentos de entrada com 20 itens cada",80))

//| Verificacao do ambiente para teste
dbSelectArea("SB1")
dbSetOrder(1)
If !SB1->(MsSeek(xFilial("SB1")+"000000000000003")) //Verificar a exist?cia do produto
lOk := .F.
ConOut("Cadastrar produto: 000000000000003")
EndIf

//dbSelectArea("SF4")
//dbSetOrder(1)
//If !SF4->(MsSeek(xFilial("SF4")+"001")) //Verificar a exist?cia do tes
// lOk := .F.
// ConOut("Cadastrar TES: 001")
//EndIf

//dbSelectArea("SE4")
//dbSetOrder(1)
//If !SE4->(MsSeek(xFilial("SE4")+"001")) //Verificar a exist?cia do condi?o de pagamento
// lOk := .F.
//ConOut("Cadastrar condicao de pagamento: 001")
//EndIf

dbSelectArea("SA2")
dbSetOrder(1)
If !SA2->(MsSeek(xFilial("SA2")+"00000201")) //Verificar a exist?cia do fornecedor
lOk := .F.
ConOut("Cadastrar fornecedor: 00000201 ")
EndIf

If lOk
ConOut("Inicio: "+Time())
//????????????????????????????????
//| Verifica o ?timo documento valido para um fornecedor |
//????????????????????????????????
//dbSelectArea("SF1")
//dbSetOrder(2)
//MsSeek(xFilial("SF1")+"0000001Z",.T.)
//dbSkip(-1)
cDoc := "000001000"//SF1->F1_DOC

For nY := 1 To 3000 //Altere para a quantidade desejada
aCabec := {}
aItens := {}

If Empty(cDoc)
cDoc := StrZero(1,Len(SD1->D1_DOC))
Else
cDoc := Soma1(cDoc)
EndIf

//ExpA1 - Array contendo os dados do cabe?lho da Nota Fiscal de Entrada.
aadd(aCabec,{"F1_TIPO" , "N" , Nil})
aadd(aCabec,{"F1_FORMUL" , " " , Nil})
aadd(aCabec,{"F1_DOC" , cDoc , Nil})
aadd(aCabec,{"F1_SERIE" , "001" , Nil})
aadd(aCabec,{"F1_EMISSAO" , stod('20181206') , Nil})
aadd(aCabec,{"F1_DESPESA" , 0 , Nil})
aadd(aCabec,{"F1_FORNECE" , "000001" , Nil})
aadd(aCabec,{"F1_LOJA" , '01', Nil})
aadd(aCabec,{"F1_ESPECIE" , "SPED" , Nil})
aadd(aCabec,{"F1_COND" , "001" , Nil})
aadd(aCabec,{"F1_DESCONT" , 0 , Nil})
aadd(aCabec,{"F1_SEGURO" , 0 , Nil})
aadd(aCabec,{"F1_FRETE" , 0 , Nil})
aadd(aCabec,{"F1_VALMERC" , 100 , Nil})
aadd(aCabec,{"F1_VALBRUT" , 100 , Nil})
aadd(aCabec,{"F1_MOEDA" , 1 , Nil})
aadd(aCabec,{"F1_TXMOEDA" , 0 , Nil})
aadd(aCabec,{"F1_STATUS" , "A" , Nil})

//ExpA2- Array contendo os itens da Nota Fiscal de Entrada.
For nX := 1 To 1 //Altere para a quantidade desejada
aLinha := {}
aadd(aLinha,{"D1_COD" , "000000000000003" , Nil})
aadd(aLinha,{"D1_UM" , "CX" , Nil})
aadd(aLinha,{"D1_QUANT" , 1 , Nil})
aadd(aLinha,{"D1_VUNIT" , 5000 , Nil})
aadd(aLinha,{"D1_TOTAL" , 5000 , Nil})
aadd(aLinha,{"D1_TES" , "001" , Nil})
aadd(aLinha,{"D1_SEGURO" , 0 , Nil})
aadd(aLinha,{"D1_VALFRE" , 0 , Nil})
aadd(aLinha,{"D1_DESPESA" , 0 , Nil})
aadd(aLinha,{"AUTDELETA" , "N" , Nil}) // Incluir sempre no ?timo elemento do array de cada item

aadd(aItens,aLinha)
Next nX

MATA103(aCabec,aItens,3,,,,,/*aColsCC*/,,,/*aCodRet*/) //ExpN1 - Op?o desejada: 3-Inclus?; 4-Altera?o ; 5-Exclus?

If !lMsErroAuto
ConOut("Incluido com sucesso! "+cDoc)
Else
MostraErro()
ConOut("Erro na inclusao!")
EndIf
Next nY
ConOut("Fim : "+Time())
EndIf

Return

Nenhum comentário:

Postar um comentário