× Linguagem de Programação ADVPL

Perguntas execauto fina040

Mais
9 anos 1 mês atrás #29340 por marcio.e.luz
Olá pessoal, preciso de ajuda
Quando faço um execauto para inserir título, quando é do tipo CC/CD/FI (Cartão de crédito, débito e boleto) não preenche o código do vendedor. Mas quando é dinheiro funciona tudo bem.
while (CTABLE1)->(!Eof()) 
		
		cPARC := SOMA1(cPARC)
		aFin040 := {}
		//xNumCaixa()
		AADD( aFin040, {"E1_FILIAL"		,	xFilial("SE1")			,Nil})
		AADD( aFin040, {"E1_PREFIXO"	,	'LOC'					,Nil})
		AADD( aFin040, {"E1_NUM"		,	SL1->L1_NUM				,Nil})
	
		if !allTrim((cTABLE1)->L4_FORMA) $ "R$"
			AADD( aFin040, {"E1_PARCELA"	,	cPARC					,Nil})
		endIf
		
		if _dData < (CTABLE1)->L4_DATA
			_dData := 	(CTABLE1)->L4_DATA
		endIf
		//_nValCom = ROUND( ( ( (cTABLE1)->L4_VALOR * 2) / 100), 2)
		
		AADD( aFin040, {"E1_TIPO"		,	(CTABLE1)->L4_FORMA		,Nil})
		AADD( aFin040, {"E1_NATUREZ"	,	cNatLoc					,Nil})
		AADD( aFin040, {"E1_EMISSAO"	,	DDATABASE               ,Nil})
		
		AADD( aFin040, {"E1_PORTADO"	,	xNumCaixa()             ,Nil})
		AADD( aFin040, {"E1_AGEDEP"		,	SA6->A6_AGENCIA         ,Nil})
		AADD( aFin040, {"E1_CONTA" 		,	SA6->A6_NUMCON          ,Nil})
		AADD( aFin040, {"E1_VEND1"		,	SL1->L1_VEND       		,Nil})
		//AADD( aFin040, {"E1_VALCOM1"	,	_nValCom				,Nil})
		//AADD( aFin040, {"E1_BASCOM1"	,	(cTABLE1)->L4_VALOR		,Nil})
		AADD( aFin040, {"E1_COMIS1"		,	2			      		,Nil})
		
		AADD( aFin040, {"E1_CLIENTE"	,	SL1->L1_CLIENTE			,Nil})
		AADD( aFin040, {"E1_LOJA"		,	SL1->L1_LOJA			,Nil})
		
		if allTrim((CTABLE1)->L4_FORMA) $ "CC/CD"
			recLock(CTABLE1, .F.)
				(CTABLE1)->L4_ADMINIS := SAE->AE_COD + " - " + allTrim(SAE->AE_DESC)
				(CTABLE1)->L4_DATA := dDataBase + (SAE->AE_DIAS * val(cPARC))
			msUnlock(CTABLE1)
			AADD( aFin040, {"E1_VALOR"		,	ROUND((((CTABLE1)->L4_VALOR * (100 - SAE->AE_TAXA))/100), 2) ,Nil})		
			AADD( aFin040, {"E1_VLRREAL"	,	ROUND((((CTABLE1)->L4_VALOR * (100 - SAE->AE_TAXA))/100), 2) ,Nil})					
			AADD( aFin040, {"E1_VENCTO"		,	(CTABLE1)->L4_DATA					,Nil})
			AADD( aFin040, {"E1_CLIENTE"	,	SA1->A1_COD				,Nil})
			AADD( aFin040, {"E1_LOJA"		,	SA1->A1_LOJA			,Nil})                                      
			
		else
			AADD( aFin040, {"E1_VALOR"		,	(cTABLE1)->L4_VALOR  ,Nil})		
			AADD( aFin040, {"E1_CLIENTE"	,	SL1->L1_CLIENTE			,Nil})
			AADD( aFin040, {"E1_LOJA"		,	SL1->L1_LOJA			,Nil})
		endIf
		

		//Assinatura de variáveis que controlarão a inserção automática da RA;
		lMsErroAuto := .F.
		lMsHelpAuto	:= .T.
		lAutoErrNoFile := .T.         
		

		//Invocando rotina automática para criação ;
		MSExecAuto({|x,y| Fina040(x,y)}, aFin040, 3)
		          

		//Quando houver erros, exibí-los em tela;    
		If lMsErroAuto
		   	aErro := GetAutoGRLog()
		    cErro := ''
		    _nlen := len(aErro)
		                         
		    For nX := 1 To Len(aErro)                          	
		    	cErro += aErro[nX] + Chr(13)+Chr(10)
		    Next nX                             
		    
		    conout ('ERRO AO CADASTRAR TITULO'+CHR(13)+CHR(10)+cErro)
		    U_EMAIL('xxx', 'ERRO CADASTRO CLIENTE', 'ERRO AO CADASTRAR TITULO'+CHR(13)+CHR(10)+cErro)

		    msgStop('ERRO AO CADASTRAR TITULO\r\n' + cErro)
		   Return(.F.)
		Endif

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 1 mês atrás #29341 por sarraipa
Respondido por sarraipa no tópico execauto fina040
Este excauto está buscando das tabelas da loja, por padrão as vendas da loja geram um contas a receber isso claro de acordo com a TES,

Voltando ao seu caso seria bom debugar, pelo que vc está falando o problema não deve estar no execauto e sim de onde vem a informação.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 1 mês atrás #29343 por marcio.e.luz
Respondido por marcio.e.luz no tópico execauto fina040
A TES vem do cadastro de produto e na tabela SE1 não têm campo para TES. Se essa hipótese fosse verdadeira, em qualquer tipo de pagamento(R$) deveria apresentar o mesmo erro.
O erro só aparece quando usa as formas de pagamento cartão de débito ou crédito (CD ou CC).
Ao fazer a inclusão com os mesmos dados na rotina padrão finA040, executa com sucesso e com o campo de vendedor preenchido.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 1 mês atrás #29361 por marcio.e.luz
Respondido por marcio.e.luz no tópico execauto fina040
Fiz mais testes e estava sem colocar vendedor em todos as formas de pagamento.
Para fazer funcionar tive que fazer uma gambiarra grande. Tive que editar o cliente, colocar o vendedor no cliente, fazer o execauto e depois desfazer. Pois só assim funcionou corretamente.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.111 segundos
Joomla templates by a4joomla