Índice | ||||||
---|---|---|---|---|---|---|
|
Informações | ||
---|---|---|
| ||
Esta rutina se ajustó para cumplir con la Ley general de protección de datos (Ley n° 13,70), teniendo en cuenta que algunos campos que presentan información considerada como datos sensibles y/o personales se ocultarán, y dejarán de ser legibles. |
Informações | ||
---|---|---|
| ||
El proceso de selección de sucursales, así como el de baja en múltiples sucursales por medio de la rutina de bajas automáticas unificada estará a disposición solamente a partir de abril/2022 |
Esta rutina permite ejecutar la baja automática de títulos pendientes de una sola vez.
Lo títulos son seleccionados por el usuario, por medio de un filtro de portador, intervalo de vencimientos, motivo de baja y borderó (si los títulos estuvieran vinculados a un borderó), permitiendo la baja de varios borderós dentro de un intervalo especificado por el usuario (de/a). El sistema también permite que se efectúe la baja de uno o más títulos con cheque, automáticamente.
Procedimiento efectuado de forma manual vía rutina Bajas Pagar Automática (FINA090), con exhibición de las pantallas involucradas en el proceso, necesitando de acciones/comandos del usuario.
Procedimiento realizado de forma automática en la rutina Bajas Pagar Automática (FINA090), sin exhibición de pantallas o necesidad de interacción del usuario.
Se utiliza en personalizaciones donde el proceso no necesita de interacciones del usuario (MSEXECAUTO)
Informações | ||
---|---|---|
| ||
Si la contabilidad fuera online, la baja vía rutina automática solamente se procesará si la contabilidad no estuviera configurada para mostrar la pantalla en casos de error en el registro (falta de cuenta, débito/crédito no coinciden, etc.). Si utiliza la configuración para que se muestre la pantalla de contabilidad en caso de error en el registro, la rutina de baja automática vía execauto solamente se procesará si la contabilidad fuera Off-Line. |
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE "PROTHEUS.CH" /* Baja automática Baja automática ---------------------- Estructura de aRetAuto - baja automática --------------------------------------------------------- aRetAuto [1] := aRecnos (array conteniendo los Recnos de los registros por darse de baja) aRetAuto [2] := cBanco (Banco de la baja) aRetAuto [3] := cAgencia (Agencia de la baja) aRetAuto [4] := cConta (Cuenta de la baja) aRetAuto [5] := cCheque (Cheque de la baja - solamente Cuentas por pagar) aRetAuto [6] := cLoteFin (Lote financiero de la baja) aRetAuto [7] := cNatureza (Modalidad del movimiento bancario - solamente Cuentas por pagar) aRetAuto [8] := dBaixa (Fecha de la baja) aRetAuto [9] := nTipoBx (1 = Baja solamente títulos que no están en el borderó o nTipoBx -> 2 = Baja solamente títulos en borderó) aRetAuto [10]:= cBcoDe (De Portador) aRetAuto [11]:= cBcoAte (A Portador) aRetAuto [12]:= dVencIni (Vencimiento inicial) aRetAuto [13]:= dVencFim (Vencimiento final) aRetAuto [14]:= cBord090I (Borderó inicial) aRetAuto [15]:= cBord090F (Borderó final) aRetAuto [16]:= cBenef090 (Beneficiario del cheque) aRetAuto [17]:= cHistor (Historial del cheque) aRetAuto [18]:= lMultNat (Prorrateo múltiples modalidades) aRetAuto [19]:= aVendor (Array para la baja de vendor) Ejemplo: MSExecAuto({|x, y| FINA090(x, y)}, 3, aRetAuto) Para definir el Motivo de baja (si no se hubiera informado, el default es NORMAL): Private _cAutoMotBx := "DEBITO CC" Anulación de baja: ---------------------- Estructura de aRetAuto - Anulación automática de bajas --------------------------------------------------------- nRadio := aRetAuto[1] //1 = Anula baja de títulos títulos 2 = anula baja solamente de títulos en borderó cBord1 := aRetAuto[2] // De Borderó cBord2 := aRetAuto[3] // A Borderó cDatB1 := aRetAuto[4] // Fch. Baja inicial cDatB2 := aRetAuto[5] // Fch. Baja final cFor1 := aRetAuto[6] // De Proveedor cFor2 := aRetAuto[7] // A Proveedor aSelFil := aRetAuto[8] // Array con las sucursales que se considerarán en la selección de los títulos */ /* ------------------------------------------------------------------------------------ FAut090 Ejemplos de procesos del FINA090 Automático ------------------------------------------------------------------------------------ */ User Function FAut090() Local nOpca := 0 Local nRadio := 1 While .T. DEFINE MSDIALOG oDlg FROM 094,1 TO 230,293 TITLE "Baja automática" PIXEL @ 05,07 TO 40, 140 OF oDlg PIXEL @ 10,10 RADIO oRadio VAR nRadio; ITEMS "Baja automática","Baja automática - Vendor","Anulación automática de bajas"; 3D SIZE 100,10 OF oDlg PIXEL DEFINE SBUTTON FROM 45,085 TYPE 1 ENABLE OF oDlg ACTION (nOpca := 1, oDlg:End()) DEFINE SBUTTON FROM 45,115 TYPE 2 ENABLE OF oDlg ACTION (nOpca := 0, oDlg:End()) ACTIVATE MSDIALOG oDlg CENTERED If nOpca == 1 If nRadio == 1 //Baja automática FBx090Aut() Loop ElseIf nRadio == 2 //Baja automática - Vendor FBx090VEN() Loop Else //Anulación automática de baja FBx090Can() Loop Endif Else Exit Endif EndDo Return /* ------------------------------------------------------------------------------------ FBx090Aut Función para realizar baja automática - Multisucursales Ajustar pregunta Selecciona sucursales - SÍ ------------------------------------------------------------------------------------ */ Static Function FBx090Aut() Local aRecnos := {} Local cPref := "091" Local cFil1 := "D MG 01 " Local cTitulo1 := "FIN000001" Local cFil2 := "D MG 02 " Local cTitulo2 := "FIN000002" Local cParcel := " " Local cTipo := "NF " Local cForne := "FIN102" Local cLoja := "01" Local cBanco := "001" Local cAgencia := "00001" Local cConta := "0000000001" Local cCheque := "" Local dBaixa := dDataBase Local nTipoBx := 1 Local cBcoDe := " " Local cBcoAte := "ZZZ" Local dVencIni := dDataBase Local dVencFim := dDataBase Local cBordIni := " " Local cBordFim := "ZZZZZZ" Local cBenef090 := "" Local cHistor := "" Local lMultNat := .F. Local cLoteFin := "" Local cNatureza := PadR("PEQ000",Len( SE2->E2_NATUREZ)) Local aFilBx := {cFil1,cFil2} Private _cAutoMotBx := "DEBITO CC" //Si no se informa esta variable, el motivo de baja será NORMAL //-- variables utilizadas para el control de error de la rutina automática Private lMsErroAuto := .F. Private lAutoErrNoFile := .T. //-- Data base dDataBase := CTOD("14/07/2016") dBaixa := dDataBase dVencIni := dDataBase dVencFim := dDataBase //-- Array con la información para seleccionar los títulos aAdd(aRecnos,PesqSE2(cFil1,cPref, cTitulo1, cParcel, cTipo, cForne, cLoja)) aAdd(aRecnos,PesqSE2(cFil2,cPref, cTitulo2, cParcel, cTipo, cForne, cLoja)) aRetAuto := {} aAdd(aRetAuto,aRecnos ) //(array conteniendo los Recnos de los registros por darse de baja) aAdd(aRetAuto,cBanco ) //(Banco de la baja) aAdd(aRetAuto,cAgencia ) //(Agencia de la baja) aAdd(aRetAuto,cConta ) //(Cuenta de la baja) aAdd(aRetAuto,cCheque ) //(Cheque de la baja - solamente Cuentas por pagar) aAdd(aRetAuto,cLoteFin ) //(Lote financiero de la baja) aAdd(aRetAuto,cNatureza ) //(Modalidad del movimiento bancario - solamente Cuentas por pagar) aAdd(aRetAuto,dBaixa ) //(Fecha de la baja) aAdd(aRetAuto,nTipoBx ) //(1 = Baja solamente títulos que no están en el borderó o nTipoBx -> 2 = Baja solamente títulos en el borderó) aAdd(aRetAuto,cBcoDe ) //(De Portador) aAdd(aRetAuto,cBcoAte ) //(A Portador) aAdd(aRetAuto,dVencIni ) //(Vencimiento inicial) aAdd(aRetAuto,dVencFim ) //(Vencimiento final) aAdd(aRetAuto,cBordIni ) //(Borderó inicial) aAdd(aRetAuto,cBordFim ) //(Borderó final) aAdd(aRetAuto,cBenef090 ) //(Beneficiario del cheque) aAdd(aRetAuto,cHistor ) //(Historial del cheque) aAdd(aRetAuto,lMultNat ) //(Prorrateo Múltiples modalidades) aAdd(aRetAuto,aFilBx ) //(Sucursales para selección de los títulos para la baja - Solamente se selecciona sucursales = Sí) //-- Realiza baja //3 = inclusión MSExecAuto({|x, y| FINA090(x, y)}, 3, aRetAuto) If lMsErroAuto MOSTRAERRO() Endif Return /* ------------------------------------------------------------------------------------ FBx090VEN Función para realizar la baja automática por el motivo Vendor ------------------------------------------------------------------------------------ */ Static Function FBx090VEN() Local aRetAuto := {} Local aRecnos := {} Local cPref := "PEQ" Local cTitulo := "CT090A090" Local cTituloV := "CT090V090" Local cParcel := PadR(" ",Len( SE2->E2_PARCELA )) Local cTipo := "DP " Local cNatureza := "PEQ000 " Local cForne := "PEQ000" Local cLoja := "00" Local cCheque := "" Local cLoteFin := "" Local cBanco := "001" Local cAgencia := "00001" Local cConta := "0000000001" Local dBaixa := dDatabase Local cFil := "D MG 01 " Local nTipoBx := 1 Local cBcoDe := " " Local cBcoAte := "ZZZ" Local dVencIni := dDatabase Local dVencFim := dDatabase Local cBordIni := " " Local cBordFim := "ZZZZZZ" Local cBenef090 := "" Local cHistor := "BAJA POR VENDOR" Local lMultNat := .F. Local cContrato := "FINA090_CT090" Local dDtVencV := CTOD("20/12/2021") Local nTxAcresV := 5 Local nValorV := 1000 Local cNatV := "VENDOR " Local aFilBx := {} Local aVendor := {cContrato, cBanco, cAgencia, cPref, cTituloV, cParcel, cTipo, dDtVencV, nTxAcresV, cNatV, nValorV} Private _cAutoMotBx := "VENDOR" //-- variables utilizadas para el control de error de la rutina automática Private lMsErroAuto := .F. Private lAutoErrNoFile := .T. //-- Data base dDataBase := CTOD("14/12/2021") dBaixa := dDataBase dVencIni := dDataBase dVencFim := dDataBase aAdd(aRecnos,PesqSE2(cFil,cPref, cTitulo,cParcel, cTipo, cForne, cLoja)) aAdd(aRetAuto,aRecnos ) //(array conteniendo los Recnos de los registros por darse de baja) aAdd(aRetAuto,cBanco ) //(Banco de la baja) aAdd(aRetAuto,cAgencia ) //(Agencia de la baja) aAdd(aRetAuto,cConta ) //(Cuenta de la baja) aAdd(aRetAuto,cCheque ) //(Cheque de la baja - solamente Cuentas por pagar) aAdd(aRetAuto,cLoteFin ) //(Lote financiero de la baja) aAdd(aRetAuto,cNatureza ) //(Modalidad del movimiento bancario - solamente Cuentas por pagar) aAdd(aRetAuto,dBaixa ) //(Fecha de la baja) aAdd(aRetAuto,nTipoBx ) //(1 = Baja solamente títulos que no están en el borderó o nTipoBx -> 2 = Baja solamente títulos en el borderó) aAdd(aRetAuto,cBcoDe ) //(De Portador) aAdd(aRetAuto,cBcoAte ) //(A Portador) aAdd(aRetAuto,dVencIni ) //(Vencimiento inicial) aAdd(aRetAuto,dVencFim ) //(Vencimiento final) aAdd(aRetAuto,cBordIni ) //(Borderó inicial) aAdd(aRetAuto,cBordFim ) //(Borderó final) aAdd(aRetAuto,cBenef090 ) //(Beneficiario del cheque) aAdd(aRetAuto,cHistor ) //(Historial del cheque) aAdd(aRetAuto,lMultNat ) //(Prorrateo Múltiples modalidades) aAdd(aRetAuto,aFilBx ) //(Sucursales para selección de los títulos para la baja - Solamente se selecciona sucursales = Sí) aAdd(aRetAuto,aVendor ) //(Array con datos del Vendor) //-- Realiza baja //3 = inclusión MSExecAuto({|x, y| FINA090(x, y)}, 3, aRetAuto) If lMsErroAuto MOSTRAERRO() Endif Return /* ------------------------------------------------------------------------------------ FBx090Can Función para realizar anulación automática de bajas ------------------------------------------------------------------------------------ */ Static Function FBx090Can() Local cFil1 := "M PR 01 " Local cFil2 := "M PR 02 " Local cForne := "FICN13" Local cForne2 := "FICN14" Local aFiliais := {cFil1,cFil2} //-- variables utilizadas para el control de error de la rutina automática Private lMsErroAuto := .F. Private lAutoErrNoFile := .T. //Data base dDataBase := CTOD("09/08/2019") dBaixa := dDataBase aRetAuto := {} aAdd(aRetAuto,1 ) //1 = Baja solamente títulos que no están en el borderó o nTipoBx -> 2 = Baja solamente títulos en el borderó aAdd(aRetAuto," " ) // De Borderó aAdd(aRetAuto,"ZZZZZ" ) // A Borderó aAdd(aRetAuto,dDataBase ) // Fch. Baja inicial aAdd(aRetAuto,dDataBase ) // Fch. Baja final aAdd(aRetAuto,cForne ) // De Proveedor aAdd(aRetAuto,cForne2 ) // A Proveedor aAdd(aRetAuto,aFiliais ) //Títulos dados de baja //-- Realiza anulación de la baja //4 = Anulación MSExecAuto({|x, y| FINA090(x, y)}, 4, aRetAuto) If lMsErroAuto MOSTRAERRO() Endif Return /* ------------------------------------------------------------------------------------ PesqSE2 Función para devolver el Recno del título por darse de baja @param cFilOri , Character, Sucursal de origen del título (E2_FILORIG) @param cPrefOri , Character, Prefijo del título (E2_PREFIXO) @param cNumOri , Character, Número del título (E2_NUM) @param cParcOri , Character, Cuota del título (E2_PARCELA) @param cTipoOri , Character, Tipo del título (E2_TIPO) @param cCfOri , Character, Proveedor del título (E2_FORNECE) @param cLojaOri , Character, Tienda del título (E2_LOJA) @retorno nRec, Numeric, Recno del registro por darse de baja ------------------------------------------------------------------------------------ */ Static Function PesqSE2(cFilOri, cPref, cTitulo, cParcel, cTipo, cForne, cLoja ) Local aAreaSE2 := SE2->(GetArea()) Local nRec := 0 DEFAULT cFilOri := cFilAnt SE2->(DbSetOrder(1)) If DbSeek (xFilial("SE2", cFilOri) + cPref + cTitulo + cParcel + cTipo + cForne + cLoja) nRec := SE2-> (RECNO()) Endif RestArea(aAreaSE2) Return nRec |
Deck of Cards | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Lista de parámetros aplicados al FINA090 y su procesamiento
Deck of Cards | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
La contabilidad de los procesos aplicados a la compensación cuentas por pagar vía módulo Financiero se realiza por los asientos estándar siguientes:
AE | Hecho generador | ON | OFF |
---|---|---|---|
530 | En la baja de títulos por pagar | X | X |
532 | En la baja de títulos por pagar en Borderó | X | X |
513 | En la inclusión de movimiento bancario de anticipo | X | X |
Informações | ||
---|---|---|
| ||
Borderós: Para títulos normales el asiento estándar será el 532, para títulos de anticipo, el asiento estándar es el 513 Los impuestos con hecho generador "Caja" (en la baja) generados por el borderó, deben ser contabilizados por el AE 530. Historial. Si fuera necesario rescatar el número del borderó e informar en el historial en el momento de la contabilidad, debe utilizarse el campo SEA→EA_NUMBOR. |
Informações | ||
---|---|---|
| ||
Contabilidad por tipo de baja: Títulos: Para títulos normales el asiento estándar será el 530, para títulos de anticipo el asiento estándar es el 513. |
Expandir | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|