/// <summary>
        /// Get query filter search descriptor.
        /// </summary>
        /// <param name="search">The search value.</param>
        /// <returns></returns>
        private Func <SearchDescriptor <VendorTransectionElasticSearchModel>, ISearchRequest> GetQueryFilter(VendorTransectionSearchViewModel search)
        {
            var startDate = UtilityService.ConvertToDateTime(search.StartDate, ConstantValue.DateTimeFormat);
            var endDate   = UtilityService.ConvertToDateTime(search.EndDate, ConstantValue.DateTimeFormat);

            ISearchRequest searchFunc(SearchDescriptor <VendorTransectionElasticSearchModel> s) => s
            .Index(ConstantValue.VendorTransactionIndex)
            //.From(0)
            //.Take(1000)
            .Query(q =>
                   //q.Bool(b =>
                   //    //b.Must(m =>
                   //    //    m.Match(mm =>
                   //    //        mm.Field(f => search.PurGroup.Contains(f.PurgropCode))
                   //    //          .Field(f => _token.PurchasingOrg.Contains(f.PurorgCode))
                   //    //    ))
                   //    //b.Filter(ff =>
                   //    //   // ff.DateRange(t => t.Field(f => f.ReceiptDate).GreaterThanOrEquals(startDate).LessThanOrEquals(endDate)) &&
                   //    //    ff.Term(t => t.Field(f => f.PurgropCode).Value(search.PurGroup))
                   //    //)
                   //  )
                   q.Match(m => m.Field(f => search.PurGroup.Contains(f.PurgropCode)))
                   )
            .Sort(m => m.Descending(f => f.Id));

            return(searchFunc);
        }
 /// <summary>
 /// Holiday logic edit item.
 /// </summary>
 /// <param name="year">The year target holiday calendar.</param>
 /// <param name="holidayList">The holiday list.</param>
 /// <param name="data">The master holiday target year list for edit.</param>
 /// <param name="updateHoliday">The holiday data update.</param>
 /// <param name="addHoliday">The new holiday.</param>
 private void InitialEditHolidayCalendar(string year,
                                         IEnumerable <HolidayCalendarDetail> holidayList,
                                         IEnumerable <HolidayCalendar> data,
                                         List <HolidayCalendar> updateHoliday,
                                         List <HolidayCalendar> addHoliday)
 {
     foreach (var item in holidayList)
     {
         item.HolidayDate = UtilityService.ConvertToDateTime(item.HolidayDateString, ConstantValue.DateTimeFormat);
         var holidayItem = data.FirstOrDefault(x => x.HolidayDate.Value.Date == item.HolidayDate.Date);
         if (holidayItem != null)
         {
             holidayItem.LastModifyBy   = _token.EmpNo;
             holidayItem.LastModifyDate = DateTime.Now;
             holidayItem.Description    = item.Description;
             updateHoliday.Add(holidayItem);
         }
         else
         {
             addHoliday.Add(new HolidayCalendar
             {
                 Year        = year,
                 HolidayDate = item.HolidayDate,
                 Description = item.Description,
                 CreateBy    = _token.EmpNo,
                 CreateDate  = DateTime.Now
             });
         }
     }
 }
        /// <summary>
        /// The Method insert employee information.
        /// </summary>
        /// <param name="formData">The employee data.</param>
        private void SaveEmployee(RegisterViewModel formData)
        {
            var data = _mapper.Map <RegisterViewModel, Employee>(formData);

            data.StartWorkingDay = UtilityService.ConvertToDateTime(formData.StartWorkingDayText, ConstantValue.DATE_TIME_FORMAT);
            _unitOfWork.GetRepository <Employee>().Add(data);
            _unitOfWork.Complete();
        }
