コード例 #1
0
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            int Item_Id    = int.Parse(ItemCombo.SelectedValue.ToString());
            var SelectItem = context.Items.Where(item => item.ID == Item_Id).FirstOrDefault();

            int                   No              = int.Parse(NoOfInvoice.Text);
            purchaseInvoice       CurrentEdit     = context.purchaseInvoices.Where(recip => recip.ID == No).FirstOrDefault();
            ItemInPurchaseInvoice CurrentEditQuan = context.ItemInPurchaseInvoices.Where(recip => recip.purchaseInvoice_Id == CurrentEdit.ID && recip.Item_Id == SelectItem.ID).FirstOrDefault();

            if (CurrentEdit == null)
            {
                return;
            }
            SelectItem.Quantity     += CurrentEditQuan.Quantity;
            CurrentEditQuan.Quantity = int.Parse(Quantity.Text);
            SelectItem.Quantity     -= CurrentEditQuan.Quantity;

            ListViewRecipt Row = ListView.SelectedItem as ListViewRecipt;

            if (Row == null)
            {
                return;
            }
            SubtractTotal(Row.Quantity, Row.PriceForPiece);
            Row.Quantity = int.Parse(Quantity.Text);
            ListView.Items.Remove(ListView.SelectedItem);
            Total.Text = calculateTotal(Row.Quantity, Row.PriceForPiece).ToString();
            CategoryCombo.IsEnabled = true;
            ItemCombo.IsEnabled     = true;

            ListView.Items.Add(Row);
            context.SaveChanges();
        }
コード例 #2
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (Regex.IsMatch(Quantity.Text, "[^ 0-9]*") || double.Parse(Quantity.Text) <= 0)
            {
                MessageBox.Show("This Quantity is not Valid");
            }

            else if (CategoryCombo.SelectedIndex != -1 && ItemCombo.SelectedIndex != -1 && SupllierCombo.SelectedIndex != -1 && Quantity.Text != "")
            {
                int Item_Id           = int.Parse(ItemCombo.SelectedValue.ToString());
                var SelectItem        = context.Items.Where(item => item.ID == Item_Id).FirstOrDefault();
                int AvailableQuantity = SelectItem.Quantity;
                if (int.Parse(Quantity.Text) > AvailableQuantity)
                {
                    MessageBox.Show("There aren't This Quantity In Store");
                }
                else
                {
                    int QuantityValue = int.Parse(Quantity.Text);
                    int supp_Id       = int.Parse(SupllierCombo.SelectedValue.ToString());
                    if (CreatedObject == false)
                    {
                        recipt = new purchaseInvoice()
                        {
                            Date     = DateTime.Now,
                            Supplier = context.Suppliers.Where(sup => sup.ID == supp_Id).FirstOrDefault(),
                            ItemInPurchaseInvoices = new List <ItemInPurchaseInvoice>()
                        };
                        CreatedObject = true;
                        context.purchaseInvoices.Add(recipt);
                    }
                    ItemInPurchaseInvoice itemsRecipted = new ItemInPurchaseInvoice();

                    itemsRecipted.Item            = SelectItem;
                    itemsRecipted.purchaseInvoice = recipt;
                    itemsRecipted.Quantity        = QuantityValue;
                    recipt.ItemInPurchaseInvoices.Add(itemsRecipted);
                    SelectItem.ItemInPurchaseInvoices.Add(itemsRecipted);
                    SelectItem.Quantity -= int.Parse(Quantity.Text);
                    TotalValues         += (int.Parse(Quantity.Text) * SelectItem.SellPrice);
                    var suplier = context.Suppliers.Where(sallr => sallr.ID == supp_Id).FirstOrDefault();
                    suplier.purchaseInvoices.Add(recipt);
                    context.SaveChanges();
                    Total.Text       = TotalValues.ToString();
                    NoOfInvoice.Text = recipt.ID.ToString();
                    salesMan.Text    = SupllierCombo.Text;
                    this.ListView.Items.Add(new ListViewRecipt {
                        ID = int.Parse(NoOfInvoice.Text), Category = CategoryCombo.Text, Item_Name = ItemCombo.Text, Quantity = int.Parse(Quantity.Text), PriceForPiece = SelectItem.SellPrice, TotalPrice = double.Parse(Quantity.Text) * SelectItem.SellPrice
                    });
                    Edit.IsEnabled          = true;
                    Delete.IsEnabled        = true;
                    SupllierCombo.IsEnabled = false;
                }
            }
            else
            {
                MessageBox.Show("Enter Correct Data");
            }
        }
