/// <summary> /// Method to add cash bonus draw /// </summary> /// <param name="cashBonusDraw">Cash draw</param> public void AddCashBonusDraw(CashBonusDraw cashBonusDraw) { var _connection = new SqlConnection(GetConnectionString(DataSource.CSCTills)); if (_connection.State == ConnectionState.Closed) { _connection.Open(); } var _dataTable = new DataTable(); var _adapter = new SqlDataAdapter("select * from CashDraw where TILL=" + cashBonusDraw.TillNumber, _connection); _adapter.Fill(_dataTable); var fields = _dataTable.NewRow(); fields["Draw_Date"] = cashBonusDraw.DrawDate; fields["User"] = cashBonusDraw.User; fields["Till"] = cashBonusDraw.TillNumber; fields["Reason"] = cashBonusDraw.Reason; fields["CashBonus"] = cashBonusDraw.CashBonus; _dataTable.Rows.Add(fields); SqlCommandBuilder builder = new SqlCommandBuilder(_adapter); _adapter.InsertCommand = builder.GetInsertCommand(); _adapter.Update(_dataTable); _connection.Close(); _adapter?.Dispose(); }
/// <summary> /// Method to complete the cash bonus draw /// </summary> /// <param name="cashDraw"></param> /// <param name="userCode"></param> /// <param name="copies"></param> /// <param name="errorMessage"></param> /// <returns></returns> public FileStream CompleteCashBonusDraw(CashBonusDrawButton cashBonusDraw, string userCode, out int copies, out ErrorMessage errorMessage) { var dateStart = DateTime.Now; _performancelog.Debug($"Start,CashManager,GetCashDrawButtons,{string.Empty},{dateStart:hh.mm.ss.ffffff}"); copies = _policyManager.CashDrawReceiptCopies; errorMessage = new ErrorMessage(); var message = string.Empty; var till = _tillService.GetTill(cashBonusDraw.TillNumber); if (till == null) { message = "Till does not exists"; } if (cashBonusDraw.Amount <= 0) { message = "Invalid Cash Bonus Draw Amount"; } if (!string.IsNullOrEmpty(message)) { errorMessage.MessageStyle = new MessageStyle { Message = message }; errorMessage.StatusCode = System.Net.HttpStatusCode.BadRequest; _performancelog.Debug($"End,CashManager,GetCashDrawButtons,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(null); } var isInvalidCash = false; var isInvalidQuantity = false; var cashBonusDrawButtons = GetCashBonusDrawButtons(userCode, out errorMessage); if (!string.IsNullOrEmpty(errorMessage.MessageStyle.Message)) { _performancelog.Debug($"End,CashManager,GetCashDrawButtons,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(null); } ValidateCoins(cashBonusDraw, ref isInvalidCash, ref isInvalidQuantity, cashBonusDrawButtons); //ValidateBills(cashDraw, ref isInvalidCash, ref isInvalidQuantity, cashDrawButtons); if (isInvalidCash) { message = "Invalid CashBonus"; } if (isInvalidQuantity) { message = "Invalid CashBonus Quantity"; } if (!string.IsNullOrEmpty(message)) { errorMessage.MessageStyle = new MessageStyle { Message = message }; errorMessage.StatusCode = System.Net.HttpStatusCode.BadRequest; _performancelog.Debug($"End,CashManager,GetCashDrawButtons,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(null); } //print receipt var reasonType = ReasonType.CashDraw; var reason = _reasonService.GetReturnReason(cashBonusDraw.DrawReason, (char)reasonType); if (_policyManager.DRAW_REASON && reason == null) { errorMessage.MessageStyle = new MessageStyle { Message = "Invalid Reason" }; errorMessage.StatusCode = System.Net.HttpStatusCode.BadRequest; _performancelog.Debug($"End,CashManager,GetCashDrawButtons,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(null); } var draw = new CashBonusDraw { TillNumber = cashBonusDraw.TillNumber, DrawDate = DateTime.Now, //TotalValue = (float)cashDraw.Amount, User = userCode.ToUpper(), Reason = cashBonusDraw.DrawReason, CashBonus = cashBonusDraw.Amount }; // add values to cash bonus draw _cashBonusService.AddCashBonusDraw(draw); //update till if (till != null) { till.CashBonus = till.CashBonus + cashBonusDraw.Amount; _tillService.UpdateTill(till); _performancelog.Debug($"End,CashManager,GetCashDrawButtons,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); // return _receiptManager.Print_Draw(till, cashBonusDraw.RegisterNumber, userCode, cashBonusDraw.Coins, reason, cashBonusDraw.Amount); } return(null); }