public DataTable GetAnalysisDetails(int SpotCheckDataType, DateTime StartDate, DateTime EndDate) { DataTable dtAnalysis = new DataTable(); decimal CashIn = 0; decimal CashOut = 0; decimal TotalCashIn = 0; decimal TotalCashOut = 0; decimal Totalhandle = 0; decimal TotalNetWin = 0; int InstallationNo = 0; int Numberofdays = 0; int TotalGamesBet = 0; //int TotalBills = 0; //int TotalTicketsIn = 0; //int TotalCoinsIn = 0; //int TotalCoinsOut = 0; //int TicketsOut = 0; //int TotalHandpay = 0; //int TotalJackpot = 0; //int ProgressiveHandpay = 0; decimal TotalBills = 0; decimal TotalTicketsIn = 0; decimal TotalCoinsIn = 0; decimal TotalCoinsOut = 0; decimal TicketsOut = 0; decimal TotalHandpay = 0; decimal TotalJackpot = 0; decimal ProgressiveHandpay = 0; decimal PriceOfPlay = 1; decimal InstallationTokenValue = 0; decimal MDA = 0; decimal CashableEFTIn = 0; decimal CashableEFTOut = 0; decimal NonCashableEFTIn = 0; decimal NonCashableEFTOut = 0; decimal WATIn = 0; decimal WATOut = 0; decimal TotalNonCashableTicketsIn = 0; decimal TotalNonCashableTicketsOut = 0; decimal TotalMDA = 0; DateTime InstallationEndDate; SpotCheck spotCheckData; string reportType = string.Empty; dtAnalysis.Columns.Add("Installation_No"); dtAnalysis.Columns.Add("Bar_Pos_Name"); dtAnalysis.Columns.Add("Stock_No"); dtAnalysis.Columns.Add("Name"); dtAnalysis.Columns.Add("LastMeterUpdate"); dtAnalysis.Columns.Add("GMUtoMachine"); dtAnalysis.Columns.Add("GMUtoServer"); dtAnalysis.Columns.Add("Bills_In", typeof(decimal)); dtAnalysis.Columns.Add("Coin_In", typeof(decimal)); dtAnalysis.Columns.Add("Coin_Out", typeof(decimal)); dtAnalysis.Columns.Add("Tickets_In", typeof(decimal)); dtAnalysis.Columns.Add("Tickets_Out", typeof(decimal)); dtAnalysis.Columns.Add("Non_Cashable_Tickets_In", typeof(decimal)); dtAnalysis.Columns.Add("Non_Cashable_Tickets_Out", typeof(decimal)); dtAnalysis.Columns.Add("Handpay", typeof(decimal)); dtAnalysis.Columns.Add("Jackpot", typeof(decimal)); dtAnalysis.Columns.Add("Prog_Handpay", typeof(decimal)); dtAnalysis.Columns.Add("Cash_In", typeof(decimal)); dtAnalysis.Columns.Add("Cash_Out", typeof(decimal)); dtAnalysis.Columns.Add("Handle", typeof(decimal)); dtAnalysis.Columns.Add("AvgBet", typeof(decimal)); dtAnalysis.Columns.Add("NetWin", typeof(decimal)); dtAnalysis.Columns.Add("MDA", typeof(decimal)); if (Settings.IsAFTEnabledForSite) { dtAnalysis.Columns.Add("CashableEFTIn", typeof(decimal)); dtAnalysis.Columns.Add("CashableEFTOut", typeof(decimal)); dtAnalysis.Columns.Add("NonCashableEFTIn", typeof(decimal)); dtAnalysis.Columns.Add("NonCashableEFTOut", typeof(decimal)); dtAnalysis.Columns.Add("WATIn", typeof(decimal)); dtAnalysis.Columns.Add("WATOut", typeof(decimal)); } try { switch (SpotCheckDataType.ToString()) { case "1": reportType = "DAY"; break; case "2": reportType = "DROP"; break; case "3": reportType = "WEEK"; break; case "4": reportType = "MONTH"; break; } foreach (DataRow InstallationDetail in (new CommonDataAccess()).GetInstallationDetailsForReports(reportType).Rows) { if (InstallationDetail["Installation_No"] != DBNull.Value) { PriceOfPlay = 1; InstallationNo = Convert.ToInt32(InstallationDetail["Installation_No"]); spotCheckData = new BMC.Transport.CashDeskOperatorEntity.SpotCheck(); spotCheckData.InstallationNo = InstallationNo; spotCheckData.DateTimeStamp = DateTime.Now; spotCheckData.Date = DateTime.Now; InstallationEndDate = ((InstallationDetail["End_Date"]) != DBNull.Value) ? Convert.ToDateTime(InstallationDetail["End_Date"]) : DateTime.Now.AddDays(1); switch (SpotCheckDataType) { case 1: spotCheckData.StartOfDay = 1; //if (InstallationEndDate.Date < System.DateTime.Now.Date) continue; break; case 2: spotCheckData.Type = 2; spotCheckData.StartOfDay = 2; //if (InstallationEndDate.Date <= System.DateTime.Now.Date) continue; break; case 3: StartDate = analysisDataAccessHandler.GetMonthOrWeekStartDate().Rows[0]["WeekStart"].ToString().ReadDate(); spotCheckData.Date = StartDate; //if (InstallationEndDate.Date <= StartDate.Date) continue; break; case 4: StartDate = analysisDataAccessHandler.GetMonthOrWeekStartDate().Rows[0]["MonthStart"].ToString().ReadDate(); spotCheckData.Date = StartDate; //if (InstallationEndDate.Date <= StartDate.Date) continue; break; } analysisDataAccessHandler.GetAnalysisDetails(ref spotCheckData); InstallationTokenValue = (InstallationDetail["installation_token_value"]).ToString().GetDecimal(); PriceOfPlay = (InstallationDetail["installation_Price_Of_Play"]).ToString().GetDecimal(); PriceOfPlay = PriceOfPlay == 0 ? 1 : PriceOfPlay; Totalhandle += (spotCheckData.CoinsIn * (PriceOfPlay / 100)); DataRow dr = dtAnalysis.NewRow(); dr["Installation_No"] = InstallationDetail["Installation_no"].ToString(); dr["Bar_Pos_Name"] = InstallationDetail["Bar_Pos_Name"].ToString(); dr["Stock_No"] = InstallationDetail["Stock_No"].ToString(); dr["Name"] = InstallationDetail["Name"].ToString(); dr["LastMeterUpdate"] = InstallationDetail["LastMeterUpdate"].ToString(); if (Convert.ToInt16(InstallationDetail["Datapak_PollingStatus"]) == 0) dr["GMUtoServer"] = "ERROR"; else dr["GMUtoServer"] = "OK"; if (Convert.ToInt16(InstallationDetail["GMU_Machine_Status"]) == 0) dr["GMUtoMachine"] = "ERROR"; else { if (Convert.ToInt16(InstallationDetail["Datapak_PollingStatus"]) == 0) dr["GMUtoMachine"] = "UNKNOWN"; else dr["GMUtoMachine"] = "OK"; } decimal Bills = 0; if (System.Globalization.CultureInfo.CurrentCulture.Name == "it-IT" || System.Globalization.CultureInfo.CurrentUICulture.Name == "it-IT" || (Settings.RegulatoryEnabled && Settings.RegulatoryType == "AAMS")) Bills = spotCheckData.Bill1 + (spotCheckData.Bill2 * 2) + (spotCheckData.Bill5 * 5) + (spotCheckData.Bill10 * 10) + (spotCheckData.Bill20 * 20) + (spotCheckData.Bill50 * 50) + (spotCheckData.Bill100 * 100) + (spotCheckData.Bill200 * 200) + (spotCheckData.Bill500 * 500); else if (Settings.Region == "AR") Bills = (spotCheckData.Bill2 * 2) + (spotCheckData.Bill5 * 5) + (spotCheckData.Bill10 * 10) + (spotCheckData.Bill20 * 20) + (spotCheckData.Bill50 * 50) + (spotCheckData.Bill100 * 100); else Bills = spotCheckData.Bill1 + (spotCheckData.Bill2 * 2) + (spotCheckData.Bill5 * 5) + (spotCheckData.Bill10 * 10) + (spotCheckData.Bill20 * 20) + (spotCheckData.Bill50 * 50) + (spotCheckData.Bill100 * 100); dr["Bills_In"] = Bills; dr["Tickets_In"] = spotCheckData.TicketsInserted / 100; dr["Coin_In"] = spotCheckData.TrueCoinIn * (InstallationTokenValue / 100); dr["Non_Cashable_Tickets_In"] = spotCheckData.NonCashableTicketsInserted / 100; dr["Non_Cashable_Tickets_Out"] = spotCheckData.NonCashableTicketsPrinted / 100; CashIn = (Bills + (spotCheckData.TicketsInserted / 100) + (spotCheckData.NonCashableTicketsInserted / 100) + (spotCheckData.TrueCoinIn * (InstallationTokenValue / 100))); CashOut = spotCheckData.TrueCoinOut * (PriceOfPlay / 100) + spotCheckData.TicketsPrinted / 100 + spotCheckData.HandPay * (PriceOfPlay / 100) + spotCheckData.Jackpot * (PriceOfPlay / 100) + spotCheckData.NonCashableTicketsPrinted / 100; if (Settings.IsAFTIncludedInCalculation) { CashIn += spotCheckData.CashableEFTIn / 100 + spotCheckData.NonCashableEFTIn / 100 + spotCheckData.WATIn / 100; CashOut += spotCheckData.CashableEFTOut / 100 + spotCheckData.NonCashableEFTOut / 100 + spotCheckData.WATOut / 100; } dr["Cash_In"] = CashIn; dr["Cash_Out"] = CashOut; TotalCashIn += CashIn; TotalCashOut += CashOut; dr["NetWin"] = CashIn - CashOut; dr["Handle"] = (spotCheckData.CoinsIn * (PriceOfPlay / 100)); Numberofdays += spotCheckData.NumberOfDays; if (spotCheckData.NumberOfDays > 0) MDA = (decimal)(CashIn - CashOut) / spotCheckData.NumberOfDays; else MDA = (decimal)(CashIn - CashOut); dr["MDA"] = MDA == 0 ? 0 : MDA; dr["Coin_Out"] = spotCheckData.TrueCoinOut * (InstallationTokenValue / 100); dr["Tickets_Out"] = spotCheckData.TicketsPrinted / 100; dr["Handpay"] = spotCheckData.HandPay * (PriceOfPlay / 100); dr["Jackpot"] = spotCheckData.Jackpot * (PriceOfPlay / 100); dr["Prog_Handpay"] = spotCheckData.ProgHandpay * (PriceOfPlay / 100); dr["AvgBet"] = spotCheckData.GamesBet == 0 ? (spotCheckData.CoinsIn * (PriceOfPlay / 100)) : (spotCheckData.CoinsIn * (PriceOfPlay / 100)) / spotCheckData.GamesBet; if (Settings.IsAFTEnabledForSite) { dr["CashableEFTIn"] = spotCheckData.CashableEFTIn / 100; dr["CashableEFTOut"] = spotCheckData.CashableEFTOut / 100; dr["NonCashableEFTIn"] = spotCheckData.NonCashableEFTIn / 100; dr["NonCashableEFTOut"] = spotCheckData.NonCashableEFTOut / 100; dr["WATIn"] = spotCheckData.WATIn / 100; dr["WATOut"] = spotCheckData.WATOut / 100; } if (System.Globalization.CultureInfo.CurrentCulture.Name == "it-IT" || System.Globalization.CultureInfo.CurrentUICulture.Name == "it-IT" || (Settings.RegulatoryEnabled && Settings.RegulatoryType == "AAMS")) TotalBills += spotCheckData.Bill1 + (spotCheckData.Bill2 * 2) + (spotCheckData.Bill5 * 5) + (spotCheckData.Bill10 * 10) + (spotCheckData.Bill20 * 20) + (spotCheckData.Bill50 * 50) + (spotCheckData.Bill100 * 100) + (spotCheckData.Bill200 * 200) + (spotCheckData.Bill500 * 500); else if (Settings.Region == "AR") TotalBills += (spotCheckData.Bill2 * 2) + (spotCheckData.Bill5 * 5) + (spotCheckData.Bill10 * 10) + (spotCheckData.Bill20 * 20) + (spotCheckData.Bill50 * 50) + (spotCheckData.Bill100 * 100); else TotalBills += spotCheckData.Bill1 + (spotCheckData.Bill2 * 2) + (spotCheckData.Bill5 * 5) + (spotCheckData.Bill10 * 10) + (spotCheckData.Bill20 * 20) + (spotCheckData.Bill50 * 50) + (spotCheckData.Bill100 * 100); TotalTicketsIn += spotCheckData.TicketsInserted / 100; TotalGamesBet += spotCheckData.GamesBet; TotalCoinsIn += Convert.ToDecimal(spotCheckData.TrueCoinIn * (InstallationTokenValue / 100)); TotalCoinsOut += Convert.ToDecimal(spotCheckData.TrueCoinOut * (InstallationTokenValue / 100)); TicketsOut += (decimal)(spotCheckData.TicketsPrinted / 100); TotalHandpay += Convert.ToDecimal(spotCheckData.HandPay * (PriceOfPlay / 100)); TotalJackpot += Convert.ToDecimal(spotCheckData.Jackpot * (PriceOfPlay / 100)); ProgressiveHandpay += Convert.ToDecimal(spotCheckData.ProgHandpay * (PriceOfPlay / 100)); TotalNonCashableTicketsIn += spotCheckData.NonCashableTicketsInserted / 100; TotalNonCashableTicketsOut += spotCheckData.NonCashableTicketsPrinted / 100; TotalMDA += MDA; if (Settings.IsAFTEnabledForSite) { CashableEFTIn += Convert.ToDecimal(spotCheckData.CashableEFTIn / 100); CashableEFTOut += Convert.ToDecimal(spotCheckData.CashableEFTOut / 100); NonCashableEFTIn += Convert.ToDecimal(spotCheckData.NonCashableEFTIn / 100); NonCashableEFTOut += Convert.ToDecimal(spotCheckData.NonCashableEFTOut / 100); WATIn += Convert.ToDecimal(spotCheckData.WATIn / 100); WATOut += Convert.ToDecimal(spotCheckData.WATOut / 100); } dtAnalysis.Rows.Add(dr); } } if (dtAnalysis.Rows.Count > 0) { DataRow SumOfRows = dtAnalysis.NewRow(); SumOfRows["Installation_No"] = string.Empty; SumOfRows["Bar_Pos_Name"] = "Total"; SumOfRows["Stock_No"] = string.Empty; SumOfRows["Name"] = string.Empty; SumOfRows["LastMeterUpdate"] = string.Empty; SumOfRows["Cash_In"] = TotalCashIn; SumOfRows["Cash_Out"] = TotalCashOut; SumOfRows["NetWin"] = (TotalCashIn - TotalCashOut); SumOfRows["Handle"] = Totalhandle; decimal TotalAvgBet = 0; if (TotalGamesBet == 0) TotalAvgBet = Totalhandle; else TotalAvgBet = Totalhandle / TotalGamesBet; //if (Numberofdays > 0) // MDA = (decimal)(TotalCashIn - TotalCashOut) /( dtAnalysis.Rows.Count * Numberofdays) ; //else // MDA = (decimal)(TotalCashIn - TotalCashOut) / dtAnalysis.Rows.Count; SumOfRows["AvgBet"] = Math.Round(TotalAvgBet, 2); SumOfRows["MDA"] = Math.Round(TotalMDA / (dtAnalysis.Rows.Count), 2);//Modified Total AvgDailyWin calculation CR#92149 Fix SumOfRows["Bills_In"] = TotalBills; SumOfRows["Tickets_In"] = TotalTicketsIn; SumOfRows["Tickets_Out"] = TicketsOut; SumOfRows["Coin_In"] = TotalCoinsIn; SumOfRows["Coin_Out"] = TotalCoinsOut; SumOfRows["Non_Cashable_Tickets_In"] = TotalNonCashableTicketsIn; SumOfRows["Non_Cashable_Tickets_out"] = TotalNonCashableTicketsOut; SumOfRows["Handpay"] = TotalHandpay; SumOfRows["Jackpot"] = TotalJackpot; SumOfRows["Prog_Handpay"] = ProgressiveHandpay; if (Settings.IsAFTEnabledForSite) { SumOfRows["CashableEFTIn"] = CashableEFTIn; SumOfRows["CashableEFTOut"] = CashableEFTOut; SumOfRows["NonCashableEFTIn"] = NonCashableEFTIn; SumOfRows["NonCashableEFTOut"] = NonCashableEFTOut; SumOfRows["WATIn"] = WATIn; SumOfRows["WATOut"] = WATOut; } dtAnalysis.Rows.InsertAt(SumOfRows, 0); } return dtAnalysis; } catch (Exception ex) { ExceptionManager.Publish(ex); } return new DataTable(); }
public DataTable GetAnalysisDetails(int SpotCheckDataType, DateTime StartDate, DateTime EndDate) { DataTable dtAnalysis = new DataTable(); decimal CashIn = 0; decimal CashOut = 0; decimal TotalCashIn = 0; decimal TotalCashOut = 0; decimal Totalhandle = 0; decimal TotalNetWin = 0; int InstallationNo = 0; int Numberofdays = 0; int TotalGamesBet = 0; //int TotalBills = 0; //int TotalTicketsIn = 0; //int TotalCoinsIn = 0; //int TotalCoinsOut = 0; //int TicketsOut = 0; //int TotalHandpay = 0; //int TotalJackpot = 0; //int ProgressiveHandpay = 0; decimal TotalBills = 0; decimal TotalTicketsIn = 0; decimal TotalCoinsIn = 0; decimal TotalCoinsOut = 0; decimal TicketsOut = 0; decimal TotalHandpay = 0; decimal TotalJackpot = 0; decimal ProgressiveHandpay = 0; decimal PriceOfPlay = 1; decimal InstallationTokenValue = 0; decimal MDA = 0; decimal CashableEFTIn = 0; decimal CashableEFTOut = 0; decimal NonCashableEFTIn = 0; decimal NonCashableEFTOut = 0; decimal WATIn = 0; decimal WATOut = 0; decimal TotalNonCashableTicketsIn = 0; decimal TotalNonCashableTicketsOut = 0; decimal TotalMDA = 0; DateTime InstallationEndDate; SpotCheck spotCheckData; string reportType = string.Empty; dtAnalysis.Columns.Add("Installation_No"); dtAnalysis.Columns.Add("Bar_Pos_Name"); dtAnalysis.Columns.Add("Stock_No"); dtAnalysis.Columns.Add("Name"); dtAnalysis.Columns.Add("LastMeterUpdate"); dtAnalysis.Columns.Add("GMUtoMachine"); dtAnalysis.Columns.Add("GMUtoServer"); dtAnalysis.Columns.Add("Bills_In", typeof(decimal)); dtAnalysis.Columns.Add("Coin_In", typeof(decimal)); dtAnalysis.Columns.Add("Coin_Out", typeof(decimal)); dtAnalysis.Columns.Add("Tickets_In", typeof(decimal)); dtAnalysis.Columns.Add("Tickets_Out", typeof(decimal)); dtAnalysis.Columns.Add("Non_Cashable_Tickets_In", typeof(decimal)); dtAnalysis.Columns.Add("Non_Cashable_Tickets_Out", typeof(decimal)); dtAnalysis.Columns.Add("Handpay", typeof(decimal)); dtAnalysis.Columns.Add("Jackpot", typeof(decimal)); dtAnalysis.Columns.Add("Prog_Handpay", typeof(decimal)); dtAnalysis.Columns.Add("Cash_In", typeof(decimal)); dtAnalysis.Columns.Add("Cash_Out", typeof(decimal)); dtAnalysis.Columns.Add("Handle", typeof(decimal)); dtAnalysis.Columns.Add("AvgBet", typeof(decimal)); dtAnalysis.Columns.Add("NetWin", typeof(decimal)); dtAnalysis.Columns.Add("MDA", typeof(decimal)); if (Settings.IsAFTEnabledForSite) { dtAnalysis.Columns.Add("CashableEFTIn", typeof(decimal)); dtAnalysis.Columns.Add("CashableEFTOut", typeof(decimal)); dtAnalysis.Columns.Add("NonCashableEFTIn", typeof(decimal)); dtAnalysis.Columns.Add("NonCashableEFTOut", typeof(decimal)); dtAnalysis.Columns.Add("WATIn", typeof(decimal)); dtAnalysis.Columns.Add("WATOut", typeof(decimal)); } try { switch (SpotCheckDataType.ToString()) { case "1": reportType = "DAY"; break; case "2": reportType = "DROP"; break; case "3": reportType = "WEEK"; break; case "4": reportType = "MONTH"; break; } foreach (DataRow InstallationDetail in (new CommonDataAccess()).GetInstallationDetailsForReports(reportType).Rows) { if (InstallationDetail["Installation_No"] != DBNull.Value) { PriceOfPlay = 1; InstallationNo = Convert.ToInt32(InstallationDetail["Installation_No"]); spotCheckData = new BMC.Transport.CashDeskOperatorEntity.SpotCheck(); spotCheckData.InstallationNo = InstallationNo; spotCheckData.DateTimeStamp = DateTime.Now; spotCheckData.Date = DateTime.Now; InstallationEndDate = ((InstallationDetail["End_Date"]) != DBNull.Value) ? Convert.ToDateTime(InstallationDetail["End_Date"]) : DateTime.Now.AddDays(1); switch (SpotCheckDataType) { case 1: spotCheckData.StartOfDay = 1; //if (InstallationEndDate.Date < System.DateTime.Now.Date) continue; break; case 2: spotCheckData.Type = 2; spotCheckData.StartOfDay = 2; //if (InstallationEndDate.Date <= System.DateTime.Now.Date) continue; break; case 3: StartDate = analysisDataAccessHandler.GetMonthOrWeekStartDate().Rows[0]["WeekStart"].ToString().ReadDate(); spotCheckData.Date = StartDate; //if (InstallationEndDate.Date <= StartDate.Date) continue; break; case 4: StartDate = analysisDataAccessHandler.GetMonthOrWeekStartDate().Rows[0]["MonthStart"].ToString().ReadDate(); spotCheckData.Date = StartDate; //if (InstallationEndDate.Date <= StartDate.Date) continue; break; } analysisDataAccessHandler.GetAnalysisDetails(ref spotCheckData); InstallationTokenValue = (InstallationDetail["installation_token_value"]).ToString().GetDecimal(); PriceOfPlay = (InstallationDetail["installation_Price_Of_Play"]).ToString().GetDecimal(); PriceOfPlay = PriceOfPlay == 0 ? 1 : PriceOfPlay; Totalhandle += (spotCheckData.CoinsIn * (PriceOfPlay / 100)); DataRow dr = dtAnalysis.NewRow(); dr["Installation_No"] = InstallationDetail["Installation_no"].ToString(); dr["Bar_Pos_Name"] = InstallationDetail["Bar_Pos_Name"].ToString(); dr["Stock_No"] = InstallationDetail["Stock_No"].ToString(); dr["Name"] = InstallationDetail["Name"].ToString(); dr["LastMeterUpdate"] = InstallationDetail["LastMeterUpdate"].ToString(); if (Convert.ToInt16(InstallationDetail["Datapak_PollingStatus"]) == 0) { dr["GMUtoServer"] = "ERROR"; } else { dr["GMUtoServer"] = "OK"; } if (Convert.ToInt16(InstallationDetail["GMU_Machine_Status"]) == 0) { dr["GMUtoMachine"] = "ERROR"; } else { if (Convert.ToInt16(InstallationDetail["Datapak_PollingStatus"]) == 0) { dr["GMUtoMachine"] = "UNKNOWN"; } else { dr["GMUtoMachine"] = "OK"; } } decimal Bills = 0; if (System.Globalization.CultureInfo.CurrentCulture.Name == "it-IT" || System.Globalization.CultureInfo.CurrentUICulture.Name == "it-IT" || (Settings.RegulatoryEnabled && Settings.RegulatoryType == "AAMS")) { Bills = spotCheckData.Bill1 + (spotCheckData.Bill2 * 2) + (spotCheckData.Bill5 * 5) + (spotCheckData.Bill10 * 10) + (spotCheckData.Bill20 * 20) + (spotCheckData.Bill50 * 50) + (spotCheckData.Bill100 * 100) + (spotCheckData.Bill200 * 200) + (spotCheckData.Bill500 * 500); } else if (Settings.Region == "AR") { Bills = (spotCheckData.Bill2 * 2) + (spotCheckData.Bill5 * 5) + (spotCheckData.Bill10 * 10) + (spotCheckData.Bill20 * 20) + (spotCheckData.Bill50 * 50) + (spotCheckData.Bill100 * 100); } else { Bills = spotCheckData.Bill1 + (spotCheckData.Bill2 * 2) + (spotCheckData.Bill5 * 5) + (spotCheckData.Bill10 * 10) + (spotCheckData.Bill20 * 20) + (spotCheckData.Bill50 * 50) + (spotCheckData.Bill100 * 100); } dr["Bills_In"] = Bills; dr["Tickets_In"] = spotCheckData.TicketsInserted / 100; dr["Coin_In"] = spotCheckData.TrueCoinIn * (InstallationTokenValue / 100); dr["Non_Cashable_Tickets_In"] = spotCheckData.NonCashableTicketsInserted / 100; dr["Non_Cashable_Tickets_Out"] = spotCheckData.NonCashableTicketsPrinted / 100; CashIn = (Bills + (spotCheckData.TicketsInserted / 100) + (spotCheckData.NonCashableTicketsInserted / 100) + (spotCheckData.TrueCoinIn * (InstallationTokenValue / 100))); CashOut = spotCheckData.TrueCoinOut * (PriceOfPlay / 100) + spotCheckData.TicketsPrinted / 100 + spotCheckData.HandPay * (PriceOfPlay / 100) + spotCheckData.Jackpot * (PriceOfPlay / 100) + spotCheckData.NonCashableTicketsPrinted / 100; if (Settings.IsAFTIncludedInCalculation) { CashIn += spotCheckData.CashableEFTIn / 100 + spotCheckData.NonCashableEFTIn / 100 + spotCheckData.WATIn / 100; CashOut += spotCheckData.CashableEFTOut / 100 + spotCheckData.NonCashableEFTOut / 100 + spotCheckData.WATOut / 100; } dr["Cash_In"] = CashIn; dr["Cash_Out"] = CashOut; TotalCashIn += CashIn; TotalCashOut += CashOut; dr["NetWin"] = CashIn - CashOut; dr["Handle"] = (spotCheckData.CoinsIn * (PriceOfPlay / 100)); Numberofdays += spotCheckData.NumberOfDays; if (spotCheckData.NumberOfDays > 0) { MDA = (decimal)(CashIn - CashOut) / spotCheckData.NumberOfDays; } else { MDA = (decimal)(CashIn - CashOut); } dr["MDA"] = MDA == 0 ? 0 : MDA; dr["Coin_Out"] = spotCheckData.TrueCoinOut * (InstallationTokenValue / 100); dr["Tickets_Out"] = spotCheckData.TicketsPrinted / 100; dr["Handpay"] = spotCheckData.HandPay * (PriceOfPlay / 100); dr["Jackpot"] = spotCheckData.Jackpot * (PriceOfPlay / 100); dr["Prog_Handpay"] = spotCheckData.ProgHandpay * (PriceOfPlay / 100); dr["AvgBet"] = spotCheckData.GamesBet == 0 ? (spotCheckData.CoinsIn * (PriceOfPlay / 100)) : (spotCheckData.CoinsIn * (PriceOfPlay / 100)) / spotCheckData.GamesBet; if (Settings.IsAFTEnabledForSite) { dr["CashableEFTIn"] = spotCheckData.CashableEFTIn / 100; dr["CashableEFTOut"] = spotCheckData.CashableEFTOut / 100; dr["NonCashableEFTIn"] = spotCheckData.NonCashableEFTIn / 100; dr["NonCashableEFTOut"] = spotCheckData.NonCashableEFTOut / 100; dr["WATIn"] = spotCheckData.WATIn / 100; dr["WATOut"] = spotCheckData.WATOut / 100; } if (System.Globalization.CultureInfo.CurrentCulture.Name == "it-IT" || System.Globalization.CultureInfo.CurrentUICulture.Name == "it-IT" || (Settings.RegulatoryEnabled && Settings.RegulatoryType == "AAMS")) { TotalBills += spotCheckData.Bill1 + (spotCheckData.Bill2 * 2) + (spotCheckData.Bill5 * 5) + (spotCheckData.Bill10 * 10) + (spotCheckData.Bill20 * 20) + (spotCheckData.Bill50 * 50) + (spotCheckData.Bill100 * 100) + (spotCheckData.Bill200 * 200) + (spotCheckData.Bill500 * 500); } else if (Settings.Region == "AR") { TotalBills += (spotCheckData.Bill2 * 2) + (spotCheckData.Bill5 * 5) + (spotCheckData.Bill10 * 10) + (spotCheckData.Bill20 * 20) + (spotCheckData.Bill50 * 50) + (spotCheckData.Bill100 * 100); } else { TotalBills += spotCheckData.Bill1 + (spotCheckData.Bill2 * 2) + (spotCheckData.Bill5 * 5) + (spotCheckData.Bill10 * 10) + (spotCheckData.Bill20 * 20) + (spotCheckData.Bill50 * 50) + (spotCheckData.Bill100 * 100); } TotalTicketsIn += spotCheckData.TicketsInserted / 100; TotalGamesBet += spotCheckData.GamesBet; TotalCoinsIn += Convert.ToDecimal(spotCheckData.TrueCoinIn * (InstallationTokenValue / 100)); TotalCoinsOut += Convert.ToDecimal(spotCheckData.TrueCoinOut * (InstallationTokenValue / 100)); TicketsOut += (decimal)(spotCheckData.TicketsPrinted / 100); TotalHandpay += Convert.ToDecimal(spotCheckData.HandPay * (PriceOfPlay / 100)); TotalJackpot += Convert.ToDecimal(spotCheckData.Jackpot * (PriceOfPlay / 100)); ProgressiveHandpay += Convert.ToDecimal(spotCheckData.ProgHandpay * (PriceOfPlay / 100)); TotalNonCashableTicketsIn += spotCheckData.NonCashableTicketsInserted / 100; TotalNonCashableTicketsOut += spotCheckData.NonCashableTicketsPrinted / 100; TotalMDA += MDA; if (Settings.IsAFTEnabledForSite) { CashableEFTIn += Convert.ToDecimal(spotCheckData.CashableEFTIn / 100); CashableEFTOut += Convert.ToDecimal(spotCheckData.CashableEFTOut / 100); NonCashableEFTIn += Convert.ToDecimal(spotCheckData.NonCashableEFTIn / 100); NonCashableEFTOut += Convert.ToDecimal(spotCheckData.NonCashableEFTOut / 100); WATIn += Convert.ToDecimal(spotCheckData.WATIn / 100); WATOut += Convert.ToDecimal(spotCheckData.WATOut / 100); } dtAnalysis.Rows.Add(dr); } } if (dtAnalysis.Rows.Count > 0) { DataRow SumOfRows = dtAnalysis.NewRow(); SumOfRows["Installation_No"] = string.Empty; SumOfRows["Bar_Pos_Name"] = "Total"; SumOfRows["Stock_No"] = string.Empty; SumOfRows["Name"] = string.Empty; SumOfRows["LastMeterUpdate"] = string.Empty; SumOfRows["Cash_In"] = TotalCashIn; SumOfRows["Cash_Out"] = TotalCashOut; SumOfRows["NetWin"] = (TotalCashIn - TotalCashOut); SumOfRows["Handle"] = Totalhandle; decimal TotalAvgBet = 0; if (TotalGamesBet == 0) { TotalAvgBet = Totalhandle; } else { TotalAvgBet = Totalhandle / TotalGamesBet; } //if (Numberofdays > 0) // MDA = (decimal)(TotalCashIn - TotalCashOut) /( dtAnalysis.Rows.Count * Numberofdays) ; //else // MDA = (decimal)(TotalCashIn - TotalCashOut) / dtAnalysis.Rows.Count; SumOfRows["AvgBet"] = Math.Round(TotalAvgBet, 2); SumOfRows["MDA"] = Math.Round(TotalMDA / (dtAnalysis.Rows.Count), 2);//Modified Total AvgDailyWin calculation CR#92149 Fix SumOfRows["Bills_In"] = TotalBills; SumOfRows["Tickets_In"] = TotalTicketsIn; SumOfRows["Tickets_Out"] = TicketsOut; SumOfRows["Coin_In"] = TotalCoinsIn; SumOfRows["Coin_Out"] = TotalCoinsOut; SumOfRows["Non_Cashable_Tickets_In"] = TotalNonCashableTicketsIn; SumOfRows["Non_Cashable_Tickets_out"] = TotalNonCashableTicketsOut; SumOfRows["Handpay"] = TotalHandpay; SumOfRows["Jackpot"] = TotalJackpot; SumOfRows["Prog_Handpay"] = ProgressiveHandpay; if (Settings.IsAFTEnabledForSite) { SumOfRows["CashableEFTIn"] = CashableEFTIn; SumOfRows["CashableEFTOut"] = CashableEFTOut; SumOfRows["NonCashableEFTIn"] = NonCashableEFTIn; SumOfRows["NonCashableEFTOut"] = NonCashableEFTOut; SumOfRows["WATIn"] = WATIn; SumOfRows["WATOut"] = WATOut; } dtAnalysis.Rows.InsertAt(SumOfRows, 0); } return(dtAnalysis); } catch (Exception ex) { ExceptionManager.Publish(ex); } return(new DataTable()); }