Example #1
0
        /// <summary>
        /// Initial mapping entity model to view model.
        /// </summary>
        /// <param name="vendorFilter">The vendor filter entity model data.</param>
        /// <returns></returns>
        private VendorFilterViewModel InitialVendorFilterViewModel(VendorFilter vendorFilter)
        {
            var result           = new VendorFilterViewModel();
            var emp              = _unitOfWork.GetRepository <Hremployee>().GetCache(x => x.Aduser == vendorFilter.AssignTo).FirstOrDefault();
            var company          = _unitOfWork.GetRepository <Hrcompany>().GetCache(x => x.SapcomCode == vendorFilter.CompanyCode).FirstOrDefault();
            var period           = _unitOfWork.GetRepository <PeriodItem>().GetCache(x => x.Id == vendorFilter.PeriodItemId).FirstOrDefault();
            var purOrg           = _unitOfWork.GetRepository <PurchaseOrg>().GetCache(x => x.PurchaseOrg1 == vendorFilter.PurchasingOrg).FirstOrDefault();
            var vendor           = _unitOfWork.GetRepository <Data.Pocos.Vendor>().GetCache(x => x.VendorNo == vendorFilter.VendorNo).FirstOrDefault();
            var valueHelpList    = _unitOfWork.GetRepository <ValueHelp>().GetCache(x => x.ValueType == ConstantValue.ValueTypeVendorSendingStatus);
            var weightingKeyList = _unitOfWork.GetRepository <ValueHelp>().GetCache(x => x.ValueType == ConstantValue.ValueTypeWeightingKey);

            return(new VendorFilterViewModel
            {
                Id = vendorFilter.Id,
                AssignTo = vendorFilter.AssignTo,
                AssignToName = string.Format(ConstantValue.EmpTemplate, emp?.FirstnameTh, emp?.LastnameTh),
                CompanyCode = vendorFilter.CompanyCode,
                CompanyName = company?.LongText,
                IsSending = vendorFilter.IsSending ?? false,
                SendingStatus = vendorFilter.IsSending.HasValue && vendorFilter.IsSending.Value ? valueHelpList.FirstOrDefault(x => x.ValueKey == ConstantValue.VendorSending)?.ValueText :
                                valueHelpList.FirstOrDefault(x => x.ValueKey == ConstantValue.VendorWaiting)?.ValueText,
                PeriodItemId = vendorFilter.PeriodItemId,
                PeriodItemName = period?.PeriodName,
                PurchasingOrg = vendorFilter.PurchasingOrg,
                PurchasingName = purOrg?.PurchaseName,
                SendEvaluationDate = vendorFilter.SendingEvaDate,
                VendorNo = vendorFilter.VendorNo,
                VendorName = vendor?.VendorName,
                WeightingKey = vendorFilter.WeightingKey,
                WeightingKeyName = weightingKeyList.FirstOrDefault(x => x.ValueKey == vendorFilter.WeightingKey)?.ValueText
            });
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public GenericCollectionViewModel <ListVendorsLightViewModel> GetByFilter(VendorFilterViewModel model)
        {
            var lang = this._languageService.CurrentLanguage;
            ConditionFilter <Vendor, long> condition = new ConditionFilter <Vendor, long>()
            {
                Order = Order.Descending
            };

            if (model.Sort?.Count > 0)
            {
                if (model.Sort[0].Dir != "desc")
                {
                    condition.Order = Order.Ascending;
                }
            }

            //if (model.DateFrom.HasValue) model.DateFrom = model.DateFrom.SetTimeToNow();
            if (model.DateTo.HasValue)
            {
                model.DateTo = model.DateTo.SetTimeToMax();
            }

            // The IQueryable data to query.
            IQueryable <Vendor> queryableData = this._VendorsRepository.Get(condition);

            queryableData = queryableData.Where(x => x.Language == lang && x.ParentKeyVendor != null);

            if (string.IsNullOrEmpty(model.Code) == false)
            {
                queryableData = queryableData.Where(x => x.ParentKeyVendor.Code.Contains(model.Code));
            }

            if (string.IsNullOrEmpty(model.Name) == false)
            {
                queryableData = queryableData.Where(x => x.Name.Contains(model.Name));
            }

            if (model.OpeningCreditFrom.HasValue)
            {
                queryableData = queryableData.Where(x => x.ParentKeyVendor.OpeningCredit >= model.OpeningCreditFrom);
            }

            if (model.OpeningCreditTo.HasValue)
            {
                queryableData = queryableData.Where(x => x.ParentKeyVendor.OpeningCredit <= model.OpeningCreditTo);
            }

            if (model.DateFrom.HasValue)
            {
                queryableData = queryableData.Where(x => x.ParentKeyVendor.Date >= model.DateFrom);
            }

            if (model.DateTo.HasValue)
            {
                queryableData = queryableData.Where(x => x.ParentKeyVendor.Date <= model.DateTo);
            }

            var entityCollection = queryableData.ToList();
            var dtoCollection    = entityCollection.Select(entity => entity.ToListModel()).ToList();

            //foreach (var item in entityCollection)
            //{
            //	var ViewModel = dtoCollection.Find(x => x.Id == item.ParentKeyVendorId);
            //	//ViewModel.Amount = item.Amount.ToString() + " " + item.Currency.ChildTranslatedCurrencys.FirstOrDefault(z => z.Language == lang).Name;
            //	//if (item.ParentKeyBankMovement.Bank != null)
            //	//{
            //	//	ViewModel.BankName = item.ParentKeyBankMovement.Bank.ChildTranslatedBanks.First(x => x.Language == lang).Name;
            //	//}
            //	//if (item.ParentKeyBankMovement.JournalType != null)
            //	//{
            //	//	ViewModel.JournalTypeName = item.ParentKeyBankMovement.JournalType.ChildTranslatedJournalTypes.First(x => x.Language == lang).Name; ;
            //	//}
            //}

            var total = dtoCollection.Count();

            dtoCollection = dtoCollection.Skip(model.PageIndex * model.PageSize).Take(model.PageSize).ToList();
            var result = new GenericCollectionViewModel <ListVendorsLightViewModel>
            {
                Collection = dtoCollection,
                TotalCount = total,
                PageIndex  = model.PageIndex,
                PageSize   = model.PageSize
            };

            return(result);
        }