#include "totvs.ch"
#include "tbiconn.ch"
#include "fwmvcdef.ch"
User Function MyOMSA010()
Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local nY := 0
Local lOk := .T.
PRIVATE lMsErroAuto := .F.
ConOut(Repl("-",80))
ConOut(PadC("Teste de Alteração de 1 tabela de preco",80))
//????????????????????????????????
//| Verificacao do ambiente para teste |
//????????????????????????????????
dbSelectArea("SB1")
dbSetOrder(1)
If !SB1->(MsSeek(xFilial("SB1")+"PA001"))
lOk := .F.
ConOut("Cadastrar produto: PA001")
EndIf
If !SB1->(MsSeek(xFilial("SB1")+"PA002"))
lOk := .F.
ConOut("Cadastrar produto: PA002")
EndIf
If !SB1->(MsSeek(xFilial("SB1")+"PA003"))
lOk := .F.
ConOut("Cadastrar produto: PA003")
EndIf
If lOk
ConOut("Inicio: "+Time())
//????????????????????????????????
//| Teste de alteracao
//| Neste exemplo serão realizadas três mudanças:
//| - Incluindo condição de pagamento no cabeçalho
//| - Mudando Valor do item 0001
//| - Deletando o item 0002
//????????????????????????????????
aCabec := {}
aItens := {}
For nY := 1 To 1
aCabec := {}
aItens := {}
aadd(aCabec,{"DA0_CODTAB" ,DA0->DA0_CODTAB,Nil})
aadd(aCabec,{"DA0_DESCRI" ,"TESTE DE TABELA",Nil})
aadd(aCabec,{"DA0_CONDPG" ,"001",Nil}) //Incluindo condição de pagamento no cabeçalho
aLinha := {}
aadd(aLinha,{"LINPOS","DA1_ITEM","0001"})
aadd(aLinha,{"AUTDELETA","N",Nil})
aadd(aLinha,{"DA1_CODPRO","PA001"})
aadd(aLinha,{"DA1_PRCVEN",50,Nil}) //Atribuindo o valor 50 para este item
aadd(aItens,aLinha)
aLinha := {}
aadd(aLinha,{"LINPOS","DA1_ITEM","0002"})
aadd(aLinha,{"AUTDELETA","S",Nil}) //Deletando o item 0002
aadd(aItens,aLinha)
Next nY
ConOut(PadC("Teste de alteracao",80))
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| Omsa010(x,y,z)},aCabec,aItens,4)
ConOut("Fim : "+Time())
ConOut(Repl("-",80))
//????????????????????????????????
//| Teste de alteracao
//| - Incluindo um novo item em uma tabela
//????????????????????????????????
aCabec := {}
aItens := {}
For nY := 1 To 1
aCabec := {}
aItens := {}
aadd(aCabec,{"DA0_CODTAB" ,DA0->DA0_CODTAB,Nil})
aadd(aCabec,{"DA0_DESCRI" ,"TESTE DE TABELA",Nil})
aLinha := {}
aadd(aLinha,{"LINPOS","DA1_ITEM","0001"}) //Caso não seja informado o LINPOS o item será sobreposto.
aadd(aItens,aLinha)
aLinha := {}
aadd(aLinha,{"LINPOS","DA1_ITEM","0002"})
aadd(aItens,aLinha)
aLinha := {}
aadd(aLinha,{"DA1_ITEM","0003",Nil}) //Incluindo o item 0003 sem que os itens 0001 e 0002 sejam afetados.
aadd(aLinha,{"DA1_CODPRO","PA003"})
aadd(aLinha,{"DA1_PRCVEN",100,Nil})
aadd(aItens,aLinha)
Next nY
ConOut(PadC("Teste de alteracao",80))
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| Omsa010(x,y,z)},aCabec,aItens,4)
ConOut("Fim : "+Time())
ConOut(Repl("-",80)) ConOut("Fim : "+Time()) |