Esempio n. 1
0
        //PURCHASE_ADD
        //Submit the Product Entries in ADD_PURCHASE
        public ActionResult Purchase_Submit()
        {
            //Get data from Purchase table directly via form submit.
   
            string[] Prod_Name = Request.Form["txtProd_Name"].Split(',');
            string[] Qty = Request.Form["txtQty"].Split(',');
            string[] Free = Request.Form["txtFree"].Split(',');
            string[] Discount = Request.Form["txtDiscount"].Split(',');
            string[] Rate = Request.Form["txtRate"].Split(',');
            string[] VAT = Request.Form["txtVAT"].Split(',');
            string[] Amount = Request.Form["txtAmount"].Split(',');
            string[] Total_Amount = Request.Form["txtTotal_Amount"].Split(',');
            string[] cid = Request.Form["txtcid"].Split(',');
            
            //Update the corresponding rows appending quatity in Product_Log.
            //DB_Product_Log
            for(int i = 0; i < Prod_Name.Length; i++){

                int ID = Convert.ToInt32(Prod_Name[i]);

                var query =
                    (from a in database.DB_Product_Log
                    where a.Prod_Id == ID
                    select a).First();

                //If MRP of product changes then the required changes to change product.

                query.Stock_Total_Incoming += Convert.ToInt32(Qty[i]);
                query.Stock_Live = query.Stock_Total_Incoming - query.Stock_Total_Outgoing;
                
                try{
                    database.SaveChanges();
                }

                catch(Exception e)
                {
                    Console.WriteLine(e);
                }

            }

            //Create a random No for Invoice ID.
            DateTime indianTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "India Standard Time");
            string date = Convert.ToString(indianTime);

            Random rnd = new Random();
            int crn = rnd.Next(100000, 999999); // creates a number between 1 and 12
            string crn1 = Convert.ToString(crn);

            string crn_final = "INVOICE_" + crn1;
                
            //DB_Invoice.
            DB_Invoice Invoice = new DB_Invoice();

            Invoice.Invoice_Id = crn_final;
            Invoice.cid = Convert.ToInt32(cid[0]);
            Invoice.DateOfPurchase = DateTime.Now;
            Invoice.Grand_Total = Convert.ToDouble(Total_Amount[Total_Amount.Length - 1]);
            Invoice.Vat = Convert.ToDouble(VAT[0]);

            database.DB_Invoice.Add(Invoice);

            //DB_Invoice_Product Insertion            
            for (int i = 0; i < Prod_Name.Length; i++)
            {
                DB_Invoice_Product Invoice_Product = new DB_Invoice_Product();
                
                Invoice_Product.Invoice_Id = crn_final;
                Invoice_Product.Prod_Id = Convert.ToInt32(Prod_Name[i]);
                Invoice_Product.Quantity = Convert.ToInt32(Qty[i]);
                Invoice_Product.Rate = Convert.ToDouble(Rate[i]);
                Invoice_Product.Amount = Convert.ToDouble(Amount[i]);

                database.DB_Invoice_Product.Add(Invoice_Product);

                try
                {
                    database.SaveChanges();
                }

                catch (Exception e)
                {
                    Console.WriteLine(e);
                }


            }
            return RedirectToAction("Add_Purchase", "Purchase");

        }
Esempio n. 2
0
        //After submit of Modified Purchased Data - Purchase/Modify_Purchase -> Submit.
        public ActionResult Purchase_Modify_Submit()
        {
            //Get data from Modify Table.
            string[] Prod_Id = Request.Form["txtProd_Id"].Split(',');
            string[] Invoice_Id = Request.Form["txtInvoice_Id"].Split(',');
            string[] Qty = Request.Form["txtQty"].Split(',');
            string[] Free = Request.Form["txtFree"].Split(',');
            string[] Discount = Request.Form["txtDiscount"].Split(',');
            string[] Rate = Request.Form["txtRate"].Split(',');
            string[] Amount = Request.Form["txtAmount"].Split(',');
            string[] Total_Amount = Request.Form["txtTotal_Amount"].Split(',');
            //string[] cid = Request.Form["txtcid"].Split(',');

            //Update the Invoice Table first.
            //DB_Invoice
            var Invoice = Invoice_Id[0];
            var query = (from a in database.DB_Invoice
                         where a.Invoice_Id == Invoice
                         select a).FirstOrDefault();
            var length = Total_Amount.Length;
            query.Grand_Total = Convert.ToDouble(Total_Amount[length - 1]);
            //TODO: Also Change here Date of Modification. - Last Modified.
            try
            {
                database.SaveChanges();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            //DB_Invoice_Product
            //Now Update Invoice_Product.
            for (int i = 0; i < Prod_Id.Length; i++)
            {
                var Prod_ID = Convert.ToInt32(Prod_Id[i]);
                var query1 = (from a in database.DB_Invoice_Product
                              where a.Prod_Id == Prod_ID && a.Invoice_Id == Invoice
                              select a).FirstOrDefault();
                if (query1 == null)
                {
                    // ADD this product.
                    //DB_Product_Log
                    var query2 =
                    (from a in database.DB_Product_Log
                     where a.Prod_Id == Prod_ID
                     select a).FirstOrDefault();
                    //Add a condition if the product does not exist in DB_Product_log

                    //If MRP of product changes then the required changes to change product.

                    query2.Stock_Total_Incoming += Convert.ToInt32(Qty[i]);
                    query2.Stock_Live = query2.Stock_Total_Incoming - query2.Stock_Total_Outgoing;

                    //Add in DB_Invoice_Product
                    DB_Invoice_Product Invoice_Product = new DB_Invoice_Product();

                    Invoice_Product.Invoice_Id = Invoice_Id[0];
                    Invoice_Product.Prod_Id = Convert.ToInt32(Prod_Id[i]);
                    Invoice_Product.Quantity = Convert.ToInt32(Qty[i]);
                    Invoice_Product.Rate = Convert.ToDouble(Rate[i]);
                    Invoice_Product.Amount = Convert.ToDouble(Amount[i]);

                    database.DB_Invoice_Product.Add(Invoice_Product);

                    try
                    {
                        database.SaveChanges();
                    }

                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }


                }
                else
                {
                    
                    //Now change the corresponding entry in Product_Log Table.
                    //DB_Product_Log
                    var query2 = (from a in database.DB_Product_Log
                                  where a.Prod_Id == Prod_ID
                                  select a).First();
                    query2.Stock_Live += (query1.Quantity - Convert.ToInt32(Qty[i]));
                    query2.Stock_Total_Incoming += (query1.Quantity - Convert.ToInt32(Qty[i]));

                    //DB_Invoice_Product
                    //Update this product.
                    query1.Quantity = Convert.ToInt32(Qty[i]);
                    //TODO: Add Free
                    //TODO: Add Discount
                    query1.Rate = Convert.ToDouble(Rate[i]);
                    query1.Amount = Convert.ToDouble(Amount[i]);

                    try
                    {
                        database.SaveChanges();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }

                }



            }

            //Product_Log
            return RedirectToAction("Modify_Purchase", "Purchase");
        }