Example #1
0
        /* ---------------------------------------------------------------- */
        /* HELPERS */
        /* ---------------------------------------------------------------- */

        /// <summary>
        /// Set all the secondary data ,like getting the status Name from the status Id
        /// </summary>
        /// <param name="sale"> Sale to process </param>
        /// <param name="saleStatusList"> List with all Sale Status </param>
        /// <param name="userList"> List of Users </param>
        public SaleVM ProcessSale(SaleVM sale, List <SaleStatus> saleStatusList, List <Usuario> userList)
        {
            if (sale == null || saleStatusList == null || userList == null)
            {
                return(null);
            }

            // Set Status
            var thisSaleStatus = saleStatusList.FirstOrDefault(status => status.sale_status_id.Equals(sale.sale_status_id));

            sale.sale_status_name = thisSaleStatus?.name ?? string.Empty;

            // Set Seller
            var thisSeller = userList.FirstOrDefault(x => x.appuser_id.Equals(sale.seller_id));

            sale.seller = thisSeller ?? null;

            // Set Cashier
            var thisCashier = userList.FirstOrDefault(x => x.appuser_id.Equals(sale.cashier_id));

            sale.cashier = thisCashier ?? null;

            // Set User
            var thisUser = userList.FirstOrDefault(x => x.appuser_id.Equals(sale.appuser_id));

            sale.user = thisUser ?? null;

            return(sale);
        }
Example #2
0
        public async Task <IActionResult> GetSale([FromRoute] int id)
        {
            var sale = await _context.Sales.FindAsync(id);

            if (sale == null)
            {
                return(NotFound());
            }

            SaleVM            saleVM      = new SaleVM();
            List <ArticleRow> articleRows = new List <ArticleRow>();
            Article           art         = await _context.Articles.FirstAsync();

            ArticleRow articleRow = new ArticleRow();

            articleRow.article = new ArticleVM();
            articleRow.article.articleNumber = art.ArticleNumber;
            articleRow.article.name          = art.Name;
            articleRow.article.salesPrice    = (int)art.SalesPrice;
            articleRow.article.unit          = art.Unit;
            articleRows.Add(articleRow);
            saleVM.reference = sale.YourReference;
            saleVM.customer  = new SelectedCustomer();
            saleVM.customer.customerNumber = sale.CustomerNumber;
            saleVM.dateCreated             = sale.DateCreated.ToString();
            saleVM.dateCreated             = sale.DateSold.ToString();
            saleVM.statusId    = (int)sale.StatusId;
            saleVM.id          = sale.Id;
            saleVM.articleRows = articleRows;

            return(Ok(saleVM));
        }
Example #3
0
        public ActionResult Sale(SaleVM model)
        {
            if (ModelState.IsValid)
            {
                var newSale = new Sale
                {
                    PurchaseType = model.PurchaseType,
                    SaleDate     = DateTime.Now,
                    SalePrice    = model.SalePrice,
                    SalesPerson  = context.Users.FirstOrDefault(u => u.UserName == User.Identity.Name),
                    CarId        = model.CarId,
                    SaleCustomer = new Customer
                    {
                        Email           = model.Email,
                        Name            = model.Name,
                        Phone           = model.Phone,
                        CustomerAddress = new Address
                        {
                            State   = model.State,
                            City    = model.City,
                            Zip     = model.Zip,
                            Street1 = model.Street1,
                            Street2 = model.Street2,
                        }
                    }
                };

                repo.SellCar(newSale);

                return(RedirectToAction("Index"));
            }
            return(View(model));
        }
