Mitigación de deletes 

Asociado no observa una transacción, como si no existiera o pareciera un salto.

Al intentar revisar el ticket electrónico, facturar, hacer corte, no aparecen los datos de la transacción. 

Para validar si es un salto falso y proceder a cambiar a tipo N, hay 3 tablas que deben de coincidir en sus totales y los skus deben estar en posted 1. 

Si estas condiciones se cumplen procedemos a mitigar, de lo contrario hay que analizar el porque está en delete que puede ser tender duplicado o uno de los totales de las tablas no coinciden 

Query: Consulta de tranes

select Substring(@@servername,6,4) 'Tienda'

Declare @date Date = '2024-07-17'
Declare @Tran INt = 6528            	                     
Declare @Reg INT = 50


Select 'Tranfile', * from [TranFile] where trandate = @date and registerid = @reg and trannumber = @tran
Select 'TranfileSale', * from [TranFile_Sale_Queue] (NoLock) where trandate = @date and registerid = @reg and trannumber = @tran
SELECT 'TRANTOTAL', TT.TxnTotal, TT.TaxAmount, TT.TaxableSales, TT.deposits, TT.applieddep, TT.OrderDisc, TT.posted, TT.endTime, tt.RecType, tt.OperatMode, tt.StoreNumber, tt.DocNumber, tt.RegisterID, tt.TranNumber, tt. trandate, tt.TypeOfSale, tos.Description, tt. *, TOS.DESCRIPTION FROM TranTotal TT JOIN TOS ON TT.[TYPEOFSALE] = TOS.CODE WHERE TT.trandate = @date AND TT.registerid = @reg AND TT.trannumber = @tran


SELECT 'TRANDETAIL', t.SubClass, t.posted, t.miscacct, t.SKU, t.UPC, ir.PODesc as Description,  t.RetailPrice,  CASE i.TaxCode WHEN 1 THEN t.RetailPrice * 1.16 WHEN 2 THEN t.RetailPrice * 1.08 WHEN 0 THEN t.RetailPrice * 1  END AS RetailPriceIVA, t.Quantity,  CASE i.TaxCode WHEN 1 THEN t.RetailPrice * 1.16 WHEN 2 THEN t.RetailPrice * 1.08 WHEN 0 THEN t.RetailPrice * 1  END * t.Quantity AS RetailPriceIVAQuantity, t.RegisterID, t.TranNumber, t.TypeOfSale, t.TranDate, t.orderdisc, * FROM [TranDetail] t left JOIN [ItemPLU] i ON t.SKU = i.SKU left JOIN [ItemReplen] ir ON t.SKU = ir.SKU WHERE t.trandate = @date AND t.registerid = @reg AND t.trannumber = @tran ORDER BY t.Posted DESC

--suma de todo beta
SELECT 'TranDetail.TOTAL', SUM((ExtendedAmt + PriceAllow + OrderDisc) + ((ExtendedAmt + PriceAllow + OrderDisc)* Rate / 100)) AS 'TranDetail Total' FROM TranDetail L LEFT JOIN Tax X ON L.TaxCode = X.TaxCode WHERE trandate = @date AND registerid = @reg AND trannumber = @tran





Select 'Trantender', td.posted, td.OperatMode, td.RegisterID, td.TranNumber, td.TypeOfSale, td.TranDate, td.TenderCode, tc.Description, td.TenderAmount, td.Transmitted,td.TenderAuth, td.SigSequence, * from [TranTender] as td
inner join tendercntrl as tc on td.TenderCode = tc.Tendercode
where td.trandate = @date and td.registerid = @reg and td.trannumber = @tran

select SUM (TenderAmount) as 'TenderAmount.total' from [TranTender] where trandate = @date and registerid = @reg and trannumber = @tran
Select 'TranTendData',* from [TranTendData] where trandate = @date and registerid = @reg and trannumber = @tran
Select * from [TranTax] where trandate = @date and registerid = @reg and trannumber = @tran
Select * from [TranZRead] where trandate = @date and registerid = @reg and trannumber = @tran
Select * from [TranZTender] where trandate = @date and registerid = @reg and trannumber = @tran
Select 'ElectronicJournal', * from [ElectronicJournal] (NoLock) where trandate = @date and registerid = @reg and trannumber = @tran
/*Datos de Cliente*/
Declare @Customer Nvarchar(13)
Select @Customer = Accountno From [TranTotal] (NoLock) where trandate = @date and registerid = @reg and trannumber = @tran
SELECT  CustomerID AS Cuenta, [Type],        CASE [Type]           WHEN 'D' THEN 'AR'          WHEN 'C' THEN 'COMERCIAL'          ELSE 'NORMAL'        END AS Tipo,         CustTypeNo AS ClienteNo, 		CASE WHEN [Type] IN ('C','D') AND CustTypeNo NOT IN (1,7,10,15,11,18,19,20)              THEN 'PRO'              ELSE 'NORMAL'         END AS CustStatus,CASE 			 WHEN CustStatus IN ('A','Z') THEN 'ACTIVO'			 WHEN CustStatus IN ('L') THEN 'LEGAL' 			 WHEN CustStatus IN ('H') THEN 'SUSPENDIDO' 			 WHEN CustStatus IN ('D') THEN 'ELIMINADO' 			 WHEN CustStatus IN ('I') THEN 'INACTIVO'              ELSE CustStatus         END AS Estatus,CustStatus,PriceCode,*FROM Customer WHERE CustomerId = @Customer

