public ActionResult ShowAllForCreateChallan(DateTime orderdate, int psrid, int routeid) { var dbid = (int)Session["DBId"]; var noOfMemo = Db.tblt_Order.Count(a => a.db_id == dbid && a.psr_id == psrid && a.route_id == routeid && a.isProcess == 1 && a.so_status == 1 && a.planned_order_date == orderdate); //var memo = Db.tblt_Order.FirstOrDefault(a => a.db_id == dbid && a.psr_id == psrid && // a.route_id == routeid && // a.isProcess == 1 && a.so_status == 1 && // a.planned_order_date == orderdate); var noOfnotprocess = Db.tblt_Order.Count(a => a.db_id == dbid && a.psr_id == psrid && a.route_id == routeid && a.isProcess == 0 && a.so_status == 1 && a.planned_order_date == orderdate); if (noOfnotprocess == 0) { if (noOfMemo > 0) { ChallaniVm civm = new ChallaniVm { OrderDate = orderdate, PsrId = psrid, PsrName = Db.tbld_distribution_employee.Where(x => x.id == psrid).Select(x => x.Name) .SingleOrDefault(), RouteId = routeid, RouteName = Db.tbld_distributor_Route.Where(x => x.RouteID == routeid).Select(x => x.RouteName) .SingleOrDefault(), NoOfMemo = noOfMemo }; List <ChallanlineVm> challanlineList = new List <ChallanlineVm>(); var skuList = from a in Db.tbld_distribution_house join b in Db.tbld_bundle_price_details on a.PriceBuandle_id equals b.bundle_price_id join c in Db.tbld_SKU on b.sku_id equals c.SKU_id join d in Db.tbld_SKU_unit on c.SKUUnit equals d.id where a.DB_Id == dbid && b.status == 1 && c.SKUStatus == 1 orderby c.SKUbrand_id select new ChallanlineVm { SkuId = b.sku_id, SkuName = c.SKUName, BatchId = b.batch_id, Price = b.outlet_lifting_price, PackSize = d.qty }; foreach (var skuListitem in skuList) { int orderQty = 0; int freeQty = 0; var orderQtysum = (from a in Db.tblt_Order join b in Db.tblt_Order_line on a.Orderid equals b.Orderid where a.db_id == dbid && a.psr_id == psrid && a.route_id == routeid && a.isProcess == 1 & b.sku_id == skuListitem.SkuId && b.Betch_id == skuListitem.BatchId && b.sku_order_type_id == 1 && a.so_status == 1 && a.planned_order_date == orderdate && a.Challan_no == 0 select(int?) b.quantity_delivered).Sum(); var freeQtysum = (from a in Db.tblt_Order join b in Db.tblt_Order_line on a.Orderid equals b.Orderid where a.db_id == dbid && a.psr_id == psrid && a.route_id == routeid && a.isProcess == 1 & b.sku_id == skuListitem.SkuId && b.Betch_id == skuListitem.BatchId && b.sku_order_type_id == 2 && a.so_status == 1 && a.planned_order_date == orderdate && a.Challan_no == 0 select(int?) b.quantity_delivered).Sum(); if (orderQtysum != null) { orderQty = (int)orderQtysum; } if (freeQtysum != null) { freeQty = (int)freeQtysum; } if ((orderQty + freeQty) > 0) { ChallanlineVm challanlineVm = new ChallanlineVm { SkuId = skuListitem.SkuId, SkuName = skuListitem.SkuName, BatchId = skuListitem.BatchId, Price = skuListitem.Price, PackSize = skuListitem.PackSize, StockQty = Db.tblt_inventory .Where(x => x.dbId == dbid && x.skuId == skuListitem.SkuId && x.batchNo == skuListitem.BatchId).Select(x => x.qtyPs) .SingleOrDefault(), OrderCsQty = orderQty / skuListitem.PackSize, OrderPsQty = orderQty % skuListitem.PackSize, OrderQty = orderQty, FreeCsQty = freeQty / skuListitem.PackSize, FreePsQty = freeQty % skuListitem.PackSize, FreeQty = freeQty, TotalQty = orderQty + freeQty, TotalCsQty = (orderQty + freeQty) / skuListitem.PackSize, TotalPsQty = (orderQty + freeQty) % skuListitem.PackSize, TotalQtyPrice = skuListitem.Price * orderQty }; challanlineList.Add(challanlineVm); } } civm.Challanline = challanlineList.OrderByDescending(x => x.OrderCsQty).ToList(); return(PartialView(civm)); } return(PartialView("EmptyOrder")); } return(PartialView("OrdernotProcess")); }
public ActionResult PrintChallan(int id) { var tbltChallan = Db.tblt_Challan.Find(id); if (tbltChallan != null) { ChallaniVm civm = new ChallaniVm { Id = id, OrderDate = tbltChallan.order_date, PsrId = tbltChallan.psr_id, PsrName = tbltChallan.psr_Name, RouteId = tbltChallan.route_id, RouteName = tbltChallan.route_Name, NoOfMemo = tbltChallan.No_of_memo, ChallanStatus = tbltChallan.challan_status }; List <ChallanlineVm> challanlineVmList = new List <ChallanlineVm>(); var skuList = from a in Db.tblt_Challan_line join b in Db.tbld_SKU on a.sku_id equals b.SKU_id where a.challan_id == id select a; if (tbltChallan.challan_status != 2) { foreach (var skuListitem in skuList) { ChallanlineVm challanlineVm = new ChallanlineVm { SkuId = skuListitem.sku_id, SkuName = Db.tbld_SKU.Where(x => x.SKU_id == skuListitem.sku_id).Select(x => x.SKUName).SingleOrDefault(), BatchId = skuListitem.batch_id, Price = skuListitem.price, PackSize = skuListitem.Pack_size, FreeCsQty = skuListitem.Free_qty / skuListitem.Pack_size, FreePsQty = skuListitem.Free_qty % skuListitem.Pack_size, FreeQty = skuListitem.Free_qty, OrderCsQty = skuListitem.Order_qty / skuListitem.Pack_size, OrderPsQty = skuListitem.Order_qty % skuListitem.Pack_size, OrderQty = skuListitem.Total_qty, ExtraQty = skuListitem.Extra_qty, TotalCsQty = (skuListitem.Total_qty - skuListitem.Free_qty) / skuListitem.Pack_size, TotalPsQty = (skuListitem.Total_qty - skuListitem.Free_qty) % skuListitem.Pack_size, TotalQty = skuListitem.Total_qty - skuListitem.Free_qty, OrderQtyPrice = skuListitem.Order_qty_price, ReturnQty = skuListitem.Total_qty - skuListitem.Free_qty, }; challanlineVmList.Add(challanlineVm); civm.GrandTotalCs = civm.GrandTotalCs + Convert.ToDouble((skuListitem.Order_qty + skuListitem.Free_qty + skuListitem.Extra_qty) / skuListitem.Pack_size); civm.GrandTotal = civm.GrandTotal + Convert.ToDouble((skuListitem.Order_qty + skuListitem.Free_qty + skuListitem.Extra_qty) * skuListitem.price); civm.DeliveryGrandTotalCs = 0; civm.DeliveryGrandTotal = 0; } } else { foreach (var skuListitem in skuList) { ChallanlineVm challanlineVm = new ChallanlineVm { SkuId = skuListitem.sku_id, SkuName = Db.tbld_SKU.Where(x => x.SKU_id == skuListitem.sku_id).Select(x => x.SKUName) .SingleOrDefault(), BatchId = skuListitem.batch_id, Price = skuListitem.price, PackSize = skuListitem.Pack_size, FreeCsQty = skuListitem.Confirm_Free_qty / skuListitem.Pack_size, FreePsQty = skuListitem.Confirm_Free_qty % skuListitem.Pack_size, FreeQty = skuListitem.Confirm_Free_qty, OrderCsQty = skuListitem.Order_qty / skuListitem.Pack_size, OrderPsQty = skuListitem.Order_qty % skuListitem.Pack_size, OrderQty = skuListitem.Total_qty, ExtraQty = skuListitem.Extra_qty, TotalCsQty = skuListitem.Order_qty / skuListitem.Pack_size, TotalPsQty = skuListitem.Order_qty % skuListitem.Pack_size, TotalQty = skuListitem.Order_qty, OrderQtyPrice = skuListitem.Order_qty_price, ConfirmQty = skuListitem.Confirm_qty, ConfirmCsQty = skuListitem.Confirm_qty / skuListitem.Pack_size, ConfirmPsQty = skuListitem.Confirm_qty % skuListitem.Pack_size, ConfirmQtyPrice = skuListitem.Confirm_qty_price, ReturnQty = skuListitem.Total_qty - (skuListitem.Confirm_qty + skuListitem.Confirm_Free_qty) }; challanlineVmList.Add(challanlineVm); civm.GrandTotalCs = civm.GrandTotalCs + Convert.ToDouble( (skuListitem.Order_qty + skuListitem.Free_qty + skuListitem.Extra_qty) / skuListitem.Pack_size); civm.GrandTotal = civm.GrandTotal + Convert.ToDouble( (skuListitem.Order_qty + skuListitem.Free_qty + skuListitem.Extra_qty) * skuListitem.price); civm.DeliveryGrandTotalCs = civm.GrandTotalCs + Convert.ToDouble( (skuListitem.Confirm_qty + skuListitem.Confirm_Free_qty) / skuListitem.Pack_size); civm.DeliveryGrandTotal = civm.GrandTotal + Convert.ToDouble((skuListitem.Confirm_qty) * skuListitem.price); } } var myList = Db.tblt_Order.Where(x => x.Challan_no == tbltChallan.id).Select(x => x.Orderid).ToList(); civm.Momonumber = string.Join(",", myList.ToArray()); civm.Challanline = challanlineVmList.ToList(); return(PartialView(civm)); } return(PartialView("EmptyOrder")); }
public ActionResult ShowConfirmChallan(int id) { var tbltChallan = Db.tblt_Challan.Find(id); ViewBag.firstmemoid = 0; var firstOrDefault = Db.tblt_Order.FirstOrDefault(x => x.Challan_no == id); if (firstOrDefault != null) { ViewBag.firstmemoid = firstOrDefault.Orderid; } if (tbltChallan != null) { ChallaniVm civm = new ChallaniVm { Id = id, OrderDate = tbltChallan.order_date, PsrId = tbltChallan.psr_id, PsrName = tbltChallan.psr_Name, RouteId = tbltChallan.route_id, RouteName = tbltChallan.route_Name, NoOfMemo = tbltChallan.No_of_memo, DeliveryDate = tbltChallan.delivery_date }; List <ChallanlineVm> challanlineVmList = new List <ChallanlineVm>(); var skuList = from a in Db.tblt_Challan_line join b in Db.tbld_SKU on a.sku_id equals b.SKU_id where a.challan_id == id select a; foreach (var skuListitem in skuList) { int confirmQty = 0; int freeQty = 0; var orderQtysum = (from a in Db.tblt_Order join b in Db.tblt_Order_line on a.Orderid equals b.Orderid where b.sku_id == skuListitem.sku_id && b.Betch_id == skuListitem.batch_id && b.sku_order_type_id == 1 && a.so_status != 9 && a.Challan_no == id select(int?) b.quantity_delivered).Sum(); var freeQtysum = (from a in Db.tblt_Order join b in Db.tblt_Order_line on a.Orderid equals b.Orderid where b.sku_id == skuListitem.sku_id && b.Betch_id == skuListitem.batch_id && b.sku_order_type_id == 2 && a.so_status != 9 && a.Challan_no == id select(int?) b.quantity_delivered).Sum(); if (orderQtysum != null) { confirmQty = (int)orderQtysum; } if (freeQtysum != null) { freeQty = (int)freeQtysum; } ChallanlineVm challanlineVm = new ChallanlineVm { SkuId = skuListitem.sku_id, SkuName = Db.tbld_SKU.Where(x => x.SKU_id == skuListitem.sku_id).Select(x => x.SKUName).SingleOrDefault(), BatchId = skuListitem.batch_id, Price = skuListitem.price, PackSize = skuListitem.Pack_size, FreeCsQty = freeQty / skuListitem.Pack_size, FreePsQty = freeQty % skuListitem.Pack_size, FreeQty = freeQty, TotalCsQty = skuListitem.Total_qty / skuListitem.Pack_size, TotalPsQty = skuListitem.Total_qty % skuListitem.Pack_size, TotalQty = skuListitem.Total_qty, ConfirmQty = confirmQty + freeQty, ConfirmCsQty = (confirmQty + freeQty) / skuListitem.Pack_size, ConfirmPsQty = (confirmQty + freeQty) % skuListitem.Pack_size, ReturnQty = skuListitem.Total_qty - (confirmQty + freeQty) }; challanlineVmList.Add(challanlineVm); civm.GrandTotalCs = civm.GrandTotalCs + Convert.ToDouble((skuListitem.Order_qty + skuListitem.Free_qty + skuListitem.Extra_qty) / skuListitem.Pack_size); civm.GrandTotal = civm.GrandTotal + Convert.ToDouble((skuListitem.Order_qty + skuListitem.Free_qty + skuListitem.Extra_qty) * skuListitem.price); civm.DeliveryGrandTotalCs = civm.GrandTotalCs + Convert.ToDouble((confirmQty + freeQty) / skuListitem.Pack_size); civm.DeliveryGrandTotal = civm.GrandTotal + Convert.ToDouble((confirmQty + freeQty) * skuListitem.price); } civm.Challanline = challanlineVmList.ToList(); return(View(civm)); } return(PartialView("EmptyOrder")); }
public ActionResult Addchallan(ChallaniVm challaniVm) { int dbid = (int)Session["DBId"]; var date = (DateTime)Session["SystemDate"]; var deliverydate = Db.tbld_Route_Plan_Detail.SingleOrDefault(x => x.route_id == challaniVm.RouteId && x.planned_visit_date == challaniVm.OrderDate); if (deliverydate == null) { challaniVm.DeliveryDate = date; } else { if (deliverydate.delivery_date != null) { challaniVm.DeliveryDate = (DateTime)deliverydate.delivery_date; } } if (challaniVm != null) { int count = Db.tblt_Challan.Count(x => x.System_date == date && x.db_id == dbid) + 1; string challanNumber = "C-" + challaniVm.OrderDate.ToString("yyyymmdd") + "-" + dbid + "-" + challaniVm.PsrId + "-" + count; tblt_Challan tbltChallan = new tblt_Challan { challan_number = challanNumber, db_id = dbid, psr_id = challaniVm.PsrId, psr_Name = challaniVm.PsrName, route_id = challaniVm.RouteId, route_Name = challaniVm.RouteName, challan_status = 1, No_of_memo = challaniVm.NoOfMemo, order_date = challaniVm.OrderDate, delivery_date = challaniVm.DeliveryDate, Create_date_time = DateTime.Now, System_date = date, grand_total_CS = challaniVm.GrandTotalCs, delivery_grand_total_CS = 0, grand_total = challaniVm.GrandTotal, delivery_grand_total = 0 }; Db.tblt_Challan.Add(tbltChallan); Db.SaveChanges(); int challanid = tbltChallan.id; foreach (var challanlineitem in challaniVm.Challanline) { tblt_Challan_line tbltChallanLine = new tblt_Challan_line { challan_id = challanid, sku_id = challanlineitem.SkuId, batch_id = challanlineitem.BatchId, price = challanlineitem.Price, Pack_size = challanlineitem.PackSize, Order_qty = challanlineitem.OrderQty, Extra_qty = challanlineitem.ExtraQty, Free_qty = challanlineitem.FreeQty, Total_qty = challanlineitem.TotalQty, Confirm_qty = 0, Confirm_Free_qty = 0, Order_qty_price = challanlineitem.OrderQty * challanlineitem.Price, Extra_qty_price = challanlineitem.ExtraQty * challanlineitem.Price, Total_qty_price = (challanlineitem.OrderQty + challanlineitem.ExtraQty) * challanlineitem.Price, Confirm_qty_price = 0 }; Db.tblt_Challan_line.Add(tbltChallanLine); //Update Inventory Db.tblt_inventory.Where(x => x.dbId == dbid && x.skuId == challanlineitem.SkuId && x.batchNo == challanlineitem.BatchId).ToList().ForEach(x => { x.qtyPs = x.qtyPs - challanlineitem.TotalQty; }); // Add inventory log tbll_inventory_log tbllInventoryLog = new tbll_inventory_log { db_id = dbid, sku_id = challanlineitem.SkuId, batch_id = challanlineitem.BatchId, price = 0, tx_qty_ps = challanlineitem.TotalQty, tx_type = 2, tx_System_date = date, tx_date = DateTime.Now, tx_challan = challanid }; Db.tbll_inventory_log.Add(tbllInventoryLog); Db.SaveChanges(); } //Update Order status and add challan number Db.tblt_Order.Where(a => a.db_id == dbid && a.psr_id == challaniVm.PsrId && a.route_id == challaniVm.RouteId && a.isProcess == 1 && a.so_status == 1 && a.so_status != 9 && a.planned_order_date == challaniVm.OrderDate && a.Challan_no == 0).ToList() .ForEach(x => { x.Challan_no = challanid; x.so_status = 2; }); Db.SaveChanges(); return(Json("Success", JsonRequestBehavior.AllowGet)); } return(Json("Error", JsonRequestBehavior.AllowGet)); }
public ActionResult DetailsChallan(int id) { var tbltChallan = Db.tblt_Challan.Find(id); if (tbltChallan != null) { ChallaniVm civm = new ChallaniVm { Id = id, OrderDate = tbltChallan.order_date, PsrId = tbltChallan.psr_id, PsrName = tbltChallan.psr_Name, RouteId = tbltChallan.route_id, RouteName = tbltChallan.route_Name, NoOfMemo = tbltChallan.No_of_memo, ChallanStatus = tbltChallan.challan_status }; List <ChallanlineVm> challanlineVmList = new List <ChallanlineVm>(); var skuList = from a in Db.tblt_Challan_line join b in Db.tbld_SKU on a.sku_id equals b.SKU_id where a.challan_id == id select a; if (tbltChallan.challan_status != 2) { foreach (var skuListitem in skuList) { ChallanlineVm challanlineVm = new ChallanlineVm { SkuId = skuListitem.sku_id, SkuName = Db.tbld_SKU.Where(x => x.SKU_id == skuListitem.sku_id).Select(x => x.SKUName).SingleOrDefault(), BatchId = skuListitem.batch_id, Price = skuListitem.price, PackSize = skuListitem.Pack_size, FreeCsQty = skuListitem.Free_qty / skuListitem.Pack_size, FreePsQty = skuListitem.Free_qty % skuListitem.Pack_size, FreeQty = skuListitem.Free_qty, OrderCsQty = (skuListitem.Order_qty) / skuListitem.Pack_size, OrderPsQty = (skuListitem.Order_qty) % skuListitem.Pack_size, OrderQty = (skuListitem.Order_qty), ExtraQty = skuListitem.Extra_qty, TotalCsQty = (skuListitem.Total_qty) / skuListitem.Pack_size, TotalPsQty = (skuListitem.Total_qty) % skuListitem.Pack_size, TotalQty = skuListitem.Total_qty, OrderQtyPrice = skuListitem.Order_qty_price, ReturnQty = skuListitem.Total_qty - skuListitem.Free_qty, }; challanlineVmList.Add(challanlineVm); civm.GrandTotalCs = civm.GrandTotalCs + Convert.ToDouble((skuListitem.Order_qty + skuListitem.Free_qty + skuListitem.Extra_qty) / skuListitem.Pack_size); civm.GrandTotal = civm.GrandTotal + Convert.ToDouble((skuListitem.Order_qty + skuListitem.Free_qty + skuListitem.Extra_qty) * skuListitem.price); civm.DeliveryGrandTotalCs = 0; civm.DeliveryGrandTotal = 0; } } else { foreach (var skuListitem in skuList) { ChallanlineVm challanlineVm = new ChallanlineVm { SkuId = skuListitem.sku_id, SkuName = Db.tbld_SKU.Where(x => x.SKU_id == skuListitem.sku_id).Select(x => x.SKUName) .SingleOrDefault(), BatchId = skuListitem.batch_id, Price = skuListitem.price, PackSize = skuListitem.Pack_size, FreeCsQty = skuListitem.Free_qty / skuListitem.Pack_size, FreePsQty = skuListitem.Free_qty % skuListitem.Pack_size, FreeQty = skuListitem.Free_qty, OrderCsQty = (skuListitem.Order_qty) / skuListitem.Pack_size, OrderPsQty = (skuListitem.Order_qty) % skuListitem.Pack_size, OrderQty = (skuListitem.Order_qty), ExtraQty = skuListitem.Extra_qty, TotalCsQty = (skuListitem.Total_qty) / skuListitem.Pack_size, TotalPsQty = (skuListitem.Total_qty) % skuListitem.Pack_size, TotalQty = skuListitem.Total_qty, ConfirmFreeCsQty = skuListitem.Confirm_Free_qty / skuListitem.Pack_size, ConfirmFreePsQty = skuListitem.Confirm_Free_qty % skuListitem.Pack_size, ConfirmFreeQty = skuListitem.Confirm_Free_qty, OrderQtyPrice = skuListitem.Order_qty_price, ConfirmQty = (skuListitem.Confirm_qty + skuListitem.Confirm_Free_qty), ConfirmCsQty = (skuListitem.Confirm_qty + skuListitem.Confirm_Free_qty) / skuListitem.Pack_size, ConfirmPsQty = (skuListitem.Confirm_qty + skuListitem.Confirm_Free_qty) % skuListitem.Pack_size, ConfirmQtyPrice = skuListitem.Confirm_qty_price, ReturnQty = skuListitem.Total_qty - (skuListitem.Confirm_qty + skuListitem.Confirm_Free_qty) }; challanlineVmList.Add(challanlineVm); civm.GrandTotalCs = civm.GrandTotalCs + Convert.ToDouble( (skuListitem.Order_qty + skuListitem.Free_qty + skuListitem.Extra_qty) / skuListitem.Pack_size); civm.GrandTotal = civm.GrandTotal + Convert.ToDouble( (skuListitem.Order_qty + skuListitem.Free_qty + skuListitem.Extra_qty) * skuListitem.price); civm.DeliveryGrandTotalCs = civm.GrandTotalCs + Convert.ToDouble( (skuListitem.Confirm_qty + skuListitem.Confirm_Free_qty) / skuListitem.Pack_size); civm.DeliveryGrandTotal = civm.GrandTotal + Convert.ToDouble((skuListitem.Confirm_qty) * skuListitem.price); } } var myList = Db.tblt_Order.Where(x => x.Challan_no == tbltChallan.id).Select(x => x.Orderid).ToList(); civm.Momonumber = string.Join(",", myList.ToArray()); civm.Challanline = challanlineVmList.ToList(); DateTime?blankTime = null; var data = from a in Db.tblt_Order where a.Challan_no == tbltChallan.id && a.isProcess == 1 select new OrderiVm { Orderid = a.Orderid, SoId = a.so_id, RouteName = Db.tbld_distributor_Route.Where(x => x.RouteID == a.route_id).Select(x => x.RouteName) .FirstOrDefault(), OutletName = Db.tbld_Outlet.Where(x => x.OutletId == a.outlet_id).Select(x => x.OutletName) .FirstOrDefault(), ChallanNo = a.Challan_no, PlannedOrderDate = a.planned_order_date, DeliveryDate = a.so_status == 3 ? a.delivery_date : blankTime, PsrName = Db.tbld_distribution_employee.Where(x => x.id == a.psr_id).Select(x => x.Name) .FirstOrDefault(), SoStatus = a.so_status, OrderCs = Db.tblt_Order_line.Where(x => x.Orderid == a.Orderid && x.sku_order_type_id == 1) .Select(x => x.quantity_confirmed / x.Pack_size).Sum().ToString(), DeliveryCs = (a.so_status == 3 ? Db.tblt_Order_line.Where(x => x.Orderid == a.Orderid && x.sku_order_type_id == 1).Select(x => x.quantity_delivered / x.Pack_size).Sum().ToString() : ""), TotalOrder = a.total_confirmed.ToString(), TotalDelivered = a.so_status == 3 ? a.total_delivered.ToString() : "", IsProcess = a.isProcess }; civm.Orderline = data.ToList(); return(View(civm)); } return(PartialView("EmptyOrder")); }
public ActionResult ShowConfirmChallan(int id) { var tbltChallan = Db.tblt_Challan.Find(id); ViewBag.firstmemoid = 0; var firstOrDefault = Db.tblt_Order.FirstOrDefault(x => x.Challan_no == id); if (firstOrDefault != null) { ViewBag.firstmemoid = firstOrDefault.Orderid; } if (tbltChallan != null) { ChallaniVm civm = new ChallaniVm { Id = id, OrderDate = tbltChallan.order_date, PsrId = tbltChallan.psr_id, PsrName = tbltChallan.psr_Name, RouteId = tbltChallan.route_id, RouteName = tbltChallan.route_Name, NoOfMemo = tbltChallan.No_of_memo, DeliveryDate = tbltChallan.delivery_date }; List <ChallanlineVm> challanlineVmList = new List <ChallanlineVm>(); var skuList = from a in Db.tblt_Challan_line join b in Db.tbld_SKU on a.sku_id equals b.SKU_id where a.challan_id == id select a; foreach (var skuListitem in skuList) { int confirmQty = 0; int freeQty = 0; var orderQtysum = (from a in Db.tblt_Order join b in Db.tblt_Order_line on a.Orderid equals b.Orderid where b.sku_id == skuListitem.sku_id && b.Betch_id == skuListitem.batch_id && b.sku_order_type_id == 1 && a.so_status != 9 && a.Challan_no == id select(int?) b.quantity_delivered).Sum(); var freeQtysum = (from a in Db.tblt_Order join b in Db.tblt_Order_line on a.Orderid equals b.Orderid where b.sku_id == skuListitem.sku_id && b.Betch_id == skuListitem.batch_id && b.sku_order_type_id == 2 && a.so_status != 9 && a.Challan_no == id select(int?) b.quantity_delivered).Sum(); if (orderQtysum != null) { confirmQty = (int)orderQtysum; } if (freeQtysum != null) { freeQty = (int)freeQtysum; } ChallanlineVm challanlineVm = new ChallanlineVm { SkuId = skuListitem.sku_id, SkuName = Db.tbld_SKU.Where(x => x.SKU_id == skuListitem.sku_id).Select(x => x.SKUName).SingleOrDefault(), BatchId = skuListitem.batch_id, Price = skuListitem.price, PackSize = skuListitem.Pack_size, FreeCsQty = freeQty / skuListitem.Pack_size, FreePsQty = freeQty % skuListitem.Pack_size, FreeQty = freeQty, TotalCsQty = skuListitem.Total_qty / skuListitem.Pack_size, TotalPsQty = skuListitem.Total_qty % skuListitem.Pack_size, TotalQty = skuListitem.Total_qty, ConfirmQty = confirmQty + freeQty, ConfirmCsQty = (confirmQty + freeQty) / skuListitem.Pack_size, ConfirmPsQty = (confirmQty + freeQty) % skuListitem.Pack_size, ReturnQty = skuListitem.Total_qty - (confirmQty + freeQty) }; challanlineVmList.Add(challanlineVm); civm.GrandTotalCs = civm.GrandTotalCs + Convert.ToDouble((skuListitem.Order_qty + skuListitem.Free_qty + skuListitem.Extra_qty) / skuListitem.Pack_size); civm.GrandTotal = civm.GrandTotal + Convert.ToDouble((skuListitem.Order_qty + skuListitem.Free_qty + skuListitem.Extra_qty) * skuListitem.price); civm.DeliveryGrandTotalCs = civm.GrandTotalCs + Convert.ToDouble((confirmQty + freeQty)) / skuListitem.Pack_size; civm.DeliveryGrandTotal = civm.GrandTotal + Convert.ToDouble((confirmQty + freeQty)) * skuListitem.price; } civm.Challanline = challanlineVmList.ToList(); DateTime?blankTime = null; var data = from a in Db.tblt_Order where a.Challan_no == tbltChallan.id && a.isProcess == 1 select new OrderiVm { Orderid = a.Orderid, SoId = a.so_id, RouteName = Db.tbld_distributor_Route.Where(x => x.RouteID == a.route_id).Select(x => x.RouteName) .FirstOrDefault(), OutletName = Db.tbld_Outlet.Where(x => x.OutletId == a.outlet_id).Select(x => x.OutletName) .FirstOrDefault(), ChallanNo = a.Challan_no, PlannedOrderDate = a.planned_order_date, DeliveryDate = a.so_status == 3 ? a.delivery_date : blankTime, PsrName = Db.tbld_distribution_employee.Where(x => x.id == a.psr_id).Select(x => x.Name) .FirstOrDefault(), SoStatus = a.so_status, OrderCs = Db.tblt_Order_line.Where(x => x.Orderid == a.Orderid && x.sku_order_type_id == 1) .Select(x => x.quantity_confirmed / x.Pack_size).Sum().ToString(), DeliveryCs = a.so_status == 3 ? Db.tblt_Order_line.Where(x => x.Orderid == a.Orderid && x.sku_order_type_id == 1) .Select(x => x.quantity_delivered / x.Pack_size).Sum().ToString() : "", TotalOrder = a.total_confirmed.ToString(), TotalDelivered = a.so_status == 3 ? a.total_delivered.ToString() : "", IsProcess = a.isProcess }; civm.Orderline = data.ToList(); return(View(civm)); } return(PartialView("EmptyOrder")); }