コード例 #3
0
        public BackFromSupplier()
        {
            InitializeComponent();
            context = new Context();
            var query = context.Catogerys;

            CategoryCombo.SelectedValuePath = "ID";
            CategoryCombo.DisplayMemberPath = "Name";
            CategoryCombo.ItemsSource       = query.ToList();
            var query2 = context.Suppliers;

            SupllierCombo.SelectedValuePath = "ID";
            SupllierCombo.DisplayMemberPath = "Name";
            SupllierCombo.ItemsSource       = query2.ToList();
            Edit.IsEnabled   = false;
            Delete.IsEnabled = false;
            recipt           = new purchaseInvoice();
        }
コード例 #4
0
        public AddItem()
        {
            context.SaveChanges();
            pi = new purchaseInvoice();
            InitializeComponent();
            var cats = context.Catogerys;

            cmbitems.Items.Clear();
            foreach (Catogery item in cats)
            {
                cmbcats.DisplayMemberPath = "Name";
                cmbcats.SelectedValuePath = "ID";
                cmbcats.Items.Add(item);
            }
            var suppliers = context.Suppliers;

            foreach (var item in suppliers)
            {
                cmbsuppliers.DisplayMemberPath = "Name";
                cmbsuppliers.SelectedValuePath = "ID";
                cmbsuppliers.Items.Add(item);
            }
            LVitems.Items.Clear();
        }