Example #4
0
        //==============================================================
        // THIS IS BY FAR THE MOST CANCEROUS THING I HAVE EVER FORMATTED
        // VIEWERS BE WARNED
        //==============================================================

        //========================== BEGIN ATTEMPT 01 =================================\\

        /*public class transactionList
         * {
         *   public IEnumerable<SaleItem> itemList { get; private set; }
         *   public Sale s { get; private set; }
         *
         *   public transactionList(Sale sale, IEnumerable<SaleItem> saleItemList)
         *   {
         *        s = sale;
         *        itemList = saleItemList;
         *   }
         * }
         *
         * private transactionList getTransactionList(int givenID, MusciToolkitDBEntities dbInstance)
         * {
         *   var sale = db.Sales.SingleOrDefault(x => x.SaleID == givenID);
         *   var saleItemList = db.SaleItems.Where(x => x.SaleID == givenID);
         *   var transaction = new transactionList(sale, saleItemList);
         *   transactionTotalSet(transaction);
         *   return transaction;
         * }
         *
         * public void transactionTotalSet(transactionList x)
         * {
         *   var allItems = x.itemList;
         *   double totalPrice = 0;
         *   int totalItems = 0;
         *   foreach (var item in allItems)
         *   {
         *        double price = item.Quantity * (double)item.Inventory.SalePrice;
         *        totalPrice += price;
         *        totalItems += item.Quantity;
         *   }
         *   return;
         * }*/

        //========================== END ATTEMPT 01 =================================\\

        // TRY THIS ONE
        //------------------------

        /*public class soWithItems
         * {
         *   public IEnumerable<SaleItem> itemList { get; private set; }
         *   public Sale s { get; private set; }
         *
         *   public soWithItems(Sale x, IEnumerable<SaleItem> y)
         *   {
         *        s = x;
         *        itemList = y;
         *   }
         * }
         *
         * public soWithItems getOrderWithItems(int givenID, MusciToolkitDBEntities dbInstance)
         * {
         *   var ansSO = db.Sales.SingleOrDefault(x => x.SaleID == givenID);
         *   var ansList = db.SaleItems.Where(x => x.SaleID == givenID);
         *   foreach (var each in ansList)
         *   {
         *        double currLineCost = (double)each.Quantity * (double)each.Inventory.SalePrice;
         *        each.TotalSIPrice = currLineCost;
         *        each.TotalSI += each.Quantity;
         *   }
         *   db.SaveChanges();
         *   var ans = new soWithItems(ansSO, ansList);
         *   soTotalSet(ans);
         *   return ans;
         * }
         *
         * public void soTotalSet(soWithItems x)
         * {
         *   var allItems = x.itemList;
         *   double ans = 0;
         *   int items = 0;
         *   foreach (var line in allItems)
         *   {
         *        double lineTotal = line.Quantity * (double)line.Inventory.SalePrice;
         *        ans += lineTotal;
         *        items += line.Quantity;
         *   }
         *   x.s.TotalSalePrice = ans;
         *   x.s.TotalSaleItems = items;
         *   return;
         * }*/

        /*public double getTotalSalePrice(int id)
         * {
         *   soWithItems x = getOrderWithItems(id, db);
         *   return x.s.TotalSalePrice;
         * }
         *
         * public int getTotalSaleItems(int id)
         * {
         *   soWithItems x = getOrderWithItems(id, db);
         *   return x.s.TotalSaleItems;
         * }*/

        public void updateSaleVM(SaleVM saleVM)
        {
            List <SaleItem> SaleItemList = new List <SaleItem>();
            var             allSaleItems = db.SaleItems.ToList();

            foreach (var saleItem in allSaleItems)
            {
                if (saleItem.Sale.SaleID == Int32.Parse(Session["Current SaleID"].ToString()))
                {
                    SaleItemList.Add(saleItem);
                    saleVM.Returned = saleItem.Returned;
                }
            }

            int    totalItems = 0;
            double totalPrice = 0;

            foreach (var item in SaleItemList)
            {
                totalItems += item.Quantity;
                totalPrice += (item.Quantity * (double)item.Inventory.SalePrice);
                //saleVM.TotalSaleItems = totalItems;
                //saleVM.TotalSalePrice = totalPrice;
            }

            saleVM.TotalSaleItems = totalItems;
            saleVM.TotalSalePrice = totalPrice;
        }
