Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Informações

Esse recurso también fue previsto para realizar liquidaciones y bajas de títulos por cobrar, sin embargo recomendamos que para nuevos recursos se utilicen las rutinas automáticas del FINA460 FINA070


Parámetros de la rutina

Situación

Parámetro

Tipo

Descripción

1

nCaso

numeric

Código de la operación que se efectuará (numérico), debiendo ser una de las opciones (1, 2 o 3):

[1] Baja simple del financiero; [2] Liquidación de títulos; [3] Compensación de títulos de la misma cartera (RA/NCC).

2

aSE1

array

Vector con los RECNOS de los títulos que se darán de baja (ejemplo: Factura o boleta).

3

aBaixa

array

Vector con los datos de la baja simple del financiero. A continuación se muestra lo que debe informarse en cada situación del vector:

[1] Motivo de la baja; [2] Valor cobrado; [3] Banco; [4] Agencia; [5] Cuenta; [6] Fecha del crédito; [7] Fecha de la baja.

*Esta situación solamente debe informarse si la situación 1 (nCaso) fuera definida como "[1] Baja simple del financiero". 

4

aNCC_RA

array

Vector con los RECNOS de los títulos de créditos que se compensarán (ejemplo: RA o NCC)

*Esta situación solamente debe informarse si la situación 1 (nCaso) fuera definida como "[3] Compensación de títulos de la misma cartera (RA/NCC)". 

5

aLiquidacao

array

Vector con los datos de la liquidación del financiero. A continuación se muestra lo que debe informarse en cada situación del vector:

[1] Prefijo; [2] Banco; [3] Agencia; [4] Cuenta; [5] Número de cheque; [6] Fecha buena; [7] Valor; [8] Tipo; [9] Modalidad; [10] Moneda; [14] Número de la liquidación (en el caso de reversión)

*Esta situación solamente debe informarse si la situación 1 (nCaso) fuera definida como "[2] Liquidación de títulos". 

6

aParam

array

Vector con los parámetros de la rutina. A continuación se muestra lo que debe informarse en cada situación del vector:

[1] Contabiliza On-Line; [2] Agrupa asientos contables; [3] Digita asientos contables; [4] Juros para comisión; [5] Descuento para comisión; [6] Calcula comisión.

7

NIL

NIL

Parámetro interno.

8

aEstorno

array

Informar el vector si desea realizar la reversión del movimiento.

Si la situación 1 fuera definida para compensación (nCaso = 3):

·         Vector con el campo E5_DOCUMEN referente al movimiento de compensación que se desea revertir, pudiendo pasarse la secuencia opcionalmente. Si no se informara la secuencia, todas las compensaciones referentes a los documentos informados se revertirán. Ejemplo: {{{cDocumen}, cSeq}} o {{cDocumen}}

Si la situación 1 fuera definida para liquidación (nCaso = 2):)

·         Secuencia de baja que se revertirá en el título de igual posición que la de aRecnoNF.

9

NIL

NIL

Parámetro interno.

10

NIL

NIL

Parámetro interno.

11

nSaldoComp

numeric

Valor por compensar - Informe el valor que desea compensar. Este valor debe ser menor o igual al saldo del título y mayor que cero. Para compensación total, informar NIL.

12

aCpoUser

array

Vector con los campos de usuario para grabación de la liquidación.

*Esta situación solamente debe informarse si la situación 1 (nCaso) fuera definida como "[2] Liquidación de títulos". 

13

aNCC_RAvlr

array

Parámetro interno.

14

nSomaCheq

numeric

Parámetro interno.

15

nTaxaCM

numeric

Tasa para corrección monetaria.

16

aTxMoeda

array

Vector con las tasas de las monedas existentes.

[1] Moneda; [2] Tasa de la moneda.

17

lConsdAbat

logical

Variable lógica para considerar los descuentos.

*Esta situación solamente debe informarse si la situación 1 (nCaso) fuera definida como "[3] Compensación de títulos de la misma cartera (RA/NCC)". 

18

NIL

NIL

Parámetro interno.

19

NIL

NIL

Parámetro interno.

20

lResidual

logical

Indica si el saldo del título se pondrá en cero si alcanza un valor menor que el margen de valor residual. El estándar de este parámetro es .T. (Pone en cero el saldo)

*Esta situación solamente debe informarse si la situación 1 (nCaso) fuera definida como "[3] Compensación de títulos de la misma cartera (RA/NCC)". r4

