Ejemplo n.º 1
0
        public async Task <QueryResult <BasicTenderModel> > FindSuppliersPurshaseReport(TenderSearchCriteriaModel criteria)
        {
            bool statusFlag = true;

            if (User.IsInRole(RoleNames.DataEntry) || User.IsInRole(RoleNames.Auditer))
            {
                statusFlag = false;
            }
            var tenderSearchCriteria = _mapper.Map <TenderSearchCriteria>(criteria);
            var tenders = await _reportsService.FindSuppliersPurshaseReport(tenderSearchCriteria);

            QueryResult <BasicTenderModel> model = _mapper.Map <QueryResult <BasicTenderModel> >(tenders, opt => opt.Items["statusFlag"] = statusFlag);

            foreach (var item in model.Items)
            {
                var conditionBook = item.ConditionsBooklets.FirstOrDefault();
                var invitation    = item.Invitations.FirstOrDefault();

                if (conditionBook != null)
                {
                    if (conditionBook.ConfirmPurchase)
                    {
                        item.InvitationStatus += Resources.TenderResources.DisplayInputs.Paid;
                    }
                    else
                    {
                        item.InvitationStatus += Resources.TenderResources.DisplayInputs.NotPaid;
                    }
                }

                if (invitation != null)
                {
                    item.InvitationStatus += invitation.InvitationStatus.NameAr;
                }

                if (string.IsNullOrEmpty(item.InvitationStatus))
                {
                    item.InvitationStatus = "-";
                }
            }

            return(model);
        }