コード例 #1
0
ファイル: TruckingHelper.cs プロジェクト: amorsi/EasyFreight
        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);
        }
コード例 #2
0
ファイル: TruckingHelper.cs プロジェクト: amorsi/EasyFreight
        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);
        }
コード例 #3
0
        public ActionResult AddEditTruckingOrderDetails(TruckingOrderDetailVm truckingOrderVm)
        {
            string isSaved = TruckingHelper.AddEditTruckingOrderDetails(truckingOrderVm);

            return(Json(isSaved));
        }