Histórico da Página
...
Índice | ||||
---|---|---|---|---|
|
01. VISÃO GERAL
Para execução automática da compensação de contas a receber, é necessário o O uso da função MaIntBxCr() deve ser utilizado para realizar compensações de contas a receber de forma automática.
Por meio dessa função, é possível realizar a compensação automática entre dois títulos a receber (NF x Adiantamento).
Informações | ||
---|---|---|
| ||
Por padrão, a compensação automática não faz uso das mesmas regras e validações da rotina de compensação CR(FINA330), sendo assim alguns tratamentos são diferentes de acordo com o uso da rotina, como por exemplo de impostos que não são realizados por padrão, mas pode ser configurado o parâmetro MV_CMP330 para que a execução automática acione a rotina Compensação CR(FINA330) onde será efetuado os mesmos tratamentos e validações da rotina manual. |
Parâmetros da rotina
compensações automáticas envolvendo as notas fiscais com os títulos de adiantamento (tipo RA) ou de devoluções (tipo NCC).
Informações |
---|
Esse recurso também foi previsto para realizar liquidações e baixas de títulos a receber, porém recomendamos que para novos recursos sejam usadas as rotinas automáticas do FINA460 e FINA070. |
Parâmetros da rotina
Posição | Parâmetro | Tipo | Descrição | ||||
---|---|---|---|---|---|---|---|
1 | nCaso | numeric | Código da operação a ser efetuada (numérico), devendo ser uma das opções (1, 2 ou 3): [1] Baixa simples do financeiro; [2] Liquidação de títulos; [3] Compensação de títulos de mesma carteira (RA/NCC). | ||||
2 | aSE1 | array | Vetor com | ||||
Posição | Parâmetro | Tipo | Descrição | ||||
1 | nCaso | numeric | Código da operação a ser efetuada (numérico). [1] Baixa simples do financeiro; [2] Liquidação de títulos; [3] Compensação de títulos de mesma carteira (RA/NCC). | ||||
2 | aSE1 | array | Vetor com os RECNOs dos títulos a serem baixados (exemplo: NF ou boleto). | ||||
3 | aBaixa | array | Vetor com os dados da baixa simples do financeiro. Segue abaixo o que deve ser informado em cada posição do vetor: [[1] Motivo da Baixa; [2] Valor Recebido; [3] Banco; [4] Agência; [5] Conta; [6] Data de Crédito; [7] Data da Baixa. *Essa posição só deve ser informada quando a posição 1 (nCaso) for definida como "[1] Baixa simples do financeiro". | ||||
4 | aNCC_RA | array | Vetor com os RECNOs dos títulos de créditos a serem compensados (exemplo: RA ou NCC) *Essa posição só deve ser informada quando a posição 1 (nCaso) for definida como "[3] Compensação de títulos de mesma carteira (RA/NCC)". | ||||
5 | aLiquidacao | array | Vetor com os dados | 5 | aLiquidacao | array | Vetor com os dados da liquidação do financeiro. Segue abaixo o que deve ser informado em cada posição do vetor: [1] Prefixo; [2] Banco; [3] Agencia; [4] Conta; [5] Numero do Cheque; [6] Data Boa; [7] Valor; [8] Tipo; [9] Natureza; [10] Moeda; [14] Número da liquidação (no caso de estorno) *Essa posição só deve ser informada quando a posição 1 (nCaso) for definida como "[2] Liquidação de títulos". |
6 | aParam | array | Vetor com | 6 | aParam | array | Vetor com os parâmetros da rotina. Segue abaixo o que deve ser informado em cada posição do vetor: [1] Contabiliza On-Line; [2] Aglutina Lançamentos Contábeis; [3] Digita lançamentos contábeis; [4] Juros para Comissão; [5] Desconto para Comissão; [6] Calcula Comissão. |
7 | NIL | NIL | Parâmetro interno. | ||||
8 | aEstorno | array | Informar o vetor caso deseje realizar o estorno da movimentação. Quando a posição 1 for definida para compensação (nCaso = 3):
Para compensação (nCaso = 3) Vetor com o campo E5_
Para Quando a posição 1 for definida para liquidação (nCaso = 2):)
| ||||
9 | NIL | NIL | Parâmetro interno. | ||||
10 | NIL | NIL | Parâmetro interno. | ||||
11 | nSaldoComp | numeric | Valor a compensar - Informe o valor que deseja compensar. Este valor deve ser menor ou igual ao saldo do título e maior que zero. Para compensação total, informar NIL. Em caso de títulos em moeda estrangeira, enviar o valor em moeda corrente. | ||||
12 | aCpoUser | array | Vetor com os campos de usuário para gravação da liquidação. *Essa posição só deve ser informada quando a posição 1 (nCaso) for definida como "[2] Liquidação de títulos". | ||||
13 | aNCC_RAvlr | 13 | aNCC_RAvlr | array | Parâmetro interno. | ||
14 | nSomaCheq | numeric | Parâmetro interno. | ||||
15 | nTaxaCM | numeric | Taxa para correção monetária. | ||||
16 | aTxMoeda | array | Vetor com as taxas das moedas existentes. [1] Moeda; [2] Taxa da Moeda; | ||||
17 | lConsdAbat | logical | Variável logica para consideração dos abatimentos. | ||||
18 | NIL | NIL | Parâmetro interno. | ||||
considerar os abatimentos. *Essa posição só deve ser informada quando a posição 1 (nCaso) for definida como "[3] Compensação de títulos de mesma carteira (RA/NCC)". | |||||||
18 | NIL | NIL | Parâmetro interno. | ||||
19 | NIL | NIL | 19 | NIL | NIL | Parâmetro interno. | |
20 | lResidual | logical | Indica se o saldo do título será zerado caso atinja um valor menor que a margem de valor residual. O Default deste parâmetro é .T. (zera o saldo) *Essa posição só deve ser informada quando a posição 1 (nCaso) for definida como "[3] Compensação de títulos de mesma carteira (RA/NCC)". |
Informações | ||
---|---|---|
| ||
|
Informações | ||
---|---|---|
| ||
A função MaIntBxCr() também é utilizada em rotinas padrão do sistema, como por exemplo no Documento de Entrada (MATA103), que a utiliza para efetivar compensações automáticas:
| ||
Informações | ||
| ||
Estes parâmetros são referente ao uso da rotina via MaIntBxCr(), caso o parâmetro MV_CMP330 esteja ativo, alguns tratamentos podem ser diferentes e estes parâmetros não surtiram efeitos no processamento
|
02. EXEMPLOS DE UTILIZAÇÃO
...
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" //------------------------------------------------------------------- /*/ MaIntBxCr Exemplo de compensação de títulos normais com adiantamentos - CR @since 27/07/2021 @version 1.0 /*/ //------------------------------------------------------------------- USER FUNCTION CmpAutCRUSER FUNCTION CmpAutCR() Local lRetOK Local lRetOK := .T. Local aArea Local aArea := GetArea GetArea() Local nTaxaCM Local nTaxaCM := 5 5.2322 Local aTxMoeda := {} Local nSaldoComp:= 1000.00 *nTaxaCM // Valor a ser compensado (Caso seja parcial Pode ser parcial) - Compensar apenas R$ 50,00 Private nRecnoNDF Private nRecnoE1 PREPARE ENVIRONMENT EMPRESA "TI" FILIAL "D MG 01 " MODULO "FIN" TABLES Local aTxMoeda := {} Local nSaldoComp:= 1000.00 *nTaxaCM // Valor a ser compensado (Caso seja parcial Pode ser parcial) - Compensar apenas R$ 50,00 Local dDtComp := CTOD(" / / ") Private nRecnoNDF Private nRecnoE1 PREPARE ENVIRONMENT EMPRESA "TI" FILIAL "D MG 01 " MODULO "FIN" TABLES "SE2TI0","SE5TI0","SA6TI0","SEDTI0" Conout("----Inicio da Rotina AutomaticaInicio da Rotina Automatica!------") dbSelectArea("SE1") dbSetOrder(2) // E1 E1_FILIAL, E1 E1_CLIENTE, E1 E1_LOJA, E1 E1_PREFIXO, E1 E1_NUM, E1 E1_PARCELA, E1 E1_TIPO, R R_E_C_N_O_, D D_E_L_E_T_ IF dbSeek IF dbSeek(XFILIAL("SE1")+"000000"+"00"+"331"+"RA0001 "+" "+"RA ") nRecnoRA := RECNO()"RA ") nRecnoRA := RECNO() dDtComp := SE1->E1_EMISSAO IF dbSeek(XFILIAL("SE1")+"000000"+"00"+"331"+"000001 "+" "+"DP ") nRecnoE1 := RECNO() PERGUNTE("FIN330",.F.) lContabiliza := (MV_PAR09 == 1) // Contabiliza On Line ? lDigita := (MV_PAR07 == 1) // Mostra Lanc Contab ? lAglutina := .F. /* ==> Utilizar esse trecho se quiser simular o botão Taxas da tela inicial do FINA330 ==> Verifique os parâmetros MV_CMP330 e MV_CMTXCON para tal. nTaxaCM := RecMoeda(dDataBase,SE1->E1_MOEDA) aAdd(aTxMoeda, {1, 1} ) aAdd(aTxMoeda, {2, nTaxaCM} ) */ SE1->(dbSetOrder(1)) //E1_FILIAL+E1_PREFIXO+E1_NUM+E1_PARCELA+E1_TIPO+E1_FORNECE+E1_LOJA //NF X RA aRecRA := { nRecnoRA } aRecSE1 := { nRecnoE1 } /* //RA X NF aRecRA := { nRecnoE1 } aRecSE1 := { nRecnoRA } */ //Data a ser considerada na compensação dDataBase := dDtComp If !MaIntBxCR(3, aRecSE1,,aRecRA,,{lContabiliza,lAglutina,lDigita,.F.,.F.,.F.},,,,,nSaldoComp,,,, nTaxaCM, aTxMoeda) Help("XAFCMPAD",1,"HELP","XAFCMPAD","Não foi possível a compensação"+CRLF+" do titulo de adiantamento",1,0) lRet := .F. ENDIF ENDIF ENDIF RestArea(aArea) RESET ENVIRONMENT Return lRet |
...