Tempo aproximado para leitura: 05 min
| Índice | ||||||||
|---|---|---|---|---|---|---|---|---|
|
La rutina FINA645 - PDD (Provisión de deudores dudosos) constituye la provisión para deudores dudosos.
Otras denominaciones de esta provisión:
Esta provisión cubre pérdidas probables en la cobranza de las facturas de crédito. De esta manera, una vez constituida dicha provisión, y no ocurriendo la cobranza de algunas facturas de crédito por la empresa, estas eran obligatoriamente dadas de baja, en contrapartida con la Provisión para deudores dudosos.
Por ejemplo: Si al final del año, el total de pérdidas no alcanzase el valor de la Provisión, la sobra era revertida, es decir, era contabilizada como ingreso, dejando en cero la Provisión antigua, para inmediatamente después efectuar una nueva Provisión para el año siguiente.
Importante: Rutina puesta a disposición a partir del release 12.1.25
| Expandir | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| Expandir | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
| Expandir | ||
|---|---|---|
| ||
El informe se desarrolló utilizando la tecnología TReport, donde permite la inclusión de campos de la
Parámetros del informe:
|
| Expandir | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
La constitución de PDD y la reversión de la constitución se contabilizará a partir de los asientos estándar:
|
Nombre de la variable | MV_PDDREF |
|---|---|
Tipo | Carácter |
Descripción | Campo para considerar en la regla del PDD: |
Valor estándar | 1 |
Nombre de la variable | MV_PDDRTNF |
|---|---|
Tipo | Numérico |
Descripción | Indica si la rutina de PDD realizará el prorrateo por ítem de la factura que generó el título. |
Valor estándar | 2 |
Nombre de la variable | MV_PDDACRE |
|---|---|
Tipo | Carácter |
Descripción | Seleccione si el saldo neto del PDD considerará el aumento y descuento del título. |
Valor estándar | 1 |
Nombre de la variable | MV_BAIXPDD |
|---|---|
Tipo | Lógico |
Descripción | Indica si la rutina de PDD considerará también los títulos dados de baja en su totalidad con atraso. Obs.: Este parámetro se incorporará al producto a partir del release 12.1.27. Habiendo necesidad de uso es posible su inclusión por medio del módulo configurador. |
Valor estándar | .F. |
04. PUNTOS DE ENTRADA
05. TABLAS UTILIZADAS
Clave | Nombre | Modo | PYME |
|---|---|---|---|
FJX | Procesamiento PDD | C | S |
FJY | Clientes en PDD | C | S |
FJZ | Títulos aprovisionados | C | S |
FWZ | Prorrateo de títulos PDD | C | S |
FRV | Situaciones de cobranza | C | S |
Para la correcta ejecución automática de la rutina FINA645, es necesario informar los parámetros de la función, de acuerdo con lo siguiente:
lAutomato = .T.
nOperation = Informe qué operación debe realizarse.
aSitCob = Este array debe recibir cuáles son las Situaciones de cobranza que deben tratarse para el filtro.
Ej.: Aadd(aSitCob, '0')
Aadd(aSitCob, '3')
Aadd(aSitCob, '4')
Aadd(aSitCob, '5')
Aadd(aSitCob, '6')
Aadd(aSitCob, '7')
cNroProc = Número del proceso generado de la tabla FJX.
aDdsAlt = Este array debe recibir cuál es la información de la clave que se buscará en la tabla FJZ y cuáles son las modificaciones que deben efectuarse. La variable lGrvOk se utilizará para marcar o desmarcar el título y la variable cSitCob se utilizará para modificación de la situación de cobranza.
Ej.: Aadd(aDdsChv, xFilial("FJZ") )
Aadd(aDdsChv, cNroProc )
Aadd(aDdsChv, cItemCliZ )
Aadd(aDdsChv, cItemZ )
Aadd(aDdsChv, cFilCliZ )
Aadd(aDdsChv, cPref )
Aadd(aDdsChv, cNum )
Aadd(aDdsChv, cParc )
Aadd(aDdsChv, cTipo )
lGrvOk := .F.
cSitCob := "2"
Aadd(aDdsAlt, { cSitCob, aDdsChv, lGrvOk } )
Ejecuciones implementadas | Parámetros que se completarán |
|---|---|
Constitución | FINA645(lAutomato, nOperation, aSitCob) |
Hacer efectivo | FINA645(lAutomato, nOperation, aSitCob, cNroProc) |
Modificación | FINA645(lAutomato, nOperation, aSitCob, cNroProc) |
Reversión | FINA645(lAutomato, nOperation, aSitCob, cNroProc) |
Hacer efectiva la reversión | FINA645(lAutomato, nOperation, cNroProc, aDdsAlt) |
Borrado | FINA645(lAutomato, nOperation, cNroProc) |
Para la ejecución de la Constitución debe informarse el Grupo de preguntas y respuestas correspondiente (FINA645C), de acuerdo con el siguiente ejemplo:
Grupo de preguntas y respuestas - FINA645C | ||
|---|---|---|
¿Fecha de referencia? | Fecha de referencia | MV_PAR01 |
¿Número de días de atraso? | Cant. de Días para atraso | MV_PAR02 |
¿Transferir a Provisión? | 1 = Sí o 2 = No | MV_PAR03 |
¿De Cliente? | De Código del cliente | MV_PAR04 |
¿De Tienda del cliente? | De Tienda del cliente | MV_PAR05 |
¿A Cliente? | A Código del cliente | MV_PAR06 |
¿A Tienda del cliente? | A Tienda del cliente | MV_PAR07 |
¿De Emisión? | De Fecha de emisión del título | MV_PAR08 |
¿A Emisión? | A Fecha de emisión del título | MV_PAR09 |
¿Selecciona sucursal? | 1 = Sí o 2 = No | MV_PAR10 |
¿Situación de cobranza PDD? | Informe la situación de la cobranza | MV_PAR11 |
¿Selecciona Sit. de Cobranza? | 1 = Sí o 2 = No | MV_PAR12 |
¿Considera negociados? | 1 = Sí o 2 = No | MV_PAR13 |
Para la ejecución de Hecho efectivo, Hacer efectiva la reversión y modificación debe informarse el Grupo de preguntas y respuestas correspondiente (FINA645D), de acuerdo con el siguiente ejemplo:
Grupo de preguntas y respuestas - FINA645D | ||
|---|---|---|
¿Muestra asiento? | 1 = Sí o 2 = No | MV_PAR01 |
¿Agrupa asiento? | 1 = Sí o 2 = No | MV_PAR02 |
¿Considera movimiento posterior a generación del proceso? | 1 = Sí o 2 = No | MV_PAR03 |
Para la ejecución de la Reversión debe informarse el Grupo de preguntas y respuestas correspondiente (FINA645E), de acuerdo con el siguiente ejemplo:
Grupo de preguntas y respuestas - FINA645E | ||
|---|---|---|
¿Revertir provisión? | 1 = Todos / 2 = Títulos dados de baja / 3 = Pendientes | MV_PAR01 |
¿De Cliente? | De Código del cliente | MV_PAR02 |
¿De Tienda del cliente? | De Tienda del cliente | MV_PAR03 |
¿A Cliente? | A Código del cliente | MV_PAR04 |
¿A Tienda del cliente? | A Tienda del cliente | MV_PAR05 |
¿Selecciona sucursal? | 1 = Sí o 2 = No | MV_PAR06 |
Fecha de referencia | Fecha de referencia | MV_PAR07 |
¿De Emisión? | De Fecha de emisión del título | MV_PAR08 |
¿A Emisión? | A Fecha de emisión del título | MV_PAR09 |
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#include "protheus.ch"
#include "topconn.ch"
#include "RWMAKE.CH"
#include "TBICONN.CH"
/*/{Protheus.doc} F645Const
Constitución PDD
@type function
@version 1.0
@author totvs
@return nil
/*/
User Function F645Const()
Local lAutomato := .T.
Local nOperation:= 3
Local aSitCob := {}
Private lMsErroAuto := .f.
Private lAutoErrNoFile := .T.
PREPARE ENVIRONMENT EMPRESA "T1" SUCURSAL "D MG 01"
//Situaciones de cobranza que se filtrarán
Aadd(aSitCob, '0')
Aadd(aSitCob, '3')
Aadd(aSitCob, '4')
Aadd(aSitCob, '5')
Aadd(aSitCob, '6')
Aadd(aSitCob, '7')
//Ajusta preguntas (F12)
Pregunta("FINA645C",.F.)
SetMVValue("FINA645C","MV_PAR01", DDATABASE ) // ¿Fecha de referencia?
SetMVValue("FINA645C","MV_PAR02", 1 ) // ¿Número de días de atraso?
SetMVValue("FINA645C","MV_PAR03", 3 ) // ¿Transferir a Provisión?
SetMVValue("FINA645C","MV_PAR04", "PDD001" ) // ¿De Cliente?
SetMVValue("FINA645C","MV_PAR05", "01" ) // ¿De Tienda del cliente?
SetMVValue("FINA645C","MV_PAR06", "PDD001" ) // ¿A Cliente?
SetMVValue("FINA645C","MV_PAR07", "01" ) // ¿A Tienda del cliente?
SetMVValue("FINA645C","MV_PAR08", CTOD("01/01/2001") ) // ¿De Emisión?
SetMVValue("FINA645C","MV_PAR09", CTOD("31/12/2049") ) // ¿A Emisión?
SetMVValue("FINA645C","MV_PAR10", 2 ) // ¿Selecciona sucursal? 1 = Sí 2 = No
SetMVValue("FINA645C","MV_PAR11", "8" ) // ¿Situación de cobranza PDD?
SetMVValue("FINA645C","MV_PAR12", 2 ) // ¿Selecciona Sit. de Cobranza? 1 = Sí 2 = No
SetMVValue("FINA645C","MV_PAR13", 2 ) // ¿Considera negociados? 1 = Sí 2 = No
//Constitución
MSExecAuto({|a,b,c| FINA645(a,b,c)}, lAutomato, nOperation, aSitCob )
If !lMsErroAuto
conout("¡éxito! ")
Else
conout("¡Error!")
mostraErro()
EndIf
Return |
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#include "protheus.ch"
#include "topconn.ch"
#include "RWMAKE.CH"
#include "TBICONN.CH"
/*/{Protheus.doc} F645EfeCon
Efetiva Constitución PDD
@type function
@version 1.0
@author totvs
@return nil
/*/
User Function F645EfeCon()
Local lAutomato := .T.
Local nOperation:= 4
Local aSitCob := {}
Local cNroProc := "000010"
Private lMsErroAuto := .f.
Private lAutoErrNoFile := .T.
PREPARE ENVIRONMENT EMPRESA "T1" SUCURSAL "D MG 01"
//Ajusta perguntas (F12)
Pergunte("FINA645D",.F.)
SetMVValue("FINA645D","MV_PAR01", 2 ) // ¿Muestra asiento?
SetMVValue("FINA645D","MV_PAR02", 2 ) // ¿Agrupa asiento?
SetMVValue("FINA645D","MV_PAR03", 2 ) // ¿Considera movimiento posterior generación del proceso?
//Hacer efectivo MSExecAuto({|a,b,c,d| FINA645(a,b,c,d)}, lAutomato, nOperation, aSitCob, cNroProc )
If !lMsErroAuto
conout("¡éxito! ")
Else
conout("¡Error!")
mostraErro()
EndIf
Return |
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#include "protheus.ch"
#include "topconn.ch"
#include "RWMAKE.CH"
#include "TBICONN.CH"
/*/{Protheus.doc} F645Revers
Reversión de la Constitución PDD
@type function
@version 1.0
@author totvs
@return nil
/*/
User Function F645Revers()
Local lAutomato := .T.
Local nOperation:= 5
Local aSitCob := {}
Local cNroProc := "000010"
Local dDtRef := CTOD("14/10/2021")
Private lMsErroAuto := .f.
Private lAutoErrNoFile := .T.
PREPARE ENVIRONMENT EMPRESA "T1" SUCURSAL "D MG 01"
//Ajusta preguntas (F12)
Pregunta("FINA645E",.F.)
SetMVValue("FINA645E","MV_PAR01", 1 ) // ¿Revertir provisión? - 1 = Todos / 2 = Títulos dados de baja / 3 = Abertos
SetMVValue("FINA645E","MV_PAR02", "PDD001" ) // ¿De Cliente?
SetMVValue("FINA645E","MV_PAR03", "01" ) // ¿De Tienda del cliente?
SetMVValue("FINA645E","MV_PAR04", "PDD001" ) // ¿A Cliente?
SetMVValue("FINA645E","MV_PAR05", "01" ) // ¿A Tienda del cliente?
SetMVValue("FINA645E","MV_PAR06", 2 ) // ¿Selecciona sucursal? 1 = Sí 2 = No
SetMVValue("FINA645E","MV_PAR07", dDtRef ) // ¿Fecha de referencia?
SetMVValue("FINA645E","MV_PAR08", dDatabase ) // ¿De Emisión?
SetMVValue("FINA645E","MV_PAR09", dDatabase ) // E¿A Emisión?
//Reversión de la Constitución
MSExecAuto({|a,b,c,d| FINA645(a,b,c,d)}, lAutomato, nOperation, aSitCob, cNroProc )
If !lMsErroAuto
conout("¡éxito! ")
Else
conout("¡Error!")
mostraErro()
EndIf
Return |
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#include "protheus.ch"
#include "topconn.ch"
#include "RWMAKE.CH"
#include "TBICONN.CH"
/*/{Protheus.doc} F645EfetRev
EHacer efectiva la reversión de la Constitución PDD
@type function
@version 1.0
@author totvs
@return nil
/*/
User Function F645EfetRev()
Local lAutomato := .T.
Local nOperation:= 6 //Hacer efectiva la reversión
Local aSitCob := {}
Local cNroProc := "000010"
Private lMsErroAuto := .f.
Private lAutoErrNoFile := .T.
PREPARE ENVIRONMENT EMPRESA "T1" SUCURSAL "D MG 01"
//Ajusta preguntas (F12)
Pregunta("FINA645D",.F.)
SetMVValue("FINA645D","MV_PAR01", 2 ) // ¿Muestra asiento?
SetMVValue("FINA645D","MV_PAR02", 2 ) // ¿Agrupa asiento?
SetMVValue("FINA645D","MV_PAR03", 2 ) // ¿Considera movimiento posterior generación del proceso?
//Hacer efetivo
MSExecAuto({|a,b,c,d| FINA645(a,b,c,d)}, lAutomato, nOperation, aSitCob, cNroProc )
If !lMsErroAuto
conout("¡éxito! ")
Else
conout("¡Error!")
mostraErro()
EndIf
Return |