コード例 #5
0
        private void btnadditem_Click(object sender, RoutedEventArgs e)
        {
            int  qty, sellprice, buyprice;
            bool tryqty       = int.TryParse(txtQty.Text, out qty);
            bool trysellprice = int.TryParse(txtsellprice.Text, out sellprice);
            bool trybuyprice  = int.TryParse(txtBuyPrice.Text, out buyprice);

            //bool xx = int.Parse(txtsellprice.Text) > int.Parse(txtBuyPrice.Text);
            if (LVitems.Items.Count == 0 && cmbitems.Items.Count > 0 && txtQty.Text != "" && tryqty && sellprice > buyprice && qty > 0 && trysellprice && trybuyprice)
            {
                cmbsuppliers.IsEnabled = false;
                Item items        = (Item)cmbitems.SelectedItem;
                Item current_item = context.Items.Where(c => c.ID == items.ID).First();
                current_item.Quantity += int.Parse(txtQty.Text);
                current_item.SellPrice = int.Parse(txtsellprice.Text);
                current_item.BuyPrice  = int.Parse(txtBuyPrice.Text);
                Supplier selected_supplier = (Supplier)cmbsuppliers.SelectedItem;

                if (FirstClick == false)
                {
                    pi      = new purchaseInvoice();
                    pi.Date = DateTime.Now;
                    //  pi.Quantity = int.Parse(txtQty.Text);
                    pi.Supplier      = selected_supplier;
                    pi.Supplier      = (Supplier)cmbsuppliers.SelectedItem;
                    pi.KindOfInvoice = true;
                    pi.TotalPrice    = int.Parse(txtQty.Text) * int.Parse(current_item.BuyPrice.ToString());
                    context.purchaseInvoices.Add(pi);
                    FirstClick = true;
                }
                selected_supplier.purchaseInvoices.Add(pi);
                ItemInPurchaseInvoice iip = new ItemInPurchaseInvoice();
                //  iip.Item = ;
                iip.Item_Id            = current_item.ID;
                iip.purchaseInvoice_Id = pi.ID;
                iip.purchaseInvoice    = pi;
                iip.Quantity           = int.Parse(txtQty.Text);
                ////////////////
                context.ItemInPurchaseInvoices.Add(iip);


                context.SaveChanges();
                MessageBox.Show("your items succesfuly");
            }

            else if (LVitems.Items.Count >= 1)
            {
                cmbsuppliers.IsEnabled = false;
                foreach (var item in listoflvitems)
                {
                    //   Context c = new Context();
                    Supplier selected_supplier = (Supplier)cmbsuppliers.SelectedItem;
                    Item     current_item      = context.Items.Where(cc => cc.ID == item.ID).First();
                    //   Item current_item = context.Items.Where(c => c.ID == item.ID).First();
                    if (FirstClick == false)
                    {
                        pi      = new purchaseInvoice();
                        pi.Date = DateTime.Now;
                        //  pi.Quantity = int.Parse(txtQty.Text);
                        pi.KindOfInvoice = true;
                        pi.Supplier      = selected_supplier;
                        pi.Supplier      = (Supplier)cmbsuppliers.SelectedItem;
                        //  pi.TotalPrice = int.Parse(txtQty.Text) * int.Parse(current_item.BuyPrice.ToString());
                        context.purchaseInvoices.Add(pi);
                        FirstClick = true;
                    }
                    //purchaseInvoice pi = new purchaseInvoice();
                    pi.Date = DateTime.Now;
                    // pi.Quantity = item.Quantity;
                    //  Supplier selected_supplier =item.SupplierID;
                    pi.Supplier      = item.Supplier;
                    pi.KindOfInvoice = true;
                    pi.Supplier      = item.Supplier; //(Supplier)cmbsuppliers.SelectedItem;
                    pi.TotalPrice    = item.Quantity * int.Parse(current_item.BuyPrice.ToString());
                    // selected_supplier.purchaseInvoices.Add(pi);

                    ItemInPurchaseInvoice iip = new ItemInPurchaseInvoice();
                    //item.item.ItemInPurchaseInvoices = new List<ItemInPurchaseInvoice>();
                    //  iip.Item = ;
                    iip.Item_Id            = current_item.ID;
                    iip.purchaseInvoice_Id = pi.ID;
                    iip.purchaseInvoice    = pi;
                    iip.Quantity           = item.Quantity;
                    current_item.Quantity += item.Quantity;
                    current_item.SellPrice = item.SellPrice;
                    current_item.BuyPrice  = item.BuyPrice;
                    item.Supplier.purchaseInvoices.Add(pi);
                    //item.item
                    context.ItemInPurchaseInvoices.Add(iip);
                    //context.Suppliers.Add();
                    context.SaveChanges();
                }
                MessageBox.Show("your list of items added succesfuly");
                LVitems.Items.Clear();
                listoflvitems.Clear();
            }
            else
            {
                MessageBox.Show("Plz check that:\n 1-you choosed an item \n" +
                                " 2-you choosed a supplier \n " +
                                "3- sell price bigger than buy price and bigger than zero ");
            }
        }
