Variáveis Utilizadas para regras em Forma de Contabilização
As formas de contabilização permitem criar regras de acordo com a necessidade do cliente. Nestas regras são definidas funções que recebem parâmetros, e nestas funções são tratadas as necessidades.
Definir função ContaPadrao(numero Conta);
função ContaPadrao(numero Conta);
inicio
Definir cursor Cur;
Definir numero CtaAux;
CodEmpAux = EmpAtu;
Cur.SQL "Select CtaRed from E042Cpd where (CodEmp = :CodEmpAux) and (CodCpd = :Conta)";
Cur.AbrirCursor();
CtaAux = Cur.CtaRed;
Cur.FecharCursor();
Cancel(CtaAux);
fim;
Esta função pode ser chamada de qualquer lugar das formas de contabilização. A função acima recebe um parâmetro numérico e de acordo com o número recebido, a regra busca a conta reduzida que está definida nas Contas Padrões do Gestão Empresarial | ERP (tabela E042CPD).
Regras Parciais
Uma regra parcial somente está relacionada à sequência da forma de contabilização. Uma regra parcial somente
pode ser executada na sequência em que a forma de contabilização está no momento.
Como manipular dados com uma Regra Parcial
Tomamos como exemplo, uma forma de contabilização para o Contas a Receber.
Imagine que o usuário possui uma situação específica onde ele gostaria de informar uma conta reduzida de acordo com o Tipo de Título
(E301Mcr.CodTpt).
Antes de continuar, é interessante que o usuário conheça as variáveis que ele poderá manipular numa regra parcial. Observe a tabela abaixo:
CAMPO | VARIÁVEL | TIPO |
EXEMPLO |
Filial | VAbgFil + número_sequência_da_forma | Numérico | VAbgFil2 |
Data Base | VDatBas + número_sequência_da_forma | Numérico | VDatBas2 |
Conta Débito | VCtaDeb + número_sequência_da_forma | Numérico | VCtaDeb2 |
Conta Crédito | VCtaCre + número_sequência_da_forma | Numérico | VCtaCre2 |
Valor Base | VVlrBas + número_sequência_da_forma | Numérico | VVlrBas2 |
Hist. Padrão | VCodHpd + número_sequência_da_forma | Numérico | VCodHpd2 |
Complementos (para numérico) |
VCplBas + número_sequência_da_forma Numérico + número complemento | Numérico | VCplBas21 ou VCtCplBas23...até VCplBas25 |
Complementos (para Alfa) |
VCplBas + número_sequência_da_forma Numérico + número complemento + S | Alfa | VCplBas21S ou VCtCplBas22S até VCplBas25S |
CPF/CNPJ conta débito | vCgcCpf + número_sequência_da_forma | Numérico | vCgcCpf |
CPF/CNPJ conta crédito | vCgcCre + número_sequência_da_forma | Numérico | vCgcCre |
Cód. Forma de Contabilização | vCODFCT | Alfa | vCODFCT |
Seq. Forma de Contabilização | vSEQFCT | Numérico | vSEQFCT |
Detalhes e exemplos de Regras Parciais
Número sequência da Forma: é a sequência da forma de contabilização que está na tela.
Para cada variável, esta sequência muda. Imagine que você está na sequência 12. A variável da Conta a Débito será VCtaDeb12.
Considerações aos Complementos:
Os complementos podem ser manipulados se existir um histórico padrão que exija um complemento. Como o
Gestão Empresarial | ERP permite informar históricos
padrões com mais de um complemento, um parâmetro pode ser "alfa", outro pode ser "numérico" e assim por
diante.
Como exemplo podemos utilizar o Histórico Padrão que está na tela acima: Ref NF *ALF de *ALF
Neste caso, as variáveis disponíveis são:
vCplBas11S e vCplBas12S.
Outro Exemplo: Ref NF *NUM do Cliente *ALF.
Neste caso, as variáveis disponíveis são: vCplBas11 e vCplBas12S.
Observação
As datas são tratadas como números.
Continuando o exemplo do tipo de título, de acordo com a tela acima, o usuário pode fazer uma regra parcial para atender sua necessidade. Supondo que sabe-se que há a necessidade de alterar a conta débito. Conclui-se então que a variável a ser manipulada é a VCtaDeb2.
Definir Funcao ObterDadosTabRateio();
Funcao ObterDadosTabRateio(); {
/*************************************************************************/
/* Obtem Endereço de Busca da Filial para identificar o Módulo integrado */
/*************************************************************************/
Definir Cursor Cur_E048SFC;
Definir Cursor Cur_E440RAT;
Definir Cursor Cur_E501RAT;
Definir Alfa VCodFct;
Definir Alfa ACodFct;
Definir Alfa ATabBas;
Definir Alfa AModulo;
Definir Alfa ACodCcu;
Definir Alfa ACodTpt;
Definir Alfa ANumTit;
Definir Alfa ACodSnf;
ACodFct = "";
ATabBas = "";
AModulo = "";
NCodEmp = CodEmp;
ACodFct = vCodFct;
NSeqFct = vSeqFct;
Cur_E048SFC.Sql "SELECT ABGFIL FROM E048SFC WHERE CODEMP = :NCodEmp AND CODFCT = :ACodFct AND SEQFCT = :NSeqFct";
Cur_E048SFC.AbrirCursor();
Se (Cur_E048SFC.Achou) {
ATabBas = Cur_E048SFC.AbgFil;
CopiarAlfa(ATabBas, 2, 3);
Se (ATabBas = "440"){ @ Compras - NF Entrada @
AModulo = "COD";
}
Senao
Se (ATabBas = "501"){ @ Contas a Pagar @
AModulo = "PAG";
}
}
/***************************************************************/
/* Com base no Modulo obtem as informações da Tabela de Rateio */
/***************************************************************/
/* COD = Compras - NF Entrada | E440NFC */
/* PAG = Contas a Pagar | E501MCP */
/***************************************************************/
Se (AMODULO="COD"){ @ E440NFC @
NCodEmp = E440Nfc.CodEmp;
NCodFil = E440Nfc.CodFil;
NCodFor = E440Nfc.CodFor;
NNumNfc = E440Nfc.NumNfc;
ACodSnf = E440Nfc.CodSnf;
Cur_E440RAT.Sql "SELECT CTAFIN, CODCCU FROM E440RAT WHERE CODEMP = :NCodEmp AND CODFIL = :NCodFil AND CODFOR = :NCodFor
AND NUMNFC = :NNumNfc AND CODSNF = :ACodSnf";
Cur_E440RAT.AbrirCursor();
Se (Cur_E440RAT.Achou) {
NCtaFin = Cur_E440RAT.CtaFin;
ACodCcu = Cur_E440RAT.CodCcu;
}
}
Senao
Se (AMODULO="PAG"){ @ E501MCP @
NCodEmp = E501Mcp.CodEmp;
NCodFil = E501Mcp.CodFil;
ANumTit = E501Mcp.NumTit;
ACodTpt = E501Mcp.CodTpt;
NCodFor = E501Mcp.CodFor;
NSeqMov = E501Mcp.SeqMov;
Cur_E501RAT.Sql "SELECT CTAFIN, CODCCU FROM E501RAT WHERE CODEMP = :NCodEmp AND CODFIL = :NCodFil AND NUMTIT = :ANumTit
AND CODTPT = :ACodTpt AND CODFOR = :NCodFor AND SEQMOV = :NSeqMov";
Cur_E501RAT.AbrirCursor();
Se (Cur_E501RAT.Achou){
NCtaFin = Cur_E501RAT.CtaFin;
ACodCcu = Cur_E501RAT.CodCcu;
}
}
}
Definir Alfa CodTptAux[3];
CodTptAux = E301Mcr.CodTpt;
Se (CodTptAux ="XXX")
VCtaDeb2 = 1003;
Senao
VCtaDeb2 = 1091;
Definir Alfa CodPro;
Definir Cursor cursor_E075Pro;
DEFINIR ALFA VCODPRO;
VCodEmp=E440ipc.Codemp;
VCodPro=E440ipc.Codpro;
Estanulo(VCodpro,Vred);
Se(Vret=1)
VctaDeb1=E440ipc.ctared;
Senao
Inicio
Cursor_E075Pro.sql "Selec ctared from E075pro wherecodemp=:VCodemp And codpro=:Vcodpro";
Cursor_E075pro.AbrirCursor();
Se(Cursor_E075Pro.Achou)
VctaDeb1=Cursor_E075Pro.ctared;
Cursor_E075Pro.FecharCursor();
Fim;
Definir Cursor Cur_E440nfc;
Definir Alfa vcodsnf;
VCodEmp=E440Rat.CodEmp;
VCodFil=E440Rat.CodFil;
VCodFor=E440Rat.CodFor;
VNumNfc=E440Rat.NumNfc;
VCodSnf=E440Rat.CodSnf;
Cur_E440nfc.Sql "Select VlrIrf, VlrIns, VlrLiq, VlrBse from E440NFC Where \
CodEmp = :VCodEmp And \
CodFil = :VCodFil And \
CodFor = :VCodFor And \
NumNfc = :VNumNfc And \
CodSnf = :VCodSnf";
Cur_E440nfc.AbrirCursor();
vvlrirf=1;
vvlrins=1;
vvlrliq=1;
vvlrbru=1;
Se (Cur_E440nfc.Achou)
Inicio
vvlrirf = Cur_E440nfc.VlrIrf;
vvlrins = Cur_E440nfc.VlrIns;
vvlrliq = Cur_E440nfc.VlrLiq;
vvlrbru = Cur_E440nfc.VlrBse;
Fim;
Se (GerTabNum[3] = 0)
Inicio
GerTabNum[3] = 1 ;
GerTabNum[1] = 0;
GerTabNum[2] = 0;
Fim
Cur_E440nfc.FecharCursor();
GerTabNum[1] = GerTabNum[1] + e440rat.vlrrat;
vlrdif = 0;
VVlrbas1 = vvlrbas1+((e440rat.vlrcta*((vvlrirf+vvlrins)/vvlrliq))*(e440rat.perrat/100));
arredondarvalor(vvlrbas1,2);
GerTabNum[2] = GerTabNum[2] + vvlrbas1;
totrat = GerTabNum[1];
arredondarvalor(vvlrliq,2);
arredondarvalor(totrat,2);
se (vvlrliq = totrat)
Inicio
vlrdif = vvlrbru - GerTabNum[2];
GerTabNum[3] = 0;
Fim;
difaux = vlrdif;
se (vlrdif < 0)
vlrdif = (vlrdif * (-1));
se ((vlrdif > 0) e (vlrdif < 3))
vvlrbas1 = vvlrbas1 + difaux;
Definir Cursor Cur_E440isc;
Definir Alfa vcodsnf;
VCodEmp=E440Rat.CodEmp;
VCodFil=E440Rat.CodFil;
VCodFor=E440Rat.CodFor;
VNumNfc=E440Rat.NumNfc;
VCodSnf=E440Rat.CodSnf;
VSeqIsc=E440Rat.SeqIsc;
Cur_E440isc.Sql "Select VlrIrf, VlrIns, VlrLiq, VlrBru from E440ISC Where CodEmp = :VCodEmp And CodFil = :VCodFil And CodFor = :
VCodFor And NumNfc = :VNumNfc And CodSnf = :VCodSnf And SeqIsc = :VSeqIsc";
Cur_E440isc.AbrirCursor();
vvlrirf=1;
vvlrins=1;
vvlrliq=1;
vvlrbru=1;
Se (Cur_E440isc.Achou)
Inicio
vvlrirf = Cur_E440isc.VlrIrf;
vvlrins = Cur_E440isc.VlrIns;
vvlrliq = Cur_E440isc.VlrLiq;
vvlrbru = Cur_E440isc.VlrBru;
Fim;
Se (GerTabNum[3] = 0)
Inicio
GerTabNum[3] = 1 ;
GerTabNum[1] = 0;
GerTabNum[2] = 0;
Fim
Cur_E440isc.FecharCursor();
GerTabNum[1] = GerTabNum[1] + e440rat.vlrrat;
vlrdif = 0;
VVlrbas1 = vvlrbas1+((e440rat.vlrcta*((vvlrirf+vvlrins)/vvlrliq))*(e440rat.perrat/100));
arredondarvalor(vvlrbas1,2);
GerTabNum[2] = GerTabNum[2] + vvlrbas1;
totrat = GerTabNum[1];
arredondarvalor(vvlrliq,2);
arredondarvalor(totrat,2);
se (vvlrliq = totrat)
Inicio
vlrdif = vvlrbru - GerTabNum[2];
GerTabNum[3] = 0;
Fim;
difaux = vlrdif;
se (vlrdif < 0)
vlrdif = (vlrdif * (-1));
se ((vlrdif > 0) e (vlrdif < 3))
vvlrbas1 = vvlrbas1 + difaux;
Manipula rateio dos movimentos de origem:
Objetivo: Manipular o rateio que é formando pelos movimentos de origem
(movimentos dos módulos auxiliares), onde através desta função será possível
intervir no rateio que será gerado antes da efetivação dos lançamentos contábeis.
RateioIntegracao
Declaração: Funcao RateioIntegracao(Alfa pOpcao, Numero end pPosicao, Alfa
end pCodCcu, Numero end pPerRat, Numero end pVlrRat);
Parâmetros: pOpcao: Representa qual opção a ser realizada no rateio da
integração contábil. Pode ser "Ler", "Inserir", "Excluir", "Excluir_Tudo" ou
"Alterar"
Retorno:
pPosicao: somente retorno quando a opção for "Ler". Neste caso o retorno
pode ser valores maiores que 1 até a quantidade de registros que estão no
rateio.
pCodCcu: Centro de custos a ser inserido, alterado ou o retorno quando opção
Ler
pPerRat: Percentual de rateio a ser inserido, alterado ou o retorno quando
opçãoLer
pVlrRat: Valor do rateio a ser inserido, alterado ou o retorno quando opção
Ler
Utilização da Função (dependentes): Nenhuma
Exemplo:
Definir Alfa vCodCcu;
/* Para Ler do Início ao Fim */
xPosicao = 1;
Enquanto (xPosicao >= 1)
{
RateioIntegracao
("Ler",xPosicao,vCodCcu,vPerRat,vVlrRat);
Se (xPosicao >= 0)
xPosicao = xPosicao + 1;
}
Contabiliza ajustes a partir do dispositivo fiscal informado na nota entrada:
Objetivo: Regra irá utilizar como base para o lançamento contábil o total dos ajustes de um determinado item da nota fiscal ou a própria nota fiscal (TRIBUTOS).
Utilizar como tabela base a tabela E660NFC ou E660INC e a sequência adotada deverá ser associada a variável VVLRBAS.
Exemplo:
Definir Alfa xCursor;
DEFINIR NUMERO XCODEMP;
DEFINIR NUMERO XCODFIL;
DEFINIR NUMERO XCODFOR;
DEFINIR NUMERO XNUMNFC;
DEFINIR NUMERO XNUMNFF;
DEFINIR ALFA XCODSNF;
DEFINIR ALFA XCODTNS;
DEFINIR NUMERO XSEQINC;
Definir Numero VVLRBAS1;
XCODEMP = E660INC.CODEMP;
XCODFIL = E660INC.CODFIL;
XCODFOR = E660INC.CODFOR;
XNUMNFI = E660INC.NUMNFI;
XNUMNFF = E660INC.NUMNFF;
XCODSNF = E660INC.CODSNF;
XCODTNS = E660INC.CODTNS;
XSEQINC = E660INC.SEQINC;
VVLRBAS1 = 0;
SQL_Criar(xCursor);
SQL_DefinirComando(xCursor, "SELECT SUM(E660RDE.VLRAJS) AS VLRAJS \
FROM E660RDE \
WHERE E660RDE.CODEMP = :CODEMP AND \
E660RDE.CODFIL = :CODFIL AND \
E660RDE.CODFOR = :CODFOR AND \
E660RDE.NUMNFI = :NUMNFC AND \
E660RDE.NUMNFF = :NUMNFF AND \
E660RDE.CODSNF = :CODSNF AND \
E660RDE.CODTNS = :CODTNS AND \
E660RDE.SEQINC = :SEQINC");
SQL_DefinirInteiro(xCursor, "CODEMP", xCodEmp);
SQL_DefinirInteiro(xCursor, "CODFIL", xCodFil);
SQL_DefinirInteiro(xCursor, "CODFOR", xCodFor);
SQL_DefinirInteiro(xCursor, "NUMNFI", xNumNfi);
SQL_DefinirInteiro(xCursor, "NUMNFF", xNumNff);
SQL_DefinirAlfa(xCursor, "CODSNF", xCodSnf);
SQL_DefinirAlfa(xCursor, "CODTNS", xCodTns);
SQL_DefinirInteiro(xCursor, "SEQINC", xSeqInc);
SQL_AbrirCursor(xCursor);
Se (SQL_EOF(xCursor) = 0)
SQL_RetornarFlutuante(xCursor, "VLRAJS", VVLRBAS1);
SQL_FecharCursor(xCursor);
SQL_Destruir(xCursor);
Contabiliza ajustes a partir do dispositivo fiscal informado na nota saída:
Objetivo: Regra irá utilizar como base para o lançamento contábil o total dos ajustes de um determinado item da nota fiscal ou a própria nota fiscal (TRIBUTOS).
Utilizar como tabela base a tabela E660NFV ou E660INV e a sequência adotada deverá ser associada a variável VVLRBAS.Definir Alfa xCursor;DEFINIR NUMERO XCODEMP;
DEFINIR NUMERO XCODFIL;
DEFINIR NUMERO XCOCLI;
DEFINIR NUMERO XNUMNFV;
DEFINIR NUMERO XNUMNFF;
DEFINIR ALFA XCODSNF;
DEFINIR ALFA XCODTNS;
DEFINIR NUMERO XSEQINV;
XCODEMP = E660INV.CODEMP;
XCODFIL = E660INV.CODFIL;
XCODCLI = E660INV.CODCLI;
XNUMNFI = E660INV.NUMNFI;
XNUMNFF = E660INV.NUMNFF;
XCODSNF = E660INV.CODSNF;
XCODTNS = E660INV.CODTNS;
XSEQINV = E660INV.SEQINV;
VVLRBAS1 = 0;
SQL_Criar(xCursor);
SQL_DefinirComando(xCursor, "SELECT SUM(E660RDS.VLRAJS) AS VLRAJS \
FROM E660RDS \
WHERE E660RDS.CODEMP = :CODEMP AND \
E660RDS.CODFIL = :CODFIL AND \
E660RDS.CODCLI = :CODCLI AND \
E660RDS.NUMNFI = :NUMNFI AND \
E660RDS.NUMNFF = :NUMNFF AND \
E660RDS.CODSNF = :CODSNF AND \
E660RDS.CODTNS = :CODTNS AND \
E660RDS.SEQINV = :SEQINV");
SQL_DefinirInteiro(xCursor, "CODEMP", xCodEmp);
SQL_DefinirInteiro(xCursor, "CODFIL", xCodFil);
SQL_DefinirInteiro(xCursor, "CODCLI", xCodCli);
SQL_DefinirInteiro(xCursor, "NUMNFI", xNumNfi);
SQL_DefinirInteiro(xCursor, "NUMNFF", xNumNff);
SQL_DefinirAlfa(xCursor, "CODSNF", xCodSnf);
SQL_DefinirAlfa(xCursor, "CODTNS", xCodTns);
SQL_DefinirInteiro(xCursor, "SEQINV", xSeqInv);
SQL_AbrirCursor(xCursor);
Se (SQL_EOF(xCursor) = 0)
SQL_RetornarFlutuante(xCursor, "VLRAJS", VVLRBAS1);
SQL_FecharCursor(xCursor);
SQL_Destruir(xCursor);
Contabiliza ajustes a partir do dispositivo fiscal informado na nota saída:
Objetivo: Regra irá utilizar como base para o lançamento contábil o total dos ajustes de um determinado item da nota fiscal ou a própria nota fiscal (MERCADO).
Utilizar como tabela base a tabela E140NFV ou E140IPV e a sequência adotada deverá ser associada a variável VVLRBAS.
Definir Alfa xCursor;
DEFINIR NUMERO XCODEMP;
DEFINIR NUMERO XCODFIL;
DEFINIR NUMERO XNUMNFV;
DEFINIR ALFA XCODSNF;
DEFINIR NUMERO XSEQIPV;
XCODEMP = E140ISV.CODEMP;
XCODFIL = E140ISV.CODFIL;
XNUMNFV = E140ISV.NUMNFV;
XCODSNF = E140ISV.CODSNF;
XSEQIPV = E140ISV.SEQIPV;
VVLRBAS1 = 0;
SQL_Criar(xCursor);
SQL_DefinirComando(xCursor, "SELECT SUM(E140DFP.VLRAJS) AS VLRAJS \
FROM E140DFP \
WHERE E140DFP.CODEMP = :CODEMP AND \
E140DFP.CODFIL = :CODFIL AND \
E140DFP.NUMNFV = :NUMNFV AND \
E140DFP.CODSNF = :CODSNF AND \
E140DFP.SEQIPV = :SEQIPV");
SQL_DefinirInteiro(xCursor, "CODEMP", xCodEmp);
SQL_DefinirInteiro(xCursor, "CODFIL", xCodFil);
SQL_DefinirInteiro(xCursor, "NUMNFV", XNUMNFV);
SQL_DefinirAlfa(xCursor, "CODSNF", xCodSnf);
SQL_DefinirInteiro(xCursor, "SEQIPV", xSeqIpv);
SQL_AbrirCursor(xCursor);
Se (SQL_EOF(xCursor) = 0)
SQL_RetornarFlutuante(xCursor, "VLRAJS", VVLRBAS1);
SQL_FecharCursor(xCursor);
SQL_Destruir(xCursor);
Regra irá utilizar como base para o lançamento contábil o total dos ajustes de um determinado item da nota fiscal ou a própria nota fiscal (SUPRIMENTOS). Utilizar como tabela base a tabela E440NFC ou E440IPC e a sequência adotada deverá ser associada a variável VVLRBAS;
Definir Alfa xCursor;
DEFINIR NUMERO XCODEMP;
DEFINIR NUMERO XCODFIL;
DEFINIR NUMERO XCODFOR;
DEFINIR NUMERO XNUMNFC;
DEFINIR ALFA XCODSNF;
DEFINIR NUMERO XSEQIPC;
XCODEMP = E440IPC.CODEMP;
XCODFIL = E440IPC.CODFIL;
XCODFOR = E440IPC.CODFOR;
XNUMNFC = E440IPC.NUMNFC;
XCODSNF = E440IPC.CODSNF;
XSEQIPC = E440IPC.SEQIPC;
VVLRBAS1 = 0;
SQL_Criar(xCursor);
SQL_DefinirComando(xCursor, "SELECT SUM(E440DFP.VLRAJS) AS VLRAJS \
FROM E440DFP \
WHERE E440DFP.CODEMP = :CODEMP AND \
E440DFP.CODFIL = :CODFIL AND \
E440DFP.CODFOR = :CODFOR AND \
E440DFP.NUMNFC = :NUMNFC AND \
E440DFP.CODSNF = :CODSNF AND \
E440DFP.SEQIPC = :SEQIPC");
SQL_DefinirInteiro(xCursor, "CODEMP", xCodEmp);
SQL_DefinirInteiro(xCursor, "CODFIL", xCodFil);
SQL_DefinirInteiro(xCursor, "NUMNFC", xNumNfc);
SQL_DefinirInteiro(xCursor, "CODFOR", xCodFor);
SQL_DefinirAlfa(xCursor, "CODSNF", xCodSnf);
SQL_DefinirInteiro(xCursor, "SEQIPC", XSEQIPC);
SQL_AbrirCursor(xCursor);
Se (SQL_EOF(xCursor) = 0)
SQL_RetornarFlutuante(xCursor, "VLRAJS", VVLRBAS1);
SQL_FecharCursor(xCursor);
SQL_Destruir(xCursor);
Regra irá utilizar como base para o lançamento contábil o total dos ajustes da apuração do ICMS, independentemente do tipo de ajustes (Crédito/Débitos/Deduções ou Estornos).
Utilizar como tabela base a tabela E661RES e a sequência adotada deverá ser associada a variável VVLRBAS.
DEFINIR CURSOR CUR_E661AJS;
DEFINIR NUMERO XCODEMP;
DEFINIR NUMERO XCODFIL;
DEFINIR ALFA XCODIMP;
DEFINIR DATA XDATAPI;
DEFINIR NUMERO VVLRBAS1;
XCODEMP = E661RES.CODEMP;
XCODFIL = E661RES.CODFIL;
XCODIMP = E661RES.CODIMP;
XDATAPI = E661RES.DATAPI;
VVLRBAS1 = 0;
CUR_E661AJS.SQL "SELECT E661AJS.VLRAJS AS VLRAJS \
FROM E661LRA, E661AJS \
WHERE E661AJS.IDEAJS = E661LRA.IDEAJS AND \
E661LRA.CODEMP = :XCODEMP AND \
E661LRA.CODFIL = :XCODFIL AND \
E661LRA.CODIMP = :XCODIMP AND \
E661LRA.DATAPI = :XDATAPI";
CUR_E661AJS.ABRIRCURSOR();
SE (CUR_E661AJS.ACHOU)
INICIO
VVLRBAS1 = CUR_E661AJS.VLRAJS;
FIM;
CUR_E661AJS.FECHARCURSOR();
Objetivo: preencher a data do lançamento extemporâneo no lançamento contábil.
DEFINIR DATA XDATAEXT;
DEFINIR DATA XDATENT;
XDATENT = E660NFC.DATENT;
XDATAEXT = E660NFC.DATEXF;
SE (XDATAEXT <> 0)
Inicio
VDATEXT1 = XDATENT;
VDATBAS1 = XDATAEXT;
FIM;