示例#1
0
        public int CreateSellInvoice([FromBody] IInvoice sellInvoice)
        {
            var newInvoice = new SellInvoice();

            var user = this.Request.GetMyUser();

            newInvoice.Invoice        = new Invoice();
            newInvoice.Invoice.UserId = user.Id;

            newInvoice.CustomerId = sellInvoice.TarafHesabId;

            var fee = 0;

            foreach (var item in sellInvoice.Items)
            {
                var good = db.Good.First(x => x.Id == item.GoodId);
                if (item.Quantity > good.Quantity)
                {
                    throw new Exception("Not enough quantity in the inventory");
                }

                var price = Convert.ToInt32(good.Price * (100 - good.Discount) / 100);
                fee += price;

                var invoiceItem = new InvoiceItem
                {
                    GoodId    = item.GoodId,
                    GoodName  = good.Name,
                    Discount  = good.Discount,
                    GoodPrice = good.Price,
                    Quantity  = good.Quantity,
                };

                invoiceItem.TotalPrice = invoiceItem.GetTotalPrice();
                newInvoice.Invoice.InvoiceItem.Add(invoiceItem);
            }
            // TODO Calculate discount;
            newInvoice.Invoice.Fee = fee;

            db.SellInvoice.Add(newInvoice);
            db.SaveChanges();

            IInventory inventory = new InventoryController();

            foreach (var item in sellInvoice.Items)
            {
                inventory.IncreaseGoodQuantity(item.GoodId, -item.Quantity);
            }
            return(newInvoice.InvoiceId);
        }
示例#2
0
        public int CreatePurchaseInvoice([FromBody] IInvoice purchaseInvoice)
        {
            var newInvoice = new PurchaseInvoice();

            var user = this.Request.GetMyUser();

            newInvoice.Invoice        = new Invoice();
            newInvoice.Invoice.UserId = user.Id;

            newInvoice.SupplierId = purchaseInvoice.TarafHesabId;

            var fee = 0;

            foreach (var item in purchaseInvoice.Items)
            {
                var good = db.Good.First(x => x.Id == item.GoodId);

                var price = Convert.ToInt32(good.Price * (100 - good.Discount) / 100);
                fee += price;

                var invoiceItem = new InvoiceItem
                {
                    GoodId    = item.GoodId,
                    GoodName  = good.Name,
                    Discount  = good.Discount,
                    GoodPrice = good.Price,
                    Quantity  = good.Quantity,
                };

                invoiceItem.TotalPrice = invoiceItem.GetTotalPrice();
                newInvoice.Invoice.InvoiceItem.Add(invoiceItem);
            }

            // TODO Calculate discount
            newInvoice.Invoice.Fee = fee;

            db.PurchaseInvoice.Add(newInvoice);
            db.SaveChanges();

            IInventory inventory = new InventoryController();

            foreach (var item in purchaseInvoice.Items)
            {
                inventory.IncreaseGoodQuantity(item.GoodId, item.Quantity);
            }

            return(newInvoice.InvoiceId);
        }