01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Serviços
Módulo:SIGAFAT - Faturamento
Função:MATA410 - Pedido de Vendas
Abrangências:Microsiga Protheus 12, Protheus 11, Protheus 10
Versões:Microsiga Protheus 12, Protheus 11, 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:Todos

02. DESCRIÇÃO

Função utilizada para geração do Pedido de Venda via rotina automática (ExecAuto).

03. SINTAXE

MSExecAuto({|a, b, c, d, e, f| MATA410(a, b, c, d, , , , e, )}, aCabec, aItens, nOpcX, .F., [aItemRat])

04. PARÂMETROS

NomeTipoDescriçãoDefaultObrigatórioReferência
aCabecArray de registrosArray contendo os campos do cabeçalho (SC5)
Sim
aItensArray de registrosArray contendo os campos dos itens (SC6)
Sim
nOpcXNumérico (opção de execução)3 = Inclusão; 4 = Alteração; 5 = Exclusão
Sim
aItemRatArray de registros

Não

05. RETORNO

{}

06. EXEMPLIFICAÇÃO

Escolha o exemplo abaixo que deseja utilizar de acordo com a sua necessidade de execução:


Utilize esse exemplo para os Pedidos de Venda que não necessitam das informações de rateio por Centros de Custo:

Utilize esse exemplo para os Pedidos de Venda que necessitam das informações de rateio por Centros de Custo:

04. DEMAIS INFORMAÇÕES

Outras ações/ações relacionadas 



05. ASSUNTOS RELACIONADOS



<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>
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:Microsiga Protheus 12, Protheus 11, 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 do Pedido de Venda via rotina automática (ExecAuto).

Programa Fonte:

MATA410.PRX

Sintaxe:

MSExecAuto({|a, b, c, d, e, f| MATA410(a, b, c, d, , , , e, )}, aCabec, aItens, nOpcX, .F., [aItemRat])

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())
		
		// Obs: Caso não exista controle de numeração automática no inicializador padrão no número do pedido de venda (campo C5_NUM), poderá 
		// ser utilizada a função GetSxeNum(), conforme exemplo abaixo utilizando na atribuição da variável cDoc. As regras de controle de numeração
		// devem ser testadas, e validadas pela empresa.
		
		cDoc := GetSxeNum("SC5","C5_NUM")

		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

	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