コード例 #6
0
        public ActionResult Edit(purchaseReceive purchasereceive)
        {
            if (acm.cekSession() == false)
                return RedirectToAction("Logout", "Account");

            lvm = Session["sessionUserLogin"] as LoginViewModel.userLogin;
            if (acm.cekValidation(Url.Action().ToString()) == false && lvm.isAdmin == false)
                return RedirectToAction("NotAuthorized", "Account", new { menu = Url.Action().ToString() });

            if (ModelState.IsValid)
            {
                var countChk = 0;
                bool isProposed = false;
                for (int i = 0; i < Request.Form.Count; i++)
                {
                    if (Request.Form.AllKeys.ToList()[i].Contains("txtProductID_"))
                        countChk++;
                    else if (Request.Form.AllKeys.ToList()[i].Contains("hdnTypeSubmit"))
                        if (Request.Form["hdnTypeSubmit"].ToString() == "requested")
                            isProposed = true;
                }

                try
                {
                    using (TransactionScope ts = new TransactionScope())
                    {
                        lvm = Session["sessionUserLogin"] as LoginViewModel.userLogin;
                        purchasereceive.modifiedUser = lvm.userID;
                        purchasereceive.modifiedDate = DateTime.Now;
                        purchasereceive.proposedStatus = isProposed;
                        db.Entry(purchasereceive).State = EntityState.Modified;

                        List<string> listProductId = new List<string>();
                        #region insertDetail
                        bool runFirst = true;
                        for (int i = 1; i <= countChk; i++)
                        {
                            if (runFirst == true)
                            {
                                db.purchaseReceiveDetails.RemoveRange(db.purchaseReceiveDetails.Where(x => x.receiveNo == purchasereceive.receiveNo));
                                db.purchaseReturnDetails.RemoveRange(db.purchaseReturnDetails.Where(x => x.receiveNo == purchasereceive.receiveNo));
                                runFirst = false;
                            }

                            var colVal = Request.Form["txtProductID_" + i];
                            if (colVal == "")
                                break;

                            int t_productID = int.Parse(Request.Form["txtProductID_" + i].ToString());
                            int t_qtyReceive = Request.Form["txtQtyReceive_" + i].ToString() != "" ? Convert.ToInt32(Request.Form["txtQtyReceive_" + i].ToString().Replace('.', ',')) : 0;
                            int t_qtyReturn = Request.Form["txtQtyReturn_" + i].ToString() != "" ? Convert.ToInt32(Request.Form["txtQtyReturn_" + i].ToString().Replace('.', ',')) : 0; 
                            listProductId.Add(t_productID.ToString());

                            if (t_qtyReceive > 0)
                            {
                                var editorx = new purchaseReceive.purchaseReceiveDetail()
                                {
                                    receiveNo = purchasereceive.receiveNo,
                                    productId = t_productID,
                                    qty = t_qtyReceive
                                };
                                db.purchaseReceiveDetails.Add(editorx);
                            }

                            if (t_qtyReturn > 0)
                            {
                                var editory = new purchaseReceive.purchaseReturnDetail()
                                {
                                    receiveNo = purchasereceive.receiveNo,
                                    productId = t_productID,
                                    qty = t_qtyReturn
                                };
                                db.purchaseReturnDetails.Add(editory);
                            }
                        }
                        #endregion

                        if (isProposed == true)
                        {
                            #region createInvoice
                            PurchaseInvoiceController pIv = new PurchaseInvoiceController();
                            string prefixInvoice = pIv.prefix;
                            string generateIDInvoice = prefixInvoice + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("d2");
                            string generateIDInvoiceSequence = "";
                            var invIDCreated = db.purchaseInvoices.Where(x => x.purchaseInvoiceNo.Contains(generateIDInvoice)).OrderByDescending(x => x.createdDate).Select(x => x.purchaseInvoiceNo).ToList();
                            if (invIDCreated.Count == 0)
                            {
                                generateIDInvoiceSequence = generateIDInvoice + "0001";
                            }
                            else
                            {
                                generateIDInvoiceSequence = generateIDInvoice + (Convert.ToInt32(invIDCreated[0].Substring((invIDCreated[0].Length - 4))) + 1).ToString().PadLeft(4, '0');
                            }

                            var headerPO = db.purchaseOrderHeaders.Where(x => x.poId == purchasereceive.poId).ToList();
                            var topPOMultiple = db.purchaseOrderTOPs.Where(x => x.poId == purchasereceive.poId).ToList();

                            purchaseInvoice purchaseinvoice = new purchaseInvoice();
                            purchaseinvoice.invoiceDate = purchasereceive.proposedDate;
                            purchaseinvoice.receiveNo = purchasereceive.receiveNo;
                            purchaseinvoice.createdUser = purchasereceive.proposedBy;
                            purchaseinvoice.createdDate = purchasereceive.proposedDate;

                            if (headerPO[0].topType == "Single")
                            {
                                purchaseinvoice.purchaseInvoiceNo = generateIDInvoiceSequence;
                                purchaseinvoice.dueDate = purchasereceive.proposedDate.AddDays(headerPO[0].topAmount);
                                db.purchaseInvoices.Add(purchaseinvoice);
                            }
                            else if (headerPO[0].topType == "Multiple")
                            {
                                for (int a = 0; a < topPOMultiple.Count; a++)
                                {
                                    purchaseinvoice.purchaseInvoiceNo = generateIDInvoiceSequence;
                                    purchaseinvoice.dueDate = topPOMultiple[a].buyDate;
                                    int prodId = int.Parse(listProductId[0]);
                                    var poInfo = db.purchaseOrderDetails.Where(x => x.poId == purchasereceive.poId && x.productID == prodId).ToList();
                                    decimal total = ((poInfo[0].qty * poInfo[0].price) - ((poInfo[0].qty * poInfo[0].price) / 100));
                                    purchaseinvoice.total = total;
                                    db.purchaseInvoices.Add(purchaseinvoice);

                                    generateIDInvoiceSequence = generateIDInvoice + (Convert.ToInt32(generateIDInvoiceSequence.Substring((generateIDInvoiceSequence.Length - 4))) + 1).ToString().PadLeft(4, '0');
                                }
                                db.purchaseInvoices.Add(purchaseinvoice);
                            }
                            #endregion
                        }

                        db.SaveChanges();
                        ts.Complete();
                    }
                    return RedirectToAction("Index");
                }
                catch (Exception exc)
                {
                    string a = exc.Message;
                }
            }
            return View(purchasereceive);
        }