Informações
titleCompensación automática - Ejecución automática vs. manual (FINA330)
  • La compensación automática por medio de MaIntBxCr en su concepción no utilizaba las reglas y validaciones de la rutina deCompensación de títulos por cobrar (FINA330)De esta manera, algunos tratamientos son diferentes de acuerdo con el uso de la rutina.
    • Con la creación del parámetro MV_CMP330, al activarlo, se activan algunas funcionalidades de la rutina FINA330 para que la ejecución automática se aproxime de tratamientos y validaciones de la rutina manual. Por ejemplo, el cálculo de los impuestos no se realizan en el modelo nativo de MaIntBxCr, pero puede configurarse por medio del parámetro MV_CMP330 para que la ejecución automática realice la generación de los impuestos vinculados al título compensado.
  • La rutina de compensación manual (FINA330) permite que la fecha de la compensación/baja sea determinada por el usuario en pantalla. Para la ejecución automática (MaIntBxCr) no hay un parámetro de la rutina para especificar la fecha de compensación. Por lo tanto, para determinar la fecha, debe manejarse el contenido de la variable global dDataBase.
Informações
titleUso de MaIntBxCr en rutinas estandarizadas

La función MaIntBxCr() también se utiliza en rutinas estándar del sistema, como por ejemplo en el Documento de entrada (MATA103), que la utiliza para hacer efectiva compensaciones automáticas:

  • Por medio del parámetro MV_CMPDEVV es posible configurar para que en facturas de devolución de venta (total o parcial), el título de crédito (tipo NCC) se compense automáticamente.
    • La configuración del parámetro MV_CHECKNF determina si la situación de la cartera del título por cobrar debe considerarse en la compensación automática.
    • Si fuera necesario que la compensación automática no se realice en determinados casos, puede utilizarse el punto de entrada MT103BXCRpara indicar la regla deseada.
    • La rutina tentará compensar la NCC con el título referente a la factura de salida devuelta, pero si el título del cuentas por cobrar estuviera dado de baja, el sistema dejará la NCC pendiente para posterior compensación manual por medio de la rutina Compensación de títulos por cobrar (FINA330);
    • Si la devolución fuera parcial e involucrando ítems/productos de varias facturas emitidas (Documento de salida), la compensación automática no evalúa la proporcionalidad devuelta de cada Factura y sí el total devuelto vs. Facturas vinculadas en la devolución. Por lo tanto, el sistema considerará el total de la NCC y realizará la compensación con la primera Factura, mientras hubiera saldo disponible. Solamente se realizará la compensación con las otras Facturas, si el saldo de la primera Factura se pusiera en cero.


02. EJEMPLOS DE UTILIZACIÓN


Bloco de código
languagejava
themeMidnight
firstline1
titleEjemplo #01 - Rutina automática para compensación
linenumberstrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"


//-------------------------------------------------------------------
/*/ MaIntBxCr
Ejemplo de compensación de títulos normales con anticipos - CR

@since 27/07/2021
@version 1.0
/*/
//-------------------------------------------------------------------
USER FUNCTION CmpAutCR()

Local lRetOK := .T.
Local aArea  := GetArea()
Local nTaxaCM := 5.2322
Local aTxMoeda := {}
Local nSaldoComp:= 1000.00 *nTaxaCM // Valor que se compensará (Si fuera parcial Puede ser parcial) - Compensar solamente 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 de la rutina automatica!------")

    dbSelectArea("SE1")
    dbSetOrder(2) // E1_FILIAL, E1_CLIENTE, E1_LOJA, E1_PREFIXO, E1_NUM, E1_PARCELA, E1_TIPO, R_E_C_N_O_, D_E_L_E_T_
    IF dbSeek(XFILIAL("SE1")+"000000"+"00"+"331"+"RA0001   "+"  "+"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) // ¿Muestra Asto Contab ?
            lAglutina       := .F.

            /*
            ==> Utilice este trecho si quiere simular la opción Tasas de la pantalla inicial del FINA330
			==> Verifique los parámetros MV_CMP330 y MV_CMTXCON para ello.
            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 }
			*/

            //Fecha que se considerará en la compensación
            dDataBase := dDtComp

            If !MaIntBxCR(3, aRecSE1,,aRecRA,,{lContabiliza,lAglutina,lDigita,.F.,.F.,.F.},,,,,nSaldoComp,,,, nTaxaCM, aTxMoeda)
                Help("XAFCMPAD",1,"HELP","XAFCMPAD","No fue posible la compensación"+CRLF+" del título de anticipo",1,0)
                lRet := .F.
            ENDIF
        ENDIF
    ENDIF

    RestArea(aArea)

RESET ENVIRONMENT

Return lRet

...