Example #5
0
        public JsonResult AddReturns(SaleVM O)
        {
            bool status = false;


            Sale sale1 = db.Sales.Find(O.IdSale);

            if (sale1.SaleState == SaleState.Finalizada)
            {
                return(new JsonResult {
                    Data = new { status = status }
                });
            }


            Sale sale2 = sale1;

            sale1.Comments     = O.Comments;
            sale1.SaleTotal    = O.SaleTotal;
            sale1.LinesTotal   = O.LinesTotal;
            sale1.ReturnsTotal = O.ReturnsTotal;
            int count = 0;

            foreach (var i in O.SaleLines)
            {
                //sale1.SaleLines.ElementAt(count).LineQuantity = i.LineQuantity;
                sale1.SaleLines.ElementAt(count).LinePrice       = i.LinePrice;
                sale1.SaleLines.ElementAt(count).LineDiscount    = i.LineDiscount;
                sale1.SaleLines.ElementAt(count).LineTotal       = i.LineTotal;
                sale1.SaleLines.ElementAt(count).Return          = i.Return;
                sale1.SaleLines.ElementAt(count).LineTotalReturn = i.LineTotalReturn;

                count++;
            }
            db.Entry(sale1).State = EntityState.Modified;
            db.SaveChanges();

            Sale saledata = sale1;

            foreach (var item in saledata.SaleLines)
            {
                Product prod = new Product();
                prod              = db.Products.Find(item.IdProduct);
                prod.Stock        = prod.Stock - item.LineQuantity + item.Return;
                prod.ParcialStock = prod.ParcialStock + item.Return;

                db.Entry(prod).State = EntityState.Modified;
                db.SaveChanges();
            }
            saledata.SaleState       = SaleState.Finalizada;
            db.Entry(saledata).State = EntityState.Modified;
            db.SaveChanges();
            status = true;


            return(new JsonResult {
                Data = new { status = status, id = sale1.IdSale }
            });
        }
Example #6
0
        public ActionResult Sale(int id)
        {
            var model = new SaleVM();

            model.CarId = id;

            return(View(model));
        }
Example #7
0
        public ActionResult Purchase()
        {
            SaleVM model = new SaleVM();

            model.SetStateItems();
            model.SetPurchaseTypeItems();
            return(View(model));
        }
        public ActionResult Purchase(SaleVM sold)
        {
            var details = new DetailsVM();

            details.Vehicle      = VehicleRepositoryFactory.GetVehicleRepository().GetVehicleByVIN(sold.Sale.VinNumber);
            details.BodyStyles   = BodyStyleRepositoryFactory.GetBodyStyleRepository().GetBodyStyles();
            details.Colors       = ColorRepositoryFactory.GetColorRepository().GetColors();
            details.Makes        = MakeRepositoryFactory.GetMakeRepository().GetMakes();
            details.Models       = ModelRepositoryFactory.GetModelRepository().GetModels();
            details.Transmission = TransmissionTypeRepositoryFactory.GetTransmissionTypeRepository().GetTransmissions();

            sold.Details = details;

            if (sold.Sale.Phone == null && sold.Sale.Email == null)
            {
                ModelState.AddModelError("", "You must enter a phone number or an email address.");
            }
            if (sold.Sale.Zipcode.Length > 5)
            {
                ModelState.AddModelError("", "Zipcode should only be 5 digits long, please.");
            }
            if (sold.Sale.PurchasePrice < ((sold.Details.Vehicle.MSRP * 95) * .01m))
            {
                ModelState.AddModelError("", "Purchase price should not be lower than 95% vehicle MSRP, please recalculate.");
            }
            if (sold.Sale.PurchasePrice > sold.Details.Vehicle.MSRP)
            {
                ModelState.AddModelError("", "Purchase price should not be greater than MSRP, please recalculate.");
            }


            var repo = SaleRepositoryFactory.GetSaleRepository();

            if (ModelState.IsValid)
            {
                sold.Sale.UserID       = User.Identity.GetUserId();
                sold.Sale.PurchaseDate = DateTime.Now;
            }

            var result = repo.Add(sold.Sale);

            if (result != null)
            {
                var vehicleToUpdate = VehicleRepositoryFactory.GetVehicleRepository().GetVehicleByVIN(sold.Sale.VinNumber);
                vehicleToUpdate.IsPurchased = true;
                vehicleToUpdate.IsFeatured  = false;
                VehicleRepositoryFactory.GetVehicleRepository().Edit(vehicleToUpdate);

                return(View("Index"));
            }


            // assign sold.UserID to currently logged in user
            // assign sold.PurchaseDate to DateTime.Now
            // if saving the purchase is a success, update vehicle.IsPurchased to true and vehicle.IsFeatured to false;
            return(View());
        }