コード例 #7
0
        public ActionResult Create(purchaseReceive purchasereceive)
        {
            if (acm.cekSession() == false)
                return RedirectToAction("Logout", "Account");

            lvm = Session["sessionUserLogin"] as LoginViewModel.userLogin;
            if (acm.cekValidation(Url.Action().ToString()) == false && lvm.isAdmin == false)
                return RedirectToAction("NotAuthorized", "Account", new { menu = Url.Action().ToString() });

            var z = db.purchaseOrderDetails.Where(x => x.poId == purchasereceive.poId)
                    .Join(db.purchaseOrderHeaders, a => a.poId, b => b.poId, (a, b) => new { a, b })
                    .Join(db.purchaseRequestDetails, c => c.b.prId, d => d.prId, (c, d) => new { c, d })
                    .Where(e => e.c.a.productID == e.d.productId)
                    .Select(y => new { y.c.a.poId, y.c.a.productID, y.d.description, y.c.a.qty, y.d.unit }).ToList();

            var model = new purchaseReceive();
            for (int i = 0; i < z.Count; i++)
            {
                var editor = new purchaseReceive.poReceive()
                {
                    productId = z[i].productID,
                    productDesc = z[i].description,
                    qtyOrder = z[i].qty,
                    unit = z[i].unit
                };
                model.detailPoReceive.Add(editor);
            }
            ViewData["dataDetail"] = model.detailPoReceive.ToList();

            if (ModelState.IsValid)
            {
                var countChk = 0;
                bool isProposed = false;
                for (int i = 0; i < Request.Form.Count; i++)
                {
                    if (Request.Form.AllKeys.ToList()[i].Contains("txtProductID_"))
                        countChk++;
                    else if (Request.Form.AllKeys.ToList()[i].Contains("hdnTypeSubmit"))
                        if (Request.Form["hdnTypeSubmit"].ToString() == "requested")
                            isProposed = true;
                }

                try
                {
                    using (TransactionScope ts = new TransactionScope())
                    {
                        string generateID = prefix + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("d2");
                        var prIDCreated = db.purchaseReceives.Where(x => x.receiveNo.Contains(generateID)).OrderByDescending(x => x.createdDate).Select(x => x.poId).ToList();
                        if (prIDCreated.Count == 0)
                        {
                            generateID = generateID + "0001";
                        }
                        else
                        {
                            generateID = generateID + (Convert.ToInt32(prIDCreated[0].Substring((prIDCreated[0].Length - 4))) + 1).ToString().PadLeft(4, '0');
                        }

                        purchasereceive.receiveNo = generateID;
                        lvm = Session["sessionUserLogin"] as LoginViewModel.userLogin;
                        purchasereceive.createdUser = lvm.userID;
                        purchasereceive.createdDate = DateTime.Now;
                        purchasereceive.proposedBy = lvm.userID;
                        purchasereceive.proposedDate = DateTime.Now;
                        purchasereceive.proposedStatus = isProposed;
                        db.purchaseReceives.Add(purchasereceive);

                        List<string> listProductId = new List<string>();
                        List<int> listReceive = new List<int>();
                        #region insertDetail
                        for (int i = 1; i <= countChk; i++)
                        {
                            var colVal = Request.Form["txtProductID_" + i];
                            if (colVal == "")
                                break;

                            int t_productID = int.Parse(Request.Form["txtProductID_" + i].ToString());
                            int t_qtyReceive = Request.Form["txtQtyReceive_" + i].ToString() != "" ? Convert.ToInt32(Request.Form["txtQtyReceive_" + i].ToString().Replace('.', ',')) : 0;
                            int t_qtyReturn = Request.Form["txtQtyReturn_" + i].ToString() != "" ? Convert.ToInt32(Request.Form["txtQtyReturn_" + i].ToString().Replace('.', ',')) : 0;
                            listProductId.Add(t_productID.ToString());
                            listReceive.Add(t_qtyReceive);

                            if (t_qtyReceive > 0)
                            {
                                var editorx = new purchaseReceive.purchaseReceiveDetail()
                                {
                                    receiveNo = purchasereceive.receiveNo,
                                    productId = t_productID,
                                    qty = t_qtyReceive
                                };
                                db.purchaseReceiveDetails.Add(editorx);
                            }

                            if (t_qtyReturn > 0)
                            {
                                var editory = new purchaseReceive.purchaseReturnDetail()
                                {
                                    receiveNo = purchasereceive.receiveNo,
                                    productId = t_productID,
                                    qty = t_qtyReturn
                                };
                                db.purchaseReturnDetails.Add(editory);
                            }
                        }
                        #endregion

                        if(isProposed == true)
                        { 
                            #region createInvoice
                            PurchaseInvoiceController pIv = new PurchaseInvoiceController();
                            string prefixInvoice = pIv.prefix;
                            string generateIDInvoice = prefixInvoice + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("d2");
                            string generateIDInvoiceSequence = "";
                            var invIDCreated = db.purchaseInvoices.Where(x => x.purchaseInvoiceNo.Contains(generateIDInvoice)).OrderByDescending(x => x.createdDate).Select(x => x.purchaseInvoiceNo).ToList();
                            if (invIDCreated.Count == 0)
                            {
                                generateIDInvoiceSequence = generateIDInvoice + "0001";
                            }
                            else
                            {
                                generateIDInvoiceSequence = generateIDInvoice + (Convert.ToInt32(invIDCreated[0].Substring((invIDCreated[0].Length - 4))) + 1).ToString().PadLeft(4, '0');
                            }

                            var headerPO = db.purchaseOrderHeaders.Where(x => x.poId == purchasereceive.poId).ToList();
                            var topPOMultiple = db.purchaseOrderTOPs.Where(x => x.poId == purchasereceive.poId).ToList();

                            purchaseInvoice purchaseinvoice = new purchaseInvoice();
                            purchaseinvoice.invoiceDate = purchasereceive.proposedDate;
                            purchaseinvoice.receiveNo = purchasereceive.receiveNo;
                            purchaseinvoice.createdUser = purchasereceive.proposedBy;
                            purchaseinvoice.createdDate = purchasereceive.proposedDate;
                            purchaseinvoice.remarks = purchasereceive.remarks;

                            if (headerPO[0].topType == "Single")
                            {
                                purchaseinvoice.purchaseInvoiceNo = generateIDInvoiceSequence;
                                purchaseinvoice.dueDate = purchasereceive.proposedDate.AddDays(headerPO[0].topAmount);

                                decimal total = 0;
                                for (int i = 1; i <= countChk; i++)
                                {
                                    var colVal = Request.Form["txtProductID_" + i];
                                    if (colVal == "")
                                        break;

                                    int t_productID = int.Parse(Request.Form["txtProductID_" + i].ToString());
                                    int t_qtyReceive = Request.Form["txtQtyReceive_" + i].ToString() != "" ? Convert.ToInt32(Request.Form["txtQtyReceive_" + i].ToString().Replace('.', ',')) : 0;
                                    int t_qtyReturn = Request.Form["txtQtyReturn_" + i].ToString() != "" ? Convert.ToInt32(Request.Form["txtQtyReturn_" + i].ToString().Replace('.', ',')) : 0;
                            
                                    var poInfo = db.purchaseOrderDetails.Where(x => x.poId == purchasereceive.poId && x.productID == t_productID).ToList();
                                    foreach (var ax in poInfo as IEnumerable<purchaseOrderHeader.purchaseOrderDetail>)
                                    {
                                        total += ((t_qtyReceive * ax.price) - (((t_qtyReceive * ax.price) * ax.disc) / 100));
                                    }
                                }

                                var poInfoH = db.purchaseOrderHeaders.Where(x => x.poId == purchasereceive.poId).ToList();
                                foreach (var axH in poInfoH as IEnumerable<purchaseOrderHeader>)
                                {
                                    total = (total - ((total * axH.disc) / 100));
                                    total = (total + ((total * axH.ppn) / 100));
                                }
                                purchaseinvoice.total = total;

                                db.purchaseInvoices.Add(purchaseinvoice);
                            }
                            else if (headerPO[0].topType == "Multiple")
                            {
                                for (int a = 0; a < topPOMultiple.Count; a++)
                                {
                                    purchaseinvoice.purchaseInvoiceNo = generateIDInvoiceSequence;
                                    purchaseinvoice.dueDate = topPOMultiple[a].buyDate;
                                    int prodId = int.Parse(listProductId[0]);
                                    var poInfo = db.purchaseOrderDetails.Where(x => x.poId == purchasereceive.poId && x.productID == prodId).ToList();
                                    decimal total = ((poInfo[0].qty * poInfo[0].price) - ((poInfo[0].qty * poInfo[0].price) / 100));
                                    purchaseinvoice.total = total;
                                    db.purchaseInvoices.Add(purchaseinvoice);

                                    generateIDInvoiceSequence = generateIDInvoice + (Convert.ToInt32(generateIDInvoiceSequence.Substring((generateIDInvoiceSequence.Length - 4))) + 1).ToString().PadLeft(4, '0');
                                }
                                db.purchaseInvoices.Add(purchaseinvoice);
                            }
                            #endregion
                        }

                        db.SaveChanges();
                        ts.Complete();
                    }
                    return RedirectToAction("Index");
                }
                catch (Exception exc)
                {
                    string a = exc.Message;
                }
            }

            return View(purchasereceive);
        }