public BusinessTripEmployeeDetail ToEntity()
        {
            BusinessTripEmployeeDetail businessTripEmployeeDetail = new BusinessTripEmployeeDetail();

            businessTripEmployeeDetail.ID       = Id;
            businessTripEmployeeDetail.Employee = new LookupItem()
            {
                LookupId = EmployeeId, LookupValue = ""
            };
            businessTripEmployeeDetail.BusinessTripManagementID = BusinessTripManagementID;

            return(businessTripEmployeeDetail);
        }
Пример #2
0
        private BusinessTripEmployeeModel ConvertToModel(BusinessTripEmployeeDetail businessTripEmployeeDetail, string departmentName = "")
        {
            BusinessTripEmployeeModel businessTripEmployeeModel = new BusinessTripEmployeeModel()
            {
                Id = businessTripEmployeeDetail.ID,
                BusinessTripManagementID = businessTripEmployeeDetail.BusinessTripManagementID,
                EmployeeId     = businessTripEmployeeDetail.Employee.LookupId,
                EmployeeCode   = businessTripEmployeeDetail.EmployeeID.LookupValue,
                DepartmentName = departmentName,
                FullName       = businessTripEmployeeDetail.Employee.LookupValue
            };

            return(businessTripEmployeeModel);
        }
        public BusinessTripEmployeeDetail ToEntity()
        {
            BusinessTripEmployeeDetail businessTripEmployeeDetail = new BusinessTripEmployeeDetail();

            businessTripEmployeeDetail.ID       = Id;
            businessTripEmployeeDetail.Employee = new LookupItem()
            {
                LookupId = EmployeeId, LookupValue = ""
            };
            businessTripEmployeeDetail.BusinessTripManagementID = new LookupItem()
            {
                LookupId    = (BusinessTripManagementID != null ? BusinessTripManagementID.LookupId : 0),
                LookupValue = (BusinessTripManagementID != null ? BusinessTripManagementID.LookupValue : string.Empty)
            };

            return(businessTripEmployeeDetail);
        }
Пример #4
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);
        }