PAGOS-REM_01_Error al intentar pagar una remesa - Manuales
Manuales POS
Audiencia
Este documento está pensado para ser consumido por los equipos de:
Soporte Farmax OR (Niveles 1 y 2)
Equipo de desarrollo TI (Farmacias del Ahorro y proveedor externo)
Descripción general
Error al intentar pagar una remesa, se muestra un mensaje al intentar hacer la transacción "El monto de la transacción supera el disponible en caja." y si se cuenta con efectivo suficiente en la caja
ID: MMAN 0669
REFERENCIA: 12168473024
CAJA:22
2:11PM 17/10/20223
Impacto a la operación
El usuario no puede realizar la operación en la caja.
Criticidad
| Alto | |
| Medio | |
| Bajo | X |
Sistemas/módulos involucrados
POS
Precondiciones
Aquí se debe especificar el nivel de acceso requerido por cada sistema (aplicativo o base de datos), indicando el rol o perfil necesario para para el diagnóstico y/o solución del incidente.
POS |
SUCURSAL: AMADO NERVO Caja: 22 |
Base de datos del STORE |
Procedimiento de diagnóstico
1.- Consultamos la tabla genPagoDineroBitacoraReg para buscar información de la referencia:
from genPagoDineroBitacoraReg with (nolock)
where cast(datosSolicitud as nvarchar(max)) like '%12168473024%';

Vemos que para esa referencia el importe es de $3600.
Ahora buscaremos cual es la cantidad que había en caja al momento de ocurrir el error (14:11hrs del 17-10-2023)
Primero buscaremos el turno de la caja 22 de la sucursal 669.
from venTurnosCajaReg with (nolock)
where codigoSucursal= '0669' and numeroCaja = 22
and fechaHoraInicioTurno between '2023-10-17 00:00:00' and '2023-10-17 23:50:59'
order by fechaHoraInicioTurno;

Código de turno = 01BD45AD-EF6C-EE11-A2C9-6451062DA8D6
En el código observamos la validación que compara el monto a pagar con el efectivo disponible.
Ya vimos que el monto a pagar es $3,600, ahora buscaremos el monto disponible.

