Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Portuguese

Pagetitle
MATA410 - Geração automática de Pedido de Vendas ExecAuto
MATA410 - Geração automática de Pedido de Vendas ExecAuto

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


 

Abrangências:Microsiga 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:

MATA410 - Geração automática de Pedido de Vendas (ExecAuto) ( MSExecAuto({|x,y,z| mata410(x,y,z)},[aCabec],[aItens],[nOpc])


Retorno:
    ()
Exemplos
 


Bloco de código
linenumberstrue
#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              
		//****************************************************************

		MATA410(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())
	MATA410(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())
	MATA410(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)