Ejemplo n.º 1
0
        public ActionResult FromOrder(AddFromOrder view)
        {
            var user = db.Users.Where(u => u.UserName == User.Identity.Name).FirstOrDefault();

            if (ModelState.IsValid)
            {
                var response = MovementsHelper.SaleFromOrder(view.OrderId, User.Identity.Name);
                if (response.Succeeded)
                {
                    var newView = new NewSaleView
                    {
                        OrderId    = view.OrderId,
                        CustomerId = response.CustomerId,
                        Date       = response.Date,
                        Remarks    = response.Remarks,
                        Details    = db.SaleDetailTmps.Where(sdt => sdt.UserName == User.Identity.Name).ToList(),
                    };
                    //return PartialView(newView);
                    TempData["model"] = newView;
                    return(RedirectToAction("Create"));
                }
                ModelState.AddModelError(string.Empty, response.Message);
            }
            ViewBag.OrderId = new SelectList(CombosHelper.GetOrders(user.CompanyId), "OrderId", "OrderId");
            return(PartialView());
        }
Ejemplo n.º 2
0
        public ActionResult Detalle()
        {
            var view = new NewSaleView
            {
                Details = db.SaleDetailBkps.Where(pdb => pdb.User == User.Identity.Name).ToList()
            };

            view.Details.Reverse();

            return(PartialView("Detalle", view));
        }
Ejemplo n.º 3
0
        // GET: Sales/Create
        public ActionResult Create()
        {
            ViewBag.CellarId             = new SelectList(db.Cellars, "CellarId", "Description");
            ViewBag.ClientId             = new SelectList(db.Clients, "ClientId", "ComertialName");
            ViewBag.AccountingDocumentId = new SelectList(db.AccountingDocuments, "AccountingDocumentId", "Description");
            ViewBag.PaymentMethodId      = new SelectList(db.PaymentMethods, "PaymentMethodId", "Description");

            var view = new NewSaleView
            {
                Date    = DateTime.Now,
                Details = db.SaleDetailBkps.Where(pdb => pdb.User == User.Identity.Name).ToList()
            };

            return(View(view));
        }
Ejemplo n.º 4
0
        // GET: Sales/Create
        public ActionResult Create()
        {
            var         user = db.Users.Where(u => u.UserName == User.Identity.Name).FirstOrDefault();
            NewSaleView view = (NewSaleView)TempData["model"];

            if (view == null)
            {
                view = new NewSaleView
                {
                    Date    = DateTime.Now,
                    Details = db.SaleDetailTmps.Where(sdt => sdt.UserName == User.Identity.Name).ToList(),
                };
            }
            ViewBag.CustomerId  = new SelectList(CombosHelper.GetCustomers(user.CompanyId), "CustomerId", "FullName", view.CustomerId);
            ViewBag.WarehouseId = new SelectList(CombosHelper.GetWarehouses(user.CompanyId), "WarehouseId", "Name", view.WarehouseId);
            return(View(view));
        }
Ejemplo n.º 5
0
        public ActionResult Create(NewSaleView view)
        {
            if (ModelState.IsValid)
            {
                var response = MovementsHelper.NewSale(view, User.Identity.Name);
                if (response.Succeeded)
                {
                    return(RedirectToAction("Index"));
                }
                ModelState.AddModelError(string.Empty, response.Message);
            }

            var user = db.Users.Where(u => u.UserName == User.Identity.Name).FirstOrDefault();

            ViewBag.CustomerId  = new SelectList(CombosHelper.GetCustomers(user.CompanyId), "CustomerId", "FullName");
            ViewBag.WarehouseId = new SelectList(CombosHelper.GetWarehouses(user.CompanyId), "WarehouseId", "Name");
            view.Details        = db.SaleDetailTmps.Where(sdt => sdt.UserName == User.Identity.Name).ToList();
            return(View(view));
        }
Ejemplo n.º 6
0
        public ActionResult Create(NewSaleView view)
        {
            if (ModelState.IsValid)
            {
                using (var transaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        AccountingDocument dn = (from x in db.AccountingDocuments orderby x.InitialNumber descending select x).FirstOrDefault();
                        var docnumber         = dn.InitialNumber + 1;

                        var sale = new Sale
                        {
                            Datetime             = view.Date,
                            CellarId             = view.CellarId,
                            ClientId             = view.ClientId,
                            AccountingDocumentId = view.AccountingDocumentId,
                            PaymentMethodId      = view.PaymentMethodId,
                            DocumentNumber       = docnumber,
                        };

                        db.Sales.Add(sale);
                        db.SaveChanges();

                        var details = db.SaleDetailBkps.Where(pdb => pdb.User == User.Identity.Name).ToList();
                        foreach (var detail in details)
                        {
                            var saleDetail = new SaleDetail
                            {
                                SaleId        = sale.SaleId,
                                ProductId     = detail.ProductId,
                                Description   = detail.Description,
                                Price         = detail.Price,
                                Quantity      = detail.Quantity,
                                IVAPercentage = detail.IVAPercentage,
                                DiscountRate  = detail.DiscountRate
                            };


                            db.SaleDetails.Add(saleDetail);
                            db.SaleDetailBkps.Remove(detail);
                            var status = true;


                            if (status == true)
                            {
                                CellarProduct c = (from x in db.CellarProducts
                                                   where x.ProductId == detail.ProductId
                                                   select x).First();
                                c.Stock = c.Stock - detail.Quantity;
                                db.SaveChanges();
                            }
                        }



                        db.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        ModelState.AddModelError(string.Empty, ex.Message);
                    }
                }

                return(RedirectToAction("Index"));
            }

            ViewBag.CellarId             = new SelectList(db.Cellars, "CellarId", "Description", view.CellarId);
            ViewBag.ClientId             = new SelectList(db.Clients, "ClientId", "Cliente", view.ClientId);
            ViewBag.AccountingDocumentId = new SelectList(db.AccountingDocuments, "AccountingDocumentId", "Tipo de Documento", view.AccountingDocumentId);
            ViewBag.PaymentMethodId      = new SelectList(db.PaymentMethods, "PaymentMethodId", "Metodo de Pago", view.PaymentMethodId);
            view.Details = db.SaleDetailBkps.Where(pdb => pdb.User == User.Identity.Name).ToList();
            return(View(view));
        }
