Exemple #1
0
        public void SaleSQLIntegration_Add_ShouldBeOk()
        {
            //Cenario
            Sale modelo = ObjectMother.GetSale();

            modelo.Product = new Product
            {
                Id              = 1,
                Name            = "Rice",
                SalePrice       = 6,
                CostPrice       = 2,
                Disponibility   = true,
                FabricationDate = DateTime.Now,
                ExpirationDate  = DateTime.Now.AddMonths(4)
            };

            //Executa
            Sale sale = _service.Add(modelo);

            //Saída
            sale.Id.Should().BeGreaterThan(0);

            var last = _service.Get(sale.Id);

            last.Should().NotBeNull();

            var sales = _service.GetAll();

            sales.Count().Should().Be(2);
        }
        internal static void WorkWithFile(Byte[] file)
        {
            //1-2.IEnumerable<Sales>
            IEnumerable <Sales> sales = ParseCsv.ParseResource <Sales>(file, sale =>
            {
                sale.CreatedByUserId = adminGuid;
                sale.CreatedDateTime = DateTime.UtcNow;
            });

            // Check data whether there is a database (manager)
            ValidateData(sales);

            // write to the Sales database

            //3.AutoMapper BLL
            SalesService salesService = new SalesService(mapper);
            var          saleBLL      = MappingService.MappingForBLLEntities <BLL.Sale, BLL.Sales>(salesService, sales);

            //4.AutoMapper DAL
            SaleService saleService = new SaleService(mapper);
            var         saleDAL     = MappingService.MappingForDALEntities <DAL.Sale, BLL.Sale>(saleService, saleBLL);

            // find customers and products by their ID and, if not, create new IDs
            saleDAL = clientService.CheckNameId(saleDAL).Result;
            saleDAL = productService.CheckNameId(saleDAL).Result;

            // write to the sales database from the file
            saleService.Add(saleDAL);
            //SaveChangesWithException(saleService, "заказа");
        }
Exemple #3
0
        public void SaleService_Add_Product_Unavailable_ShouldBeFail()
        {
            // Inicio Cenário

            //Modelo
            Sale modelo = ObjectMother.GetSale();

            modelo.Product = new Product
            {
                Id              = 1,
                Name            = "Rice",
                SalePrice       = 6,
                CostPrice       = 2,
                Disponibility   = false,
                FabricationDate = DateTime.Now,
                ExpirationDate  = DateTime.Now.AddMonths(4)
            };
            //Serviço
            SaleService service = new SaleService(_mockRepository.Object);
            // Fim Cenário

            //Executa
            Action comparison = () => service.Add(modelo);

            //Saída
            comparison.Should().Throw <SaleProductUnavailableException>();
            _mockRepository.VerifyNoOtherCalls();
        }
Exemple #4
0
        public void ProductService_Add_ShouldBeOK()
        {
            // Inicio Cenário

            //Modelo
            Sale modelo = ObjectMother.GetSale();

            modelo.Product = new Product
            {
                Id              = 1,
                Name            = "Rice",
                SalePrice       = 6,
                CostPrice       = 2,
                Disponibility   = true,
                FabricationDate = DateTime.Now,
                ExpirationDate  = DateTime.Now.AddMonths(4)
            };

            //Mock
            _mockRepository.Setup(m => m.Save(modelo)).Returns(new Sale()
            {
                Id = 1
            });
            //Serviço
            SaleService service = new SaleService(_mockRepository.Object);
            // Fim Cenário

            //Executa
            Sale resultado = service.Add(modelo);

            //Saída
            resultado.Should().NotBeNull();
            resultado.Id.Should().BeGreaterThan(0);
            _mockRepository.Verify(repository => repository.Save(modelo));
        }
Exemple #5
0
        private Sale RecordSale(string InvoiceNo, string AmountPaid, string subTotalAmt, DateTime?SaleDate, decimal totalAmount, decimal balance)
        {
            Sale sales = new Sale();

            sales.CustomerID    = txtCustomer.Tag.ToString();
            sales.Amount        = totalAmount;
            sales.SubTotal      = decimal.Parse(subTotalAmt);
            sales.InvoiceDate   = SaleDate.Value;
            sales.InvoiceNumber = InvoiceNo;
            sales.StoreID       = DEFAULT_LOCALSTOREID; //arbituary value, to bo replaced
            sales.Tax           = Math.Round(_saletax, 2);
            sales.PaymentModeID = int.Parse(cmbPaymentMode.SelectedValue.ToString());

            //sales.Discount = txtSaleDiscount.Text == "" ? 0 : txtSaleDiscount.Text.ToDecimal();
            sales.AmountPaid = decimal.Parse(AmountPaid);
            sales.Balance    = balance;
            sales.DateClosed = decimal.Parse(AmountPaid) >= decimal.Parse(subTotalAmt) ? SaleDate : null;
            //sales.SaleTypeID = (int)SaleStatus.Invoice;

            //sales.SaleTypeID = int.Parse(TypeOfSale.Order.ToString());
            sales.SaleStatusID = _sale.GetSaleStatus(totalAmount, AmountPaid.ToDecimal());
            sales.EmployeeID   = txtSalesPerson.Tag == null ? DEFAULT_SALESPERSONID : txtSalesPerson.Tag.ToString();
            sales.Discount     = txtSaleDiscount.Text == "" ? 0 : decimal.Parse(txtSaleDiscount.Text);
            sales.VoidSale     = false;
            sales.LocationID   = cmbLocation.SelectedValue.ToInt();

            try
            {
                sales = _sale.FindAll(" SaleID= " + _sale.Add(sales)).FirstOrDefault();
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "An error occurred", "ucSale", "btnRecord");
            }
            return(sales);
        }
