#INCLUDE 'Protheus.ch'
User Function MyPCPA200(nOpc)
Local aCab := {}
Local aItem := {}
Local aGets := {}
Local cString := ""
Local cProdutos := ""
Private lMsErroAuto := .F.
Default nOpc := 3
ConOut(Repl("-",80))
ConOut(PadC("Teste de rotina automatica para estrutura de produtos",80))
//Verifica se os produtos que serão utilizados existem cadastrados.
SB1->(dbSetOrder(1))
If !SB1->(dbSeek(xFilial("SB1")+"PA001"))
cProdutos += "PA001, "
EndIf
If !SB1->(dbSeek(xFilial("SB1")+"PI001"))
cProdutos += "PI001, "
EndIf
If !SB1->(dbSeek(xFilial("SB1")+"PI002"))
cProdutos += "PI002, "
EndIf
If !SB1->(dbSeek(xFilial("SB1")+"PI003"))
cProdutos += "PI003, "
EndIf
If !SB1->(dbSeek(xFilial("SB1")+"MP001"))
cProdutos += "MP001, "
EndIf
If !SB1->(dbSeek(xFilial("SB1")+"MP002"))
cProdutos += "MP002, "
EndIf
If !SB1->(dbSeek(xFilial("SB1")+"MP003"))
cProdutos += "MP003, "
EndIf
If !Empty(cProdutos)
Alert("Cadastre os seguintes produtos: " + PadR(cProdutos,Len(cProdutos)-2))
Return
EndIf
If nOpc == 3
aCab := {{"G1_COD" , "PA001" , NIL},; //Código do produto PAI.
{"G1_QUANT" , 5 , NIL},; //Quantidade base do produto PAI.
{"ATUREVSB1", "N" , NIL},; //A variável ATUREVSB1 é utilizada para gerar nova revisão quando MV_REVAUT=.F.
{"NIVALT" , "S" , NIL}} //A variável NIVALT é utilizada para recalcular ou não os níveis da estrutura.
//Adiciona o componente MP001 com sequência em branco na estrutura do PA001.
aGets := {}
aadd(aGets, {"G1_COD" , "PA001" , NIL})
aadd(aGets, {"G1_COMP" , "MP001" , NIL})
aadd(aGets, {"G1_TRT" , Space(3) , NIL})
aadd(aGets, {"G1_QUANT", 1 , NIL})
aadd(aGets, {"G1_INI" , CTOD("01/01/01"), NIL})
aadd(aGets, {"G1_FIM" , CTOD("31/12/49"), NIL})
aadd(aGets, {"G1_PERDA", 0 , NIL})
aadd(aItem,aGets)
//Adiciona o componente PI001 com sequência em branco na estrutura do PA001.
aGets := {}
aadd(aGets, {"G1_COD" ,"PA001" , NIL})
aadd(aGets, {"G1_COMP" ,"PI001" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) , NIL})
aadd(aGets, {"G1_QUANT",1 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP001 com sequência "001" na estrutura do PA001.
aGets := {}
aadd(aGets, {"G1_COD" ,"PA001" , NIL})
aadd(aGets, {"G1_COMP" ,"MP001" , NIL})
aadd(aGets, {"G1_TRT" ,"001" , NIL})
aadd(aGets, {"G1_QUANT",1 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP001 com sequência "005" na estrutura do PA001.
aGets := {}
aadd(aGets, {"G1_COD" ,"PA001" , NIL})
aadd(aGets, {"G1_COMP" ,"MP001" , NIL})
aadd(aGets, {"G1_TRT" ,"005" , NIL})
aadd(aGets, {"G1_QUANT",1 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP001 na estrutura do PA001.
//Como o G1_TRT não foi informado no array, o programa irá criar um novo TRT para este
//componente, pois ele já está informado nesta estrutura.
aGets := {}
aadd(aGets, {"G1_COD" , "PA001" , NIL})
aadd(aGets, {"G1_COMP" , "MP001" , NIL})
aadd(aGets, {"G1_QUANT", 1 , NIL})
aadd(aGets, {"G1_PERDA", 0 , NIL})
aadd(aGets, {"G1_INI" , CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" , CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP002 com sequência em branco na estrutura do PA001.
aGets := {}
aadd(aGets, {"G1_COD" ,"PA001" , NIL})
aadd(aGets, {"G1_COMP" ,"MP002" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) , NIL})
aadd(aGets, {"G1_QUANT",2 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP003 com sequência em branco na estrutura do PA001.
aGets := {}
aadd(aGets, {"G1_COD" ,"PA001" , NIL})
aadd(aGets, {"G1_COMP" ,"MP003" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) , NIL})
aadd(aGets, {"G1_QUANT",1 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP003 com sequência em branco na estrutura do PI001.
aGets := {}
aadd(aGets, {"G1_COD" ,"PI001" , NIL})
aadd(aGets, {"G1_COMP" ,"MP003" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) , NIL})
aadd(aGets, {"G1_QUANT",3 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP002 com sequência em branco na estrutura do PI001.
aGets := {}
aadd(aGets, {"G1_COD" ,"PI001" , NIL})
aadd(aGets, {"G1_COMP" ,"MP002" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) , NIL})
aadd(aGets, {"G1_QUANT",1 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP001 com sequência em branco na estrutura do PI001.
aGets := {}
aadd(aGets, {"G1_COD" ,"PI001" , NIL})
aadd(aGets, {"G1_COMP" ,"MP001" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) , NIL})
aadd(aGets, {"G1_QUANT",1 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente PI002 com sequência em branco na estrutura do PI001.
aGets := {}
aadd(aGets, {"G1_COD" ,"PI001" , NIL})
aadd(aGets, {"G1_COMP" ,"PI002" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) , NIL})
aadd(aGets, {"G1_QUANT",1 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP001 com sequência em branco na estrutura do PI002.
aGets := {}
aadd(aGets, {"G1_COD" ,"PI002" , NIL})
aadd(aGets, {"G1_COMP" ,"MP001" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) , NIL})
aadd(aGets, {"G1_QUANT",1 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP002 com sequência em branco na estrutura do PI002.
aGets := {}
aadd(aGets, {"G1_COD" ,"PI002" , NIL})
aadd(aGets, {"G1_COMP" ,"MP002" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) |
RpcSetEnv( "99" , "01" , Nil, NIL})
aadd(aGets, {"G1_QUANT",1 Nil, "PCP", Nil )
ConOut(Repl("-",80))
ConOut(PadC("Teste de rotina automatica para estrutura de produtos",80))
//Verificacao do ambiente para teste , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL} |
dbSelectArea("SB1")
dbSetOrder(1)
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP003 com sequência em branco na estrutura do PI002.
aGets := {}
aadd(aGets, {"G1_COD" ,"PI002" , NIL})
aadd(aGets, {"G1_COMP" ,"MP003" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) , NIL})
aadd(aGets, {"G1_QUANT",1 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente PI003 com sequência em branco na estrutura do PI002.
If !SB1->(MsSeek(xFilial("SB1")+"PA001"))
lOk := .F.
ConOut("Cadastrar produto acabado: PA001")
EndIf
If !SB1->(MsSeek(xFilial("SB1")+"PI001"))
lOk := .F.
ConOut("Cadastrar produto intermediario: PI001")
EndIf
If !SB1->(MsSeek(xFilial("SB1")+"PI002"))
lOk := .F.
ConOut("Cadastrar produto intermediario: PI002")
EndIf
If !SB1->(MsSeek(xFilial("SB1")+"PI003"))
lOk := .F.
ConOut("Cadastrar produto intermediario: PA003")
EndIf
If !SB1->(MsSeek(xFilial("SB1")+"MP001"))
lOk := .F.
ConOut("Cadastrar produto materia prima: MP001")
EndIf
If !SB1->(MsSeek(xFilial("SB1")+"MP002"))
lOk := .F.
ConOut("Cadastrar produto materia prima: MP002")
EndIf
If !SB1->(MsSeek(xFilial("SB1")+"MP003"))
lOk := .F.
ConOut("Cadastrar produto materia prima: MP003")
EndIf
If !SB1->(MsSeek(xFilial("SB1")+"MP004"))
lOk := .F.
ConOut("Cadastrar produto materia prima: MP004")
EndIf
If nOpc==3 .And. lOk
aCab := { {"GG_COD" ,"PA001" ,NIL},;
{"GG_QUANT" ,2 ,NIL}}
aGets := {}
aadd(aGets, {"G1GG_COD" ,"PI002" , PA001" ,NIL})
aadd(aGets, {"G1GG_COMP" ,"PI003PI001" , ,NIL})
aadd(aGets, {"G1GG_TRT" ,Space(3) ," " , ,NIL})
aadd(aGets, {"G1GG_QUANT",1 , ,1 ,NIL})
aadd(aGets, {"G1GG_PERDA",0 , ,0 ,NIL})
aadd(aGets, {"G1GG_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1GG_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
aGets //Adiciona o componente MP001 com sequência em branco na estrutura do PI003.
aGets := {}
aadd(aGets, {"G1_COD" ,"PI003" , NIL})
aadd(aGets, {"G1_COMP" ,"MP001" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) , NIL})
aadd(aGets, {"G1_QUANT",1 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP002 com sequência em branco na estrutura do PI003.
aGets := {}
aadd(aGets, {"G1_COD" ,"PI003" , NIL})
aadd(aGets, {"G1_COMP" ,"MP002" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) , NIL})
aadd(aGets, {"G1_QUANT",1 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
//Adiciona o componente MP003 com sequência em branco na estrutura do PI003.
aGets := {}
aadd(aGets, {"G1_COD" ,"PI003" , NIL})
aadd(aGets, {"G1_COMP" ,"MP003" , NIL})
aadd(aGets, {"G1_TRT" ,Space(3) , NIL})
aadd(aGets, {"G1_QUANT",1 , NIL})
aadd(aGets, {"G1_PERDA",0 , NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/01") , NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") , NIL})
aadd(aItem,aGets)
ConOut("Teste de Inclusao")
MSExecAuto({|x,y,z| PCPA200(x,y,z)},aCab,aItem,3) //Inclusão
ConOut("Fim inclusao.")
ElseIf nOpc == 4
//--------------- Exemplo de Alteração ------------------------------------
aCab := {{"G1_COD" , "PA001" , NIL},; //Código do produto PAI.
{"G1_QUANT" , 5 , NIL},; //Quantidade base do produto PAI.
{"ATUREVSB1", "S" , NIL},; //A variável ATUREVSB1 é utilizada para gerar nova revisão quando MV_REVAUT=.F.
{"AUTREVPAI", " " , NIL},; //A variável AUTREVPAI é utilizada para indicar qual a revisão do produto pai será considerada. Caso não seja enviado, será utilizada a revisão atual do produto.
{"NIVALT" , "S" , NIL}} //A variável NIVALT é utilizada para recalcular ou não os níveis da estrutura.
//Altera o componente MP001 com sequência em branco.
aGets := {}
aadd(aGets, {"G1_COD" ,"PA001" ,NIL})
aadd(aGets, {"G1_COMP" ,"MP001" ,NIL})
aadd(aGets, {"G1_TRT" ,Space(3) ,NIL})
aadd(aGets, {"G1_QUANT",10 ,NIL})
aadd(aGets, {"G1_PERDA",1 ,NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/20") ,NIL})
aadd(aGets, {"G1_FIM" ,CTOD("31/12/49") ,NIL})
aAdd(aGets, {"LINPOS" ,"G1_COD+G1_COMP+G1_TRT","PA001","MP001",Space(3)})
aadd(aItem,aGets)
//Adiciona o componente PI003 com sequência em branco na estrutura do PA001.
aGets := {}
aadd(aGets, {"G1_COD" ,"PA001" ,NIL})
aadd(aGets, {"G1_COMP" ,"PI003" ,NIL})
aadd(aGets, {"G1_TRT" ,Space(3) ,NIL})
aadd(aGets, {"G1_QUANT",5 ,NIL})
aadd(aGets, {"G1_PERDA",1 ,NIL})
aadd(aGets, {"G1_INI" ,CTOD("01/01/20") ,NIL})
aadd(aGets, {"G1_FIM" := {}
aadd(aGets, {"GG_COD" ,"PA001" ,NIL})
aadd(aGets, {"GG_COMP" ,"MP001" ,NIL})
aadd(aGets, {"GG_TRT" ,Space(3) ,NIL})
aadd(aGets, {"GG_QUANT" ,1 ,NIL})
aadd(aGets, {"GG_PERDA" ,0 ,NIL})
aadd(aGets, {"GG_INI" ,CTOD("01/01/01") ,NIL})
aadd(aGets, {"GG_FIM" ,CTOD("31/12/49") ,NIL})
aadd(aItem,aGets)
aGets := {}
aadd(aGets, {"GG_COD" ,"PA001" ,NIL})
aadd(aGets, {"GG_COMP" ,"MP002" ,NIL})
aadd(aGets, {"GG_TRT" ,Space(3) ,NIL})
aadd(aGets, {"GG_QUANT" ,2 ,NIL})
aadd(aGets, {"GG_PERDA" ,0 ,NIL})
aadd(aGets, {"GG_INI" ,CTOD("01/01/01") ,NIL})
aadd(aGets, {"GG_FIM" ,CTOD("31/12/49") ,NIL})
aadd(aItem,aGets)
aGets := {}
aadd(aGets, {"GG_COD" ,"PI002" ,NIL})
aadd(aGets, {"GG_COMP" ,"MP003" ,NIL})
aadd(aGets, {"GG_TRT" ,Space(3) ,NIL})
aadd(aGets, {"GG_QUANT" ,3 ,NIL})
aadd(aGets, {"GG_PERDA" ,0 ,NIL})
aadd(aGets, {"GG_INI" ,CTOD("01/01/01") ,NIL})
aadd(aGets, {"GG_FIM" ,CTOD("31/12/49") ,NIL})
aadd(aItem,aGets)
aGets := {}
aadd(aGets, {"GG_COD" ,"PI002" ,NIL})
aadd(aGets, {"GG_COMP" ,"MP001" ,NIL})
aadd(aGets, {"GG_TRT" ,Space(3) ,NIL})
aadd(aGets, {"GG_QUANT" ,1 ,NIL})
aadd(aGets, {"GG_PERDA" ,0 ,NIL})
aadd(aGets, {"GG_INI" ,CTOD("01/01/01") ,NIL})
aadd(aGets, {"GG_FIM" ,CTOD("31/12/49") ,NIL})
aadd(aItem,aGets)
aGets := {}
aadd(aGets, {"GG_COD" ,"PI001" ,NIL})
aadd(aGets, {"GG_COMP" ,"MP002" ,NIL})
aadd(aGets, {"GG_TRT" ,Space(3) ,NIL})
aadd(aGets, {"GG_QUANT" ,1 ,NIL})
aadd(aGets, {"GG_PERDA" ,0 ,NIL})
aadd(aGets, {"GG_INI" ,CTOD("01/01/01") ,NIL})
aadd(aGets, {"GG_FIM" ,CTOD("31/12/49") ,NIL})
aadd(aItem,aGets)
aGets := {}
aadd(aGets, {"GG_COD" ,"PA001" ,NIL})
aadd(aGets, {"GG_COMP" ,"PI003" ,NIL})
aadd(aGets, {"GG_TRT" ,Space(3) ,NIL})
aadd(aGets, {"GG_QUANT" ,1 ,NIL})
aadd(aGets, {"GG_PERDA" ,0 ,NIL})
aadd(aGets, {"GG_INI" ,CTOD("01/01/01") ,NIL})
aadd(aGets, {"GG_FIM" ,CTOD("31/12/49") ,NIL})
aadd(aItem,aGets)
aGets := {}
aadd(aGets, {"GG_COD" ,"PA001" ,NIL})
aadd(aGets, {"GG_COMP" ,"MP004" ,NIL})
aadd(aGets, {"GG_TRT" ,Space(3) ,NIL})
aadd(aGets, {"GG_QUANT" ,1 ,NIL})
aadd(aGets, {"GG_PERDA" ,0 ,NIL})
aadd(aGets, {"GG_INI" ,CTOD("01/01/01") ,NIL})
aadd(aGets, {"GG_FIM" ,CTOD("31/12/49") ,NIL})
aadd(aItem,aGets)
//Deleta o componente MP002 da estrutura do PA001.
aGets := {}
aadd(aGets, {"G1GG_COD" ,"PA001" PI003" ,NIL})
aadd(aGets, {"G1GG_COMP" ,"MP002" ,"MP003" ,NIL})
aadd(aGets, {"G1GG_TRT" ,Space(3) ,NIL})
aadd(aGets, {"G1GG_QUANT",5 ,1 ,NIL})
aadd(aGets, {"G1_PERDA",1 GG_PERDA" ,0 ,NIL})
aadd(aGets, {"G1GG_INI" ,CTOD("01/01/2001") ,NIL})
aadd(aGets, {"G1GG_FIM" ,CTOD("31/12/49") ,NIL})
aAdd(aGets, {"LINPOS" ,"G1_COD+G1_COMP+G1_TRT","PA001","MP002",Space(3)})
aAdd(aGets, {"AUTDELETA","S" ,NIL})
aadd(aItem,aGets)
//Adiciona o componente PI002 com sequência "001" na estrutura do PI001.
aadd(aItem,aGets)
ConOut("Teste de Inclusao")
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| PCPA135(x,y,z)},aCab,aItem,3) //Inclusao
ConOut("Fim: "+Time())
ElseIf nOpc == 4 .And. lOk
//--------------- Exemplo de Alteração ------------------------------------
aCab := { {"GG_COD", "PA001", NIL}}
aGets := {}
aadd(aGets, {"G1GG_COD" ,"PI001" PA001" ,NIL})
aadd(aGets, {"G1GG_COMP" ,"PI002MP001" ,NIL})
aadd(aGets, {"G1GG_TRT" ,"001" ,Space(3) ,NIL})
aadd(aGets, {"G1GG_QUANT",5 ,5 ,NIL})
aadd(aGets, {"G1GG_PERDA",1 ,1 ,NIL})
aadd(aGets, {"G1GG_INI" ,CTOD("01/01/2001") ,NIL})
aadd(aGets, {"G1GG_FIM" ,CTOD("31/12/49")49") ,NIL})
aAdd(aGets, {"AUTDELETA" ,"S" ,NIL})
aadd(aItem,aGets)
ConOut("Teste de Alteracao")
MSExecAuto({|x,y,z| PCPA200(x,y,z)},aCab,aItem,4) //Alteração
ConOut("Fim alteracao.")
ElseIf nOpc == 5
//--------------- Exemplo de Exclusao ------------------------------------
SG1->(dbSetOrder(1))
//Verifica se o produto PA001 possui estrutura. Se existir, executa a exclusão.
If SG1->(dbSeek(xFilial("SG1")+"PA001"))
aCab := {{"G1_COD" , "PA001" , NIL},;
{"NIVALT" , "S" , NIL}} //A variável NIVALT é utilizada para recalcular ou não os níveis da estrutura.
ConOut("Teste de Exclusao do codigo PA001")
aAdd(aGets, {"LINPOS" ,"GG_COD+GG_COMP+GG_TRT","PA001","MP001",Space(3)})
aadd(aItem,aGets)
aGets := {}
aadd(aGets, {"GG_COD" ,"PA001" ,NIL})
aadd(aGets, {"GG_COMP" ,"PI003" ,NIL})
aadd(aGets, {"GG_TRT" ,"001" ,NIL})
aadd(aGets, {"GG_QUANT" ,5 ,NIL})
aadd(aGets, {"GG_PERDA" ,1 ,NIL})
aadd(aGets, {"GG_INI" ,CTOD("01/01/20") ,NIL})
aadd(aGets, {"GG_FIM" ,CTOD("31/12/49") ,NIL})
aAdd(aGets, {"LINPOS" ,"GG_COD+GG_COMP+GG_TRT","PA001","PI003",Space(3)})
aadd(aItem,aGets)
ConOut("Teste de Alteracao")
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| PCPA200PCPA135(x,y,z)},aCab,NIL,5) //Exclusao
ConOut("Fim exclusao do codigo PA001.")
EndIf
//Verifica se não aconteceu nenhum erro, e tenta excluir a estrutura do PI001 se existir.
If !lMsErroAuto .And. SG1->(dbSeek(xFilial("SG1")+"PI001"))
aItem,4) //Alteração
ConOut("Fim: "+Time())
ElseIf lOk
//--------------- Exemplo de Exclusao ------------------------------------
aCab := { {"G1GG_COD" , "PI001" , NIL},;
{"NIVALT" , "S" , NIL}} //A variável NIVALT é utilizada para recalcular ou não os níveis da estrutura.
PA001" ,NIL}}
ConOut("Teste de Exclusao do codigo PI001PA001")
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| PCPA200PCPA135(x,y,z)},aCab,NIL,5) //Exclusao
ConOut("Fim exclusao do codigo PI001.")
EndIf
//Verifica se não aconteceu nenhum erro, e tenta excluir a estrutura do PI002 se existir.
If !lMsErroAuto .And. SG1->(dbSeek(xFilial("SG1")+"PI002"))
//Exclusao
lOk := !lMsErroAuto
ConOut("Fim: "+Time())
aCab := { {"G1GG_COD" , "PI002PI001" , NIL},;
{"NIVALT" , "S" , NIL}} //A variável NIVALT é utilizada para recalcular ou não os níveis da estrutura.
}
ConOut("Teste de Exclusao do codigo PI001")
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| PCPA135(x,y,z)},aCab,NIL,5) //Exclusao
lOk := !lMsErroAuto
ConOut("Fim: "+Time())
aCab := { {"GG_COD" ,"PI002" ,NIL}}
ConOut("Teste de Exclusao do codigo PI002")
do codigo PI002")
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| PCPA200PCPA135(x,y,z)},aCab,NIL,5) //Exclusao
ConOut("Fim exclusao do codigo PI002.")
EndIf
//Verifica se não aconteceu nenhum erro, e tenta excluir a estrutura do PI003 se existir.
If !lMsErroAuto .And. SG1->(dbSeek(xFilial("SG1")+"PI003"))
5) //Exclusao
lOk := !lMsErroAuto
ConOut("Fim: "+Time())
aCab := { {"G1_COD" , "PI003" , NIL},;
{"NIVALT" , "S" , NIL}} //A variável NIVALT é utilizada para recalcular ou não os níveis da estrutura.
GG_COD" ,"PI003" ,NIL}}
ConOut("Teste de Exclusao do codigo PI003")
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| PCPA200PCPA135(x,y,z)},aCab,NIL,5) //Exclusao
ConOut("Fim exclusao do codigo PI003.")
EndIf
EndIf
//Verifica se ocorreu algum erro, e exibe a mensagem.
If lMsErroAuto
If IsBlind()
: "+Time())
EndIf
If lMsErroAuto
//MostraErro()
If IsBlind()
If IsTelnet()
VTDispFile(NomeAutoLog(),.t.)
Else
Else
cString := MemoRead(NomeAutoLog())
Conout("Aviso de Erro:",cString)
EndIf
Else
MostraErro()
EndIf
Else
If lOk
Aviso("Aviso","Incluido MsgInfo("Operação realizada com sucesso","OK")
EndIf
ConOut(Repl("-",80))
Return
com sucesso",{"Ok"})
Else
Aviso("Aviso","Fazer os devidos cadastros",{"Ok"})
EndIf
Endif
Return |