public void addSaleProduct(SaleProductModel model) { using (SqlConnection connection = new SqlConnection(Constants.CONNECTION_STRING)) { string command_text = "INSERT INTO dbo.SaleProduct (Sale_ID, Product_ID, Quantity, Discount, Price, SubTotal) VALUES (@Sale_ID, @Product_ID, @Quantity, @Discount, @Price, @SubTotal)"; using (SqlCommand command = new SqlCommand(command_text)) { command.Connection = connection; command.Parameters.Add("@Sale_ID", System.Data.SqlDbType.Int).Value = model.SaleID.value; command.Parameters.Add("@Product_ID", System.Data.SqlDbType.Int).Value = model.ProductID.value; command.Parameters.Add("@Quantity", System.Data.SqlDbType.Int).Value = model.Qunatity.value; command.Parameters.Add("@Discount", System.Data.SqlDbType.Float).Value = !model.Discount.isNull() ? model.Discount.value : (object)DBNull.Value; command.Parameters.Add("@Price", System.Data.SqlDbType.Float).Value = model.Price.value; command.Parameters.Add("@SubTotal", System.Data.SqlDbType.Float).Value = model.SubTotal.value; try { connection.Open(); command.ExecuteNonQuery(); CoreApp.logger.log("Successfully saleproduct added to database"); } catch (Exception ex) { throw new Exception(ex.Message); } finally { try { connection.Close(); CoreApp.logger.log("Successfully connection closed"); } catch (Exception ex) { throw new Exception(ex.Message); } } } } }
private void enterPressed(object parameter) { Thread.Sleep(100); if (!_cart_selected) { ObservableCollection <SaleProductModel> temp_list = new ObservableCollection <SaleProductModel>(); double discount; try { discount = Convert.ToDouble(Discount); } catch (Exception) { discount = 0; } foreach (SaleProductModel sp_model in NewSaleViewModel.SaleProducts) { temp_list.Add(sp_model); } for (int i = 0; i < temp_list.Count; i++) { if (temp_list[i] == NewSaleViewModel.SelectedItem) { SaleProductModel temp_model = temp_list[i]; NewSaleViewModel.SaleProducts.Remove(temp_list[i]); if (_percent_selected) { temp_model.Discount.value = -(temp_model.Price.value * temp_model.Qunatity.value) * discount * 0.01; } else { temp_model.Discount.value = -discount; } temp_model.SubTotal.value = (temp_model.Price.value * temp_model.Qunatity.value) + temp_model.Discount.value; NewSaleViewModel.SaleProducts.Insert(i, temp_model); break; } } } else { double discount; double sub_total = 0; try { discount = Convert.ToDouble(Discount); } catch (Exception) { discount = 0; } foreach (SaleProductModel sale_product in NewSaleViewModel.SaleProducts) { sub_total += sale_product.Price.value * sale_product.Qunatity.value; } if (_percent_selected) { NewSaleViewModel.CartDiscount = sub_total * discount * 0.01; } else { NewSaleViewModel.CartDiscount = discount; } } NewSaleViewModel.calculateTotal(); this.Close(); }
public SaleProductPresenter(ISaleProductComponent view) { _business = new ProductBusiness(Singleton <PosEngine> .Instance.Resolve <IRepository <Product> >()); _view = view; _model = new SaleProductModel(new List <ProductSale>()); _view.InitComponent(_model); _model.IsEditing = true; }
public void recordSale() { if (SaleProducts.Count == 0) { } else { PaymentModel payment_model = new PaymentModel(); payment_model.PaymentMethodID.value = 1; payment_model.SubTotal.value = Convert.ToDouble(SubTotal); payment_model.Discount.value = Convert.ToDouble(Discount); payment_model.Total.value = Convert.ToDouble(Total); payment_model.Paid.value = Convert.ToDouble(Paid); payment_model.Balance.value = Convert.ToDouble(Balance); payment_model.TransactionTime.value = DateTime.Now; int payment_id = SaleAccess.singleton.addPayment(payment_model); SaleModel sale_model = new SaleModel(); sale_model.UserID.value = this.HomeViewModel.LoggedInUser.ID.value; sale_model.PaymentID.value = payment_id; sale_model.CartDiscount.value = CartDiscount; int sale_id = SaleAccess.singleton.addSale(sale_model); foreach (SaleProductModel sale_product in SaleProducts) { SaleProductModel sale_product_model = new SaleProductModel(); sale_product_model = sale_product; sale_product_model.SaleID.value = sale_id; SaleAccess.singleton.addSaleProduct(sale_product_model); StockModel model = StockAccess.singleton.getStockOfProduct(Convert.ToInt32(sale_product.ProductID.value)); if (model != null) { if (model.Quantity.value > sale_product.Qunatity.value) { model.Quantity.value -= sale_product.Qunatity.value; StockAccess.singleton.updateStock(model, Convert.ToInt32(model.ID.value)); } else { model.Quantity.value = 0; StockAccess.singleton.updateStock(model, Convert.ToInt32(model.ID.value)); } } } ReciptModel recipt_model = new ReciptModel(); string recipt_id = string.Format("rpt-{0}", ((DateTimeOffset)DateTime.UtcNow).ToUnixTimeSeconds()); recipt_model.ID.value = recipt_id; recipt_model.SaleID.value = sale_id; this.ReciptID = recipt_id; SaleAccess.singleton.addRecipt(recipt_model); } }
public void InitComponent(SaleProductModel model) { _model = model; tbBarcode.DataBindings.Add("Text", _model, "Barcode", true, DataSourceUpdateMode.OnPropertyChanged); tbName.DataBindings.Add("Text", _model, "Name", true, DataSourceUpdateMode.OnPropertyChanged); tbQuantity.DataBindings.Add("Text", _model, "Quantity", true, DataSourceUpdateMode.OnPropertyChanged); tbTotalQuantity.DataBindings.Add("Text", _model, "TotalQuantity", true, DataSourceUpdateMode.OnPropertyChanged); tbTotalPayment.DataBindings.Add("Text", _model, "TotalPayment", true, DataSourceUpdateMode.OnPropertyChanged); dgvProducts.DataBindings.Add("DataSource", _model, "ProductSales", true, DataSourceUpdateMode.OnPropertyChanged); tbBarcode.DataBindings.Add("Enabled", _model, "IsEditing", true, DataSourceUpdateMode.OnPropertyChanged); tbName.DataBindings.Add("Enabled", _model, "IsEditing", true, DataSourceUpdateMode.OnPropertyChanged); }
/*Action JsonResult que con un condional Case evaluara que metodo se ejecutara dependiendo de la Peticion del cliente*/ public JsonResult Sale(int?id, SaleProductModel item) { switch (Request.HttpMethod) { case "POST": return(Json(sale.createRegisterSale(item))); case "PUT": return(Json(sale.updateRegisterSale(item))); case "GET": return(Json(sale.returnRegisterSale(id.GetValueOrDefault()), JsonRequestBehavior.AllowGet)); case "DELETE": return(Json(sale.deleteRegisterSale(id.GetValueOrDefault()))); } return(Json(new { Error = true, Message = "Operacion HTTP desconocida" })); }
private void addProductToList(ProductModel model, string quantity) { bool found = false; int int_quantity; try { int_quantity = Convert.ToInt32(quantity); } catch (Exception) { int_quantity = 1; } ObservableCollection <SaleProductModel> temp_list = new ObservableCollection <SaleProductModel>(); foreach (SaleProductModel sp_model in SaleProducts) { temp_list.Add(sp_model); } for (int i = 0; i < temp_list.Count; i++) { if (temp_list[i].ProductID.value == model.ID.value && temp_list[i].Discount.value == 0) { SaleProductModel temp_model = temp_list[i]; SaleProducts.Remove(temp_list[i]); temp_model.Qunatity.value = int_quantity; temp_model.SubTotal.value = temp_model.Price.value * temp_model.Qunatity.value; SaleProducts.Insert(i, temp_model); found = true; break; } } if (!found) { SaleProductModel sale_product_model = new SaleProductModel(); sale_product_model.ProductName.value = model.Name.value; sale_product_model.ProductID.value = model.ID.value; sale_product_model.Qunatity.value = int_quantity; sale_product_model.Price.value = model.Price.value; sale_product_model.SubTotal.value = model.Price.value * sale_product_model.Qunatity.value; SaleProducts.Add(sale_product_model); } SearchedModel = null; calculateTotal(); }
private async Task AddProductOnTransaction() { try { if (_saleID > 0) { //get the product id according to its name var productID = _productService.GetProductID(txtProductName.Text); var transactionProductModel = new SaleProductModel(); transactionProductModel.ProductID = productID; transactionProductModel.IsPaid = false; transactionProductModel.IsToPay = true; transactionProductModel.SaleID = _saleID; transactionProductModel.Quantity = 1; transactionProductModel.UpdateTimeStamp = DateTime.Now; await _transactionProductService.AddNewTransactionProductAsync(transactionProductModel); await LoadProductsOnTransaction(); await SetTransactionData(); } else { MetroMessageBox.Show(this, "No Point of Sale Transaction Found!", "Product", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (RecordNotFoundException ex) { MetroMessageBox.Show(this, string.Format("{0} for {1}", ex.Message, txtProductName.Text), "Product", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (LimitMustNotReachException ex) { MetroMessageBox.Show(this, ex.Message); } catch (Exception ex) { MetroMessageBox.Show(this, ex.ToString()); } }
private async void btnApply_Click(object sender, EventArgs e) { try { if (txtProductName.Text == "" || productID == 0) { MetroMessageBox.Show(this, "Product is required!", "Quantity Edit", MessageBoxButtons.OK, MessageBoxIcon.Error); txtProductName.WithError = true; return; } if (txtQuantity.Text == "" || txtQuantity.Text == "0") { MetroMessageBox.Show(this, "Quantity is required!", "Quantity Edit", MessageBoxButtons.OK, MessageBoxIcon.Error); txtQuantity.WithError = true; return; } var transactionProduct = new SaleProductModel(); transactionProduct.IsPaid = false; transactionProduct.IsToPay = true; transactionProduct.SaleID = _posTransactionID; transactionProduct.ProductID = productID; transactionProduct.Quantity = txtQuantity.Text.ToDecimal(); transactionProduct.UpdateTimeStamp = DateTime.Now; await _transactionProductService.AddNewTransactionProductAsync(transactionProduct); this.Close(); } catch (LimitMustNotReachException ex) { MetroMessageBox.Show(this, ex.Message); } catch (Exception ex) { MetroMessageBox.Show(this, ex.ToString()); } }
public async Task <ActionResult> PostSaleProds(SaleProductModel saleProduct) { var result = new Result <string>(); SaleProduct saleProd = new SaleProduct(); _mapper.Map(saleProduct, saleProd); saleProd.IsActivate = 1; saleProd.CreateAt = DateTime.Now; await _context.SaleProducts.AddAsync(saleProd); try { await _context.SaveChangesAsync(); } catch (Exception e) { result.ErrorMessage = e.Message; result.IsFound = false; return(BadRequest(result)); } return(Ok(result)); }
public static SaleProduct ToEntity(this SaleProductModel model) { return(Mapper.Map <SaleProductModel, SaleProduct>(model)); }