예제 #1
0
 public IActionResult PrintToFile(SalesDTO input)
 {
     try
     {
         double?price = 0;
         if (ModelState.IsValid)
         {
             if (input.Discount != null && input.Discount > 0)
             {
                 var calculatedPrice = _salesLogic.CalculateDiscountedPrice(input);
                 price = calculatedPrice;
             }
             else
             {
                 var calculatedPrice = _salesLogic.CalculatePrice(input);
                 price = calculatedPrice;
             }
             ViewBag.TotalPrice = price;
             var directory = Directory.GetCurrentDirectory();
             directory = directory + "/Result.txt";
             System.IO.File.AppendAllText(directory, "\n Total Price : " + price);
             ViewBag.FileResult = 1;
         }
         return(View("_result"));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
예제 #2
0
 public IActionResult AlertResult(SalesDTO input)
 {
     try
     {
         double?price = 0;
         if (ModelState.IsValid)
         {
             if (input.Discount != null && input.Discount > 0)
             {
                 var calculatedPrice = _salesLogic.CalculateDiscountedPrice(input);
                 price = calculatedPrice;
                 ViewBag.Preveledge = "1";
             }
             else
             {
                 var calculatedPrice = _salesLogic.CalculatePrice(input);
                 price = calculatedPrice;
             }
             ViewBag.TotalPrice = price;
             ViewBag.Alert      = 1;
         }
         return(View("_sales"));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
예제 #3
0
        public SalesDTO GetSalesbyId(int id)
        {
            Sales    sale = context.Sales.Find(id);
            SalesDTO Sale = mapper.Map <SalesDTO>(sale);

            return(Sale);
        }
예제 #4
0
        public async Task <ActionResult <SalesDTO> > PostSales(Sales sales)
        {
            sales.CreatedAt = DateTime.Now;
            _context.Sales.Add(sales);
            await _context.SaveChangesAsync();

            _context.Entry(sales).Reference(x => x.Customer).Load();
            _context.Entry(sales).Reference(x => x.Product).Load();
            _context.Entry(sales).Reference(x => x.Store).Load();

            var dto = new SalesDTO()
            {
                Id           = sales.Id,
                CustomerId   = sales.CustomerId,
                ProductId    = sales.ProductId,
                StoreId      = sales.StoreId,
                DateSold     = sales.DateSold,
                CustomerName = sales.Customer.Name,
                ProductName  = sales.Product.Name,
                StoreName    = sales.Store.Name
            };

            //return CreatedAtRoute("GetSales", new { id = sales.Id }, dto);
            return(dto);
        }
예제 #5
0
        public IActionResult Calculate(SalesDTO input)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (input.Discount != null && input.Discount > 0)
                    {
                        var calculatedPrice = _salesLogic.CalculateDiscountedPrice(input);
                        ViewBag.TotalPrice = calculatedPrice;

                        return(View("_result"));
                    }
                    else
                    {
                        var calculatedPrice = _salesLogic.CalculatePrice(input);
                        ViewBag.TotalPrice = calculatedPrice;
                        return(View("_result"));
                    }
                }
                return(View("_sales", input));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
예제 #6
0
        public Response <SalesDTO> Create(SalesDTO sale)
        {
            try
            {
                sale.Status     = DTO.Entities.ModelEnums.Status.Active;
                sale.UpdateDate = DateTime.Now;
                sale.UploadDate = DateTime.Now;

                Sales entity = null;
                entity = Map <Sales>(sale);
                _saleRepository.Create(entity);
                _unitOfWork.SaveChanges();
                sale.Id = entity.Id;
                return(new Response <SalesDTO>()
                {
                    IsSuccess = true, Message = "Eklendi.", Result = sale
                });
            }
            catch (Exception ex)
            {
                return(new Response <SalesDTO>()
                {
                    IsSuccess = false, Exception = ex, Message = "Hata oluştu."
                });
            }
        }
예제 #7
0
        private void btnGetBack_Click(object sender, EventArgs e)
        {
            if (cmbDeletedData.SelectedIndex == 0)
            {
                if (categorybll.GetBack(categorydetail))
                {
                    MessageBox.Show("The category has been recovered");
                    dto = bll.Select(true);
                    dataGridView1.DataSource = dto.Categories;
                }
            }
            else if (cmbDeletedData.SelectedIndex == 1)
            {
                if (customerbll.GetBack(customerdetail))
                {
                    MessageBox.Show("The customer has been recovered");
                    dto = bll.Select(true);
                    dataGridView1.DataSource = dto.Customers;
                }
            }
            else if (cmbDeletedData.SelectedIndex == 2)
            {
                if (productdetail.isCategoryDeleted)
                {
                    MessageBox.Show("Category was deleted, you must get it back");
                }

                else if (productbll.GetBack(productdetail))
                {
                    MessageBox.Show("The product has been recovered");
                    dto = bll.Select(true);
                    dataGridView1.DataSource = dto.Products;
                }
            }
            else
            {
                if (salesdetail.isCategoryDeleted || salesdetail.isCustomerDeleted || salesdetail.isProductDeleted)
                {
                    if (salesdetail.isCategoryDeleted)
                    {
                        MessageBox.Show("Category was deleted, you must get it back");
                    }
                    if (salesdetail.isCustomerDeleted)
                    {
                        MessageBox.Show("Customer was deleted, you must get it back");
                    }
                    if (salesdetail.isProductDeleted)
                    {
                        MessageBox.Show("Product was deleted, you must get it back");
                    }
                }
                else if (salesbll.GetBack(salesdetail))
                {
                    MessageBox.Show("The sale has been recovered");
                    dto = bll.Select(true);
                    dataGridView1.DataSource = dto.Sales;
                }
            }
        }
예제 #8
0
        public int AddSales(SalesDTO salesDTO)
        {
            Manager  manager  = Database.Managers.Find(x => x.SecondName == salesDTO.ManagerName).FirstOrDefault();
            Customer customer = Database.Customers.Find(x => x.FullName == salesDTO.CustomerName).FirstOrDefault();
            Product  product  = Database.Products.Find(x => x.Name == salesDTO.ProductName).FirstOrDefault();

            Sales sales = new Sales
            {
                DateTime = salesDTO.DateTime,
                Amount   = salesDTO.Amount
            };

            if (manager == null)
            {
                manager = new Manager()
                {
                    SecondName = salesDTO.ManagerName
                };
                sales.Manager = manager;
            }
            else
            {
                sales.ManagerID = manager.Id;
            }


            if (customer == null)
            {
                customer = new Customer()
                {
                    FullName = salesDTO.CustomerName
                };
                sales.Customer = customer;
            }
            else
            {
                sales.CustomerID = customer.Id;
            }


            if (product == null)
            {
                product = new Product()
                {
                    Name = salesDTO.ProductName
                };
                sales.Product = product;
            }
            else
            {
                sales.ProductID = product.Id;
            }

            Database.Saleses.Create(sales);

            int id = Database.Saleses.GetAll().OrderByDescending(x => x.Id).Select(z => z.Id).FirstOrDefault();

            return(id);
        }
예제 #9
0
 /// <summary>
 /// Actualiza un Sales por medio del id
 /// </summary>
 public void Update(string id, SalesDTO entity)
 {
     using (var dbContextScope = new TiendaDbContext())
     {
         _repository.Update(this.GetEntity(entity), id);
         dbContextScope.SaveChanges();
     }
 }
예제 #10
0
 private void btnGetBack_Click(object sender, EventArgs e)
 {
     if (cmbDeletedData.SelectedIndex == 0)
     {
         if (categoryBLL.GetBack(categorydetail))
         {
             MessageBox.Show("Category was Get back");
             dto = bll.Select(true);
             dataGridView1.DataSource = dto.Categories;
         }
     }
     else if (cmbDeletedData.SelectedIndex == 1)
     {
         if (customerBLL.GetBack(customerdetail))
         {
             MessageBox.Show("Customer was Get back");
             dto = bll.Select(true);
             dataGridView1.DataSource = dto.Customers;
         }
     }
     else if (cmbDeletedData.SelectedIndex == 2)
     {
         if (productdetail.isCategoryDeleted)
         {
             MessageBox.Show("Category was deleted first get back category");
         }
         else if (productBLL.GetBack(productdetail))
         {
             MessageBox.Show("Product was Get back");
             dto = bll.Select(true);
             dataGridView1.DataSource = dto.Products;
         }
     }
     else
     {
         if (salesdetail.isCategoryDeleted || salesdetail.isCustomerDeleted || salesdetail.isProductDeleted)
         {
             if (salesdetail.isCategoryDeleted)
             {
                 MessageBox.Show("Category was deleted first get back category");
             }
             else if (salesdetail.isCustomerDeleted)
             {
                 MessageBox.Show("customer was deleted first get back category");
             }
             else if (salesdetail.isProductDeleted)
             {
                 MessageBox.Show("Product was deleted first get back category");
             }
         }
         else if (salesBLL.GetBack(salesdetail))
         {
             MessageBox.Show("Sales was Get back");
             dto = bll.Select(true);
             dataGridView1.DataSource = dto.Sales;
         }
     }
 }
예제 #11
0
        /// <summary>
        /// Metodo que dada una entidad devuelve su DTO
        /// </summary>
        /// <param name="entity">Entidad de la cual se requiere el DTO</param>
        /// <returns>DTO para la entidad pasada por parametro</returns>
        private SalesDTO GetDTO(Sales entity)
        {
            SalesDTO dto = new SalesDTO();

            dto.SalesId = entity.SalesId;
            this.SetDTOExtras(entity, ref dto);

            return(dto);
        }
예제 #12
0
 public bool UpdateSalesData(SalesDTO sales)
 {
     context.Sales.Update(mapper.Map <Sales>(sales));
     if (context.SaveChanges() == 1)
     {
         return(true);
     }
     return(false);
 }
예제 #13
0
 public bool DeleteSalesData(SalesDTO deletesales)
 {
     context.Sales.Remove(mapper.Map <Sales>(deletesales));
     if (context.SaveChanges() == 1)
     {
         return(true);
     }
     return(false);
 }
예제 #14
0
 /// <summary>
 /// Servicio que permite insertar una nueva entidad: Sales (Sales)
 /// </summary>
 /// <param name="entity">DTO de la entidad a insertar</param>
 /// <param name="user">Usuario que ejecuta la inserción</param>
 /// <returns>Se devulve el DTO de la entidad creada con el id asignado</returns>
 public SalesDTO Insert(SalesDTO dto, string user)
 {
     using (var dbContextScope = new TiendaDbContext())
     {
         Sales entity = GetEntity(dto);
         entity = _repository.Insert(entity, user);
         dbContextScope.SaveChanges();
         return(GetDTO(entity));
     }
 }
예제 #15
0
        // GET: Sales/Create
        public ActionResult Create()
        {
            var model = new SalesDTO {
            };

            model.CustomerList = operations.GetAllCustomers();
            model.StoreList    = operations.GetAllStores();
            model.ProductList  = operations.GetAllProducts();
            return(View(model));
        }
예제 #16
0
 public int AddSales(SalesViewModel salesViewModel)
 {
     if (salesViewModel != null)
     {
         SalesDTO salesDto = Mapper.Map <SalesDTO>(salesViewModel);
         int      id       = _salesService.AddSales(salesDto);
         return(id);
     }
     else
     {
         return(0);
     }
 }
예제 #17
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            var frm = new FrmSales();

            frm.dto = dto;
            this.Hide();
            frm.ShowDialog();
            this.Visible = true;

            dto = bll.Select();
            dataGridView1.DataSource = dto.Sales;
            CleanFilter();
        }
예제 #18
0
        public List <SalesDTO> GetSalesData()
        {
            List <SalesDTO> sales    = new List <SalesDTO>();
            List <Sales>    allSales = context.Sales.Include("Customer").Include("Store").Include("Product").ToList();

            foreach (var item in allSales)
            {
                SalesDTO sale = mapper.Map <SalesDTO>(item);
                sales.Add(sale);
            }

            return(sales);
        }
예제 #19
0
 public int EditSales(SalesViewModel salesViewModel)
 {
     if (salesViewModel != null)
     {
         SalesDTO salesDto = Mapper.Map <SalesDTO>(salesViewModel);
         _salesService.EditSales(salesDto);
         return(1);
     }
     else
     {
         return(0);
     }
 }
예제 #20
0
        public void EditSales(SalesDTO salesDTO)
        {
            Manager  manager  = Database.Managers.Find(x => x.SecondName == salesDTO.ManagerName).FirstOrDefault();
            Customer customer = Database.Customers.Find(x => x.FullName == salesDTO.CustomerName).FirstOrDefault();
            Product  product  = Database.Products.Find(x => x.Name == salesDTO.ProductName).FirstOrDefault();

            Sales sales = Mapper.Map <Sales>(salesDTO);

            sales.ManagerID  = manager.Id;
            sales.CustomerID = customer.Id;
            sales.ProductID  = product.Id;

            Database.Saleses.Update(sales);
        }
예제 #21
0
        public async Task <ActionResult <Sales> > Add(SalesDTO salesDTO)
        {
            if (!(await ProductsExists(salesDTO.productId)))
            {
                return(BadRequest("Product does not exist"));
            }

            if (!(await UserExists(salesDTO.userId)))
            {
                return(BadRequest("User does not exist"));
            }

            var productIdStr = salesDTO.productId.ToString();
            var sale         = new Sales {
                productId = productIdStr,
                userId    = salesDTO.userId,
                price     = salesDTO.price,
                amount    = salesDTO.amount
            };

            var product = await _context.Products.FindAsync(salesDTO.productId);

            if (salesDTO.amount <= product.quantity)
            {
                var new_amount = product.quantity - salesDTO.amount;
                product.quantity = new_amount;
            }
            else
            {
                return(BadRequest("The input amount cannot be larger than the quantity of product"));
            }

            var total_price = salesDTO.amount * salesDTO.price;
            var prod_id     = salesDTO.productId;

            var producttt = await _context.Products.SingleOrDefaultAsync(x => x.Id == prod_id);

            var user_id = producttt.userId;
            var user    = await _context.Users.SingleOrDefaultAsync(x => x.Id == user_id);

            user.Balance = user.Balance + total_price;


            _context.Sales.Add(sale);
            await _context.SaveChangesAsync();

            return(sale);
        }
예제 #22
0
        private void FrmSalesLIst_Load(object sender, EventArgs e)
        {
            dto = bll.Select();
            dataGridView1.DataSource            = dto.Sales;
            dataGridView1.Columns[0].HeaderText = "Customer";
            dataGridView1.Columns[1].HeaderText = "Product";
            dataGridView1.Columns[2].HeaderText = "Category";

            dataGridView1.Columns[3].Visible = false;
            dataGridView1.Columns[4].Visible = false;
            dataGridView1.Columns[5].Visible = false;

            cbCategory.DataSource    = dto.Categories;
            cbCategory.DisplayMember = "CategoryName";
            cbCategory.ValueMember   = "ID";
            cbCategory.SelectedIndex = -1;
        }
예제 #23
0
        public async Task <ActionResult <SalesDTO> > PutSales(int id, Sales sales)
        {
            if (id != sales.Id)
            {
                return(BadRequest());
            }

            _context.Entry(sales).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SalesExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            _context.Entry(sales).Reference(x => x.Customer).Load();
            _context.Entry(sales).Reference(x => x.Product).Load();
            _context.Entry(sales).Reference(x => x.Store).Load();

            var dto = new SalesDTO()
            {
                Id           = sales.Id,
                CustomerId   = sales.CustomerId,
                ProductId    = sales.ProductId,
                StoreId      = sales.StoreId,
                DateSold     = sales.DateSold,
                CustomerName = sales.Customer.Name,
                ProductName  = sales.Product.Name,
                StoreName    = sales.Store.Name
            };

            return(dto);
            //return NoContent();
        }
예제 #24
0
        public IEnumerable <SalesDTO> GetSales()
        {
            IEnumerable <Sales> allSales    = Database.Saleses.GetAll();
            List <SalesDTO>     allSalesDTO = new List <SalesDTO>();

            foreach (var sales in allSales)
            {
                SalesDTO salesDTO = new SalesDTO();
                salesDTO.Id           = sales.Id;
                salesDTO.DateTime     = sales.DateTime;
                salesDTO.Amount       = sales.Amount;
                salesDTO.ManagerName  = sales.Manager.SecondName;
                salesDTO.CustomerName = sales.Customer.FullName;
                salesDTO.ProductName  = sales.Product.Name;

                allSalesDTO.Add(salesDTO);
            }

            return(allSalesDTO);
        }
예제 #25
0
        private Sales GetEntity(SalesDTO dto)
        {
            using (_dbContextScopeFactory)
            {
                Sales entity = null;
                if (dto.SalesId > 0)
                {
                    entity = _repository.Get(dto.SalesId);
                }
                if (entity == null)
                {
                    entity = new Sales();
                }
                entity.SalesId = dto.SalesId;

                this.SetEntityExtras(ref entity, dto);

                return(entity);
            }
        }
예제 #26
0
 private void btnUpdate_Click(object sender, EventArgs e)
 {
     if (detail.SalesID == 0)
     {
         MessageBox.Show("Please select asales from table");
     }
     else
     {
         FrmSales frm = new FrmSales();
         frm.isUpdate = true;
         frm.detail   = detail;
         frm.dto      = dto;
         this.Hide();
         frm.ShowDialog();
         this.Visible             = true;
         bll                      = new SalesBLL();
         dto                      = bll.Select();
         dataGridView1.DataSource = dto.Sales;
         CleanFilters();
     }
 }
예제 #27
0
 private void btnDelete_Click(object sender, EventArgs e)
 {
     if (detail.SalesID == 0)
     {
         MessageBox.Show("Please select a sales from table");
     }
     else
     {
         DialogResult result = MessageBox.Show("Are you sure?", "Warning!!", MessageBoxButtons.YesNo);
         if (result == DialogResult.Yes)
         {
             if (bll.Delete(detail))
             {
                 MessageBox.Show("Sales was deleted");
                 bll = new SalesBLL();
                 dto = bll.Select();
                 dataGridView1.DataSource = dto.Sales;
                 CleanFilters();
             }
         }
     }
 }
        public Task <CommandResult> ProductSales([FromBody] SalesDTO salesDTO)
        {
            var salesCommand = new SalesCommand
            {
                SalesId   = Guid.NewGuid().ToString(),
                SalesDate = salesDTO.SalesDate
            };

            foreach (SalesProductDTO productDTO in salesDTO.SalesProducts)
            {
                var product = new SalesProduct
                {
                    ProductId      = productDTO.ProductId,
                    ProductName    = productDTO.ProductName,
                    UnitName       = productDTO.UnitName,
                    SalesUnitPrice = productDTO.UnitPrice,
                    SalesQuantity  = productDTO.Quantity
                };
                salesCommand.SalesProducts.Add(product);
            }

            return(commandBus.Send <SalesCommand, CommandResult>(salesCommand));
        }
예제 #29
0
 private void FrmDeleted_Load(object sender, EventArgs e)
 {
     cmbDeletedData.Items.Add("Category");
     cmbDeletedData.Items.Add("Customer");
     cmbDeletedData.Items.Add("Product");
     cmbDeletedData.Items.Add("Sales");
     dto = bll.Select(true);
     dataGridView1.DataSource            = dto.Sales;
     dataGridView1.Columns[0].HeaderText = "Customer Name";
     dataGridView1.Columns[1].HeaderText = "Product Name";
     dataGridView1.Columns[2].HeaderText = "Category Name";
     dataGridView1.Columns[6].HeaderText = "Sales Amount";
     dataGridView1.Columns[7].HeaderText = "Price";
     dataGridView1.Columns[8].HeaderText = "Sales Date";
     dataGridView1.Columns[3].Visible    = false;
     dataGridView1.Columns[4].Visible    = false;
     dataGridView1.Columns[5].Visible    = false;
     dataGridView1.Columns[9].Visible    = false;
     dataGridView1.Columns[10].Visible   = false;
     dataGridView1.Columns[11].Visible   = false;
     dataGridView1.Columns[12].Visible   = false;
     dataGridView1.Columns[13].Visible   = false;
 }
예제 #30
0
        public Response <SalesDTO> Update(SalesDTO sales)
        {
            try
            {
                Sales entity = null;
                entity = Map <Sales>(sales);
                _saleRepository.Delete(entity.Id);
                _saleRepository.Create(entity);
                _unitOfWork.SaveChanges();
                sales.Id = entity.Id;

                return(new Response <SalesDTO>()
                {
                    IsSuccess = true, Message = "Güncellendi.", Result = sales
                });
            }
            catch (Exception ex)
            {
                return(new Response <SalesDTO>()
                {
                    IsSuccess = false, Exception = ex, Message = "Hata oluştu."
                });
            }
        }