Transaccion DELETE no mitigable 

Las transacciones no mitigables normalmente son las de la caja 80 (ecommerce) y van ligadas a una orden, para esto el team de desarrollo envía un correo semanal al equipo de negocio para solución operativa. 

Ingresamos fecha, caja y transacción y ejecutamos todo el query 

Tablas que deben coincidir en sus totales 

Tabla campo 

Trantotal Txntotal 

Trandetail.total total 

tenderAmount.total total 

Si no coinciden por un rango de 99c$ la delete no se puede mitigar. 

transacción DELETE mitigable (mismo día) 

Una transacción es mitigable cuando las tres tablas mencionadas anteriormente coinciden y todos los SKUS están posteados.

Procedemos a ejecutar el update para cambiar el estatus de la transaccion 

--CAMBIAR A TIPO N
--Update [Trantotal] SET rectype = 'N', posted= 0 where trandate = @date and registerid = @reg and trannumber = @tran

–reemplazamos los datos marcados con @ con el dato real de la transacción 

También se puede descomentar, ejecutar y volver a comentar esta línea:

NOTA: En algunos escenarios la orden en vez de contar con SKUs puede contener Fees, 

por lo que es correcto que quede en posted 0, no descuenta de inventario. 

Podemos revisar el EJ: electric Journal para corroborar.  

En estos casos se trata de una Instalación, como los montos coinciden es mitigable.  

TRANSACCION DELETE DUPLICIDAD EN TENDERS (mismo dia) 

Query: Consulta de tranes. Apartado: PROCESO PARA CORREGIR UNA DELETE POR TENDER DUPLICADO 

--*******PROCESO PARA CORREGIR UNA DELETE POR TENDER DUPLICADO.*******

--PASO 1 IDENTIFICAR Y ELIMINAR TENDER

--select * from trantender where trandate = '2024-07-30' and registerid = 51
--and trannumber = 5507 and tendercode = 5   and TenderAmount = '123.00'  and TenderAuth = 816226 and sigsequence = 1


--delete from trantender where trandate = '2024-06-28' and registerid = 51 and trannumber = 9494 and tendercode = 5 
-- and TenderAmount = '123.00' and TenderAuth = 816226   and sigsequence = 1

--hacer update en caso de que se corte a efectivo todo.
--update Trantender SET TenderAmount = '24425.20' where trandate = '2023-01-10' and registerid = 6 and trannumber = 7653 and tendercode = 1 and TenderAmount = '29756.20' 

--PASO 2 ELIMINAR TRANLOG

--Declare @date Date = '2024-06-28'
--Declare @Tran INt = 9494
--Declare @Reg INT = 51
--delete from tranlog where TranDate = @date and RegisterID = @Reg and TranNumber = @Tran


--PASO 3 CAMBIAR A POSTED 0 Y RECTYPE N --para fechas diferidas realizar este paso con el PASO 5.
--Update [TranTotal] SET Rectype = 'N', POSTED = 0  where trandate = @date and registerid = @reg and trannumber = @tran

---PASO 4 INSERTAR TRANFILE PARA QUE SE POSTEED
--Insert Tranfile Select Trandate,Registerid,Trannumber,0,0,0 From Trantotal where trandate = @date and registerid = @reg and trannumber = @tran

Aquí se observa que el total de tenders es mayor que las anteriores dos tablas, para mitigarlo, primero identificamos el tender a eliminar y luego procedemos a hacer el select. 

select * from trantender where trandate = ‘2023-08-09’ and registerid = 3 and trannumber = 1393 and tendercode = 1 and sigsequence = 4 

En este caso se agrega el campo sigsequence porque hay 2 tenders identicos. 

Una vez identificado con el select el tender a eliminar procedemos a copiar al delete desde el where. Y lo ejecutamos

Una vez eliminado el tender consultamos nuevamente la transaccion y ya deben de coincidir los montos. 

Procedemos a ejecutar el paso 2, 3 y 4. uno a la vez. Descomentar, ejecutar, comentar. 

Al aplicar estos pasos observaremos que se generó el tranfile y se empezaran a postear los skus y los tenders.

Cuando las dos tablas de tranfile y tranfileSale se consuman, la transacción estara mitigada en su totalidad. 

Loading

Deja una respuesta

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