Esempio n. 1
0
        public ActionResult saveQRCheckout(int slNumber)
        {
            bool   status = false;
            string mes    = "";

            try
            {
                TransportQRData tqrD = new TransportQRData();
                {
                    TransportQRData qd = db.TransportQRDatas.SingleOrDefault(x => x.SLNO == slNumber);
                    qd.CheckoutDateTime  = System.DateTime.Now;
                    qd.ExitInfoEnteredBy = User.Identity.Name;
                    db.Entry(qd).State   = EntityState.Modified;
                }
                db.SaveChanges();
                status = true;
                //return Json(status= status, mes = mes, JsonRequestBehavior.AllowGet);
                return(Json(new { status = status, mes = mes, MaxJsonLength = 10000000, JsonRequestBehavior.AllowGet }));
            }

            catch (Exception ex)
            {
                return(Json(new { status = "error", message = "Problem to update checkout data!!" }));
            }
        }
Esempio n. 2
0
        public ActionResult generateQR(string t1, string t2, TransportQRdataVM trqrvm)
        {
            bool   status = false;
            string mes    = "";

            try
            {
                GenerateQrcode(t1, t2);
                TransportQRData tqrD = new TransportQRData();
                {
                    byte[] image = System.IO.File.ReadAllBytes(t2);

                    tqrD.Type               = trqrvm.Type;
                    tqrD.VehicleType        = trqrvm.VehicleType;
                    tqrD.QRSLNo             = trqrvm.QRSLNo;
                    tqrD.SLCount            = trqrvm.SLCount;
                    tqrD.QRGeneratingDate   = DateTime.Now;
                    tqrD.AgencyID           = trqrvm.AgencyID;
                    tqrD.VehicleNumber      = trqrvm.VehicleNumber;
                    tqrD.DriverName         = trqrvm.DriverName;
                    tqrD.DriverMobileNumber = trqrvm.DriverMobileNumber;
                    tqrD.TruckCapacity      = trqrvm.TruckCapacity;
                    tqrD.EntryDateTime      = DateTime.Now;
                    tqrD.QRImageIn          = image;
                    tqrD.WareHouseID        = trqrvm.WareHouseID;
                    tqrD.EnteredBy          = User.Identity.Name;
                }
                db.TransportQRDatas.Add(tqrD);
                db.SaveChanges();
                status = true;
                //return Json(status= status, mes = mes, JsonRequestBehavior.AllowGet);
                return(Json(new { status = status, mes = mes, MaxJsonLength = 10000000, JsonRequestBehavior.AllowGet }));
            }

            catch (Exception ex)
            {
                return(Json(new { status = "error", message = "Product ID Not Found" }));
            }
        }
Esempio n. 3
0
        public JsonResult AddInvoiceData(InvoiceVM Inv)
        {
            var w = (from yt in db.UserLogins
                     where yt.UserID.ToString() == User.Identity.Name
                     select new { yt.WorkStationID }).FirstOrDefault();
            var    wn            = db.Warehouses.Where(t => t.WarehouseID == w.WorkStationID).FirstOrDefault();
            bool   status        = false;
            string mes           = "";
            string s1            = w.WorkStationID.ToString();
            string s2            = string.Concat(s1 + "6000000");
            string s3            = string.Concat(s1 + "5000000");
            int    MaxChallanNo  = Convert.ToInt32(s2);
            int    MaxCashID     = Convert.ToInt32(s3);
            var    maxchno       = (from n in db.Orders where n.WarehouseID == w.WorkStationID select n.ChallanNumber).DefaultIfEmpty(MaxChallanNo).Max();
            var    maxCasettleId = (from n in db.CashSettlements where n.WarehouseID == w.WorkStationID select n.CashSettlementID).DefaultIfEmpty(MaxCashID).Max();
            var    maxprodtr     = (from j in db.ProductTransactions where j.WarehouseID == w.WorkStationID select j.TransactionNo).Max() + 1;

            chNumber = Convert.ToInt32(maxchno + 1);
            csID     = Convert.ToInt32(maxCasettleId + 1);
            int v = chNumber;

            if (ModelState.IsValid)
            {
                try
                {
                    using (PEPSIEntities dc = new PEPSIEntities())
                    {
                        //  var V = db.Orders.Max(p => p.ChallanNumber);
                        CommonChk cm = new CommonChk();
                        {
                            if (cm.chkDuplicateChallan(Inv.OrderID) == true)
                            {
                                //status = false;


                                var            vr = db.Orders.SingleOrDefault(x => x.OrderID == Inv.OrderID);
                                CashSettlement cs = new CashSettlement();
                                {
                                    // var vr = db.Orders.SingleOrDefault(x => x.OrderID == Inv.OrderID);
                                    cs.CashSettlementID       = csID;
                                    cs.SalesPersonID          = vr.SalesPersonID;
                                    cs.DeliveryChallanDate    = DateTime.Today; //vr.DeliveryChallanDate;
                                    cs.CustomerID             = vr.CustomerID;
                                    cs.DeliveryChallanNumbers = chNumber;       // Convert.ToInt32(vr.ChallanNumber)+1;
                                    cs.WarehouseID            = vr.WarehouseID;
                                    cs.VehicleID                  = vr.VehicleID;
                                    cs.CashSettlementDate         = DateTime.Today;
                                    cs.RebateWillBeGivenWithOrder = vr.RebateWillBeGivenWithOrder;
                                    cs.SpecialNoteFromOrder       = vr.SpecialNote;
                                    cs.SpecialInstruction         = Inv.SpecialNote;
                                    cs.OrderID                 = vr.OrderID;
                                    cs.ProductRateID           = vr.ProductRateID;
                                    cs.DayendFinished          = "N";
                                    cs.DayendDay               = DateTime.Now;
                                    cs.OrderTypeID             = vr.OrderTypeID;
                                    cs.CustomerExecutiveID     = vr.CustomerExecutiveID;
                                    cs.DriverID                = vr.DriverID;
                                    cs.Promotional             = vr.Promotional;
                                    cs.CheckedByShipping       = "Y";
                                    cs.AgencyCommission        = Inv.AgencyCommission;                     // vr.AgencyCommission;
                                    cs.TotalSpecialCharges     = vr.SpecialCharge1Amount;
                                    cs.SecurityAmount          = Inv.SecurityAmount;                       //vr
                                    cs.DrinksAmount            = (Inv.SalesAmount - Inv.AgencyCommission); //(vr.SalesAmount - vr.AgencyCommission);
                                    cs.FinishGoodsUnloadCharge = Inv.FinishGoodsUnloadCharge;              //vr
                                    cs.CreateBy                = User.Identity.Name;
                                    cs.CraeteDate              = DateTime.Now;

                                    // dc.CashSettlements.Add(cs);
                                }
                                dc.CashSettlements.Add(cs);
                                // Product Transaction
                                ProductTransaction pt = new ProductTransaction();
                                {
                                    pt.WarehouseID       = Inv.WarehouseID;
                                    pt.TransactionNo     = maxprodtr;
                                    pt.TransactionDate   = DateTime.Today;
                                    pt.TransactionTypeID = 7;
                                    pt.FromWarehouse     = Inv.WarehouseID;
                                    pt.ReferenceNo       = csID.ToString();
                                    pt.Remarks           = Inv.SpecialNote;
                                    pt.Status            = "I";
                                    pt.CreatedBy         = User.Identity.Name;
                                    pt.CreatedDate       = DateTime.Now;
                                }
                                dc.ProductTransactions.Add(pt);

                                // Helper
                                InvoiceHelper pm = new InvoiceHelper();
                                {
                                    pm.OrderID   = Inv.OrderID;
                                    pm.HelperID1 = Inv.Helper1;
                                    pm.HelperID2 = Inv.Helper2;
                                    pm.HelperID3 = Inv.Helper2;
                                    dc.InvoiceHelpers.Add(pm);
                                }
                                // Customer Ledger
                                CustomerLedgerDetail cld = new CustomerLedgerDetail();
                                {
                                    cld.WarehouseID       = vr.WarehouseID;
                                    cld.CustomerID        = vr.CustomerID;
                                    cld.TransactionNo     = "INV" + csID.ToString();
                                    cld.CrAmount          = 0;
                                    cld.TransactionTypeID = 15;
                                    cld.TransactionDate   = DateTime.Today;
                                    cld.RefNumber1        = csID.ToString();
                                    cld.DrAmount          = (Inv.SalesAmount + Inv.SecurityAmount) - (Inv.AgencyCommission + (decimal)Inv.FinishGoodsUnloadCharge);// (Inv.SalesAmount - Inv.AgencyCommission); //(vr.SalesAmount - vr.AgencyCommission);
                                    cld.DebitCredit       = "D";
                                    cld.Narration         = "Invoice Value#" + cld.DrAmount + " for Customer" + cld.CustomerID;
                                    cld.CreateBy          = User.Identity.Name;
                                    cld.CreateDate        = System.DateTime.Now;
                                }
                                dc.CustomerLedgerDetails.Add(cld);
                                // update Customer Ledgermaster
                                // Farid Correction 03dec2018
                                //decimal amountofdr = (Inv.SalesAmount - Inv.AgencyCommission);
                                //decimal bokamt = amountofdr + Inv.SecurityAmount;
                                //var clmbf = db.spCustomerBalanceUpdate(vr.CustomerID, "F", bokamt);
                                //var clm = db.spCustomerBalanceUpdate(vr.CustomerID, "I", amountofdr);
                                //var security = db.spCustomerBalanceUpdate(vr.CustomerID, "S", Inv.SecurityAmount);
                                //decimal vInvAmt = (Inv.SalesAmount - Inv.AgencyCommission)- (decimal)Inv.FinishGoodsUnloadCharge;
                                decimal vInvAmt       = Inv.SalesAmount - (Inv.AgencyCommission); //(decimal)Inv.FinishGoodsUnloadCharge
                                decimal vBookAmt      = Inv.SalesAmount + Inv.SecurityAmount - Inv.AgencyCommission;
                                decimal vCurBal       = (Inv.SalesAmount + Inv.SecurityAmount) - (Inv.AgencyCommission + (decimal)Inv.FinishGoodsUnloadCharge);
                                decimal vChargeAmount = (decimal)Inv.FinishGoodsUnloadCharge;
                                decimal vSecurityAmt  = Inv.SecurityAmount;
                                decimal vRebateAmt    = 0;
                                if (Inv.RebateAmount > 0)
                                {
                                    decimal vRebate = (Inv.RebateAmount);
                                    vRebateAmt = vRebate;
                                }
                                else
                                {
                                    decimal vRebate = Inv.RebateAmount;
                                    vRebateAmt = vRebate;
                                }

                                decimal vFare = Inv.FareAmnt;


                                db.spUpdateDBsInvoiceValue(
                                    vr.CustomerID,
                                    "I",
                                    vCurBal,
                                    vCurBal,
                                    vInvAmt,
                                    vBookAmt,
                                    vSecurityAmt,
                                    vChargeAmount,
                                    vFare,
                                    vRebateAmt,
                                    chNumber
                                    );
                                // Farid Correction
                                //  var clm = db.spCustomerBalanceUpdate(vr.CustomerID, "I", bokamt);// with sequirity amount
                                // Add Fare Amount
                                if (Inv.VehicleID == 1)
                                {
                                    //need to adjust without
                                    var cus    = cm.GetCustomerName(vr.CustomerID, "C");
                                    var cusAdd = db.Customers.Where(x => x.CustomerID == vr.CustomerID).FirstOrDefault();
                                    var c      = db.spInsertHireTruckFare(Inv.WarehouseID, chNumber, Inv.TAID, DateTime.Today, cus, cusAdd.CustomerAddress1, Inv.VechileNo, Inv.FareAmnt, 0, Inv.TotalCases, "No", User.Identity.Name, DateTime.Now, "Hired Truck");
                                }

                                var ODetails = db.OrderDetails.Where(x => x.WarehouseID == Inv.WarehouseID && x.OrderID == Inv.OrderID);
                                foreach (var z in ODetails.ToList())
                                {
                                    CashSettlementDetail csd = new CashSettlementDetail()
                                    {
                                        WarehouseID               = Inv.WarehouseID,
                                        CashSettlementID          = csID,
                                        ProductID                 = z.ProductID,
                                        SchemeID                  = (int)z.SchemeID,
                                        UnitPrice                 = (decimal)z.UnitPrice,
                                        AlternateUnitPrice        = (decimal)z.AlternateUnitPrice,
                                        Quantity                  = (int)z.Quantity,
                                        AlternateQuantity         = (int)z.AlternateQuantity,
                                        PlasticBoxQuantity        = (int)z.PlasticBoxQuantity,
                                        RebateQuantity            = (int)z.RebateQuantity,
                                        AlternateRebateQuantity   = (int)z.AlternateRebateQuantity,
                                        AgencyCommission          = (decimal)z.AgencyCommission,
                                        AlternateAgencyCommission = (decimal)z.AlternateAgencyCommission,
                                        SecurityDeposit           = (decimal)z.SecurityDeposit,
                                        AlternateSecurityDeposit  = (decimal)z.AlternateSecurityDeposit,
                                        PlasticBoxSecurity        = (decimal)z.PlasticBoxSecurity,
                                        MRPRate = z.MRPRate
                                    };
                                    dc.CashSettlementDetails.Add(csd);
                                    var totpc  = (from x in db.Products where x.ProductID == z.ProductID select x).FirstOrDefault();
                                    int TotQty = (int)(z.Quantity + ((z.AlternateQuantity + z.AlternateRebateQuantity) * totpc.ConversionFactor) + z.RebateQuantity);

                                    StockBatchDetail sbd = new StockBatchDetail()
                                    {
                                        WarehouseID        = Inv.WarehouseID,
                                        TransactionNo      = csID,
                                        TransactionDate    = System.DateTime.Today,
                                        ProductID          = z.ProductID,
                                        Quantity           = TotQty,//(int)z.AlternateQuantity for rebate and case to pcs,
                                        PlasticBoxQuantity = z.PlasticBoxQuantity,
                                        TransactionType    = "Invoice Creation",
                                        BatchNo            = (int)z.BatchNo,
                                        CreateBy           = User.Identity.Name,
                                        CreateDate         = System.DateTime.Now,
                                    };
                                    dc.StockBatchDetails.Add(sbd);
                                    //var cc = (int)z.Quantity;
                                    //var xxx = (int)z.PlasticBoxQuantity;
                                    //var cc = CommonChk
                                    // CommonChk cm = new CommonChk();

                                    //int qty = cm.CasetoPcs(z.ProductID, (int)z.AlternateQuantity); // off for rebate
                                    int qty = TotQty;
                                    //int qty = cm.CasetoPcs(z.ProductID, TotQty); Farid Correction
                                    ProductTransactionDetail ptd = new ProductTransactionDetail();
                                    {
                                        ptd.TransactionNo      = maxprodtr;
                                        ptd.WarehouseID        = Inv.WarehouseID;
                                        ptd.ProductID          = z.ProductID;
                                        ptd.Quantity           = qty;// (int)z.AlternateQuantity;
                                        ptd.PlasticBoxQuantity = (int)z.PlasticBoxQuantity;
                                        //BatchNo = z.BatchNo,
                                        //ExpiryDate = z.ExpDate,
                                        //ManufactureDate = z.MfgDate,
                                        ptd.EmptyBottleQuantity    = 0;
                                        ptd.BurstBottleQuantity    = 0;
                                        ptd.BreakageBottleQuantity = 0;
                                        dc.ProductTransactionDetails.Add(ptd);
                                    };


                                    // Product Stock Maintaince

                                    // int allProductsQty;

                                    //var Pr = (from x in db.Products where x.ProductID == z.ProductID select x).FirstOrDefault();
                                    // allProductsQty = (int)(z.Quantity + ((z.AlternateQuantity + z.AlternateRebateQuantity) * Pr.ConversionFactor) + z.RebateQuantity);
                                    // SqlCommand com = new SqlCommand("spProductBalanceDecrease", con);
                                    // off for holding stock against loadsheet
                                    //var decreaseprodbal = db.spProductBalanceDecrease(z.ProductID,
                                    //    vr.WarehouseID,
                                    //    qty,
                                    //    0,
                                    //    0,
                                    //    0,
                                    //    0);
                                    var decreaseprodbal = db.spStockBookedandBookedFree(z.ProductID, vr.WarehouseID, qty, "D");
                                }
                                // Update Order
                                var upby      = User.Identity.Name;
                                var orderdata = db.spOrderUpdateAfterInvoice(
                                    Inv.WarehouseID,
                                    Inv.OrderID,
                                    "Y",
                                    DateTime.Today,
                                    Inv.SalesAmount,
                                    Inv.SecurityAmount,
                                    Inv.RebateAmount,
                                    Inv.AgencyCommission,
                                    chNumber,
                                    upby,
                                    csID,
                                    "Y",
                                    Inv.FinishGoodsUnloadCharge,
                                    upby,
                                    DateTime.Now,
                                    Inv.AdvanceOrder
                                    );
                                // con.Close();
                                //Transport QR Data Tauhid
                                //salesOrderNo will be OrderDate
                                try
                                {
                                    var getSONo = (from x in db.Orders where x.OrderID == Inv.OrderID select x).FirstOrDefault();

                                    SalesOrdNo = Convert.ToInt32(getSONo.OrderID);
                                    TransportQRData qd = db.TransportQRDatas.SingleOrDefault(x => x.SalesOrderNo == SalesOrdNo);
                                    qd.InvoiceDateTime       = System.DateTime.Now;
                                    qd.DeliveryChallanNumber = chNumber;
                                    dc.Entry(qd).State       = EntityState.Modified;
                                }
                                catch (Exception ex)
                                {
                                }
                                dc.SaveChanges();
                                //Invoice Print
                                var getSNo = (from x in db.Orders where x.ChallanNumber == chNumber select x).FirstOrDefault();
                                SalesOrdNo = Convert.ToInt32(getSNo.SalesOrderNo);
                                // SalesOrdNo = (int)Inv.SalesOrderNo;
                                //if (SalesOrdNo!=null)
                                //{

                                //    return RedirectToAction("Invoce", "OrderReport");
                                //}
                                status = true;
                                //int v = chNumber;
                                Dispose();
                                // status = true;
                                //return new JsonResult { Data = new { status = status, mes = mes } };
                            }
                            else
                            {
                                status = false;
                                v      = 0;
                            }
                        }
                    }
                }

                catch (Exception ex)
                {
                    throw ex;
                }
            }
            else
            {
                status = false;
            }
            return(new JsonResult {
                Data = new { status = status, mes = mes, v = v, SNo = SalesOrdNo }
            });
            //return RedirectToAction("Invoice", "ReprintController", new { @InvNo = v });
        }
