#INCLUDE "RWMAKE.CH"
#INCLUDE "PROTHEUS.CH"
#INCLUDE "tbiconn.CH"
User Function MyMata120()
Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local nY := 0
Local cDoc := ""
Local lOk := .T.
Local cSeek := ""
Local nCount := 0
PRIVATE lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "FAT" TABLES "SC7"
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Abertura do ambiente |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ConOut(Repl("-",80))
ConOut(PadC("Teste de Inclusao de 10 pedidos de compra com 30 itens cada",80))
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Verificacao do ambiente para teste |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SB1")
dbSetOrder(1)
If !SB1->(MsSeek(xFilial("SB1")+"PA002"))
lOk := .F.
ConOut("Cadastrar produto: PA002")
EndIf
dbSelectArea("SF4")
dbSetOrder(1)
If !SF4->(MsSeek(xFilial("SF4")+"001"))
lOk := .F.
ConOut("Cadastrar TES: 001")
EndIf
dbSelectArea("SE4")
dbSetOrder(1)
If !SE4->(MsSeek(xFilial("SE4")+"001"))
lOk := .F.
ConOut("Cadastrar condicao de pagamento: 001")
EndIf
dbSelectArea("SA2")
dbSetOrder(1)
If !SA2->(MsSeek(xFilial("SA2")+"F0000101"))
lOk := .F.
ConOut("Cadastrar fornecedor: F0000101")
EndIf
If lOk
ConOut("Inicio: "+Time())
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Verifica o ultimo documento valido para um fornecedor |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SC7")
dbSetOrder(1)
MsSeek(xFilial("SC7")+"zzzzzz",.T.)
dbSkip(-1)
cDoc := SC7->C7_NUM
For nY := 1 To 1
aCabec := {}
aItens := {}
If Empty(cDoc)
cDoc := StrZero(1,Len(SC7->C7_NUM))
Else
cDoc := Soma1(cDoc)
EndIf
aadd(aCabec,{"C7_NUM" ,cDoc})
aadd(aCabec,{"C7_EMISSAO" ,dDataBase})
aadd(aCabec,{"C7_FORNECE" ,"F00001"})
aadd(aCabec,{"C7_LOJA" ,"01"})
aadd(aCabec,{"C7_COND" ,"001"})
aadd(aCabec,{"C7_CONTATO" ,"AUTO"})
aadd(aCabec,{"C7_FILENT" ,CriaVar("C7_FILENT")})
cSeek:= xFilial("SC3")+"F0000101"
dbSelectArea("SC3")
dbSetOrder(2)
MsSeek(cSeek)
While SC3->(!Eof()) .And. xFilial("SC3")+SC3->C3_FORNECE+SC3->C3_LOJA == cSeek
aLinha := {}
aadd(aLinha,{"C7_PRODUTO" ,SC3->C3_PRODUTO,Nil})
aadd(aLinha,{"C7_QUANT" ,SC3->C3_QUANT ,Nil})
aadd(aLinha,{"C7_PRECO" ,SC3->C3_PRECO ,Nil})
aadd(aLinha,{"C7_TOTAL" ,SC3->C3_TOTAL ,Nil})
aadd(aLinha,{"C7_NUMSC" ,SC3->C3_NUM ,Nil})
aadd(aLinha,{"C7_ITEMSC" ,SC3->C3_ITEM ,Nil})
aadd(aItens,aLinha)
SC3->(dbSkip())
nCount++
Enddo
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de Inclusao |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If nCount > 0
MATA120(2,aCabec,aItens,3)
If !lMsErroAuto
ConOut("Incluido com sucesso! "+cDoc)
Else
ConOut("Erro na inclusao!")
MostraErro()
EndIf
Else
ConOut("Autorização não incluida!")
EndIF
Next nY
ConOut("Fim : "+Time())
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de Alteracao |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SC7")
dbSetOrder(1)
MsSeek(xFilial("SC7")+cDoc)
//C7_FILIAL+C7_NUM+C7_ITEM+C7_SEQUEN
aCabec := {}
aItens := {}
aadd(aCabec,{"C7_NUM" ,SC7->C7_NUM})
aadd(aCabec,{"C7_EMISSAO" ,SC7->C7_EMISSAO})
aadd(aCabec,{"C7_FORNECE" ,SC7->C7_FORNECE})
aadd(aCabec,{"C7_LOJA" ,SC7->C7_LOJA})
aadd(aCabec,{"C7_COND" ,SC7->C7_COND})
aadd(aCabec,{"C7_CONTATO" ,SC7->C7_CONTATO})
aadd(aCabec,{"C7_FILENT" ,SC7->C7_FILENT})
aLinha := {}
aadd(aLinha,{"C7_ITEM" ,SC7->C7_ITEM ,Nil})
aadd(aLinha,{"C7_PRODUTO" ,SC7->C7_PRODUTO ,Nil})
aadd(aLinha,{"C7_QUANT" ,3 ,Nil})
aadd(aLinha,{"C7_PRECO" ,SC7->C7_PRECO ,Nil})
aadd(aLinha,{"C7_TOTAL" ,3*SC7->C7_PRECO ,Nil})
aadd(aLinha,{"C7_NUMSC" ,SC7->C7_NUMSC ,Nil})
aadd(aLinha,{"C7_ITEMSC" ,SC7->C7_ITEMSC ,Nil})
aadd(aLinha,{"C7_REC_WT" ,SC7->(RECNO()) ,Nil})
aadd(aItens,aLinha)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de alteracao |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ConOut(PadC("Teste de alteracao",80))
ConOut("Inicio: "+Time())
MATA120(2,aCabec,aItens,4)
If !lMsErroAuto
ConOut("Alteracao com sucesso! "+cDoc)
Else
ConOut("Erro na Alteracao!")
EndIf
ConOut("Fim : "+Time())
ConOut(Repl("-",80))
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de exclusao |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SC7")
dbSetOrder(1)
MsSeek(xFilial("SC7")+cDoc)
aCabec := {}
aItens := {}
aadd(aCabec,{"C7_NUM" ,SC7->C7_NUM})
aadd(aCabec,{"C7_EMISSAO" ,SC7->C7_EMISSAO})
aadd(aCabec,{"C7_FORNECE" ,SC7->C7_FORNECE})
aadd(aCabec,{"C7_LOJA" ,SC7->C7_LOJA})
aadd(aCabec,{"C7_COND" ,SC7->C7_COND})
aadd(aCabec,{"C7_CONTATO" ,SC7->C7_CONTATO})
aadd(aCabec,{"C7_FILENT" ,SC7->C7_FILENT})
aLinha := {}
aadd(aLinha,{"C7_ITEM" ,SC7->C7_ITEM ,Nil})
aadd(aLinha,{"C7_PRODUTO" ,SC7->C7_PRODUTO ,Nil})
aadd(aLinha,{"C7_QUANT" ,SC7->C7_QUANT ,Nil})
aadd(aLinha,{"C7_PRECO" ,SC7->C7_PRECO ,Nil})
aadd(aLinha,{"C7_NUMSC" ,SC7->C7_NUMSC ,Nil})
aadd(aLinha,{"C7_ITEMSC" ,SC7->C7_ITEMSC ,Nil})
aadd(aLinha,{"C7_REC_WT" ,SC7->(RECNO()) ,Nil})
aadd(aItens,aLinha)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de Exclusao |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ConOut(PadC("Teste de exclusao",80))
ConOut("Inicio: "+Time())
MATA120(2,aCabec,aItens,5)
If !lMsErroAuto
ConOut("Exclusao com sucesso! "+cDoc)
Else
ConOut("Erro na exclusao!")
EndIf
ConOut("Fim : "+Time())
ConOut(Repl("-",80))
EndIf
RESET ENVIRONMENT
Return(.T.)