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
La colaboradora al realizar el cobro el sistema se pasmó y marcó la venta no procesada, al volver a entrar a farmax corroboro si la venta aparecía registrada y no estaba por lo cual procedió a hacer la venta de nuevo, pasado los 5 min corroboró de nuevo ya cuando el cliente se había retirado y la venta está registrada doble por lo tanto tiene un faltante de $1,090 y dos medicamentos en negativo
Tipo de Sistema: Farmax
Plaza: COATZACOALCOS
Sucursal: Las choapas
Núm. Sucursal + ID Sucursal: 1830
Folio de venta: V18302200028729
Impacto a la operación
El impacto de la operación es media en virtud de que la operación no se ve comprometida por esta incidencia.
Criticidad
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 |
Usuario: Contraseña: IP: 10.0.1.195 |
Procedimiento de diagnóstico
Se detecto en el sistema que realizaron dos ventas con el mismo monto, por lo tanto el turno de la caja al momento de realizar su corte de cierre, le indicaba que faltaban $1,500 pesos.
Paso 1: Revisar el número de ticket que contenga el folio de la venta, en caso de no venir se le solicitará a farmacias que si nos pueden agregar el folio de la transacción (V18302200028729 ).
Paso 2: Revisar en la POSDB el folio de la transacción con el siguiente query
declare @id uniqueidentifier
declare @idDev uniqueidentifier
declare @folio varchar(max)
declare @promoId int
--select * from genProgramaLealtadBitacoraReg (nolock) where foliotransaccion in ('V22622100001715' ,'V15632200006592')
--and idTransaccion in( 'DF92A4E4-BE75-EE11-8EA6-DC4A3E66F59D','DED81CA9-C688-EE11-89B2-A0481CA47B2D')
--select top 1 * from genpromociones (nolock) where codigopromocion = 88924
select @id = idtransaccion, @folio = folioTransaccion from trntransaccionescab(nolock)where foliotransaccion = 'V18302200028729'
select @promoId = codigopromocion from genVentasPrecioModificacion(nolock)where idtransaccion = @id
select 'trnTransaccionesCab',* from trnTransaccionesCab(nolock) where idTransaccion = @id
select 'trntransaccionesdet',* from trntransaccionesdet(nolock) where idTransaccion = @id
select 'genMovimientosCajascab',* from genMovimientosCajascab(nolock) where codigomovimientocaja in (select codigomovimientocaja from trntransaccionescab(nolock) where idtransaccion = @id)
select 'genMovimientosCajasdet',* from genMovimientosCajasdet(nolock) where codigomovimientocaja in (select codigomovimientocaja from trntransaccionescab(nolock) where idtransaccion = @id)
--select 'genMovimientosCajasdet',* from genMovimientosCajasdet(nolock) where codigomovimientocaja in ('B88A6E5B-72A2-ED11-B23B-922F48335A02')
select 'genMovimientosCajasMsiDet',* from genMovimientosCajasMsiDet(nolock) where codigomovimientocaja in (select codigomovimientocaja from trntransaccionescab(nolock) where idtransaccion = @id)
--select 'genMovimientosCajasMsidet',* from genMovimientosCajasMsidet(nolock) where codigomovimientocaja in (select codigomovimientocaja from trntransaccionescab(nolock) where idtransaccion = @id)
SELECT 'venturnoscajareg',* FROM venturnoscajareg(nolock) WHERE codigoTurno IN (select codigoTurno from genMovimientosCajascab(nolock) where codigomovimientocaja in (select codigomovimientocaja from trntransaccionescab(nolock) where idtransaccion = @id))
select 'genFormasPagosElectronicas',* from genFormasPagosElectronicas(nolock) where folioventa = @folio order by fechaActualizacion
select 'genVentasPrecioModificacion',* from [dbo].[genVentasPrecioModificacion](nolock) where idtransaccion = @id
--select 'genPromociones', * from genPromociones where codigopromocion = @promoId
select 'trnRecompensasProgramaLealtad',* from [dbo].[trnRecompensasProgramaLealtad](nolock) where idtransaccion = @id
select 'genProgramaLealtadBitacoraReg',* from genProgramaLealtadBitacoraReg (nolock) where idtransaccion = @id
SELECT 'genRecetasTransacciones',* FROM genRecetasTransacciones(nolock) where idTransaccion = @id
select 'genRecetasCab',* from genRecetasCab(nolock) where codigoReceta IN (SELECT codigoReceta FROM genRecetasTransacciones(nolock) where idTransaccion = @id)
select @idDev = idVenDevoluciones from venDevolucionesCab(nolock) where idTransaccionVenta = @id
select 'venDevolucionesCab',* from venDevolucionesCab(nolock) where idTransaccionVenta = @id
select 'venDevolucionesDet',* from venDevolucionesDet(nolock) where idVenDevoluciones IN (select IdVenDevoluciones from venDevolucionesCab(nolock) where idTransaccionVenta = @id)
select 'genMovimientosCajascab',* from genMovimientosCajascab(nolock) where codigomovimientocaja in (select codigomovimientocaja from venDevolucionesCab(nolock) where idTransaccionVenta = @id)
select 'genMovimientosCajasdet',* from genMovimientosCajasdet(nolock) where codigomovimientocaja in (select codigomovimientocaja from venDevolucionesCab(nolock) where idTransaccionVenta = @id)
select 'genFormasPagosElectronicas',* from genFormasPagosElectronicas(nolock) where folioventa IN ( select folioDevolucion from venDevolucionesCab(nolock) where idTransaccionVenta = @id) order by fechaActualizacion
Paso 3: Se valido que la venta tuviera su estatus en “V” que significa viva(o) esto se visualiza en la tabla trnTransaccionesCab y su estatus de método de pago en “A” que significa aplicada.


Paso 4: Se obtuvo todo el concentrado de las ventas que realizo el corte de turno, esto se realiza obteniendo el codigoTurno en la tabla genMovimientosCajasdet, copiamos y modificamos el siguiente query
use POSDB_OR
select distinct c.codigoMovimientoCaja, c.folioOperacion
from genMovimientosCajasCab (nolock) c
inner join genMovimientosCajasDet (nolock) d on c.codigoMovimientoCaja = d.codigoMovimientoCaja
left join genMovimientosCajasMsiDet (nolock) msi on msi.codigoMovimientoCaja = c.codigoMovimientoCaja
where ((c.tipoMovimiento = 'I' and c.tipoTransaccion <> 'PI') or (c.tipoMovimiento = 'E' and c.tipoTransaccion = 'R'))
and (d.estatusFormaPago = 'A' or msi.estatusFormaPago = 'A')
and c.codigoTurno in ('5B30EDA1-A566-EE11-B353-9C7BEF390D09')
--and c.codigoTurno in ('9DEBB66A-EEF4-ED11-9133-DC4A3E77A829')-- 9DEBB66A-EEF4-ED11-9133-DC4A3E77A829, C918E747-D1F4-ED11-A006-DC4A3E77A829
order by 2
Paso 5: Te arroja como resulta el total de ventas que realizo el turno de la caja y sí visualizamos las ventas, detectamos que otra venta tenía el mismo método de pago, los mismos SKU´S, el mismo total y subtotal, marcándonos el faltante que reportan en el ticket.
V18302200028730
Procedimiento de solución
En este caso se encontraron las dos ventas que estaban duplicadas por lo tanto se tendría que cancelar una para que hiciera el mach y no hiciera falta el dinero reportado:
Se contesto en el ticket solicitando;
Mensaje;
Me podrían indicar de favor que folio de venta se le entrego al cliente si fue V18302200028729 o V18302200028730.
Una vez que nos indicaron que ticket o folio se le entregó al cliente, procedemos a cancelar la otra venta en este caso V18302200028729
Se cancela la venta y debemos reprocesarla para que pueda ser consumida hacia el STG y que su estatus cambie de V a C, que es cancelada(o).
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 2023-373775
Glosario
Revisa el glosario del equipo de soporte de Farmacias del ahorro aquí