Rastreando el código, encontramos el método que calcula el efectivo disponible en caja:
2.- Ahora ejecutaremos esa consulta filtrando con el turno, entonces buscaremos el efectivo disponible desde que inicio el turno hasta las 14:11hrs
SUM ( case WHEN mcc . tipoMovimiento = 'I' AND t . cambio IS NULL AND v . cambio IS NULL AND d . cambio IS NULL THEN mcd . importePago
WHEN mcc . tipoMovimiento = 'E' THEN mcd . importePago * -1
WHEN NOT t . cambio IS NULL THEN mcd . importePago - t . cambio
WHEN NOT v . cambio IS NULL THEN mcd . importePago - v . cambio
WHEN NOT d . cambio IS NULL THEN mcd . importePago - d . cambio
END as efectivoCaja
FROM venTurnosCajaReg tcr with ( nolock )
INNER JOIN genMovimientosCajasCab mcc with ( nolock ) on tcr . codigoTurno = mcc . codigoTurno
INNER JOIN genMovimientosCajasDet mcd with ( nolock ) on mcc . codigoMovimientoCaja = mcd . codigoMovimientoCaja
INNER JOIN genFormasDePagoCat fpc with ( nolock ) on mcd . codigoFormaPago = fpc . codigoFormaPago
LEFT JOIN trnTransaccionesCab t WITH ( NOLOCK ) ON t . codigoMovimientoCaja = mcc . codigoMovimientoCaja
LEFT JOIN venCotizacionesCab v WITH ( NOLOCK ) ON mcc . codigoMovimientoCaja = v . codigoMovimientoCaja
LEFT JOIN genDonativosEspeciales d WITH ( NOLOCK ) ON mcc . codigoMovimientoCaja = d . codigoMovimientoCaja
WHERE fpc . requiereDocumento = 0 AND fpc . conciliarDocumentos = 0 AND fpc . abrirCajon = 1 AND fpc . tipoFormaPago <> 'ANTC'
and tcr . codigoTurno = '01BD45AD-EF6C-EE11-A2C9-6451062DA8D6' AND mcd . estatusFormaPago = 'A' AND ( t . estaActivo = 1 OR t . status is null)
and mcc . fechaActualizacion <= '2023-10-17 14:11:00'
GROUP BY fpc . codigoFormaPago ;

Vemos que el efectivo disponible en caja que regresa la consulta es $3,403.14, y se requiere $3,600, por eso la validación muestra el mensaje “El monto de la transacción supera el disponible en caja”
Pero indican que si había el suficiente dinero en caja.
Ahora, consultando la información del turno vemos el campo dotacion Inicial.
from venTurnosCajaReg t with (nolock)
where codigoTurno='01BD45AD-EF6C-EE11-A2C9-6451062DA8D6';

El campo dotacionInicial indica que al inicio del turno había $2000 en caja al aperturar la caja.
El sistema no está considerando este monto inicial en caja de $2000 al obtener el efectivo disponible en caja al momento del error.
Si en la consulta del efectivo disponible en caja agregamos el campo dotacionInicial:
SUM ( case WHEN mcc . tipoMovimiento = 'I' AND t . cambio IS NULL AND v . cambio IS NULL AND d . cambio IS NULL THEN mcd . importePago
WHEN mcc . tipoMovimiento = 'E' THEN mcd . importePago * -1
WHEN NOT t . cambio IS NULL THEN mcd . importePago - t . cambio
WHEN NOT v . cambio IS NULL THEN mcd . importePago - v . cambio
WHEN NOT d . cambio IS NULL THEN mcd . importePago - d . cambio
END ) + tcr . dotacionInicial as efectivoCaja
FROM venTurnosCajaReg tcr with ( nolock )
INNER JOIN genMovimientosCajasCab mcc with ( nolock ) on tcr . codigoTurno = mcc . codigoTurno
INNER JOIN genMovimientosCajasDet mcd with ( nolock ) on mcc . codigoMovimientoCaja = mcd . codigoMovimientoCaja
INNER JOIN genFormasDePagoCat fpc with ( nolock ) on mcd . codigoFormaPago = fpc . codigoFormaPago
LEFT JOIN trnTransaccionesCab t WITH ( NOLOCK ) ON t . codigoMovimientoCaja = mcc . codigoMovimientoCaja
LEFT JOIN venCotizacionesCab v WITH ( NOLOCK ) ON mcc . codigoMovimientoCaja = v . codigoMovimientoCaja
LEFT JOIN genDonativosEspeciales d WITH ( NOLOCK ) ON mcc . codigoMovimientoCaja = d . codigoMovimientoCaja
WHERE fpc . requiereDocumento = 0 AND fpc . conciliarDocumentos = 0 AND fpc . abrirCajon = 1 AND fpc . tipoFormaPago <> 'ANTC'
and tcr . codigoTurno = '01BD45AD-EF6C-EE11-A2C9-6451062DA8D6' AND mcd . estatusFormaPago = 'A' AND ( t . estaActivo = 1 OR t . status is null)
and mcc . fechaActualizacion <= '2023-10-17 14:11:00'
GROUP BY fpc . codigoFormaPago , tcr . dotacionInicial ;

Considerando la dotación inicial en caja, entonces había $5403.14 y si era suficiente para pagar $3600.
Conclusión
El sistema calcula el efectivo disponible en caja para el turno indicado, sin considerar el fondo inicial de caja. Deberá preguntarse si es correcto que se calcule de esa manera o si se requiere que el calculo del efectivo disponible incluya el fondo inicial de la caja en turno.
Validación
No aplica.
Notificación de resolución
Especificar la lista de usuarios que deben ser notificados al momento que se ha confirmado la resolución de la incidencia.
Incidencia relacionada
INC 2024-042146
INC 2024-042146
Glosario
Revisa el glosario del equipo de soporte de Farmacias del ahorro aquí
|
آخر التحديثات
Informes 15 أكتوبر، 25
VENT-FORMAS_PAGOS_01_Forma de pago TPV 30 يناير، 24
DEV_VENTAS_11_Solicitud de reversa 30 يناير، 24
DEV_VENTAS_08_Solicitud de reversa - cobro doble 11 ديسمبر، 23
REQ 2023-313651 - REPORTE DE OBSEQUIO NO REDIMIDO 11 ديسمبر، 23
BONIFICACION_03_Diferencia ticket vs Sistema 10 ديسمبر، 23
|
أكثر شيوعاً
VENT_SERVICIOS_01_Evento con Monedero 4 مشاهدات
Informes 0 مشاهدات
VENT-FORMAS_PAGOS_01_Forma de pago TPV 0 مشاهدات
|