Example #9
0
        // GET: PanelBoss/SaleBoss
        public ActionResult SaleList()
        {
            SaleVM svm = new SaleVM
            {
                Sales = _saleRep.GetActives(),
            };

            return(View(svm));
        }
Example #10
0
        public int AddOrder(SaleVM sale)
        {
            var sp = "SP_AddOrder";

            param.AddDynamicParams(sale);
            var result = sql.Execute(sp, param, commandType: CommandType.StoredProcedure);

            return(result);
        }
Example #11
0
 public async Task <IActionResult> Create([FromBody] SaleVM model)
 {
     if (ModelState.IsValid)
     {
         if (await _service.AddSV(model))
         {
             return(new CreatedAtRouteResult(nameof(GetById), new { id = model.Id }, model));
         }
     }
     return(BadRequest("No se ha podido hacer la venta"));
 }
Example #12
0
        // GET: Sale/Details/5
        public ActionResult Details(int id)
        {
            Sale sale = manager.returnSaleByID(id);

            string employeeName = employeeManager.getEmployeeByEmployeeID(sale.EmployeeID).getEmployeeName();
            string customerName = customerManager.getCustomerByID(sale.CustomerID).getName();
            SaleVM sale2        = new SaleVM(sale, employeeName, customerName);

            ViewBag.Title = "Sale Details";

            return(View(sale2));
        }
        public IActionResult Detail(int?id)
        {
            Sale sale = _db.Sales.Include(s => s.SaleProducts).ThenInclude(s => s.Product).ThenInclude(p => p.ProductImages).FirstOrDefault(s => s.Id == id);
            List <ProductImage> images = _db.ProductImages.Where(i => i.IsMain == true).ToList();
            SaleVM saleVM = new SaleVM
            {
                Sale          = sale,
                ProductImages = images
            };

            return(View(sale));
        }
        public IActionResult Buy()
        {
            if (Request.Cookies["cart"] != null)
            {
                string b      = Request.Cookies["cart"];
                SaleVM saleVM = new SaleVM()
                {
                    ProductVM = JsonConvert.DeserializeObject <List <ProducttVM> >(b)
                };

                return(View(saleVM));
            }
            return(View());
        }
Example #15
0
        public async Task <ActionResult <Sale> > PostSale([FromBody] SaleVMStr saleVMStr)
        {
            // string customerNumber = (saleVM != null && saleVM.SelectedCustomer != null && Convert.ToInt32(saleVM.SelectedCustomer.CustomerNumber) > 0) ? saleVM.SelectedCustomer.CustomerNumber : "";
            SaleVM saleVM = saleVMStr.SaleVm.GetObjectFronJson <SaleVM>();

            //using var transaction = _context.Database.BeginTransaction();
            {
                try
                {
                    //List<SaleArticle> saleArticles = new List<SaleArticle>();
                    //if (saleVM != null && saleVM.articleRows != null && saleVM.articleRows.Count > 0)
                    //{
                    //    foreach (var item in saleVM.articleRows)
                    //    {
                    //        saleArticles.Add(new SaleArticle()
                    //        {
                    //            ArticleNumber = item.article.articleNumber,
                    //            Price = item.article.salesPrice,
                    //            Quantity = item.quantity,
                    //            TotalSum = item.article.salesPrice * item.quantity,
                    //            Description = item.article.description,
                    //        });
                    //    }
                    //}
                    Sale sale = new Sale();

                    sale.CustomerNumber = saleVM.customer.customerNumber;
                    sale.YourReference  = saleVM.reference;
                    //sale.SaleArticles = saleArticles;
                    sale.DateCreated = DateTime.Parse(saleVM.dateCreated.Substring(0, 10));
                    sale.DateSold    = DateTime.Parse(saleVM.dateSold.Substring(0, 10));
                    sale.StatusId    = (Status)saleVM.statusId;
                    sale.UserId      = 1;
                    // HACK: Fixxa
                    // sale.UserId = 2;

                    _context.Sales.Add(sale);

                    await _context.SaveChangesAsync();

                    //transaction.Commit();
                }
                catch (Exception e)
                {
                    //transaction.Rollback();
                }
            }
            return(CreatedAtAction(nameof(GetSale), new { id = saleVM.id }, saleVM));
        }
        public IActionResult LoadShopBonus(string selectedDate, int skip)
        {
            DateTime date          = Convert.ToDateTime(selectedDate);
            SaleVM   saleViewModel = new SaleVM();

            saleViewModel.AvialableShops = _context.Shops.Select(y => new AvialableShop
            {
                SaleSalary   = _context.Sales.Where(x => x.Date.Year == date.Year && x.Date.Month == date.Month && x.ShopId == y.ID).Sum(x => x.SaleSalary),
                ShopName     = y.Name,
                SelectedDate = date,
                ShopId       = y.ID
            }).Skip(skip).Take(2).ToList();

            return(View(saleViewModel));
        }