Пример #4
0
 /// <summary>
 /// Initial evaluation string to datetime.
 /// </summary>
 /// <param name="periodItems">The period group items.</param>
 private IEnumerable <PeriodItemViewModel> InitialEvaluationDate(IEnumerable <PeriodItemViewModel> periodItems)
 {
     foreach (var item in periodItems)
     {
         item.StartEvaDate = UtilityService.ConvertToDateTime(item.StartEvaDateString, ConstantValue.DateTimeFormat);
         item.EndEvaDate   = UtilityService.ConvertToDateTime(item.EndEvaDateString, ConstantValue.DateTimeFormat);
     }
     return(periodItems);
 }
        /// <summary>
        /// Get Vendor transection.
        /// </summary>
        /// <param name="startDateString">The start transection date.</param>
        /// <param name="endDateString">The end transection date.</param>
        /// <param name="purGroup">The purGroup code.</param>
        /// <returns></returns>
        public IEnumerable <VendorTransaction> GetTransections(string startDateString, string endDateString, string[] purGroup)
        {
            var startDate = UtilityService.ConvertToDateTime(startDateString, ConstantValue.DateTimeFormat);
            var endDate   = UtilityService.ConvertToDateTime(endDateString, ConstantValue.DateTimeFormat);

            return(_unitOfWork.GetRepository <VendorTransaction>().Get(x => purGroup.Contains(x.PurgropCode) &&
                                                                       _token.PurchasingOrg.Contains(x.PurorgCode) &&
                                                                       x.ReceiptDate.Value.Date >= startDate.Date &&
                                                                       x.ReceiptDate.Value.Date <= endDate.Date));
        }
        /// <summary>
        /// Get Transection list by condition.
        /// </summary>
        /// <param name="startDateString">The start transection date.</param>
        /// <param name="endDateString">The end transection date.</param>
        /// <param name="purGroup">The purGroup code.</param>
        /// <param name="comCode">The company code.</param>
        /// <param name="purOrg">The purchase org.</param>
        /// <returns></returns>
        public IEnumerable <VendorTransaction> GetTransections(string startDateString, string endDateString, string[] purGroup, string comCode, string purOrg)
        {
            var startDate = UtilityService.ConvertToDateTime(startDateString, ConstantValue.DateTimeFormat);
            var endDate   = UtilityService.ConvertToDateTime(endDateString, ConstantValue.DateTimeFormat);

            return(_unitOfWork.GetRepository <VendorTransaction>().Get(x => purGroup.Contains(x.PurgropCode) &&
                                                                       x.CompanyCode == comCode &&
                                                                       x.PurorgCode == purOrg &&
                                                                       x.ReceiptDate.Value.Date >= startDate.Date &&
                                                                       x.ReceiptDate.Value.Date <= endDate.Date));
            //return _elasticSearch.SearchFilter(this.GetQueryFilter(startDate, endDate, purGroup, comCode, purOrg));
        }
        /// <summary>
        /// Insert new Plan item.
        /// </summary>
        /// <param name="model">The Plan information value.</param>
        /// <returns></returns>
        public ResultViewModel Save(PlanViewModel model)
        {
            var result = new ResultViewModel();

            using (TransactionScope scope = new TransactionScope())
            {
                var plan = _mapper.Map <PlanViewModel, Plan>(model);
                plan.CreateBy  = _token.EmpId;
                plan.StartDate = UtilityService.ConvertToDateTime(model.StartDate, ConstantValue.DateTimeFormat);
                plan.EndDate   = UtilityService.ConvertToDateTime(model.EndDate, ConstantValue.DateTimeFormat);
                _unitOfWork.GetRepository <Plan>().Add(plan);
                _unitOfWork.Complete(scope);
            }
            return(result);
        }
        /// <summary>
        /// Update Plan item.
        /// </summary>
        /// <param name="model">The Plan information value.</param>
        /// <returns></returns>
        public ResultViewModel Edit(PlanViewModel model)
        {
            var result = new ResultViewModel();

            using (TransactionScope scope = new TransactionScope())
            {
                var plan = _unitOfWork.GetRepository <Plan>().GetById(model.Id);
                plan.PlanName  = model.PlanName;
                plan.StartDate = UtilityService.ConvertToDateTime(model.StartDate, ConstantValue.DateTimeFormat);
                plan.EndDate   = UtilityService.ConvertToDateTime(model.EndDate, ConstantValue.DateTimeFormat);
                _unitOfWork.GetRepository <Plan>().Update(plan);
                _unitOfWork.Complete(scope);
            }
            return(result);
        }
        /// <summary>
        /// Update delegate task user.
        /// </summary>
        /// <param name="model">The information delegate task.</param>
        /// <returns></returns>
        public ResultViewModel UpdateDelegate(WorkflowDelegateViewModel model)
        {
            var result = new ResultViewModel();

            model.StartDate = UtilityService.ConvertToDateTime(model.StartDateString, ConstantValue.DateTimeFormat);
            model.EndDate   = UtilityService.ConvertToDateTime(model.EndDateString, ConstantValue.DateTimeFormat);
            using (TransactionScope scope = new TransactionScope())
            {
                var data = _mapper.Map <WorkflowDelegateViewModel, WorkflowDelegate>(model);
                _unitOfWork.GetRepository <WorkflowDelegate>().Update(data);
                _k2Service.SetOutofOffice(data.FromUser, data.ToUser, ConstantValue.K2SharingEdit, data.StartDate.Value, data.EndDate.Value);
                _unitOfWork.Complete(scope);
            }
            return(result);
        }
        /// <summary>
        /// Update TimeSheet to database.
        /// </summary>
        /// <param name="timeSheetList">The TimeSheet information.</param>
        /// <param name="email">The owner timesheet and tasklist.</param>
        private void UpdateTimeSheet(List <TimeSheetModel> timeSheetList, string email)
        {
            foreach (var item in timeSheetList)
            {
                var data = new TimeSheet.Data.Pocos.TimeSheet
                {
                    Id            = item.TimeSheetId,
                    Email         = email,
                    DateTimeStamp = UtilityService.ConvertToDateTime(item.DateTimeStamp, ConstantValue.DATE_TIME_FORMAT)
                };

                _unitOfWork.GetRepository <Data.Pocos.TimeSheet>().Update(data);
                _unitOfWork.Complete();

                item.TaskList = item.TaskList.Select(c => { c.TimeSheetId = data.Id; return(c); }).ToList();
                this.UpdateTaskList(item.TimeSheetId, item.TaskList);
            }
        }
        /// <summary>
        /// Save deletegate task fromuser touser.
        /// </summary>
        /// <param name="model">The information delegate task.</param>
        /// <returns></returns>
        public ResultViewModel SaveDelegateFromInbox(WorkflowDelegateRequestModel model)
        {
            var result = new ResultViewModel();

            using (TransactionScope scope = new TransactionScope())
            {
                var data = new WorkflowDelegate
                {
                    FromUser  = _token.AdUser,
                    ToUser    = model.ToUser,
                    StartDate = UtilityService.ConvertToDateTime(model.StartDate, ConstantValue.DateTimeFormat),
                    EndDate   = UtilityService.ConvertToDateTime(model.EndDate, ConstantValue.DateTimeFormat)
                };
                _unitOfWork.GetRepository <WorkflowDelegate>().Add(data);
                _k2Service.SetOutofOffice(data.FromUser, data.ToUser, ConstantValue.K2SharingCreate, data.StartDate.Value, data.EndDate.Value);
                _unitOfWork.Complete(scope);
            }
            return(result);
        }
        /// <summary>
        /// Insert new Contract item.
        /// </summary>
        /// <param name="model">The Contract information value.</param>
        /// <returns></returns>
        public ResultViewModel Save(ContractViewModel model, string status)
        {
            var result = new ResultViewModel();

            using (TransactionScope scope = new TransactionScope())
            {
                var contract = _mapper.Map <ContractViewModel, Data.Pocos.Contract>(model);
                contract.StartDate = UtilityService.ConvertToDateTime(model.StartDateString, ConstantValue.DateTimeFormat);
                contract.EndDate   = UtilityService.ConvertToDateTime(model.EndDateString, ConstantValue.DateTimeFormat);
                contract.Status    = status;
                _unitOfWork.GetRepository <Data.Pocos.Contract>().Add(contract);
                _unitOfWork.Complete();
                this.SaveItem(contract.Id, model.ContractItems);
                _unitOfWork.Complete(scope);
            }
            _activityTimeLine.Save(new ActivityTimeLineViewModel {
                AccountId = model.AccountId.Value, ActivityComment = ConstantValue.ActCreateContract
            });
            return(result);
        }
        /// <summary>
        /// Update Contract item.
        /// </summary>
        /// <param name="model">The ContractType information value.</param>
        /// <returns></returns>
        public ResultViewModel Edit(ContractViewModel model, string status)
        {
            var result = new ResultViewModel();

            using (TransactionScope scope = new TransactionScope())
            {
                var contract = _unitOfWork.GetRepository <Data.Pocos.Contract>().Get(x => x.Id == model.Id).FirstOrDefault();
                contract.Contract1    = model.Contract1;
                contract.MainContract = model.MainContract;
                contract.StartDate    = UtilityService.ConvertToDateTime(model.StartDateString, ConstantValue.DateTimeFormat);
                contract.EndDate      = UtilityService.ConvertToDateTime(model.EndDateString, ConstantValue.DateTimeFormat);
                contract.Status       = status;
                _unitOfWork.GetRepository <Data.Pocos.Contract>().Update(contract);
                this.EditItem(contract.Id, model.ContractItems);
                _unitOfWork.Complete(scope);
            }
            _activityTimeLine.Save(new ActivityTimeLineViewModel {
                AccountId = model.AccountId.Value, ActivityComment = ConstantValue.ActEditContract
            });
            return(result);
        }
        /// <summary>
        /// Get TimeSheet Stamp.
        /// </summary>
        /// <param name="email">The employee email.</param>
        /// <param name="date">The target month.</param>
        /// <returns></returns>
        private IEnumerable <TimeSheetModel> GetTimeSheet(string email, string date)
        {
            var result    = new List <TimeSheetModel>();
            var startDate = SetToFirstDay(UtilityService.ConvertToDateTime(date, ConstantValue.DATE_TIME_FORMAT));
            var endDate   = SetToLastDay(startDate);

            var dataList = _unitOfWork.GetRepository <TimeSheet.Data.Pocos.TimeSheet>().Get(x => x.Email == email &&
                                                                                            (x.DateTimeStamp.Value.Date >= startDate.Date &&
                                                                                             x.DateTimeStamp.Value.Date <= endDate.Date));

            foreach (var data in dataList)
            {
                result.Add(new TimeSheetModel
                {
                    TimeSheetId   = data.Id,
                    DateTimeStamp = data.DateTimeStamp.Value.ToString(ConstantValue.DATE_TIME_FORMAT),
                    TaskList      = this.GetTaskList(data.Id).ToList()
                });
            }

            return(result);
        }
        /// <summary>
        /// Insert TimeSheet to database.
        /// </summary>
        /// <param name="timeSheetList">The TimeSheet information.</param>
        /// <param name="email">The owner timesheet and tasklist.</param>
        private void SaveTimeSheet(List <TimeSheetModel> timeSheetList, string email, ref ResultViewModel result)
        {
            foreach (var item in timeSheetList)
            {
                var data = new TimeSheet.Data.Pocos.TimeSheet
                {
                    Email         = email,
                    DateTimeStamp = UtilityService.ConvertToDateTime(item.DateTimeStamp, ConstantValue.DATE_TIME_FORMAT)
                };

                if (!IsAlreadyDateTimeStamp(data.DateTimeStamp.Value))
                {
                    _unitOfWork.GetRepository <Data.Pocos.TimeSheet>().Add(data);
                    _unitOfWork.Complete();

                    item.TaskList = item.TaskList.Select(c => { c.TimeSheetId = data.Id; return(c); }).ToList();
                    SaveTaskList(item.TaskList);
                }
                else
                {
                    result = UtilityService.InitialResultError($"The {data.DateTimeStamp.Value.ToString("yyyy-MM-dd")} is already exits.");
                }
            }
        }
        /// <summary>
        /// Insert new holiday canlendar.
        /// </summary>
        /// <param name="model">The holiday calendar information value.</param>
        /// <returns></returns>
        public ResultViewModel Save(HolidayCalendarViewModel model)
        {
            var result = new ResultViewModel();

            using (TransactionScope scope = new TransactionScope())
            {
                var data = new List <HolidayCalendar>();
                foreach (var item in model.HolidayList)
                {
                    data.Add(new HolidayCalendar
                    {
                        Year        = model.Year,
                        HolidayDate = UtilityService.ConvertToDateTime(item.HolidayDateString, ConstantValue.DateTimeFormat),
                        Description = item.Description,
                        CreateBy    = _token.EmpNo,
                        CreateDate  = DateTime.Now
                    });
                }
                _unitOfWork.GetRepository <HolidayCalendar>().AddRange(data);
                _unitOfWork.Complete(scope);
            }
            this.ReloadCacheHolidayCalendar();
            return(result);
        }