Esempio n. 4
0
        public ActionResult CreateLoadSheet(LoadSheetVM A)
        {
            var w = (from yt in db.UserLogins
                     where yt.UserID.ToString() == User.Identity.Name
                     select new { yt.WorkStationID }).FirstOrDefault();
            var wn = db.Warehouses.Where(t => t.WarehouseID == w.WorkStationID).FirstOrDefault();

            bool   status = true;
            string mes    = "";
            // int maxsl = 0;

            decimal unitprice = 0;
            string  pstatus   = "";
            string  s1        = w.WorkStationID.ToString();
            string  s2        = string.Concat(s1 + "8000000");
            int     OrderNo   = Convert.ToInt32(s2);

            var orderID = (from n in db.Orders where n.WarehouseID == w.WorkStationID select n.OrderID).DefaultIfEmpty(OrderNo).Max();

            //var maxorderid = (from n in db.Orders
            //                  where n.OrderID == (db.Orders.Max(xo => xo.OrderID))
            //                  select new { n.OrderID }).FirstOrDefault();
            var customerData = (from i in db.Customers where (i.CustomerID == A.CustomerID) select i).FirstOrDefault();

            var mindeliverychallan = db.Orders
                                     .Where(p => p.WarehouseID == A.WarehouseID) // not consider salesorderno p.SalesOrderNo == A.SalesOrderNo &&
                                     .Min(p => p.ChallanNumber);
            //var maxsl = db.Orders
            //                    .Where(p => p.WarehouseID == A.WarehouseID)
            //                    .Max(p => p.OrderID);
            int orderno = orderID + 1;
            int v       = orderno;

            // Checking challan negetive
            if (mindeliverychallan >= 0)
            {
                mindeliverychallan = -1;
            }
            else
            {
                mindeliverychallan = mindeliverychallan - 1;
            }
            if (A.VehicleID == 1)
            {
                A.DriverID = 0;
            }
            if (ModelState.IsValid)
            {
                //  try
                //  {
                using (PEPSIEntities dc = new PEPSIEntities())
                {
                    var   getorderdate = dc.OrderBankSummaries.Where(x => x.WarehouseID == A.WarehouseID && x.SalesOrderNO == A.SalesOrderNo).FirstOrDefault();
                    Order dbo          = new Order
                    {
                        //Add orders table
                        //Here Id   Primary Key of DB table auto increase
                        // SLNo = maxsl,
                        SalesOrderNo = A.SalesOrderNo,
                        //CustomerExecutive = (A.CustomerExecutiveID),
                        OrderID = orderno,//A.OrderID,
                        //OrderDate = A.OrderDate,//DateTime.Today,
                        OrderDate     = getorderdate.SalesOrderDate,
                        WarehouseID   = A.WarehouseID,
                        DriverID      = (int)A.DriverID,
                        CustomerID    = A.CustomerID,
                        VehicleID     = A.VehicleID,
                        SalesPersonID = customerData.SalesPersonID,
                        //Trip = 0,
                        //SalesAmount = 0,
                        //SecurityAmount = 0,
                        //RebateAmount = 0,
                        //AgencyCommission = 0,
                        Trip                        = 1,
                        OrderTypeID                 = A.OrderTypeID,
                        ProductRateID               = customerData.ProductRateID,
                        CustomerExecutiveID         = customerData.CustomerExecutiveID,// A.CustomerExecutiveID,
                        LoadSheetRemarks            = A.LoadSheetRemarks,
                        Delivered                   = "N",
                        Cash                        = "N",
                        IsCashSettlementPrepared    = "N",
                        Transit                     = "N",
                        Promotional                 = "N",
                        InvoiceFromVATInvoiceNumber = "N",
                        VATChallanRequired          = "Y",
                        ReadyForDelivery            = "Y",
                        AdvanceOrder                = "N",
                        //RebateWillBeGivenWithOrder = A.RebateWillBeGivenWithOrder,
                        //SSMA_TimeStamp =Convert.ToByte(DateTime.Now),
                        //  SSMA_TimeStamp = null,
                        CreateBy   = User.Identity.Name,
                        CreateDate = System.DateTime.Now
                    };

                    dc.Orders.Add(dbo);
                    //  status = true;

                    CommonChk c = new CommonChk();
                    foreach (var j in A.orderdetail)
                    {
                        //checking  stock balace
                        if (c.stockchk(j.ProductID, A.WarehouseID, (int)j.AlternateQuantity) == true)
                        {
                            //status = false;
                        }
                        else
                        {
                            status = false;
                        };
                    }
                    ;
                    if (status == true)
                    {
                        foreach (var i in A.orderdetail)
                        {
                            // Add order detail
                            OrderDetail dod = new OrderDetail();
                            // var d = (from x in db.spGetSalesOrder(A.SalesOrderNo) where x.ProductID == i.ProductID select x).FirstOrDefault();

                            var d     = (from n in db.spGetSalesOrderNewProduct(A.SalesOrderNo, i.ProductID) where n.CustomerID == A.CustomerID select n).FirstOrDefault();
                            var batch = (from x in db.StockBatches where x.ProductID == i.ProductID && x.WarehouseID == A.WarehouseID && x.Status == "A" select x).FirstOrDefault();
                            // Id Primary key Auto generate
                            var q = (from x in db.Products where x.ProductID == i.ProductID select x).FirstOrDefault();
                            // unitprice = q.UnitPrice;

                            int     s            = q.ConversionFactor;
                            decimal qt           = Math.Round((decimal)(i.AlternateQuantity) * s, 2);
                            decimal rqty         = Math.Round((decimal)(i.AlternateRebateQuantity) * s, 2);
                            int     quantity     = (Convert.ToInt32(Math.Round(qt)) % s);
                            int     casesqty     = (Convert.ToInt32(Math.Round(qt)) / s);
                            int     rebateqty    = (Convert.ToInt32(Math.Round(rqty)) % s);
                            int     rebatecase   = (Convert.ToInt32(Math.Round(rqty)) / s);
                            int     totbookedqty = (int)qt + (int)rqty;
                            dod.WarehouseID = A.WarehouseID;
                            dod.OrderID     = orderno;// A.OrderID;
                            dod.ProductID   = i.ProductID;
                            //dod.Quantity = i.Quantity;
                            dod.SchemeID                  = (int)i.SchemeID;
                            dod.Quantity                  = quantity;
                            dod.AlternateQuantity         = casesqty;
                            dod.RebateQuantity            = rebateqty;
                            dod.AlternateRebateQuantity   = rebatecase;
                            dod.AgencyCommission          = d.AgencyCommission;
                            dod.AlternateAgencyCommission = d.AlternateAgencyCommission;
                            dod.UnitPrice                 = d.UnitPrice;
                            dod.AlternateUnitPrice        = d.AlternateUnitPrice;
                            dod.SecurityDeposit           = d.SecurityDeposit;
                            dod.AlternateSecurityDeposit  = d.AlternateSecurityDeposit;
                            dod.PlasticBoxQuantity        = (int)i.PlasticBoxQuantity;
                            dod.PlasticBoxSecurity        = d.PlasticBoxSecurity;
                            dod.BatchNo = batch.BatchNo;
                            dod.MfgDate = batch.ManufacturDate;
                            dod.ExpDate = batch.ExpiryDate;
                            dod.MRPRate = d.MRPRate;
                            dc.OrderDetails.Add(dod);

                            //Add scheme infomation
                            OrderSchemeDetail os = new OrderSchemeDetail();
                            os.OrderID     = orderno;// A.OrderID;
                            os.ProductID   = i.ProductID;
                            os.SchemeID    = (int)i.SchemeID;
                            os.WarehouseID = A.WarehouseID;
                            dc.OrderSchemeDetails.Add(os);
                            // Booked Product
                            var bookedproduct = db.spStockBookedandBookedFree(
                                i.ProductID,
                                A.WarehouseID,
                                totbookedqty,
                                "B");
                        }
                    }

                    //db.SaveChanges();
                    //  status = true;
                    if (status == true)
                    {
                        //update

                        if (A.OrderTypeID == 1)
                        {
                            pstatus = "C";
                        }
                        else
                        {
                            pstatus = "P";
                        }
                        var ob            = db.spOrderBankSumUpdate(A.SalesOrderNo, A.WarehouseID, pstatus); //Where(x => x.SalesOrderNO == A.SalesOrderNo && x.WarehouseID == A.WarehouseID && x.CustomerID == A.CustomerID).FirstOrDefault();
                        var bookamtupdate = db.spCustomerBalanceUpdate(A.CustomerID, "B", A.SalesAmount);    // db.Entry(ob).State = EntityState.Modified;
                                                                                                             //Transport QR Data                                                                         //Ad QR LoadSheet Timing                                                                       //Add scheme infomation
                        try
                        {
                            TransportQRData qd = db.TransportQRDatas.SingleOrDefault(x => x.SLNO == A.QRSL);
                            qd.LoadingDateTime = System.DateTime.Now;
                            qd.SalesOrderNo    = orderno;
                            dc.Entry(qd).State = EntityState.Modified;
                        }
                        catch (Exception ex)
                        {
                        }
                        dc.SaveChanges();
                        status = true;
                        dc.Dispose();
                    }
                    else
                    {
                        status = false;
                        v      = 0000;
                    }
                }
            }
            // catch (Exception ex)
            // {

            //   return new JsonResult { Data = new { status = false, mes = "NO Save", v = v } };
            //  return JsonResult { Data = new { status = "error", message = "Not Found" }};
            //}
            return(new JsonResult {
                Data = new { status = status, mes = mes, v = v }
            });
        }