import.css=/download/attachments/327912/newLayout.css

Função: MATA410 - Geração automática de Pedido de Vendas (ExecAuto)


Abrangências:Microsiga Protheus 12, Protheus 11 , Protheus 10
Versões:Protheus 10
Compatível Países:Todos
Sistemas Operacionais:Todos
Compatível às Bases de Dados:Todos
Nível de Acesso:Nível 1 (Acesso Clientes)
Idiomas:Português (Brasil)


Descrição:
Função utilizada para geração de pedido de vendas via rotina automática (ExecAuto).
Programa Fonte:
MATA410.PRX
Sintaxe:

MSExecAuto({|x,y,z| mata410(x,y,z)},[aCabec],[aItens],[nOpc])


Retorno:
    ()
Exemplos


#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"
 
Function MyMata410()

Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local nX     := 0
Local nY     := 0
Local cDoc   := ""
Local lOk    := .T.

PRIVATE lMsErroAuto := .F.
//****************************************************************
//* Abertura do ambiente
//****************************************************************
ConOut(Repl("-",80))
ConOut(PadC("Teste de Inclusao de 10 pedidos de venda  com 30 itens cada",80))
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "FAT" TABLES "SC5","SC6","SA1","SA2","SB1","SB2","SF4"
//****************************************************************
//* Verificacao do ambiente para teste 
//****************************************************************
dbSelectArea("SB1")
dbSetOrder(1)
If !SB1->(MsSeek(xFilial("SB1")+"PA001"))
	lOk := .F.
	ConOut("Cadastrar produto: PA001")
EndIf
dbSelectArea("SF4")
dbSetOrder(1)
If !SF4->(MsSeek(xFilial("SF4")+"501"))
	lOk := .F.
	ConOut("Cadastrar TES: 501")
EndIf
dbSelectArea("SE4")
dbSetOrder(1)
If !SE4->(MsSeek(xFilial("SE4")+"001"))
	lOk := .F.
	ConOut("Cadastrar condicao de pagamento: 001")
EndIf
If !SB1->(MsSeek(xFilial("SB1")+"PA002"))
	lOk := .F.
	ConOut("Cadastrar produto: PA002")
EndIf
dbSelectArea("SA1")
dbSetOrder(1)
If !SA1->(MsSeek(xFilial("SA1")+"CL000101"))
	lOk := .F.
	ConOut("Cadastrar cliente: CL000101")
EndIf
If lOk
	ConOut("Inicio: "+Time())
	For nY := 1 To 10
		cDoc := GetSxeNum("SC5","C5_NUM")
		RollBAckSx8()
		aCabec := {}
		aItens := {}
		aadd(aCabec,{"C5_NUM"   ,cDoc,Nil})
		aadd(aCabec,{"C5_TIPO" ,"N",Nil})
		aadd(aCabec,{"C5_CLIENTE",SA1->A1_COD,Nil})
		aadd(aCabec,{"C5_LOJACLI",SA1->A1_LOJA,Nil})
		aadd(aCabec,{"C5_LOJAENT",SA1->A1_LOJA,Nil})
		aadd(aCabec,{"C5_CONDPAG",SE4->E4_CODIGO,Nil})
		If cPaisLoc == "PTG"
			aadd(aCabec,{"C5_DECLEXP","TESTE",Nil})
		Endif
		For nX := 1 To 30
			aLinha := {}
			aadd(aLinha,{"C6_ITEM",StrZero(nX,2),Nil})
			aadd(aLinha,{"C6_PRODUTO",SB1->B1_COD,Nil})
			aadd(aLinha,{"C6_QTDVEN",1,Nil})
			aadd(aLinha,{"C6_PRCVEN",100,Nil})
			aadd(aLinha,{"C6_PRUNIT",100,Nil})
			aadd(aLinha,{"C6_VALOR",100,Nil})
			aadd(aLinha,{"C6_TES","501",Nil})
			aadd(aItens,aLinha)
		Next nX
		//****************************************************************
		//* Teste de Inclusao              
		//****************************************************************

		MSExecAuto({|x,y,z|mata410(x,y,z)},aCabec,aItens,3)
		If !lMsErroAuto
			ConOut("Incluido com sucesso! "+cDoc)
		Else
			ConOut("Erro na inclusao!")
		EndIf
	Next nY
	ConOut("Fim  : "+Time())
	//****************************************************************
	//* Teste de alteracao                                      
	//****************************************************************
	aCabec := {}
	aItens := {}
	aadd(aCabec,{"C5_NUM",cDoc,Nil})
	aadd(aCabec,{"C5_TIPO","N",Nil})
	aadd(aCabec,{"C5_CLIENTE",SA1->A1_COD,Nil})
	aadd(aCabec,{"C5_LOJACLI",SA1->A1_LOJA,Nil})
	aadd(aCabec,{"C5_LOJAENT",SA1->A1_LOJA,Nil})
	aadd(aCabec,{"C5_CONDPAG",SE4->E4_CODIGO,Nil})
	If cPaisLoc == "PTG"
		aadd(aCabec,{"C5_DECLEXP","TESTE",Nil})
	Endif
	For nX := 1 To 30
		aLinha := {}
		aadd(aLinha,{"LINPOS","C6_ITEM",StrZero(nX,2)})
		aadd(aLinha,{"AUTDELETA","N",Nil})
		aadd(aLinha,{"C6_PRODUTO",SB1->B1_COD,Nil})
		aadd(aLinha,{"C6_QTDVEN",2,Nil})
		aadd(aLinha,{"C6_PRCVEN",100,Nil})
		aadd(aLinha,{"C6_PRUNIT",100,Nil})
		aadd(aLinha,{"C6_VALOR",200,Nil})
		aadd(aLinha,{"C6_TES","501",Nil})
		aadd(aItens,aLinha)
	Next nX	
	ConOut(PadC("Teste de alteracao",80))
	ConOut("Inicio: "+Time())
	MSExecAuto({|x,y,z|mata410(x,y,z)},aCabec,aItens,4)
	ConOut("Fim  : "+Time())
	ConOut(Repl("-",80))	
	//****************************************************************
	//* Teste de Exclusao                                           
	//****************************************************************
	ConOut(PadC("Teste de exclusao",80))
	ConOut("Inicio: "+Time())
	MSExecAuto({|x,y,z|mata410(x,y,z)},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.)


Parâmetros:



Nome

Tipo

Descrição

Default

Obrigatório

Referência

aCabec

Array of Record

Array contendo os campos do cabeçalho (SC5).










aItens

Array of Record

Array contendo os campos dos itens (SC6).










nOpc

Array of Record

3- Inclusão
4- Alteração
5- Exclusão













MSExecAuto({|x,y,z| mata410(x,y,z)},aCabec,aItens,3)