Example #17
0
        public IActionResult ShopBonus(string selectedDate)
        {
            DateTime date = Convert.ToDateTime(selectedDate);
            SaleVM   sale = new SaleVM();

            sale.AvialableShops = _context.Shops.Select(y => new AvialableShop
            {
                ShopId       = y.ID,
                SaleSalary   = _context.Sales.Where(x => x.Date.Year == date.Year && x.Date.Month == date.Month && x.ShopId == y.ID).Sum(x => x.SaleSalary),
                ShopName     = y.Name,
                SelectedDate = date,
            }).ToList();

            return(View(sale));
        }
Example #18
0
        public SaleVM Add(SaleVM entity)
        {
            try
            {
                var sale = _mapper.Map <Sale>(entity);
                _unitOfWork.SetTrackAll();
                IList <DeliveryDetail> deliveriesBoxes = new List <DeliveryDetail>();

                foreach (var saleProduct in sale.SalesProducts)
                {
                    if (entity.HasDelivery)
                    {
                        var boxes = _unitOfWork.RepositoryCustom <IBoxRepository>().GetBoxesParentsByOrderIDWithProductItems(sale.OrderID);

                        foreach (var box in boxes)
                        {
                            DeliveryDetail deliveryDetail = DeliveryDetail.FactoryCreate(sale.ClientID, saleProduct.ProductID, sale.OrderID, saleProduct.Quantity);

                            deliveryDetail.MakeDeliveryBox(box);
                            deliveriesBoxes.Add(deliveryDetail);
                        }

                        _unitOfWork.Repository <Box>().UpdateRange(boxes);
                    }

                    saleProduct.CalcTotalValue();
                }

                sale.CalculatePayment();
                _unitOfWork.Repository <DeliveryDetail>().AddRange(deliveriesBoxes);
                _unitOfWork.Repository <Sale>().Add(sale);
                _unitOfWork.CommitSync();

                return(entity);
            }
            catch (CustomException exc)
            {
                _unitOfWork.Rollback();
                throw exc;
            }
            catch (Exception ex)
            {
                _unitOfWork.Rollback();
                throw CustomException.Create <SaleApplicationService>("Unexpected error fetching add sale", nameof(this.Add), ex);
            }
        }
