ConsiderarItemContrato
Analisar se o item do contrato deverá ser impresso ou não, no relatório.
Sintaxe: Funcao ConsiderarItemContrato (Numero pDatCpt,Numero pDatUft,Numero pDatIni,Numero pDiaPar, Numero pDiaBas);
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
pDatCpt | Numero | Mês e ano de competência para faturamento. |
pDatUft | Numero | Data do último faturamento efetuado. |
pDatIni | Numero | Data do início do processamento das parcelas. |
pDiaPar | Numero | Quantidade de meses de intervalo entre as parcelas. |
pDiaBas | Numero | Dia do mês base para o processamento das parcelas. |
Tipo de retorno: O resultado é
armazenado em uma variável interna do sistema e retornado através da
função Funcao RetornaConsiderarItemCtr (Alfa End Retorno);
Retorno (Alfa): Resultado da chamada:
- "N": Não considera o item de contrato.
- "S": Considera o item de contrato.
Exemplo:
Definir Cursor Cur_E160CTR;
Definir Cursor Cur_E160CVP;
Definir Numero VCodEmp;
Definir Numero VCodFil;
Definir Numero VNumCtr;
Definir Numero pDatCpt;
Definir Numero pDatUft;
Definir Numero pDatIni;
Definir Numero pDiaPar;
Definir Numero pDiaBas;
Definir Alfa VConsiderarItemContrato;
@ Faz a busca por todos os contratos ativos @
Cur_E160CTR.SQL "SELECT CODEMP, CODFIL, NUMCTR, DIAPAR, DIABAS FROM
E160CTR WHERE SITCTR = 'A'";
Cur_E160CTR.AbrirCursor();
Enquanto (Cur_E160CTR.Achou)
Inicio
VCodEmp = Cur_E160CTR.CodEmp;
VCodFil = Cur_E160CTR.CodFil;
VNumCtr = Cur_E160CTR.NumCtr;
pDiaPar = Cur_E160CTR.DiaPar;
pDiaBas = Cur_E160CTR.DiaBas;
@ Busca os itens de produto do contrato @
Cur_E160CVP.SQL "SELECT DATCPT, DATUFT, DATINI FROM E160CVP WHERE CODEMP
= :VCODEMP AND CODFIL = :VCODFIL AND NUMCTR = :VNUMCTR";
Cur_E160CVP.AbrirCursor();
Enquanto (Cur_E160CVP.Achou)
Inicio
pDatCpt = Cur_E160CVP.DatCpt;
pDatUft = Cur_E160CVP.DatUft;
pDatIni = Cur_E160CVP.DatIni;
@ Analisa o item @
ConsiderarItemContrato(pDatCpt, pDatUft, pDatIni, pDiaPar, pDiaBas);
@ Grava o retorno da função ConsiderarItemContrato @
RetornaConsiderarItemCtr(VConsiderarItemContrato);
Cur_E160CVP.Proximo();
Fim;
Cur_E160CVP.FecharCursor();
Cur_E160CTR.Proximo();
Fim;
Cur_E160CTR.FecharCursor();
Observações: A análise do item é realizada de acordo com o faturamento do contrato. Se o contrato ainda não foi faturado, o item será considerado se a competência for maior ou igual a data de início do faturamento. Se o contrato já foi faturado, o item será considerado se a competência for maior ou igual a data do último faturamento.