Snapshot Errors

Snapshots | Divide by Zero Error

  

Problem | Details

This is a NULLIF check in place in the stored procedure Dbo.MiscDetails
it checks if Qty of Transaction and Qty of NettTotals are both Zero if they are not for example if NettTotal does have a qty and qty of transaction does = zero then it fails to execute the SQL query

 Resolution | Details

  1. Run SSMS

  2. Copy and Paste the Altered Prodecure against the HO or Single Venue Site only 

  3. Execute the SQL Script

The Stored procedure will need to be re-applied, if the site has been upgraded, as upon upgrade Store Procedures will be reset to Default, until a permanent fix has been supplied

/****** Object:  StoredProcedure [dbo].[MiscDetails]    Script Date: 04/04/2023 14:53:13 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[MiscDetails]

@ShiftFrom int,
@ShiftTo int,
@VenueID int

AS

DECLARE @AllowedVenues TABLE(VenueID INTEGER)
INSERT INTO @AllowedVenues EXEC dbo.VenuesGetByID @VenueID

DECLARE @TempA TABLE (
VenueID int, StoreID int, WorkstationID int, ShiftID int, StoreGroup int, VenueGroup int ,
Till varchar(max), Store varchar(max), Venue varchar(max), NoSales float, Cancelled float, [Returns] float, Covers float,
NettTotal float, QtyOrders float, AverageOrder float, GrossSales float,
TaxTotals_1 float, TaxTotals_2 float, TaxTotals_3 float, TaxTotals_4 float, TaxTotals_5 float, TaxTotals_6 float, TaxTotals_7 float,TaxTotals_8 float,
DrawerTotal float, AccountCharged float, AccountPayments float, AccountTurnover float, TotalTableCharges float, TotalTablePayments float)

INSERT INTO @TempA
SELECT
Venue.VenueID, Store.StoreID , Workstation.WorkstationID, TillSummaries.ShiftID, Store.StoreGroup, Venue.VenueGroup, Workstation.Name AS Till, Store.Name AS Store, Venue.Name AS Venue, sum(TillSummaries.QNoSales) as 'NoSales', sum(TillSummaries.Cancelled) as 'Cancelled', sum(TillSummaries.Returns) as 'Returns'
, sum(TillSummaries.TableCovers0 + TillSummaries.TableCovers1 + TillSummaries.TableCovers2 + TillSummaries.TableCovers3 + TillSummaries.TableCovers4 + TillSummaries.TableCovers5 + TillSummaries.TableCovers6 + TillSummaries.TableCovers7) as 'Covers', sum(TillSummaries.NettTotal) as 'NettTotal', sum(TillSummaries.QTotalOrders) as 'QtyOrders',
sum(TillSummaries.NettTotal / NULLIF(TillSummaries.QTotalOrders, 0)) as 'AverageOrder', sum(TillSummaries.GrossSales) as 'GrossSales', sum(TillSummaries.TaxTotals_1) as 'TaxTotals_1', sum(TillSummaries.TaxTotals_2) as 'TaxTotals_2', sum(TillSummaries.TaxTotals_3) as 'TaxTotals_3', sum(TillSummaries.TaxTotals_4) as 'TaxTotals_4', sum(TillSummaries.TaxTotals_5) as 'TaxTotals_5', sum(TillSummaries.TaxTotals_6) as 'TaxTotals_6', sum(TillSummaries.TaxTotals_7) as 'TaxTotals_7', sum(TillSummaries.TaxTotals_8) as 'TaxTotals_8', sum(TillSummaries.TotalinDrawer) as 'DrawerTotal', sum(TillSummaries.AccountCharged) as 'AccountCharged', sum(TillSummaries.AccountPayments) as 'AccountPayments', sum(TillSummaries.AccountTurnover) as 'AccountTurnover', sum(TillSummaries.TableCharged0 + TillSummaries.TableCharged1 + TillSummaries.TableCharged2 + TillSummaries.TableCharged3 + TillSummaries.TableCharged4 + TillSummaries.TableCharged5 + TillSummaries.TableCharged6 + TillSummaries.TableCharged7) as 'TableCharges',
sum(TillSummaries.TablePaid0 + TillSummaries.TablePaid1 + TillSummaries.TablePaid2 + TillSummaries.TablePaid3 + TillSummaries.TablePaid4 + TillSummaries.TablePaid5 + TillSummaries.TablePaid6 + TillSummaries.TablePaid7) as 'TablePayments'

FROM Store
INNER JOIN Venue ON Store.VenueID = Venue.VenueID
INNER JOIN Workstation ON Store.StoreID = Workstation.StoreID
INNER JOIN TillSummaries ON Workstation.WorkstationID = TillSummaries.TillOpID CROSS JOIN Global
INNER JOIN @AllowedVenues av ON av.VenueID = Venue.VenueID
WHERE
ShiftID >= @ShiftFrom
AND ShiftID <= @ShiftTo
GROUP BY Venue.VenueID, Store.StoreID , Workstation.WorkstationID, TillSummaries.ShiftID, Store.StoreGroup, Venue.VenueGroup, Workstation.Name , Store.Name , Venue.Name


select
a.VenueID, a.StoreID , a.WorkstationID, a.ShiftID, a.StoreGroup, a.VenueGroup, a.Till, a.Store, a.Venue, a.NoSales , a.Cancelled, a.[Returns], a.Covers, a.NettTotal, a.QtyOrders, a.AverageOrder, a.GrossSales, a.TaxTotals_1, a.TaxTotals_2, a.TaxTotals_3, a.TaxTotals_4, a.TaxTotals_5, a.TaxTotals_6, a.TaxTotals_7, a.TaxTotals_8, a.DrawerTotal, a.AccountCharged, a.AccountPayments, a.AccountTurnover, a.TotalTableCharges, a.TotalTablePayments
from @TempA a
GO

 Issue Links

  • BEPOZ-5945 - MiscDetails stored procedure is causing a divide by zero error Implementing