Example #19
0
        public async Task <IActionResult> PutSale(int id, [FromBody] SaleVMStr saleVMStr)
        {
            SaleVM saleVM       = saleVMStr.SaleVm.GetObjectFronJson <SaleVM>();
            var    existingSale = await _context.Sales.FindAsync(id);

            if (existingSale is null)
            {
                return(NotFound());
            }
            if (id != saleVM.id)
            {
                return(BadRequest());
            }

            //List<SaleArticle> saleArticles = new List<SaleArticle>();

            //foreach (ArticleRow item in saleVM.articleRows)
            //{
            //    saleArticles.Add(new SaleArticle()
            //    {
            //        ArticleNumber = item.article.articleNumber,
            //        Price = item.article.salesPrice,
            //        Quantity = item.quantity,
            //        TotalSum = item.article.salesPrice * item.quantity,
            //        Description = item.article.description
            //    });
            //}

            existingSale.CustomerNumber = saleVM.customer.customerNumber;
            existingSale.YourReference  = saleVM.reference;
            existingSale.DateCreated    = DateTime.Parse(saleVM.dateCreated.Substring(0, 10));
            existingSale.DateSold       = DateTime.Parse(saleVM.dateSold.Substring(0, 10));
            existingSale.StatusId       = (Status)saleVM.statusId;
            //existingSale.SaleArticles = saleArticles;

            try
            {
                _context.Entry(existingSale).State = EntityState.Modified;
                _context.SaveChanges();
            }
            catch (DbUpdateConcurrencyException ex)
            {
                throw (ex);
            }
            return(StatusCode((int)HttpStatusCode.OK));
        }
 // POST: Products/Create
 public ActionResult CreateOrder(SaleVM order)
 {
     try
     {
         httpClient.DefaultRequestHeaders.Add("Authorization", HttpContext.Session.GetString("Token"));
         var myContent   = JsonConvert.SerializeObject(order);
         var buffer      = System.Text.Encoding.UTF8.GetBytes(myContent);
         var byteContent = new ByteArrayContent(buffer);
         byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
         var affectedRow = httpClient.PostAsync("Sales", byteContent).Result;
         return(Json(new { data = affectedRow, affectedRow.StatusCode }));
     }
     catch
     {
         return(View());
     }
 }
Example #21
0
        public IActionResult ShopBonus(decimal requiredSalary, decimal bonus, SaleVM saleVM, int bonusform)
        {
            //if (!ModelState.IsValid || requiredSalary == 0 || bonusform != 1 || bonusform != 0)
            //{
            //    return View(saleVM);
            //}
            List <WorkerBonus> addBonus = new List <WorkerBonus>();
            List <Shop>        shops    = new List <Shop>();
            List <Worker>      workers  = new List <Worker>();

            foreach (var item in saleVM.AvialableShops)
            {
                if (item.SaleSalary >= requiredSalary)
                {
                    var shop = _context.Shops.Where(x => x.ID == item.ShopId).ToList();
                    shops.AddRange(shop);
                }
            }

            foreach (var shop in shops)
            {
                var work = _context.Users.Where(x => x.Worked == true).Include(x => x.Position).Where(x => x.ShopId == shop.ID).ToList();
                workers.AddRange(work);
            }

            foreach (var work in workers)
            {
                if (bonusform == 1)
                {
                    addBonus.Add(new WorkerBonus {
                        BonusDate = DateTime.Now, BonusSalary = bonus, Reason = "For great shopping", WorkerId = work.Id
                    });
                }
                else
                if (bonusform == 0)
                {
                    addBonus.Add(new WorkerBonus {
                        BonusDate = DateTime.Now, BonusSalary = (work.Position.Salary) / 100 * bonus, Reason = "For great shopping", WorkerId = work.Id
                    });
                }
            }

            _context.WorkerBonus.AddRange(addBonus);
            _context.SaveChanges();
            return(RedirectToAction("List", "Shop"));
        }
Example #22
0
        public JsonResult CreateSale(SaleVM O)
        {
            //CustomerName contiene el id del cliente
            bool status = false;
            Sale sale   = new Sale();
            var  cusid  = Int32.Parse(O.CustomerName);


            if (ModelState.IsValid)
            {
                sale.SaleDate    = O.SaleDate;
                sale.SaleAddress = O.SaleAddress;
                sale.Comments    = O.Comments;
                sale.SaleTotal   = O.SaleTotal;
                sale.IdCustomer  = cusid;
                db.Sales.Add(sale);
                db.SaveChanges();

                foreach (var i in O.SaleLines)
                {
                    SaleLine saleline = new SaleLine();
                    saleline.IdProduct    = i.IdProduct;
                    saleline.LinePrice    = i.LinePrice;
                    saleline.LineDiscount = i.LineDiscount;
                    saleline.LineQuantity = i.LineQuantity;
                    saleline.LineTotal    = i.LineTotal;
                    saleline.IdSale       = sale.IdSale;
                    db.SaleLines.Add(saleline);
                    db.SaveChanges();

                    Product prod = new Product();
                    prod = db.Products.Find(i.IdProduct);
                    prod.ParcialStock    = prod.ParcialStock - i.LineQuantity;
                    db.Entry(prod).State = EntityState.Modified;
                    db.SaveChanges();
                }
                status = true;
            }
            else
            {
                status = false;
            }
            return(new JsonResult {
                Data = new { status = status }
            });
        }
