public ActionResult PendingShipping(int?page, string id, string sccess, string bllno)
        {
            PendingShipping        pendingShipping     = new PendingShipping();
            List <PendingShipping> pendingShippingList = new List <PendingShipping>();

            using (EasyBillingEntities db = new EasyBillingEntities())
            {
                List <Placed_Order> placed_Order = db.Placed_Orders.Where(z => z.Orderplaced == false).Distinct().ToList();
                if (id != null)
                {
                    Placed_Order plcdorder = db.Placed_Orders.Where(z => z.Token_number == id).Distinct().FirstOrDefault();
                    if (plcdorder.Orderplaced == false)
                    {
                        plcdorder.Orderplaced  = true;
                        plcdorder.Approve_Date = DateTime.Now.Date;
                        db.SaveChanges();
                        Billing_Master billing        = new Billing_Master();
                        Billing_Detail billing_Detail = new Billing_Detail();
                        Stockout       stockout       = new Stockout();

                        Products_For_Sale products_For_Sale = db.Products_For_Sales.Where(z => z.Token_Number == plcdorder.Item_token).FirstOrDefault();
                        //===============bill master entry=========================//
                        billing.Customer_Token_number = plcdorder.Customer_token;
                        billing.Total_tax             = (products_For_Sale.Amout_after_tax - products_For_Sale.Selling_Price) * plcdorder.Pieces;
                        billing.Rate_including_tax    = (products_For_Sale.Amout_after_tax) * plcdorder.Pieces;
                        billing.Total_discount        = decimal.Parse("0.00") * plcdorder.Pieces;
                        billing.Total_amount          = products_For_Sale.Total * plcdorder.Pieces;
                        if (plcdorder.Ispaid == true)
                        {
                            billing.Payment_Statement = "*** Paid by Paypal ***";
                        }
                        else
                        {
                            billing.Payment_Statement = "*** Pay on delivery ***";
                        }
                        //===============bill details entry=========================//

                        billing_Detail.Product_Token = plcdorder.Item_token;
                        billing_Detail.Pieces        = products_For_Sale.Pieces * plcdorder.Pieces;

                        billing_Detail.Tax       = (products_For_Sale.Amout_after_tax - products_For_Sale.Selling_Price) * plcdorder.Pieces;
                        billing_Detail.Discount  = decimal.Parse("0.00");
                        billing_Detail.Sub_Total = products_For_Sale.Total * plcdorder.Pieces;


                        //===============stockout entry=========================//

                        stockout.Product_Token = plcdorder.Item_token;
                        stockout.Pieces        = products_For_Sale.Pieces * plcdorder.Pieces;

                        stockout.CGST      = (products_For_Sale.Selling_Price * plcdorder.Pieces) + ((products_For_Sale.CGST * plcdorder.Pieces) / 100);
                        stockout.SGST      = (products_For_Sale.Selling_Price * plcdorder.Pieces) + ((products_For_Sale.SGST * plcdorder.Pieces) / 100);
                        stockout.Sub_Total = products_For_Sale.Total * plcdorder.Pieces;

                        //===========================================================//
                        billing.Billing_Details.Add(billing_Detail);
                        billing.Stockouts.Add(stockout);

                        using (var client = new HttpClient())
                        {
                            client.BaseAddress = new Uri("http://localhost:8087/api/Billing/PostShippingBill");

                            //HTTP POST
                            var postTask = client.PostAsJsonAsync("http://localhost:8087/api/Billing/PostShippingBill", billing);
                            postTask.Wait();

                            var result = postTask.Result;
                            if (result.IsSuccessStatusCode)
                            {
                                var nmbr = result.Content.ReadAsStringAsync()
                                           .Result
                                           .Replace("\\", "")
                                           .Trim(new char[1] {
                                    '"'
                                });
                                ViewBag.billno  = nmbr;
                                ViewBag.success = "Successfully approved";
                            }
                            else
                            {
                                ViewBag.error = "Something went wrong. Please try again.";
                            }
                        }
                    }
                    else
                    {
                        ViewBag.error = "Already approved";
                    }
                }
                placed_Order = db.Placed_Orders.Where(z => z.Orderplaced == false).Distinct().ToList();
                foreach (var plcdordrpending in placed_Order)
                {
                    pendingShipping.token = plcdordrpending.Token_number;
                    if (plcdordrpending.IsUser == true)
                    {
                        pendingShipping.Customer_name = db.Users.Where(z => z.Token_number == plcdordrpending.Customer_token).Select(z => z.Name).Distinct().FirstOrDefault();
                    }
                    else
                    {
                        pendingShipping.Customer_name = db.Customers.Where(z => z.Token_number == plcdordrpending.Customer_token).Select(z => z.Customer_Name).Distinct().FirstOrDefault();
                    }
                    pendingShipping.tyreName     = db.Products_For_Sales.Where(z => z.Token_Number == plcdordrpending.Item_token).Select(z => z.Product_name).Distinct().FirstOrDefault();
                    pendingShipping.Total_Piece  = plcdordrpending.Pieces;
                    pendingShipping.Total_Price  = (db.Products_For_Sales.Where(z => z.Token_Number == plcdordrpending.Item_token).Select(z => z.Total).Distinct().FirstOrDefault()) * plcdordrpending.Pieces;
                    pendingShipping.Applied_Date = plcdordrpending.Order_Date;
                    pendingShipping.Isuser       = plcdordrpending.IsUser;
                    if (plcdordrpending.Ispaid == true)
                    {
                        pendingShipping.paymentstatement = "Paid by Paypal";
                    }
                    else
                    {
                        pendingShipping.paymentstatement = "Pay on delivery";
                    }
                    pendingShippingList.Add(pendingShipping);
                    pendingShipping = new PendingShipping();
                }
            }
            if (ViewBag.error != null)
            {
                return(RedirectToAction("PendingShipping", new { sccess = ViewBag.error }));
            }
            else if (ViewBag.success != null)
            {
                return(RedirectToAction("PendingShipping", new { sccess = ViewBag.success, bllno = ViewBag.billno, id = "" }));
            }
            else
            {
                ViewBag.success = sccess;
                ViewBag.billno  = bllno;
                ViewBag.error   = sccess;
                return(View(pendingShippingList.ToPagedList(page ?? 1, 5)));
            }
        }
        public ActionResult PlaceOrderSuccess(string v, string pymth, string usr)
        {
            if (pymth.ToUpper() == "PAYPAL")
            {
                ViewBag.payment = "Pay with paypal";
            }
            else
            {
                ViewBag.payment = "Pay on delivery";
            }
            Customer_shipping_address customer_Shipping_Address = new Customer_shipping_address();
            Placed_Order placed_Order = new Placed_Order();

            if (v != null && v != "")
            {
                using (EasyBillingEntities db = new EasyBillingEntities())
                {
                    if (v.ToLower() != "crt")
                    {
                        ViewBag.item = db.Products_For_Sales.Where(z => z.Token_Number == v).Distinct().FirstOrDefault();
                        ViewBag.tkn  = v;
                    }
                    string customerToken = null;
                    if (usr == "1")
                    {
                        customerToken = db.Users.Where(z => z.Email == User.Identity.Name).Select(z => z.Token_number).Distinct().FirstOrDefault();
                    }
                    else
                    {
                        customerToken = db.Customers.Where(z => z.Email == User.Identity.Name).Select(z => z.Token_number).Distinct().FirstOrDefault();
                    }
                    if (v.ToLower() == "crt")
                    {
                        ViewBag.tkn = null;
                        List <cartlist> cartlists = new List <cartlist>();

                        var itmcrt = db.Temp_placedorder.Where(z => z.Customer_token == customerToken).Distinct().ToList();
                        foreach (var eachitm in itmcrt)
                        {
                            cartlist cartlist = new cartlist();
                            var      lst      = db.Products_For_Sales.Where(z => z.Token_Number == eachitm.Item_token).Select(z => z.Total).Distinct().FirstOrDefault();

                            cartlist.Price = lst;
                            cartlists.Add(cartlist);
                        }
                        var total = decimal.Parse("0.00");
                        foreach (var crtlsts in cartlists)
                        {
                            total = total + crtlsts.Price;
                        }

                        ViewBag.itemcart = total;
                    }
                    bool chktkn = db.Customer_shipping_addresses.Where(z => z.Customer_token_number == customerToken).Any();
                    if (chktkn != false)
                    {
                        if (v.ToLower() != "crt")
                        {
                            placed_Order.Token_number   = Guid.NewGuid().ToString();
                            placed_Order.Item_token     = v;
                            placed_Order.Orderplaced    = false;
                            placed_Order.Pieces         = 1;
                            placed_Order.Customer_token = customerToken;
                            if (usr == "1")
                            {
                                placed_Order.IsUser = true;
                            }
                            else
                            {
                                placed_Order.IsUser = false;
                            }
                            placed_Order.Order_Date   = DateTime.Now.Date;
                            placed_Order.Approve_Date = DateTime.Parse("12/12/12");
                            if (pymth.ToUpper() == "PAYPAL")
                            {
                                placed_Order.Ispaid = true;
                            }
                            else
                            {
                                placed_Order.Ispaid = false;
                            }
                            db.Placed_Orders.Add(placed_Order);

                            Stock             stock             = db.Stocks.Where(z => z.Product_Token == v).Distinct().FirstOrDefault();
                            Products_For_Sale products_For_Sale = db.Products_For_Sales.Where(z => z.Token_Number == v).Distinct().FirstOrDefault();
                            stock.Pieces = stock.Pieces - products_For_Sale.Pieces;
                            if (stock.Pieces < 0)
                            {
                                return(RedirectToAction("PlaceOrder", new { error = "Stock cannot be negetive. Please check." }));
                            }
                            else
                            {
                                db.SaveChanges();
                            }
                        }
                        else
                        {
                            var tmlchk = db.Temp_placedorder.Where(z => z.Customer_token == customerToken).Distinct().ToList();
                            if (tmlchk.Count() > 0)
                            {
                                foreach (var eachtmpdata in tmlchk)
                                {
                                    placed_Order.Token_number   = Guid.NewGuid().ToString();
                                    placed_Order.Item_token     = eachtmpdata.Item_token;
                                    placed_Order.Orderplaced    = false;
                                    placed_Order.Pieces         = (int)eachtmpdata.Pieces;
                                    placed_Order.Customer_token = customerToken;
                                    if (usr == "1")
                                    {
                                        placed_Order.IsUser = true;
                                    }
                                    else
                                    {
                                        placed_Order.IsUser = false;
                                    }
                                    placed_Order.Order_Date   = DateTime.Now.Date;
                                    placed_Order.Approve_Date = DateTime.Parse("12/12/12");
                                    if (pymth.ToUpper() == "PAYPAL")
                                    {
                                        placed_Order.Ispaid = true;
                                    }
                                    else
                                    {
                                        placed_Order.Ispaid = false;
                                    }
                                    db.Placed_Orders.Add(placed_Order);

                                    Stock             stock             = db.Stocks.Where(z => z.Product_Token == eachtmpdata.Item_token).Distinct().FirstOrDefault();
                                    Products_For_Sale products_For_Sale = db.Products_For_Sales.Where(z => z.Token_Number == eachtmpdata.Item_token).Distinct().FirstOrDefault();
                                    stock.Pieces = stock.Pieces - (products_For_Sale.Pieces * ((int)eachtmpdata.Pieces));

                                    if (stock.Pieces < 0)
                                    {
                                        return(RedirectToAction("PlaceOrder", new { error = "Stock cannot be negetive. Please check." }));
                                    }
                                    else
                                    {
                                        db.SaveChanges();
                                    }
                                }
                            }

                            db.Temp_placedorder.RemoveRange(tmlchk);
                            db.SaveChanges();
                        }
                        customer_Shipping_Address = db.Customer_shipping_addresses.Where(z => z.Customer_token_number == customerToken).Distinct().FirstOrDefault();
                    }
                }
            }
            if (customer_Shipping_Address != null)
            {
                return(View(customer_Shipping_Address));
            }
            else
            {
                return(View());
            }
        }