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); }
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); }
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); }