Ejemplo n.º 7
0
        public static Response NewSale(NewSaleView view, string userName)
        {
            using (var transaccion = db.Database.BeginTransaction())
            {
                try
                {
                    var user = db.Users.Where(u => u.UserName == userName).FirstOrDefault();
                    var sale = new Sale
                    {
                        CompanyId   = user.CompanyId,
                        CustomerId  = view.CustomerId,
                        Date        = view.Date,
                        Remarks     = view.Remarks,
                        StateId     = DBHelper.GetState("Created", db),
                        WarehouseId = view.WarehouseId,
                    };

                    if (view.OrderId > 0)
                    {
                        var orderDetails = db.Orders.Where(o => o.OrderId == view.OrderId).FirstOrDefault();
                        if (orderDetails == null)
                        {
                            transaccion.Rollback();
                            return(new Response {
                                Succeeded = false, Message = "Can not get the details of this order."
                            });
                        }
                        sale.OrderId                 = view.OrderId;
                        sale.StateId                 = DBHelper.GetState("Invoiced", db);
                        orderDetails.StateId         = DBHelper.GetState("Invoiced", db);
                        db.Entry(orderDetails).State = EntityState.Modified;
                        db.Entry(sale).State         = EntityState.Modified;
                        //db.SaveChanges();
                    }

                    db.Sales.Add(sale);
                    db.SaveChanges();

                    var details = db.SaleDetailTmps.Where(sdt => sdt.UserName == userName).ToList();

                    foreach (var detail in details)
                    {
                        var saleDetail = new SaleDetail
                        {
                            Description = detail.Description,
                            SaleId      = sale.SaleId,
                            Price       = detail.Price,
                            ProductId   = detail.ProductId,
                            Quantity    = detail.Quantity,
                            TaxRate     = detail.TaxRate,
                        };
                        db.SaleDetails.Add(saleDetail);
                        db.SaleDetailTmps.Remove(detail);


                        var inventory = db.Inventories.Where(i => i.WarehouseId == view.WarehouseId && i.ProductId == detail.ProductId).FirstOrDefault();
                        if (inventory == null)
                        {
                            inventory = new Inventory
                            {
                                WarehouseId = view.WarehouseId,
                                ProductId   = detail.ProductId,
                                Stock       = detail.Quantity,
                            };
                            db.Inventories.Add(inventory);
                        }
                        else
                        {
                            inventory.Stock           = inventory.Stock - detail.Quantity;
                            db.Entry(inventory).State = EntityState.Modified;
                        }
                        db.SaveChanges();
                    }
                    db.SaveChanges();
                    transaccion.Commit();
                    return(new Response {
                        Succeeded = true
                    });
                }
                catch (Exception ex)
                {
                    transaccion.Rollback();
                    if (ex.InnerException != null && ex.InnerException.InnerException != null)
                    {
                        return(new Response {
                            Succeeded = false, Message = ex.InnerException.InnerException.Message
                        });
                    }
                    else if (ex.InnerException != null)
                    {
                        return(new Response {
                            Succeeded = false, Message = ex.InnerException.Message
                        });
                    }
                    else
                    {
                        return(new Response {
                            Succeeded = false, Message = ex.Message
                        });
                    }
                }
            }
        }
Ejemplo n.º 8
0
        private void OpenWindow(string windowName)
        {
            try
            {
                WindowName name   = windowName.ConvertToWindowName();
                Window     window = null;
                switch (name)
                {
                case WindowName.NewSaleView:
                    window = new NewSaleView();
                    break;

                case WindowName.CustomerView:
                    window = new CustomerView();
                    break;

                case WindowName.NewPurchaseView:
                    window = new NewPurchaseView();
                    break;

                case WindowName.SupplierView:
                    window = new SupplierView();
                    break;

                case WindowName.SaleView:
                    window = new SaleView();
                    break;

                case WindowName.PurchaseView:
                    window = new PurchaseView();
                    break;

                case WindowName.ProductView:
                    window = new ProductView();
                    break;

                case WindowName.ServiceView:
                    window = new ServiceView();
                    break;

                case WindowName.ChargeView:
                    window = new ChargeView();
                    break;

                case WindowName.SaleReportView:
                    window = new SaleReportView();
                    break;

                case WindowName.PurchaseReportView:
                    window = new PurchaseReportView();
                    break;

                case WindowName.ProductReportView:
                    window = new ProductReportView();
                    break;
                }

                window?.ShowDialog();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }