public HttpResponseMessage ApplySpecialPrice([FromBody] SpecialPriceCheckModel model) { var dateStart = DateTime.Now; _performancelog.Debug($"Start,PriceCheckController,ApplySpecialPrice,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}"); ErrorMessage error; string userCode; HttpResponseMessage httpResponseMessage; if (GetUserCode(out userCode, out httpResponseMessage)) { return(httpResponseMessage); } var specialPrice = new SpecialPriceCheck { RegularPrice = model.RegularPrice, RegisterNumber = model.RegisterNumber, StockCode = model.StockCode, TillNumber = model.TillNumber, SaleNumber = model.SaleNumber, Fromdate = model.Fromdate, IsEndDate = model.IsEndDate, PerDollarChecked = model.PerDollarChecked, PriceType = model.PriceType, Todate = model.Todate, GridPrices = (from priceGrd in model.GridPrices select new Entities.PriceGrid { Column1 = priceGrd.Column1, Column2 = priceGrd.Column2, Column3 = priceGrd.Column3 }).ToList() }; var result = _priceCheckManager.ApplySpecialPrice(specialPrice, userCode, out error); _performancelog.Debug($"End,PriceCheckController,ApplySpecialPrice,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); if (!string.IsNullOrEmpty(error?.MessageStyle?.Message)) { var statusCode = error.StatusCode == 0 ? HttpStatusCode.BadRequest : error.StatusCode; return(Request.CreateResponse( statusCode, new ErrorResponse { Error = error.MessageStyle, })); } return(Request.CreateResponse(HttpStatusCode.OK, result)); }
/// <summary> /// Apply Special Price /// </summary> /// <param name="priceCheck">Price check</param> /// <param name="userCode">User code</param> /// <param name="error">Error</param> /// <returns>Stock price check</returns> public StockPriceCheck ApplySpecialPrice(SpecialPriceCheck priceCheck, string userCode, out ErrorMessage error) { if (priceCheck.RegularPrice > 9999.99) { priceCheck.RegularPrice = 9.99; } var stockItem = _stockService.GetStockItem(priceCheck.StockCode); if (stockItem == null) { var offSet = _policyManager.LoadStoreInfo().OffSet; error = new ErrorMessage { MessageStyle = _resourceManager.CreateMessage(offSet, 39, 91, priceCheck.StockCode) }; return(null); } var vendorId = stockItem.Vendor; bool activeVendorPrice = _stockService.IsActiveVendorPrice(priceCheck.StockCode, vendorId); _stockService.DeletePreviousPrices(priceCheck.StockCode, priceCheck.PriceType, activeVendorPrice, vendorId); if (!IsValidPricingInput(priceCheck.PriceType, priceCheck.GridPrices, out error)) { return(null); } foreach (PriceGrid priceGrid in priceCheck.GridPrices) { switch (priceCheck.PriceType[0].ToString()) { case "S": if (Convert.ToDouble(priceGrid.Column1) > 9999.99) { priceGrid.Column1 = "9.99"; } break; case "F": if (Convert.ToDouble(priceGrid.Column2) > 9999.99) { priceGrid.Column2 = "9.99"; } break; case "I": if (Convert.ToDouble(priceGrid.Column3) > 9999.99) { priceGrid.Column3 = "9.99"; } break; case "X": if (Convert.ToDouble(priceGrid.Column2) > 9999.99) { priceGrid.Column2 = "9.99"; } break; default: if (Convert.ToDouble(priceGrid.Column1) > 9999.99) { priceGrid.Column1 = "9.99"; } ; break; } } _stockService.AddUpdateSpecialPrice(priceCheck.StockCode, activeVendorPrice, ref vendorId, priceCheck.PriceType[0].ToString(), priceCheck.GridPrices, priceCheck.Fromdate, priceCheck.Todate, priceCheck.PerDollarChecked, priceCheck.IsEndDate); double price = 0; _stockService.AddUpdateRegularPrice(priceCheck.StockCode, ref vendorId, ref price, priceCheck.RegularPrice); _stockService.TrackPriceChange(priceCheck.StockCode, price, priceCheck.RegularPrice, "PC", 1, userCode, vendorId); var result = GetStockPriceDetails(priceCheck.StockCode, priceCheck.TillNumber, priceCheck.SaleNumber, priceCheck.RegisterNumber, userCode, out error); Register register = new Register(); _mainManager.SetRegister(ref register, priceCheck.RegisterNumber); if (register.Customer_Display) { result.CustomerDisplay = _mainManager.DisplayMsgLcd(register, _mainManager.FormatLcdString(register, result.Description, result.RegularPriceText), ""); } return(result); }