#INCLUDE 'TOTVS.CH'
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'RWMAKE.CH'
#INCLUDE "TBICONN.CH"
User Function MyMATA200(PARAMIXB3)
Local PARAMIXB1 := {}
Local PARAMIXB2 := {}
Local aGets := {}
Local lOK := .T.
Local cString := ''
Private lMsErroAuto := .F.
Default PARAMIXB3 := 3
//------------------------//| Abertura do ambiente |//----------------------------
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "PCP" TABLES "SB1","SG1","SG5"
ConOut(Repl("-",80))
ConOut(PadC("Teste de rotina automatica para estrutura de produtos",80))
//------------------------//| Teste de Inclusao |//-------------------------------
dbSelectArea("SB1")
dbSetOrder(1)
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 PARAMIXB3==3
PARAMIXB1 := {{"G1_COD","PA001",NIL},;
{"G1_QUANT",1,NIL},;
{"NIVALT","S",NIL}} // A variavel NIVALT eh utilizada pra recalcular ou nao a estrutura
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(PARAMIXB2,aGets)
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(PARAMIXB2,aGets)
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(PARAMIXB2,aGets)
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(PARAMIXB2,aGets)
aGets := {}
aadd(aGets,{"G1_COD","PA001",NIL})
aadd(aGets,{"G1_COMP","PI003",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(PARAMIXB2,aGets)
aGets := {}
aadd(aGets,{"G1_COD","PA001",NIL})
aadd(aGets,{"G1_COMP","MP004",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(PARAMIXB2,aGets)
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(PARAMIXB2,aGets)
If lOk
ConOut("Teste de Inclusao")
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| mata200(x,y,z)},PARAMIXB1,PARAMIXB2,PARAMIXB3)
//Inclusao
ConOut("Fim: "+Time())
EndIf
Else
//--------------- Exemplo de Exclusao ------------------------------------
If lOk
SG1->(dbSetOrder(1))
SG1->(dbSeek(xFilial("SG1")+PadR('PA001',Len(SG1->G1_COD))))
PARAMIXB1 := {{"G1_COD","PA001",NIL},;
{"NIVALT","S",NIL}} // A variavel NIVALT eh utilizada pra recalcular
// ou nao a estrutura
ConOut("Teste de Exclusao do codigo PA001")
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| mata200(x,y,z)},PARAMIXB1,NIL,5)
//Exclusao
lOk := !lMsErroAuto
ConOut("Fim: "+Time())
EndIf
If lOk
SG1->(dbSetOrder(1))
SG1->(dbSeek(xFilial("SG1")+PadR('PI001',Len(SG1->G1_COD))))
PARAMIXB1 := {{"G1_COD","PI001",NIL},; {"NIVALT","S",NIL}} // A variavel NIVALT eh utilizada pra recalcular
// ou nao a estrutura
ConOut("Teste de Exclusao do codigo PI001")
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| mata200(x,y,z)},PARAMIXB1,NIL,5)
//Exclusao
lOk := !lMsErroAuto
ConOut("Fim: "+Time())
EndIf
If lOk
SG1->(dbSetOrder(1))
SG1->(dbSeek(xFilial("SG1")+PadR('PI002',Len(SG1->G1_COD))))
PARAMIXB1 := {{"G1_COD","PI002",NIL},; {"NIVALT","S",NIL}} // A variavel NIVALT eh utilizada pra recalcular
// ou nao a estrutura
ConOut("Teste de Exclusao do codigo PI002")
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| mata200(x,y,z)},PARAMIXB1,NIL,5)
//Exclusao
lOk := !lMsErroAuto
ConOut("Fim: "+Time())
EndIf
If lOk
SG1->(dbSetOrder(1))
SG1->(dbSeek(xFilial("SG1")+PadR('PI003',Len(SG1->G1_COD))))
PARAMIXB1 := {{"G1_COD","PI003",NIL},; {"NIVALT","S",NIL}} // A variavel NIVALT eh utilizada pra recalcular
// ou nao a estrutura
ConOut("Teste de Exclusao do codigo PI003")
ConOut("Inicio: "+Time())
MSExecAuto({|x,y,z| mata200(x,y,z)},PARAMIXB1,NIL,5) //Exclusao
ConOut("Fim: "+Time()) EndIf
EndIf
If lMsErroAuto
If IsBlind()
If IsTelnet()
VTDispFile(NomeAutoLog(),.t.)
Else
cString := MemoRead(NomeAutoLog())
Aviso("Aviso de Erro:",cString)
EndIf
Else
MostraErro()
EndIf
Else
If lOk
Aviso("Aviso","Operacao efetuada com sucesso",{"Ok"})
Else
Aviso("Aviso","Fazer os devidos cadastros",{"Ok"})
EndIf
Endif
Return |