Example #23
0
        public async Task <bool> AddSV(SaleVM model)
        {
            try
            {
                var sale = new Sale()
                {
                    ClientId   = model.ClientId,
                    EmployeeId = model.EmployeeId,
                    CreatedAt  = DateTime.Now,
                    SaleCode   = model.SaleCode,
                    State      = State.active,
                    Total      = model.Total
                };

                if (await Add(sale))
                {
                    //retorna el ultimo elemento agregado para sacar el id
                    var saleId = await _dbContext.Sales.OrderByDescending(x => x.CreatedAt).FirstAsync();

                    foreach (var item in model.Products)
                    {
                        var p = await _dbContext.Products.FindAsync(item.Id);

                        p.Quantity -= item.Quantity;
                        await _dbContext.SaleProducts
                        .AddAsync(new SaleProduct
                        {
                            CreateAt  = DateTime.Now,
                            ProductId = item.Id,
                            Quantity  = item.Quantity,
                            SaleId    = saleId.Id
                        });

                        _dbContext.Products.Update(p);
                    }
                }
                await _dbContext.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Example #24
0
        // GET: Sale
        public ActionResult Index()
        {
            List <Sale>   sales   = manager.returnAllSales();
            List <SaleVM> saleVMs = new List <SaleVM>();

            foreach (Sale sale in sales)
            {
                string employeeName = employeeManager.getEmployeeByEmployeeID(sale.EmployeeID).getEmployeeName();
                string customerName = customerManager.getCustomerByID(sale.CustomerID).getName();

                SaleVM sale2 = new SaleVM(sale, employeeName, customerName);
                saleVMs.Add(sale2);
            }

            ViewBag.Title = "Sales List";

            return(View(saleVMs));
        }
        public ActionResult Purchase(string vinNumber)
        {
            var details = new DetailsVM();

            details.Vehicle      = VehicleRepositoryFactory.GetVehicleRepository().GetVehicleByVIN(vinNumber);
            details.BodyStyles   = BodyStyleRepositoryFactory.GetBodyStyleRepository().GetBodyStyles();
            details.Colors       = ColorRepositoryFactory.GetColorRepository().GetColors();
            details.Makes        = MakeRepositoryFactory.GetMakeRepository().GetMakes();
            details.Models       = ModelRepositoryFactory.GetModelRepository().GetModels();
            details.Transmission = TransmissionTypeRepositoryFactory.GetTransmissionTypeRepository().GetTransmissions();

            var viewModel = new SaleVM();

            viewModel.Sale           = new GuildCars.Models.Tables.Sale();
            viewModel.Sale.VinNumber = vinNumber;
            viewModel.Details        = details;

            return(View(viewModel));
        }
Example #26
0
        private GenricApartment <ListsVM, RentVM, SaleVM, ApartmentVM> PopulateLists(string lists, Action <Rent, Sale, Apartment> action)
        {
            ListsVM listsVm = new ListsVM()
            {
                Bedrooms    = lists.GetSelectListAsync("bedrooms", "bedroomsCount"),
                Countries   = lists.GetSelectListAsync("countries", "country").OrderBy(o => o.Text),
                Furnishings = lists.GetSelectListAsync("furnishings", "furnitureType"),
                Owners      = lists.GetSelectListAsync("owners", "fullName").OrderBy(o => o.Text)
            };
            RentVM rent = new RentVM()
            {
                Periods = lists.GetSelectListAsync("periods", "period")
            };
            SaleVM      sale      = new SaleVM();
            ApartmentVM apartment = new ApartmentVM();

            action.Invoke(rent.Rent, sale.Sale, apartment.Apartment);
            return(new GenricApartment <ListsVM, RentVM, SaleVM, ApartmentVM>(listsVm, rent, sale, apartment));
        }
Example #27
0
        public IList <SaleVM> GetSales(int customerId)
        {
            List <SaleVM> l = new List <SaleVM>();

            foreach (var s in db.Sales.Where(sale => sale.CustomerId == customerId))
            {
                var data = new SaleVM();
                data.OnDate = s.OnDate;
                data.SaleId = s.SaleId;
                data.Total  = s.DeliveryPrice;
                foreach (var sd in db.SaleDetails.Where(i => i.SaleId == s.SaleId))
                {
                    data.ItemCount += sd.Quantity;
                    data.Total     += sd.Price * sd.Quantity * (100.0M - sd.Discount) / 100.0M;
                }
                l.Add(data);
            }
            return(l);
        }
Example #28
0
        public JsonResult AddStock(SaleVM O)
        {
            //CustomerName contiene el id del cliente
            bool status = false;

            foreach (var i in O.SaleLines)
            {
                Product prod = new Product();
                prod = db.Products.Find(i.IdProduct);
                prod.ParcialStock    = prod.ParcialStock + i.LineQuantity;
                prod.Stock           = prod.Stock + i.LineQuantity;
                db.Entry(prod).State = EntityState.Modified;
                db.SaveChanges();
            }
            status = true;



            return(new JsonResult {
                Data = new { status = status }
            });
        }
        public ActionResult SetInvoice(SaleVM saleVM)
        {
            var       sepet    = (CartVM)Session["Sepet"];
            var       customer = rpcustomer.Find(saleVM.CustomerID);
            InvoiceVM model    = new InvoiceVM();

            model.CustomerName   = customer.Name;
            model.Address        = customer.Address;
            model.City           = rpcity.Find(customer.CityID).Name;
            model.Region         = rpregion.Find(customer.RegionID).Name;
            model.TaxOffice      = customer.IsPerson ? "" : customer.TaxOffice;
            model.TaxNumber      = customer.IsPerson ? "T.C. " + customer.TCNo : customer.TaxNumber;
            model.ProductList    = sepet.ProductList;
            model.TotalSalePrice = sepet.TotalSalePrice;
            model.PriceString    = saleVM.PriceString;

            model.DateOfArrangement = String.Format("{0:d/M/yyyy}", saleVM.InvoiceDate);
            model.HourOfArrangement = String.Format("{0:HH:mm}", saleVM.InvoiceDate);

            decimal kdv = 0;

            model.KDVList       = new List <decimal>();
            model.KDVStringList = new List <string>();
            model.KDVList.Add(model.TotalUnitPrice);
            model.KDVStringList.Add("TOPLAM");
            foreach (var item in model.ProductList)
            {
                if (item.KDV != kdv)
                {
                    model.KDVList.Add(Math.Round(model.ProductList.Where(x => x.KDV == item.KDV).Sum(x => x.KdvPrice), 2));
                    model.KDVStringList.Add("KDV %" + Convert.ToInt32(item.KDV * 100));
                }
                kdv = item.KDV;
            }
            model.KDVList.Add(model.TotalSalePrice);
            model.KDVStringList.Add("G.TOPLAM");
            Session.Remove("Sepet");
            return(View(model));
        }
Example #30
0
        public async Task <IActionResult> Index()
        {
            List <Sale>   sales   = _db.Sales.ToList();
            List <SaleVM> saleVMs = new List <SaleVM>();

            foreach (Sale sale in sales)
            {
                AppUser user = await _userManager.FindByIdAsync(sale.AppUserId);

                SaleVM saleVM = new SaleVM
                {
                    Id           = sale.Id,
                    Date         = sale.Date,
                    Total        = sale.Total,
                    Email        = user.Email,
                    Fullname     = user.Fullname,
                    SaleProducts = _db.SaleProducts.Where(sp => sp.SaleId == sale.Id).Include(sp => sp.Product).ToList()
                };
                saleVMs.Add(saleVM);
            }
            return(View(saleVMs));
        }