예제 #1
0
        public ActionResult Edit(InvoiceModel invoiceModel)
        {
            try
            {
                InvoiceDAO.UpdateInvoice(invoiceModel);

                return RedirectToAction("Index", new { type = invoiceModel.Type });
            }
            catch
            {
                return View();
            }
        }
예제 #2
0
        //
        // GET: /Invoice/Create
        public ActionResult Create(string type)
        {
            ViewBag.Type = type;

            var invoiceModel = new InvoiceModel
                                   {
                                       Number = InvoiceDAO.GetNextInvoiceNumber(type),
                                       Date = DateTime.Now,
                                       Type = type
                                   };

            var clientList = ClientDAO.GetClientList().Select(client => new SelectListItem
                                                                    {
                                                                        Text = client.Name, Value = client.ID.ToString()
                                                                    }).ToList();

            return View(new InvoiceViewModel
                            {
                                InvoiceModel = invoiceModel,
                                Clients = clientList,
                                PriceTypes = GetPriceTypes()
                            });
        }
예제 #3
0
        public InvoiceViewModel()
        {
            InvoiceModel = new InvoiceModel();

            Clients = new List<SelectListItem>();
        }
예제 #4
0
        public static InvoiceModel GetInvoice(int id)
        {
            var storageDbEntities = new StorageDBEntities();

            Invoice invoice = storageDbEntities.Invoices.Where(inv => inv.ID == id && inv.UserID == UserHelper.UserID).FirstOrDefault();

            if (invoice != null)
            {
                InvoiceModel invoiceModel = new InvoiceModel
                                                {
                                                    Supplier = new ClientModel
                                                                   {
                                                                       ID = invoice.Supplier.ID,
                                                                       Name = invoice.Supplier.Name,
                                                                       Address = invoice.Supplier.Address,
                                                                       Telephone = invoice.Supplier.Telephone
                                                                   },
                                                    Recipient = new ClientModel
                                                                    {
                                                                        ID = invoice.Recipient.ID,
                                                                        Name = invoice.Recipient.Name,
                                                                        Address = invoice.Recipient.Address,
                                                                        Telephone = invoice.Recipient.Telephone
                                                                    },
                                                    Date = invoice.Date,
                                                    Type = invoice.Type,
                                                    Number = invoice.Number,
                                                    PriceType = invoice.PriceType,
                                                    ID = invoice.ID
                                                };

                foreach (ProductsInInvoice productsInInvoice in invoice.ProductsInInvoices.ToList())
                {
                    ProductsInInvoiceModel productsInInvoiceModel = new ProductsInInvoiceModel
                                                                        {
                                                                            ID = productsInInvoice.ID,
                                                                            Price = productsInInvoice.Price,
                                                                            Quantity = productsInInvoice.Quantity,
                                                                            Total = productsInInvoice.Price * Convert.ToDecimal(productsInInvoice.Quantity),
                                                                            Product = new ProductModel
                                                                                          {
                                                                                              ID = productsInInvoice.Product.ID,
                                                                                              Name = productsInInvoice.Product.Name,
                                                                                              Code = productsInInvoice.Product.Code,
                                                                                              Unit = productsInInvoice.Product.Unit,
                                                                                          }
                                                                        };

                    invoiceModel.Products.Add(productsInInvoiceModel);

                    invoiceModel.MasterTotal += productsInInvoiceModel.Total;
                }

                invoiceModel.Products = invoiceModel.Products.OrderBy(p => Convert.ToInt32(p.Product.Code)).ToList();

                for (int position = 0; position < invoiceModel.Products.Count; position++)
                {
                    invoiceModel.Products[position].Position = position + 1;
                }

                return invoiceModel;
            }

            return null;
        }
예제 #5
0
        public static void UpdateInvoice(InvoiceModel invoiceModel)
        {
            var storageDbEntities = new StorageDBEntities();

            Invoice invoice = storageDbEntities.Invoices.Where(inv => inv.ID == invoiceModel.ID && inv.UserID == UserHelper.UserID).FirstOrDefault();

            if (invoice != null)
            {
                // updates invoice metadata
                invoice.SupplierID = invoiceModel.Supplier.ID;
                invoice.RecipientID = invoiceModel.Recipient.ID;
                invoice.PriceType = invoiceModel.PriceType;

                foreach (var productInInvoice in invoice.ProductsInInvoices.ToList())
                {
                    ProductsInInvoiceModel productsInInvoiceModel = invoiceModel.Products.Where(p => p.ProductID == productInInvoice.ProductID).FirstOrDefault();

                    // product was updated by user
                    if (productsInInvoiceModel != null)
                    {
                        productInInvoice.Price = productsInInvoiceModel.Price;
                        productInInvoice.Quantity = productsInInvoiceModel.Quantity;

                        invoiceModel.Products.Remove(productsInInvoiceModel);
                    }
                    // product was deleted by user
                    else
                    {
                        storageDbEntities.ProductsInInvoices.DeleteObject(productInInvoice);
                    }
                }

                // products were created by user
                foreach (var productsInInvoiceModel in invoiceModel.Products.Where(p => p.ProductID > 0).ToList())
                {
                    ProductsInInvoice productsInInvoice = new ProductsInInvoice
                    {
                        Price = productsInInvoiceModel.Price,
                        Quantity = productsInInvoiceModel.Quantity,
                        ProductID = productsInInvoiceModel.ProductID
                    };

                    invoice.ProductsInInvoices.Add(productsInInvoice);
                }

                storageDbEntities.SaveChanges();
            }
        }
예제 #6
0
        public static void SaveInvoice(InvoiceModel invoiceModel)
        {
            if (UserHelper.UserID != null)
            {
                var storageDbEntities = new StorageDBEntities();

                Invoice invoice = new Invoice
                                      {
                                          SupplierID = invoiceModel.Supplier.ID,
                                          RecipientID = invoiceModel.Recipient.ID,
                                          Date = invoiceModel.Date,
                                          Type = invoiceModel.Type,
                                          Number = invoiceModel.Number,
                                          PriceType = invoiceModel.PriceType,
                                          UserID = UserHelper.UserID.Value
                                      };

                foreach (ProductsInInvoiceModel productsInInvoiceModel in invoiceModel.Products.Where(p => p.ProductID > 0).ToList())
                {
                    ProductsInInvoice productsInInvoice = new ProductsInInvoice
                                                              {
                                                                  Price = productsInInvoiceModel.Price,
                                                                  Quantity = productsInInvoiceModel.Quantity,
                                                                  ProductID = productsInInvoiceModel.ProductID
                                                              };

                    invoice.ProductsInInvoices.Add(productsInInvoice);
                }

                storageDbEntities.Invoices.AddObject(invoice);

                storageDbEntities.SaveChanges();
            }
        }