Cajero Ecommerce con faltante/sobrante

Asociado reporta que cuando intenta conciliar el corte de cajero ecommerce le aparece un faltante/sobrante por cierta cantidad 

Error: No puede conciliar al cajero ecommerce por una discrepancia en la conciliación. 

En estos escenarios el asociado observa un faltante al conciliar el cajero ecommerce el cual es visual ya que en BD no existe tal discrepancia. Esto se debe a que los pagos del tender 32 Pay at Store se realizaron en tienda en diversas formas de pago. 

Balance – verificación Corte de Cajeros

DECLARE @Date datetime = '2024-07-17' --Dia de Operacion
DECLARE @Cashier int = 	40467                  --Employee  9995, 9997 
DECLARE @Emp int = (Select employeeno from employee where employeeno = @Cashier or payrollid = @Cashier)

--SP PARA FORZAR EL CORTE FINAL DE CAJERO ECOMMERCE
--exec spWithdrawalEccomerce '2023-03-06'
Select GETDATE() as 'HORA ACTUAL', 'CIERRE DE TIENDA', ProgStartTim, EOPStatus, AcctStatus, CurrentDate, CurRptDate, Progname,Lasttran,* FROM AcctPeriod order by getdate() desc

/* Cierre de caja general */
SELECT @@SERVERNAME AS 'Server Name'  
SELECT 'CIERRE CAJA GENERAL', * FROM STORE_FinalTenderTotals WHERE CAST(Date as date) = @Date

--update STORE_FinalTenderTotals set status = 'Approved' where date = '2023-12-24 18:37:05.133' and status = 'Reviewed'

--eliminar corte de caja general
--delete from STORE_FinalTenderTotals where date = '2024-04-16 22:25:18.453' and transmitted = 0
/* Conciliación de cajero */--4629
SELECT * FROM CashierBalances WHERE Date = @Date AND EmployeeNo = @Emp
--ELIMINAR CONCILIACION DE CAJERO--
--delete from cashierbalances where employeeno = 376 and date = '2024-06-27'
SELECT TABadge, JobTitle, * FROM Employee WHERE EMPLOYEENO = @Emp OR PayrollId = @Emp
/* Encabezado del corte */
SELECT * FROM STORE_Withdrawals WHERE Cast(Date as date) = @Date and EmployeeNo = @Emp

SELECT @@SERVERNAME AS 'Server Name'  
BEGIN	
SELECT TenderCode AS 'Tipo de pago', Cajas, Cortes--, convert(money,Cajas)-Isnull(convert(money,Cortes),0) 'Diferencia' 
FROM(

	/* Información de cortes */
	SELECT 
		CONCAT(DEN.TenderCode, ' - ', TN.[Description]) AS TenderCode,
		FORMAT(SUM(WDE.TotalPrice), 'C', 'en-us') AS Amount,
		'Cortes' AS Type
	FROM STORE_Withdrawals AS WD
		JOIN STORE_WithdrawalDenominations AS WDE ON WD.WithdrawalId = WDE.WithdrawalId
		JOIN STORE_Denominations AS DEN ON WDE.DenominationId = DEN.DenominationId
		JOIN TenderCntrl TN ON DEN.TenderCode = TN.TenderCode
	WHERE WD.WithdrawalId IN (SELECT WithdrawalId FROM STORE_Withdrawals WHERE EmployeeNo = @Emp)
		AND CAST(WD.Date as date) = @Date
	GROUP BY DEN.TenderCode, TN.[Description]

	UNION 

	/* Información de cajas */
	SELECT 
		CONCAT(TTE.TenderCode, ' - ', TN.[Description]) AS TenderCode,
		FORMAT(SUM(tte.TenderAmount), 'C', 'en-us') AS Amount,
		'Cajas' AS Type
	FROM TranTotal TT
		JOIN TranTender TTE on TT.TranNumber = TTE.TranNumber and TT.TranDate = TTE.TranDate and TT.RegisterID = TTE.RegisterID
		JOIN Employee AS EMP ON TT.EmployeeNo = EMP.EmployeeNo
		JOIN TenderCntrl TN ON TTE.TenderCode = TN.TenderCode
	WHERE TT.TranDate = @Date
		AND TT.EmployeeNo = @Emp
		AND TT.OperatMode = 0
		AND TT.RecType = 'N'
		AND TT.TypeOfSale NOT IN (3,49,88)
		AND TTE.TenderCode != 14
	GROUP BY TTE.TenderCode, TN.[Description]
) M
PIVOT
	(
		MAX(Amount) FOR Type in (Cajas,Cortes)
	) piv;
END


/* Detalle del corte final */
SELECT 'DETALLE DE CORTE FINAL', * FROM STORE_Withdrawaldenominations wd JOIN STORE_Withdrawals w ON wd.WithdrawalId = w.Withdrawalid
WHERE Cast(Date as date) = @Date and EmployeeNo = @Emp and w.DocumentType like '%final%'

/* Transacciones del cajero */
SELECT tt.posted, tt.Endtime, tt.RecType, tt.OperatMode, te.TranDate, tt.RegisterId, tt.TranNumber, tt.EmployeeNo, te.TenderCode, te.TenderAmount, SigSequence
FROM TranTotal tt LEFT JOIN TranTender te
ON te.TranDate = tt.TranDate and te.RegisterId = tt.RegisterId and te.TranNumber = tt.TranNumber
WHERE tt.TranDate = @Date and EmployeeNo = @Emp
ORDER BY EndTime

Para mitigar este escenario primero tenemos que replicarlo, procedemos a entrar al SMS con nuestro usuario y posteriormente dirigirnos a Balanceo de efectivo/conciliacion de cajeros 

Observamos los tenders al aprobar el corte final. Balanceo de efectivo/corte final de cajero 

Buscamos en la lupa y anotamos el numero de cajero ecommerce 9997 buscamos y aceptamos. 

Al revisar en conciliacion se ve de la siguiente manera: 

Si observamos el escenario al revisar el corte para aprobacion aparece la cantidad en tender 32 Pay at store, pero al validar la conciliacion aparece el tender que se utilizo en tienda lo cual es correcto y no es una falla, al validar en BD observamos la siguente logica 

La orden se genero en linea y el tender en el cual se registra es en 32 Pago en tienda y al llegar a tienda el cliente decide pagar en el tipo de pago que mas le convenga es por eso que aparece de esa forma, podemos corroborar que al hacer el final de caja general no hay ninguna diferencia. 

Balanceo de efectivo/corte final de caja general

Estos tickets se dejan cancelados como consulta general o no hay falla o degradación

Loading

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *