/// <summary> /// Method to create cash draw model /// </summary> /// <param name="cashDrawButtons">Cash draw buttons</param> /// <returns>Cash draw button response</returns> private CashDrawButtonsResponseModel GetCashDrawModel(CashDrawButton cashDrawButtons) { var response = new CashDrawButtonsResponseModel(); foreach (var coin in cashDrawButtons.Coins) { response.Coins.Add(new CashModel { CurrencyName = coin.CurrencyName, Value = coin.Value, Image = coin.Image }); } foreach (var bill in cashDrawButtons.Bills) { response.Bills.Add(new CashModel { CurrencyName = bill.CurrencyName, Value = bill.Value, Image = bill.Image }); } return(response); }
/// <summary> /// Method to get cash draw buttons /// </summary> /// <returns>Cash draw buttons</returns> public CashDrawButton GetCashDrawButtons(string userCode, out ErrorMessage error) { var dateStart = DateTime.Now; _performancelog.Debug($"Start,CashManager,GetCashDrawButtons,{string.Empty},{dateStart:hh.mm.ss.ffffff}"); var offSet = _policyManager.LoadStoreInfo().OffSet; error = new ErrorMessage(); var user = _loginManager.GetExistingUser(userCode); if (!Convert.ToBoolean(_policyManager.GetPol("U_TILLDRAW", user))) { MessageType temp_VbStyle3 = (int)MessageType.Exclamation + MessageType.OkOnly; error.MessageStyle = _resourceManager.CreateMessage(offSet, 38, 56, null, temp_VbStyle3); error.StatusCode = System.Net.HttpStatusCode.Forbidden; _performancelog.Debug($"End,CashManager,GetCashDrawButtons,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(null); } var cashDrawButton = new CashDrawButton { Coins = _cashService.GetCoins(), Bills = _cashService.GetBills() }; _performancelog.Debug($"End,CashManager,GetCashDrawButtons,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(cashDrawButton); }
/// <summary> /// Method to validate coins /// </summary> /// <param name="cashDraw">Cash draw</param> /// <param name="isInvalidCash">Is valid cash or not</param> /// <param name="isInvalidQuantity">Is valid quantity</param> /// <param name="cashDrawButtons">cash drae buttons</param> private void ValidateCoins(CashDrawButton cashDraw, ref bool isInvalidCash, ref bool isInvalidQuantity, CashDrawButton cashDrawButtons) { var dateStart = DateTime.Now; _performancelog.Debug($"Start,CashManager,GetCashDrawButtons,{string.Empty},{dateStart:hh.mm.ss.ffffff}"); foreach (var coin in cashDraw.Coins) { if (!cashDrawButtons.Coins.Any(c => c.CurrencyName == coin.CurrencyName && c.Value == coin.Value)) { isInvalidCash = true; break; } if (coin.Quantity < 1 && coin.Quantity > 99) { isInvalidQuantity = true; break; } } _performancelog.Debug($"End,CashManager,GetCashDrawButtons,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); }
public HttpResponseMessage CompleteCashDraw([FromBody] CashDrawButton cashDraw) { var dateStart = DateTime.Now; _performancelog.Debug($"Start,CashController,CompleteCashDraw,{string.Empty},{dateStart:hh.mm.ss.ffffff}"); string userCode; HttpResponseMessage httpResponseMessage; if (GetUserCode(out userCode, out httpResponseMessage)) { return(httpResponseMessage); } if (cashDraw == null) { return(Request.CreateResponse( HttpStatusCode.BadRequest, new ErrorResponse { Error = new MessageStyle { Message = Constants.InvalidRequest, MessageType = 0 } })); } ErrorMessage error; int copies; var fs = _cashManager.CompleteCashDraw(cashDraw, userCode, out copies, out error); if (!string.IsNullOrEmpty(error.MessageStyle.Message)) { _performancelog.Debug( $"End,CashController,CompleteCashDraw,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(Request.CreateResponse(HttpStatusCode.BadRequest, new ErrorResponse { Error = error.MessageStyle, })); } try { var content = Helper.CreateBytes(fs); var cashDrawReceipt = new ReportModel { ReportName = Constants.CashDrawFile, ReportContent = content, Copies = copies }; _performancelog.Debug( $"End,CashController,CompleteCashDraw,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(Request.CreateResponse(HttpStatusCode.OK, cashDrawReceipt)); } catch { _performancelog.Debug( $"End,CashController,CompleteCashDraw,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(Request.CreateResponse(HttpStatusCode.NotFound, new ErrorResponse { Error = new MessageStyle { Message = Resource.Error, MessageType = 0 } })); } }
// code moved to cash bonus controller ///// <summary> ///// Method to get cash draw buttons ///// </summary> ///// <returns>Cash draw buttons</returns> //public CashDrawButton GetCashBonusDrawButtons(string userCode, out ErrorMessage error) //{ // var dateStart = DateTime.Now; // _performancelog.Debug($"Start,CashManager,GetCashDrawButtons,{string.Empty},{dateStart:hh.mm.ss.ffffff}"); // var offSet = _policyManager.LoadStoreInfo().OffSet; // error = new ErrorMessage(); // var user = _loginManager.GetExistingUser(userCode); // if (!Convert.ToBoolean(_policyManager.GetPol("U_TILLDRAW", user))) // { // MessageType temp_VbStyle3 = (int)MessageType.Exclamation + MessageType.OkOnly; // error.MessageStyle = _resourceManager.CreateMessage(offSet, 38, 56, null, temp_VbStyle3); // error.StatusCode = System.Net.HttpStatusCode.Forbidden; // _performancelog.Debug($"End,CashManager,GetCashDrawButtons,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); // return null; // } // var cashDrawButton = new CashDrawButton // { // Coins = _cashService.GetCoins(), // Bills = _cashService.GetBills() // }; // _performancelog.Debug($"End,CashManager,GetCashDrawButtons,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); // return cashDrawButton; //} /// <summary> /// Print cash draw /// </summary> /// <param name="cashDraw">Cash draw</param> /// <param name="userCode"></param> /// <param name="copies">Copies</param> /// <param name="errorMessage"></param> /// <returns></returns> public FileStream CompleteCashDraw(CashDrawButton cashDraw, 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(cashDraw.TillNumber); if (till == null) { message = "Till does not exists"; } if (cashDraw.Amount <= 0) { message = "Invalid Cash Drop 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 cashDrawButtons = GetCashDrawButtons(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(cashDraw, ref isInvalidCash, ref isInvalidQuantity, cashDrawButtons); ValidateBills(cashDraw, ref isInvalidCash, ref isInvalidQuantity, cashDrawButtons); if (isInvalidCash) { message = "Invalid Cash or Bill"; } if (isInvalidQuantity) { message = "Invalid Cash or Bill 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(cashDraw.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 CashDraw { TillNumber = cashDraw.TillNumber, DrawDate = DateTime.Now, TotalValue = (float)cashDraw.Amount, User = userCode.ToUpper(), Reason = cashDraw.DrawReason }; // add values to cash draw _cashService.AddCashDraw(draw); //update till if (till != null) { till.Cash = till.Cash + cashDraw.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, cashDraw.RegisterNumber, userCode, cashDraw.Coins, cashDraw.Bills, reason, cashDraw.Amount)); } return(null); }