示例#1
0
 public NewSaleViewModel(NewSale new_sale, SalesViewModel sales_view_model, HomeViewModel home_view_model)
 {
     this.NewSale                = new_sale;
     this.SalesViewModel         = sales_view_model;
     this.HomeViewModel          = home_view_model;
     this.BarcodeSearchCommand   = new RelayCommand(searchProductUsingBarcode);
     this.DeleteItemCommand      = new RelayCommand(deleteItem, isSelectedItemNotNull);
     this.VoidSaleCommand        = new RelayCommand(voidButtonPressed);
     this.SearchSelectionCommand = new RelayCommand(selectSearchType);
     this.DiscountCommand        = new RelayCommand(discountButtonPressed);
     this.QuantityCommand        = new RelayCommand(quantityButtonPressed, isSelectedItemNotNull);
     this.PayCommand             = new RelayCommand(payButtonPressed);
     this.ReturnCommand          = new RelayCommand(returnButtonPressed);
     this.SaleProducts           = new ObservableCollection <SaleProductModel>();
     this.SearchProducts         = new ObservableCollection <ProductModel>();
     this.SearchDataProvider     = new SearchDataProvider();
     this.SubTotal               = "0.00";
     this.Discount               = "0.00";
     this.Total                    = "0.00";
     this.SearchByBarcode          = true;
     this.SearchByCode             = false;
     this.SearchByName             = false;
     this.IsSearchByBarcodeVisible = true;
     this.IsSearchByNameVisible    = false;
     this.selectSearchType("Barcode");
 }
示例#2
0
 private void removeSaleWithoutAlert(NewSale selected_sale)
 {
     if (NewSales.Count == 1)
     {
         SaleDescriptions.RemoveAt(0);
         NewSales.Remove(selected_sale);
         NewSales.Add(new NewSale(this, HomeViewModel));
         SaleDescriptions.Add("New Sale");
         this.SelectedIndex = 0;
     }
     else
     {
         List <NewSale> temp_list = new List <NewSale>();
         foreach (NewSale new_sale in NewSales)
         {
             temp_list.Add(new_sale);
         }
         for (int i = 0; i < temp_list.Count; i++)
         {
             if (temp_list[i] == selected_sale)
             {
                 NewSales.Remove(selected_sale);
                 SaleDescriptions.RemoveAt(i);
                 this.SelectedIndex = NewSales.Count - 1;
                 break;
             }
         }
     }
 }
示例#3
0
        public HttpResponseMessage WriteOff([FromBody] WriteOffModel model)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,SaleController,WriteOff,{string.Empty},{dateStart:hh.mm.ss.ffffff}");

            ErrorMessage        error;
            string              userCode;
            int                 registerNumber;
            HttpResponseMessage httpResponseMessage;

            if (GetUserCode(out userCode, out httpResponseMessage))
            {
                return(httpResponseMessage);
            }
            var fs = _suspendedSaleManger.WriteOff(userCode, model.SaleNumber, model.TillNumber,
                                                   model.WriteOffReason, out error, out registerNumber);

            if (!string.IsNullOrEmpty(error.MessageStyle.Message))
            {
                return(Request.CreateResponse(error.StatusCode,
                                              new ErrorResponse
                {
                    Error = error.MessageStyle,
                }));
            }
            var newSale   = _saleManager.InitializeSale(model.TillNumber, registerNumber, userCode, out error);
            var saleModel = new NewSale
            {
                TillNumber = newSale.TillNumber,
                SaleNumber = newSale.Sale_Num,
                Customer   = newSale.Customer.Name
            };

            _performancelog.Debug($"End,SaleController,WriteOff,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            try
            {
                var writeOffReceipt = new ReportModel
                {
                    ReportName    = fs.ReportName,
                    ReportContent = fs.ReportContent
                };
                return(Request.CreateResponse(HttpStatusCode.OK, new WriteOffResponseModel
                {
                    NewSale = saleModel,
                    WriteOffReceipt = writeOffReceipt,
                    CustomerDisplay = newSale.CustomerDisplay
                }));
            }
            catch
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, new ErrorResponse
                {
                    Error = new MessageStyle {
                        Message = Resource.Error, MessageType = 0
                    }
                }));
            }
        }
示例#4
0
 public static Sale ToEntity(this NewSale saleToRegister)
 {
     return(new Sale()
     {
         Client = saleToRegister.Client,
         Date = DateTime.Now,
         TotalCost = saleToRegister.SaleDetails.Select(x => x.Cost).Sum(),
         SaleDetails = saleToRegister.SaleDetails.Select(x => x.ToEntity()).ToList()
     });
 }
示例#5
0
 public void removeSale(NewSale selected_sale)
 {
     if (selected_sale.NewSaleViewModel.SaleProducts.Count != 0)
     {
         DialogResult result = MessageBox.Show("Are you sure you want to void this order.", "Void Order", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
         if (result == DialogResult.Yes)
         {
             removeSaleWithoutAlert(selected_sale);
         }
     }
     else
     {
         removeSaleWithoutAlert(selected_sale);
     }
 }
示例#6
0
 /// <summary>
 /// Ctor
 /// </summary>
 public CompletePaymentResponseModel()
 {
     NewSale          = new NewSale();
     PaymentReceipt   = new ReportModel();
     CustomerDisplays = new List <CustomerDisplay>();
 }
 /// <summary>
 /// Ctor
 /// </summary>
 public FinishPaymentResponseModel()
 {
     NewSale          = new NewSale();
     Receipts         = new List <Entities.Report>();
     CustomerDisplays = new List <CustomerDisplay>();
 }
示例#8
0
 public void Register(NewSale saleToRegister)
 {
     this._unitOfWork.SaleRepository.Create(saleToRegister.ToEntity());
     this._unitOfWork.Commit();
 }
示例#9
0
        private void CreateNewSale(object sender, RoutedEventArgs e)
        {
            NewSale NS = new NewSale();

            NS.Show();
        }