01. DATOS GENERALES


Producto

Línea de producto: 

Segmento:

Módulo:SIGAFIN - Financiero
Función:
RutinaNombre TécnicoFecha
F887FIN.PRWReglas de negocio para todos los países22/07/2025
FINA887ARG.PRWCobros Diversos para Argentina22/07/2025
País:Todos
Ticket:No aplica
DMINA-2651Requisito/Story/Issue (informe el requisito vinculado):DMINA-26519


02. SITUACIÓN/REQUISITO

Se solicita ajustar los siguientes PE para su correcto funcionamiento en la versión del Nuevo Recibo en MVC:


03. SOLUCIÓN

Se realizan cambios en los siguientes fuentes para el correcto funcionamiento de los PE:


  1. Realizar un respaldo del repositorio (RPO).
  2. Realizar la aplicación del parche correspondiente al issue DMINA-26519.
  3. Validar que las rutinas actualizadas en el repositorio, coincidan con las descritas en el encabezado del presente Documento Técnico, así como las fechas.
  4. Compilar los siguientes PE para pruebas (No es una configuración estándar, son un ejemplo de los PE)
    1. Punto de entrada FINCMTC: (Para más información dar clic aquí)

      #Include 'Protheus.ch'
      
      User Function FINCMTC()
      
      Local cCmc7  := Paramixb[1]
      Local nTamBco := 0 As Numeric 
      Local nTamAge := 0 As Numeric
      Local nTamCta := 0 As Numeric
      Local nTamChq := 0 As Numeric
      Local nTamCPo := 0 As Numeric
      Local aCmc7Tc := {}  As Array
      
      If nTamBco == 0
      	nTamBco := TamSX3("EF_BANCO")[1]
      Endif
      If nTamAge == 0
      	nTamAge := TamSX3("EF_AGENCIA")[1]
      Endif
      If nTamCta == 0
      	nTamCta := TamSX3("EF_CONTA")[1]
      Endif
      If nTamChq == 0
      	nTamChq := TamSX3("EF_NUM")[1]
      Endif
      If nTamCPo == 0
      	nTamCPo := TamSX3("EF_POSTAL")[1]
      Endif
      	//Se agrega al arreglo a retornar una subcadena de la cadena original, configurando la posición inicial de cada campo y su longitud
      	//AADD(Array al que se le agregaran los valores, SUBSTR(cadena de la lectora de cheques, número editable que indica donde empieza la cadena y por último el tamaño del campo))
      	Aadd( aCmc7Tc, SubStr(cCmc7,  2,  nTamBco)) 	//Banco
      	Aadd( aCmc7Tc, SubStr(cCmc7,  5,  nTamAge)) 	//Agencia
      	Aadd( aCmc7Tc, SubStr(cCmc7, 10,  nTamCPo)) 	//Codigo Postal
      	Aadd( aCmc7Tc, SubStr(cCmc7, 14,  nTamChq)) 	//Cheque
      	Aadd( aCmc7Tc, SubStr(cCmc7, 20,  nTamCta)) 	//Conta
      	Aadd( aCmc7Tc,      SubStr(cCmc7, 30,  1) )		//DV Conta
      
      Return aCmc7Tc
    1. Punto de entrada FINLRCHQ: (Para más información dar clic aquí)

      #Include 'Protheus.ch'
      
      User Function FINLRCHQ()
      Local cChq := ""
      
      cChq := "0<XXX00XXX76100123456789ASDFGHJK"
      
      Return cChq
    2. Punto de entrada F998NROK: (Para más información dar clic aquí)

      #INCLUDE "Totvs.ch"
       
      /*/{Protheus.doc} F998NROK
      Punto de entrada que permite agregar validaciones al recibo antes del guardado
      Si retorna un .T. procedera con el guardado del recibo
      Si retorna un .F. no continuara con el guardado del recibo
      /*/
      USER FUNCTION F998NROK()
          Local oModel        := Paramixb[1] //Json que contiene todas las formas de pago del recibo
          Local oModelFJT		:= oModel:GetModel("FJT_MASTER")
          Local oModelSEL		:= oModel:GetModel("SEL_DETAIL")
          Local oModelSE1		:= oModel:GetModel("SE1_DETAIL")
          Local oModelMOE 	:= oModel:GetModel('MOE_DETAIL')
          Local lRet     := .T. As Logical
          Local aRet     := {}  As Array
          Local nCont    As Numeric
          Local cMensaje  := "" As Character
          Local cSolucion := "" As Character
          
          //Ejemplo de validaciones en las formas de pago que contiene el recibo
          FOR nCont := 1 TO oModelSEL:Length()
              IF oModelSEL:GetValue('EL_TIPO',nCont) == "EF "
                  lRet := .F.
                  cMensaje := "No se permite guardar recibos con forma de pago tipo EF-Efectivo"
                  cSolucion := "Texto de solución"
                  AADD(aRet,{lRet,cMensaje,cSolucion})
                  RETURN aRet
              ENDIF
          NEXT
      
      RETURN aRet
  5. En el módulo Configurador (SIGACFG), configurar el parámetro MV_RECMVC con el valor .T. para activar la funcionalidad de Recibos en MVC.
  6. En el módulo Facturación (SIGAFAT):
    • Ir al menú Actualizaciones | Archivos |  Bancos (MATA070), configurar un Banco.
    • Ir al menú Actualizaciones | Archivos |  Clientes (MATA030), configurar un Cliente.
  7. En el módulo Financiero (SIGAFIN): 
    • Ir al menú Actualizaciones | Archivos | Entidades Bancarias (FINA094) registrar un Banco para el Cheque.
  1. Prueba para los PE FINCMTC y FINLRCHQ.
    1. En el módulo Financiero (SIGAFIN):
    2. Ingresar al menú Actualizaciones | Archivos | TOTVS Recibo (FINA998) y seleccionar la opción Nuevo Recibo.
    3. Completar el encabezado del recibo con los datos previamente configurados.
    4. En el GRID de formas de pago, informar una forma de pago con tipo "CH - Cheque", haciendo clic en el campo Tipo (EL_TIPO).
    5. Al salir del campo Tipo (EL_TIPO), si el valor seleccionado es "CH - Cheque", se mostrará una ventana con el siguiente mensaje:
      1. ¿Desea utilizar la lectora de cheques?
      2. Hacer clic en "Sí".
      3. Al confirmar, se ejecutarán los puntos de entrada FINCMTC y FINLRCHQ:
        1. FINLRCHQ retornará una cadena de texto con los datos leídos del cheque.
        2. FINCMTC utilizará dicha cadena para asignar de forma personalizada los valores a campos configurados.
      4. Esta información será mostrada en la ventana de la lectora de cheques.
      5. Al hacer clic en "OK", los siguientes campos del GRID de formas de pago (SEL) serán automáticamente completados (Esta asignación es de acuerdo a la personalización del PE FINLRCHQ, puede variar):
        1. Banco.
        2. Agencia.
        3. Código Postal.
        4. Cheque.
        5. Cuenta.
        6. DV Conta.
    6. Grabar el recibo.
    7. Confirmar la generación del recibo anticipado.
    8. Verificar que se guarden correctamente los valores asignados por los Puntos de Entrada en las tablas.
  2. Prueba para el PE F998NROK.
    1. Ingresar al menú Actualizaciones | Archivos | TOTVS Recibo (FINA998) y seleccionar la opción Nuevo Recibo.
    2. Completar el encabezado del recibo con los datos previamente configurados.
    3. En el GRID de formas de pago, informar una forma de pago con tipo "EF - Efectivo".
    4. Intentar guardar el recibo.
    5. Verificar que se muestre un HELP mostrando el siguiente texto:
      1. "No se permite guardar recibos con forma de pago tipo EF-Efectivo" - "Texto de solución".
    6. Verificar que no se permita el guardado del recibo.


04. INFORMACIÓN ADICIONAL

No aplica.



05. ASUNTOS RELACIONADOS