Exemple #6
0
        private void btnRecord_Click(object sender, EventArgs e)
        {
            if (btnRecord.Text == "OK")
            {
                ((frmControlHost)this.Parent).Close();
                return;
            }

            if (gridViewItemLayout.Rows.Count == 0)
            {
                Helper.ShowMessage("Sale must contain at least one product",
                                   "Sale Invalid", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            //if (!UtilityClass.ValidateTexBox(txtAmountPaid))
            //    return;

            try
            {
                Product    product;
                SaleDetail salesDetails;
                Sale       sales = new Sale();

                string   InvoiceNo   = txtInvoiceNo.Text;
                string   AmountPaid  = txtAmountPaid.Text;
                string   subTotalAmt = txtSubTotal.Text;
                DateTime?SaleDate    = dtpSaleDate.Value;
                decimal  tax         = txtSalTax.Text.ToDecimal();
                int      locationID  = cmbLocation.SelectedValue.ToInt();
                decimal  saletax     = _sale.CalculateTax(subTotalAmt.ToDecimal(), tax);
                decimal  totalAmount = txtTotalAmt.Text.ToDecimal();

                sales.CustomerID    = txtCustomer.Tag.ToString();
                sales.Amount        = totalAmount;
                sales.SubTotal      = decimal.Parse(subTotalAmt);
                sales.InvoiceDate   = SaleDate.Value;
                sales.InvoiceNumber = InvoiceNo;
                sales.StoreID       = DEFAULT_LOCALSTOREID; //arbituary value, to bo replaced
                sales.Tax           = Math.Round(saletax, 2);
                sales.PaymentModeID = int.Parse(cmbPaymentMode.SelectedValue.ToString());

                //sales.Discount = txtSaleDiscount.Text == "" ? 0 : txtSaleDiscount.Text.ToDecimal();
                sales.AmountPaid = 0;
                sales.Balance    = 0;
                sales.DateClosed = null;
                //sales.SaleTypeID = (int)SaleStatus.Order;

                sales.SaleStatusID = (int)SaleStatuses.Order;//_sale.GetSaleStatus(totalAmount, AmountPaid.ToDecimal());
                sales.EmployeeID   = txtSalesPerson.Tag == null ? DEFAULT_SALESPERSONID : txtSalesPerson.Tag.ToString();
                sales.Discount     = txtSaleDiscount.Text == "" ? 0 : decimal.Parse(txtSaleDiscount.Text);
                sales.VoidSale     = false;
                sales.LocationID   = cmbLocation.SelectedValue.ToInt();

                try
                {
                    sales = _sale.GetSingle(new Sale {
                        SaleID = _sale.Add(sales)
                    });
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex, "An error occurred", "ucOrder", "btnRecord");
                    Helper.ShowMessage("An error occured " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                foreach (DataGridViewRow dr in gridViewItemLayout.Rows)
                {
                    if (dr.Cells[0].Value == null)
                    {
                        return;
                    }

                    salesDetails = new SaleDetail();
                    product      = new Product();

                    salesDetails.SaleID        = sales.SaleID;
                    salesDetails.Quantity      = int.Parse(dr.Cells["ColQty"].Value.ToString());
                    salesDetails.ProductID     = dr.Cells["ColItmNumber"].Value.ToString();
                    salesDetails.UnitPrice     = decimal.Parse(dr.Cells["ColPrice"].Value.ToString());
                    salesDetails.Discount      = decimal.Parse(dr.Cells["ColDiscount"].Value.ToString());
                    salesDetails.Tax           = decimal.Parse(dr.Cells["ColTax"].Value.ToString());
                    salesDetails.InvoiceNumber = InvoiceNo;
                    salesDetails.LineTotal     = decimal.Parse(dr.Cells["ColTotal"].Value.ToString());
                    salesDetails.LocationID    = cmbLocation.SelectedValue.ToInt();

                    try
                    {
                        _saleDetail.Add(salesDetails);
                    }
                    catch
                    {
                        _sale.RollBackSaleTransaction(InvoiceNo);

                        Helper.ShowMessage("Transaction was not completed, An error occured", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    int qty       = int.Parse(dr.Cells["ColQty"].Value.ToString());
                    int productID = dr.Cells["ColItmNumber"].Value.ToInt();

                    try
                    {
                        _product.ReduceInventory(qty, productID, locationID);
                    }
                    catch (Exception ex)
                    {
                        _sale.RollBackSaleTransaction(InvoiceNo);
                        _logger.LogError(ex, "An error occurred", "ucOrder", "btnRecord");
                    }
                }

                txtInvoiceNo.Tag = false;

                txtSubTotal.Tag = null;
                txtTotalAmt.Tag = null;

                Helper.ClearForm(this);
                gridViewItemLayout.Rows.Clear();

                lblStatus.Text = "Order recorded successfully";
                GetInvoiceNo();
            }
            catch (Exception ex)
            {
                Helper.ShowMessage("An error occured sale has been cancelled \n" + ex.Message,
                                   "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }