public BusinessTripSchedule ToEntity()
        {
            BusinessTripSchedule businessTripSchedule = new BusinessTripSchedule();

            businessTripSchedule.ID = Id;

            //DateTime departDate;
            //DateTime.TryParseExact(DepartDate, StringConstant.DateFormatddMMyyyy2, CultureInfo.InvariantCulture, DateTimeStyles.None, out departDate);
            //departDate.AddHours(DepartHour);
            //departDate.AddMinutes(DepartMinute);
            businessTripSchedule.DepartDate = Convert.ToDateTime(DepartDate);

            businessTripSchedule.FlightName               = FlightName;
            businessTripSchedule.City                     = City;
            businessTripSchedule.Country                  = Country;
            businessTripSchedule.ContactCompany           = ContactCompany;
            businessTripSchedule.ContactPhone             = ContactPhone;
            businessTripSchedule.OtherSchedule            = OtherSchedule;
            businessTripSchedule.BusinessTripManagementID = new LookupItem()
            {
                LookupId = (BusinessTripManagementID != null ? BusinessTripManagementID.LookupId : 0), LookupValue = (BusinessTripManagementID != null ? BusinessTripManagementID.LookupValue : string.Empty)
            };

            return(businessTripSchedule);
        }
Example #2
0
        private BusinessTripScheduleModel ConvertToModel(BusinessTripSchedule businessTripSchedule)
        {
            BusinessTripScheduleModel businessTripScheduleModel = new BusinessTripScheduleModel()
            {
                Id = businessTripSchedule.ID,
                BusinessTripManagementID = businessTripSchedule.BusinessTripManagementID,
                City           = businessTripSchedule.City,
                ContactCompany = businessTripSchedule.ContactCompany,
                ContactPhone   = businessTripSchedule.ContactPhone,
                Country        = businessTripSchedule.Country,
                DepartDate     = businessTripSchedule.DepartDate.Value.ToString(StringConstant.DateFormatddMMyyyy2),
                DepartTime     = $"{businessTripSchedule.DepartDate.Value.Hour}:{businessTripSchedule.DepartDate.Value.Minute}",
                DepartHour     = businessTripSchedule.DepartDate.Value.Hour,
                DepartMinute   = businessTripSchedule.DepartDate.Value.Minute,
                FlightName     = businessTripSchedule.FlightName,
                OtherSchedule  = businessTripSchedule.OtherSchedule
            };

            return(businessTripScheduleModel);
        }
Example #3
0
        public MessageResult InsertBusinessTripManagement(BusinessTripManagementModel businessTripManagementModel)
        {
            MessageResult msgResult = new MessageResult();

            try
            {
                SPWeb spWeb = SPContext.Current.Web;

                if (businessTripManagementModel.Id > 0)
                {
                    Biz.Models.BusinessTripManagement businessTripObj = _businessTripManagementDAL.GetByID(businessTripManagementModel.Id);
                    if (businessTripObj.ModifiedBy.ID != businessTripObj.CreatedBy.ID && businessTripObj.ApprovalStatus.ToLower() != ApprovalStatus.Rejected.ToLower())
                    {
                        return(new MessageResult {
                            Code = (int)BusinessTripErrorCode.CannotUpdate, Message = MessageResultHelper.GetRequestStatusMessage(businessTripObj.ApprovalStatus), ObjectId = 0
                        });
                    }
                }

                Biz.Models.BusinessTripManagement businessTripManagement = businessTripManagementModel.ToEntity();
                if (businessTripManagementModel.Id <= 0)
                {
                    AdditionalEmployeePositionDAL _additionalEmployeePositionDAL = new AdditionalEmployeePositionDAL(SPContext.Current.Site.Url);
                    if (businessTripManagementModel.Driver == null || (businessTripManagementModel.Driver != null && businessTripManagementModel.Driver.LookupId == 0))
                    {
                        List <Biz.Models.AdditionalEmployeePosition> drivers = _additionalEmployeePositionDAL.GetEmployeesByLevel((int)StringConstant.AdditionalEmployeePosition.Driver, StepModuleList.BusinessTripManagement.ToString());
                        if (drivers != null && drivers.Count > 0)
                        {
                            businessTripManagement.Driver = new LookupItem()
                            {
                                LookupId = drivers[0].Employee.LookupId, LookupValue = drivers[0].Employee.LookupValue
                            };
                        }
                    }

                    if (businessTripManagement.Cashier == null || (businessTripManagement.Cashier != null && businessTripManagement.Cashier.LookupId == 0))
                    {
                        List <Biz.Models.AdditionalEmployeePosition> accountants = _additionalEmployeePositionDAL.GetEmployeesByLevel((int)StringConstant.AdditionalEmployeePosition.Accountant, StepModuleList.BusinessTripManagement.ToString());
                        if (accountants != null && accountants.Count > 0)
                        {
                            businessTripManagement.Cashier = new LookupItem()
                            {
                                LookupId = accountants[0].Employee.LookupId, LookupValue = accountants[0].Employee.LookupValue
                            };
                        }
                    }
                }

                DateTime startTripDate = DateTime.Now;
                List <BusinessTripSchedule> businessTripScheduleCollection = new List <BusinessTripSchedule>();
                if (businessTripManagementModel.ScheduleList != null && businessTripManagementModel.ScheduleList.Count > 0)
                {
                    foreach (BusinessTripScheduleModel businessTripScheduleModel in businessTripManagementModel.ScheduleList)
                    {
                        BusinessTripSchedule businessTripSchedule = businessTripScheduleModel.ToEntity();
                        businessTripScheduleCollection.Add(businessTripSchedule);
                    }
                    startTripDate = businessTripScheduleCollection.Select(e => e.DepartDate).Min().Value;
                }
                businessTripManagement = _businessTripManagementDAL.SetDueDate(businessTripManagement, startTripDate);

                int itemId = _businessTripManagementDAL.SaveOrUpdate(spWeb, businessTripManagement);
                if (itemId > 0)
                {
                    if (businessTripManagementModel.EmployeeList != null && businessTripManagementModel.EmployeeList.Count > 0)
                    {
                        // Edit -> DELETE all details -> Insert new items
                        if (businessTripManagementModel.Id > 0)
                        {
                            List <BusinessTripEmployeeDetail> businessTripEmployeeDetails = _businessTripEmployeeDetailDAL.GetItemsByParentId(businessTripManagementModel.Id);
                            _businessTripEmployeeDetailDAL.DeleteItems(businessTripEmployeeDetails.Select(x => x.ID).ToList());
                        }

                        List <BusinessTripEmployeeDetail> businessTripEmployeeDetailCollection = new List <BusinessTripEmployeeDetail>();
                        foreach (BusinessTripEmployeeModel employee in businessTripManagementModel.EmployeeList)
                        {
                            BusinessTripEmployeeDetail businessTripEmployeeDetail = new BusinessTripEmployeeDetail();
                            businessTripEmployeeDetail.BusinessTripManagementID = new LookupItem()
                            {
                                LookupId = itemId
                            };
                            businessTripEmployeeDetail.Employee = new LookupItem {
                                LookupId = employee.EmployeeId, LookupValue = employee.EmployeeCode
                            };
                            businessTripEmployeeDetailCollection.Add(businessTripEmployeeDetail);
                        }
                        _businessTripEmployeeDetailDAL.SaveOrUpdate(spWeb, businessTripEmployeeDetailCollection);
                    }

                    if (businessTripManagementModel.ScheduleList != null && businessTripManagementModel.ScheduleList.Count > 0)
                    {
                        // Edit -> DELETE all details -> Insert new items
                        if (businessTripManagementModel.Id > 0)
                        {
                            List <BusinessTripSchedule> businessTripSchedules = _businessTripScheduleDAL.GetItemsByParentId(businessTripManagementModel.Id);
                            _businessTripScheduleDAL.DeleteItems(businessTripSchedules.Select(x => x.ID).ToList());
                        }

                        foreach (BusinessTripSchedule businessTripSchedule in businessTripScheduleCollection)
                        {
                            businessTripSchedule.ID = 0;
                            businessTripSchedule.BusinessTripManagementID = new LookupItem()
                            {
                                LookupId = itemId
                            };
                        }
                        _businessTripScheduleDAL.SaveOrUpdate(spWeb, businessTripScheduleCollection);
                    }
                }

                businessTripManagement = _businessTripManagementDAL.GetByID(itemId);
                if ((businessTripManagementModel.Id <= 0 && itemId > 0))
                {
                    _businessTripManagementDAL.StartWorkFlow(businessTripManagement);
                }
            }
            catch (Exception ex)
            {
                msgResult.Code    = (int)BusinessTripErrorCode.Unexpected;
                msgResult.Message = ex.Message;
            }

            return(msgResult);
        }