Esempio n. 1
0
 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); }
             }
         }
     }
 }
Esempio n. 2
0
 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();
 }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        /*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" }));
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
 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());
     }
 }
Esempio n. 9
0
        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());
            }
        }
Esempio n. 10
0
        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));
        }
Esempio n. 11
0
 public static SaleProduct ToEntity(this SaleProductModel model)
 {
     return(Mapper.Map <SaleProductModel, SaleProduct>(model));
 }