public static string AddEditTruckingOrderDetails(TruckingOrderDetailVm truckingOrderVm) { int truckingOrderId = truckingOrderVm.TruckingOrderId; string isSaved = "true"; EasyFreightEntities db = new EasyFreightEntities(); TruckingOrderDetail orderDetailDb; //check if detauils is inserted before int detailCount = db.TruckingOrderDetails.Where(x => x.TruckingOrderId == truckingOrderId).Count(); TruckingOrder orderDb; orderDb = db.TruckingOrders.Where(x => x.TruckingOrderId == truckingOrderId).FirstOrDefault(); // change the status if (truckingOrderVm.StatusId == 3) { orderDb.StatusId = 3; //closed } List <TruckingOrderCost> dbOrderCostList = new List <TruckingOrderCost>(); if (detailCount == 0) //Add new case { orderDetailDb = new TruckingOrderDetail(); } else { orderDetailDb = db.TruckingOrderDetails.Include("TruckingOrderCosts").Where(x => x.TruckingOrderId == truckingOrderId).FirstOrDefault(); //delete any removed costs on the screen dbOrderCostList = orderDetailDb.TruckingOrderCosts.ToList(); //Get cost Ids sent from the screen List <int> truckingOrderCostVmIds = truckingOrderVm.TruckingOrderCosts.Select(x => x.TruckingOrderCostId).ToList(); var orderCostDel = dbOrderCostList.Where(x => !truckingOrderCostVmIds.Contains(x.TruckingOrderCostId)).ToList(); foreach (var item in orderCostDel) { db.TruckingOrderCosts.Remove(item); } } Mapper.CreateMap <TruckingOrderDetailVm, TruckingOrderDetail>().IgnoreAllNonExisting(); Mapper.CreateMap <TruckingCostVm, TruckingOrderCost>().IgnoreAllNonExisting(); Mapper.Map(truckingOrderVm, orderDetailDb); if (detailCount == 0) { orderDetailDb.TruckingOrderCode = AdminHelper.GeneratePrefixCode(PrefixForEnum.TruckingOrder, true); db.TruckingOrderDetails.Add(orderDetailDb); if (truckingOrderVm.StatusId != 3) { orderDb.StatusId = 2; // open } } List <OperationContainer> dbOperationContainerList = new List <OperationContainer>(); OperationsEntities opdb = new OperationsEntities(); dbOperationContainerList = opdb.OperationContainers.Where(x => x.OperationId == truckingOrderVm.OperationId).ToList(); foreach (var item in truckingOrderVm.OperationContainers) { long operConIdvmId = item.OperConId; OperationContainer operationContainerDb = dbOperationContainerList .Where(x => x.OperConId == operConIdvmId).FirstOrDefault(); operationContainerDb.ContainerNumber = item.ContainerNumber; operationContainerDb.SealNumber = item.SealNumber; //Mapper.Map(item, operationContainerDb); } try { db.SaveChanges(); opdb.SaveChanges(); } catch (DbEntityValidationException e) { isSaved = "false " + e.Message; } catch (Exception e) { isSaved = "false " + e.InnerException.InnerException.Message; } return(isSaved); }
public static TruckingOrderDetailVm GetTruckingOrderDetailInfo(int truckingOrderId) { TruckingOrderDetailVm trkoVmObj = new TruckingOrderDetailVm(truckingOrderId); EasyFreightEntities db = new EasyFreightEntities(); int truckDetailCount = db.TruckingOrderDetails.Where(x => x.TruckingOrderId == truckingOrderId).Count(); OperationsEntities db1 = new OperationsEntities(); var truckViewObj = db1.TruckingOrdersViews.Where(x => x.TruckingOrderId == truckingOrderId).FirstOrDefault(); Mapper.CreateMap <TruckingOrdersView, TruckingOrderDetailVm>().IgnoreAllNonExisting(); Mapper.Map(truckViewObj, trkoVmObj); trkoVmObj.ClientName = truckViewObj.OrderFrom == 1 ? truckViewObj.ShipperNameEn : truckViewObj.ConsigneeNameEn; trkoVmObj.ContainersSummary = OperationHelper.GetContainersSummary(trkoVmObj.OperationId); List <TruckingOrderCost> truckCostList = db.TruckingOrderCosts.Where(x => x.TruckingOrderId == truckingOrderId).ToList(); TruckingCostVm truckingCostObj; if (truckCostList.Count() == 0) { truckingCostObj = new TruckingCostVm(trkoVmObj.TruckingOrderId); trkoVmObj.TruckingOrderCosts.Add(truckingCostObj); } else { Mapper.CreateMap <TruckingOrderCost, TruckingCostVm>().IgnoreAllNonExisting(); trkoVmObj.TotalCostNet = Math.Round(truckCostList.Sum(x => x.TruckingCostNet), 2); trkoVmObj.TotalCostSelling = Math.Round(truckCostList.Sum(x => x.TruckingCostSelling), 2); foreach (var cost in truckCostList) { truckingCostObj = new TruckingCostVm(); Mapper.Map(cost, truckingCostObj); truckingCostObj.TruckingCostSelling = Math.Round(truckingCostObj.TruckingCostSelling.Value, 2); truckingCostObj.TruckingCostNet = Math.Round(truckingCostObj.TruckingCostNet.Value, 2); truckingCostObj.TruckingCostName = cost.TruckingCostLib.TruckingCostName; truckingCostObj.CurrencySign = cost.Currency.CurrencySign; trkoVmObj.TruckingOrderCosts.Add(truckingCostObj); } } List <OperationContainerVm> operationContainerList = OperationHelper.GetOperationContainers(trkoVmObj.OperationId); if (operationContainerList.Count() > 0) { //kamal int truckHouseId = db.TruckingOrders.Where(x => x.TruckingOrderId == truckingOrderId).Select(a => a.HouseBillId.Value).FirstOrDefault(); List <HouseContainerVm> hcVmList = HouseBillHelper.GetHousContainerByHouseID(truckHouseId); if (hcVmList.Count > 0) { foreach (var opcont in operationContainerList) { foreach (var item in hcVmList) { if (item.OperConId == opcont.OperConId) { trkoVmObj.OperationContainers.Add(opcont); } } } } else { foreach (var opcont in operationContainerList) { trkoVmObj.OperationContainers.Add(opcont); } } } trkoVmObj.HbDate = db1.HouseBills .Where(x => x.HouseBillId == truckViewObj.HouseBillId).FirstOrDefault().OperationDate.Value; //Get code generated if first insert if (truckDetailCount == 0) { trkoVmObj.TruckingOrderCode = AdminHelper.GeneratePrefixCode(PrefixForEnum.TruckingOrder, false); } return(trkoVmObj); }
public ActionResult AddEditTruckingOrderDetails(TruckingOrderDetailVm truckingOrderVm) { string isSaved = TruckingHelper.AddEditTruckingOrderDetails(truckingOrderVm); return(Json(isSaved)); }