public ActionResult GetDataListAjax([DataSourceRequest] DataSourceRequest request, int id = 0)
        {
            IEnumerable <Cats.Models.RegionalPSNPPlanDetail> filledData = new List <RegionalPSNPPlanDetail>();
            IEnumerable <PSNPPlanDetailView> allFDPData = new List <PSNPPlanDetailView>();
            RegionalPSNPPlan plan = _regionalPSNPPlanService.FindById(id);

            if (plan != null)
            {
                IEnumerable <AdminUnit> allWoredas = _adminUnitService.FindBy(m => m.AdminUnitTypeID == 4);
                filledData = plan.RegionalPSNPPlanDetails;
                allFDPData = from woreda in allWoredas
                             join plandetail in filledData on woreda.AdminUnitID equals plandetail.PlanedWoredaID

                             select new PSNPPlanDetailView
                {
                    //FDPID = fdp.FDPID,
                    //FDPName = fdp.Name,
                    WoredaID   = woreda.AdminUnitID,
                    WoredaName = woreda.Name,
                    ZoneID     = woreda.AdminUnit2.AdminUnitID,
                    ZoneName   = woreda.AdminUnit2.Name,
                    RegionName = woreda.AdminUnit2.AdminUnit2.Name,
                    RegionalPSNPPlanDetailID = plandetail.RegionalPSNPPlanDetailID,
                    BeneficiaryCount         = plandetail.BeneficiaryCount,
                    RegionalPSNPPlanID       = plan.RegionalPSNPPlanID,
                    FoodRatio         = plandetail.FoodRatio,
                    CashRatio         = plandetail.CashRatio,
                    StartingMonthName = RequestHelper.MonthName(plandetail.StartingMonth)
                };
            }
            return(Json(allFDPData.ToDataSourceResult(request), JsonRequestBehavior.AllowGet));
        }
        private IEnumerable <PSNPPlanDetailView> getDetailView(int id = 0)
        {
            IEnumerable <Cats.Models.RegionalPSNPPlanDetail> filledData = new List <RegionalPSNPPlanDetail>();
            IEnumerable <PSNPPlanDetailView> allFDPData = new List <PSNPPlanDetailView>();
            RegionalPSNPPlan plan = _regionalPSNPPlanService.FindById(id);

            if (plan != null)
            {
                ViewBag.PsnpPlan = plan;
                filledData       = plan.RegionalPSNPPlanDetails;
                IEnumerable <AdminUnit> allWoredas = _adminUnitService.FindBy(m => m.AdminUnitTypeID == 4);
                allFDPData = from woreda in allWoredas
                             join plandetail in filledData on woreda.AdminUnitID equals plandetail.PlanedWoredaID
                             into fdpBeneficiary
                             from fdb in fdpBeneficiary.DefaultIfEmpty(new RegionalPSNPPlanDetail {
                    RegionalPSNPPlanID = plan.RegionalPSNPPlanID
                })
                             select new PSNPPlanDetailView
                {
                    //FDPID = fdp.FDPID,
                    //FDPName = fdp.Name,
                    WoredaID   = woreda.AdminUnitID,
                    WoredaName = woreda.Name,
                    ZoneID     = woreda.AdminUnit2.AdminUnitID,
                    ZoneName   = woreda.AdminUnit2.Name,
                    RegionalPSNPPlanDetailID = fdb.RegionalPSNPPlanDetailID,
                    BeneficiaryCount         = fdb.BeneficiaryCount,
                    RegionalPSNPPlanID       = fdb.RegionalPSNPPlanID,
                    FoodRatio = fdb.FoodRatio,
                    CashRatio = fdb.CashRatio
                };
            }

            return(allFDPData);
        }
 public ActionResult Edit(RegionalPSNPPlan regionalpsnpplan)
 {
     if (ModelState.IsValid)
     {
         _regionalPSNPPlanService.UpdateRegionalPSNPPlan(regionalpsnpplan);
         return(RedirectToAction("Index"));
     }
     LoadLookups();
     return(View(regionalpsnpplan));
 }
        //
        // GET: /PSNP/RegionalPSNPPlan/Delete/5

        public ActionResult Delete(int id = 0)
        {
            RegionalPSNPPlan regionalpsnpplan = _regionalPSNPPlanService.FindById(id);

            if (regionalpsnpplan == null)
            {
                return(HttpNotFound());
            }
            return(View(regionalpsnpplan));
        }
示例#5
0
 public bool DeleteRegionalPSNPPlan(RegionalPSNPPlan item)
 {
     if (item == null)
     {
         return(false);
     }
     _unitOfWork.RegionalPSNPPlanRepository.Delete(item);
     _unitOfWork.Save();
     return(true);
 }
        //
        // GET: /PSNP/RegionalPSNPPlan/Edit/5

        public ActionResult Edit(int id = 0)
        {
            LoadLookups();
            RegionalPSNPPlan regionalpsnpplan = _regionalPSNPPlanService.FindById(id);

            if (regionalpsnpplan == null)
            {
                return(HttpNotFound());
            }
            return(View(regionalpsnpplan));
        }
 public void PostPSNP(RegionalPSNPPlan plan)
 {
     try
     {
         var ration = _rationService.FindBy(r => r.RationID == plan.RationID).FirstOrDefault();
         _transactionService.PostPSNPPlan(plan, ration);
     }
     catch (Exception ex)
     {
         _log.Error("Error in posting psnp:", new Exception(ex.Message));
     }
 }
        public ActionResult promotWorkflow(int id, int nextState)
        {
            RegionalPSNPPlan item = _regionalPSNPPlanService.FindById(id);

            item.StatusID = nextState;
            _regionalPSNPPlanService.UpdateRegionalPSNPPlan(item);

            if (item.StatusID == (int)Cats.Models.Constant.PSNPWorkFlow.Completed)
            {
                PostPSNP(item);
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult Create(RegionalPSNPPlan regionalpsnpplan)
        {
            var         planName           = regionalpsnpplan.Plan.PlanName;
            var         startDate          = regionalpsnpplan.Plan.StartDate;
            var         firstDayOfTheMonth = startDate.AddDays(1 - startDate.Day);
            var         endDate            = firstDayOfTheMonth.AddMonths(regionalpsnpplan.Duration).AddDays(-1);
            UserProfile user = _userProfileService.GetUser(User.Identity.Name);

            if (ModelState.IsValid)
            {
                _regionalPSNPPlanService.AddPsnpPlan(planName, firstDayOfTheMonth, endDate);
                var plan = _planService.Get(m => m.PlanName == planName, null, "Program").FirstOrDefault();
                regionalpsnpplan.Plan = plan;

                //check if this psnp plan exitsts for this year and Plan
                var exists = plan != null && _regionalPSNPPlanService.DoesPsnpPlanExistForThisRegion(plan.PlanID, regionalpsnpplan.Year);

                if (!exists)
                {
                    int BP_PSNP = _ApplicationSettingService.getPSNPWorkflow();
                    if (BP_PSNP != 0)
                    {
                        BusinessProcessState createdstate = new BusinessProcessState
                        {
                            DatePerformed = DateTime.Now,
                            PerformedBy   = "System",
                            Comment       = "Created workflow for PSNP Plan"
                        };

                        var psnpPlan = _regionalPSNPPlanService.CreatePsnpPlan(regionalpsnpplan.Year, regionalpsnpplan.Duration, regionalpsnpplan.RationID, regionalpsnpplan.StatusID, plan.PlanID, user.UserProfileID);
                        //_planService.ChangePlanStatus(regionalpsnpplan.PlanId);
                        BusinessProcess bp = _BusinessProcessService.CreateBusinessProcess(BP_PSNP,
                                                                                           regionalpsnpplan.
                                                                                           RegionalPSNPPlanID,
                                                                                           "PSNP", createdstate);
                        psnpPlan.StatusID = bp.BusinessProcessID;
                        _regionalPSNPPlanService.UpdateRegionalPSNPPlan(psnpPlan);
                        return(RedirectToAction("Index"));
                    }
                    ViewBag.ErrorMessage1 = "The workflow assosiated with PSNP planning doesnot exist.";
                    ViewBag.ErrorMessage2 = "Please make sure the workflow is created and configured.";
                }
                LoadLookups();
                ModelState.AddModelError("Errors", @"PSNP plan already made for this period and plan Name.");
                return(View(regionalpsnpplan));
            }
            LoadLookups();

            return(View(regionalpsnpplan));
        }
示例#10
0
        public RegionalPSNPPlan CreatePsnpPlan(int year, int duration, int ration, int statusID, int planID, int userId)
        {
            var psnp = new RegionalPSNPPlan()
            {
                PlanId   = planID,
                Year     = year,
                Duration = duration,
                RationID = ration,
                StatusID = statusID,
                User     = userId
            };

            _unitOfWork.RegionalPSNPPlanRepository.Add(psnp);
            _unitOfWork.Save();
            return(psnp);
        }
示例#11
0
        public ActionResult PostHRD(int RegionalPSNPPlanID, int RationID)
        {
            // IEnumerable<Cats.Models.Transaction> list = (IEnumerable<Cats.Models.Transaction>)_accountTransactionService.GetAllTransaction();
            loadLookups();


            RegionalPSNPPlan plan   = _regionalPSNPPlanService.FindById(RegionalPSNPPlanID);
            Ration           ration = _rationService.FindById(RationID);

            List <Cats.Models.Transaction> list = _accountTransactionService.PostPSNPPlan(plan, ration);

            ViewBag.SelectedPSNPPlan = plan;
            ViewBag.SelectedRation   = ration;
            // IEnumerable<RationDetail> rationdetails = ration.RationDetails;
            return(View(list));
        }
示例#12
0
        public bool UpdatePsnpPlan(int year, int duration, int ration, int statusID, int planID)

        {
            var psnp = new RegionalPSNPPlan()
            {
                PlanId   = planID,
                Year     = year,
                Duration = duration,
                RationID = ration,
                StatusID = statusID
            };

            _unitOfWork.RegionalPSNPPlanRepository.Edit(psnp);
            _unitOfWork.Save();
            return(true);
        }
        public ActionResult Index(int id = 0)
        {
            RegionalPSNPPlan plan = _regionalPSNPPlanService.FindById(id);

            if (plan == null)
            {
                return(RedirectToAction("Index", "RegionalPSNPPlan"));
            }

            // IEnumerable<PSNPPlanDetailView> allFDPData = new List<PSNPPlanDetailView>();
            var preferedweight = _userAccountService.GetUserInfo(HttpContext.User.Identity.Name).PreferedWeightMeasurment;
            var dt             = GetTransposedPSNPPlan(id, preferedweight);

            ViewBag.PsnpPlan = plan;
            UserProfile user = _userProfileService.GetUser(User.Identity.Name);

            ViewBag.plan_user    = plan.User;
            ViewBag.current_user = user.UserProfileID;
            return(View(dt));
        }
示例#14
0
        private List <BeneficiaryInfo> PSNPToRequest(RegionalPSNPPlan plan, int regionID, int month)
        {
            List <BeneficiaryInfo> benficiaries = new List <BeneficiaryInfo>();

            foreach (var psnpPlan in plan.RegionalPSNPPlanDetails.Where(m => m.StartingMonth <= month))
            {
                List <FDP> WoredaFDPs = _unitOfWork.FDPRepository.FindBy(w => w.AdminUnitID == psnpPlan.PlanedWoredaID &&
                                                                         w.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID == regionID);
                ICollection <BeneficiaryInfo> woredaBeneficiaries =
                    (from FDP fdp in WoredaFDPs
                     select
                     new BeneficiaryInfo {
                    FDPID = fdp.FDPID, FDPName = fdp.Name, Beneficiaries = 0
                })
                    .ToList();
                benficiaries.AddRange(woredaBeneficiaries);
            }

            return(benficiaries);
        }
示例#15
0
        public ActionResult GetListAjax([DataSourceRequest] DataSourceRequest request, int id = 0)
        {
            IEnumerable <Cats.Models.RegionalPSNPPlanDetail> filledData = new List <RegionalPSNPPlanDetail>();
            IEnumerable <PSNPPlanDetailView> allFDPData = new List <PSNPPlanDetailView>();
            RegionalPSNPPlan plan = _regionalPSNPPlanService.FindById(id);

            if (plan != null)
            {
                ViewBag.PsnpPlan = plan;
                filledData       = plan.RegionalPSNPPlanDetails;
                var woredas = _adminUnitService.FindBy(m => m.AdminUnitTypeID == 4);
                //IEnumerable<FDP> allFDPs = _FDPService.GetAllFDP();
                allFDPData = from woreda in woredas
                             join plandetail in filledData on woreda.AdminUnitID equals plandetail.PlanedWoredaID
                             into fdpBeneficiary
                             from fdb in fdpBeneficiary.DefaultIfEmpty(new RegionalPSNPPlanDetail {
                    RegionalPSNPPlanID = plan.RegionalPSNPPlanID
                })
                             select new PSNPPlanDetailView
                {
                    //FDPID = fdp.FDPID,
                    //FDPName = fdp.Name,
                    WoredaID   = woreda.AdminUnitID,
                    WoredaName = woreda.Name,
                    ZoneID     = woreda.AdminUnit2.AdminUnitID,
                    ZoneName   = woreda.AdminUnit2.Name,
                    RegionalPSNPPlanDetailID = fdb.RegionalPSNPPlanDetailID,
                    BeneficiaryCount         = fdb.BeneficiaryCount,
                    RegionalPSNPPlanID       = fdb.RegionalPSNPPlanID,
                    FoodRatio    = fdb.FoodRatio,
                    CashRatio    = fdb.CashRatio,
                    RegionName   = woreda.AdminUnit2.AdminUnit2.Name,
                    SartingMonth = fdb.StartingMonth,
                    Contingency  = fdb.Contingency
                };
            }
            return(Json(allFDPData.ToDataSourceResult(request), JsonRequestBehavior.AllowGet));
        }
        public ActionResult Edit(int id = 0)
        {
            if (id == 0)
            {
                return(RedirectToAction("Index", "RegionalPSNPPlan"));
            }
            IEnumerable <Cats.Models.RegionalPSNPPlanDetail> filledData = new List <RegionalPSNPPlanDetail>();
            IEnumerable <PSNPPlanDetailView> allFDPData = new List <PSNPPlanDetailView>();
            RegionalPSNPPlan plan = _regionalPSNPPlanService.FindById(id);

            ViewData["Month"] = RequestHelper.GetMonthList();
            UserProfile user = _userProfileService.GetUser(User.Identity.Name);

            if (plan != null)
            {
                ViewBag.PsnpPlan = plan;
                filledData       = plan.RegionalPSNPPlanDetails;
                IEnumerable <PSNPPlanDetailView> allFDPs = getRegionFDPs(id);
                allFDPData           = toViewModel(filledData, allFDPs);
                ViewBag.plan_user    = plan.User;
                ViewBag.current_user = user.UserProfileID;
            }
            return(View(allFDPData));
        }
示例#17
0
        public HRDPSNPPlanInfo PlanToRequest(HRDPSNPPlan plan)
        {
            //if (CheckDurationOfAssisstance(plan))
            //{
            HRDPSNPPlanInfo        result           = new HRDPSNPPlanInfo();
            List <BeneficiaryInfo> beneficiaryInfos = new List <BeneficiaryInfo>();

            result.HRDPSNPPlan = plan;
            if (plan.ProgramID == (int)Programs.PSNP)
            {
                RegionalPSNPPlan psnpplan =
                    _unitOfWork.RegionalPSNPPlanRepository.FindBy(r => r.PlanId == plan.PSNPPlanID).FirstOrDefault();

                if (psnpplan != null)
                {
                    //TODO:Uncomment this (if PSNP case team Users change their mind and want to get previous request information instead of planned information)

                    var lastPsnpRequest = _unitOfWork.RegionalRequestRepository.FindBy(r => r.RegionID == plan.RegionID && r.ProgramId == (int)Programs.PSNP && r.PlanID == plan.PSNPPlanID).LastOrDefault();
                    if (lastPsnpRequest != null)
                    {
                        result.HRDPSNPPlan.RationID    = psnpplan.RationID;
                        result.HRDPSNPPlan.Contingency = lastPsnpRequest.Contingency;
                        var noOfPsnprequests       = _unitOfWork.RegionalRequestRepository.FindBy(r => r.RegionID == plan.RegionID && r.ProgramId == (int)Programs.PSNP && r.PlanID == plan.PSNPPlanID).Count;
                        var psnpApplicationWoredas = (from psnpDetail in psnpplan.RegionalPSNPPlanDetails
                                                      where
                                                      psnpDetail.PlanedWoreda.AdminUnit2.AdminUnit2.AdminUnitID ==
                                                      plan.RegionID &&
                                                      psnpDetail.FoodRatio > noOfPsnprequests
                                                      select psnpDetail.PlanedWoredaID).ToList();
                        beneficiaryInfos = LastReliefRequest(lastPsnpRequest, psnpApplicationWoredas);
                    }
                    else
                    {
                        result.HRDPSNPPlan.RationID    = psnpplan.RationID;
                        result.HRDPSNPPlan.Contingency =
                            psnpplan.RegionalPSNPPlanDetails.Any(
                                t => t.StartingMonth == result.HRDPSNPPlan.Month && t.Contingency);
                        beneficiaryInfos = PSNPToRequest(psnpplan, plan.RegionID, plan.Month);
                    }
                }
            }
            else if (plan.ProgramID == (int)Programs.Releif)
            {
                HRD hrd = _unitOfWork.HRDRepository.FindBy(r => r.PlanID == plan.PlanID).LastOrDefault();

                if (hrd != null)
                {
                    var lastRequest =
                        _unitOfWork.RegionalRequestRepository.FindBy(
                            r => r.RegionID == plan.RegionID && r.ProgramId == (int)Programs.Releif && r.PlanID == plan.PlanID).
                        LastOrDefault();
                    if (lastRequest != null)
                    {
                        result.HRDPSNPPlan.RationID = hrd.RationID;
                        var requests =
                            _unitOfWork.RegionalRequestRepository.FindBy(
                                r => r.RegionID == plan.RegionID && r.ProgramId == 1 && r.PlanID == plan.PlanID);
                        var numberOfRequestsPerRegion = requests.Count;
                        var applicableWoredas         = (from detail in hrd.HRDDetails
                                                         where detail.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID == plan.RegionID //&& detail.DurationOfAssistance > numberOfRequestsPerRegion
                                                         select detail.WoredaID).ToList();
                        beneficiaryInfos = LastReliefRequest(lastRequest, applicableWoredas);
                        // var lastRequestDetail = LastReliefRequest(lastRequest);
                    }
                    else
                    {
                        result.HRDPSNPPlan.RationID = hrd.RationID;
                        List <HRDDetail> hrddetail =
                            (from woreda in hrd.HRDDetails
                             where
                             woreda.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID == plan.RegionID &&
                             woreda.DurationOfAssistance > 0
                             select woreda).ToList();
                        beneficiaryInfos = HRDToRequest(hrddetail);
                    }
                }
            }
            else
            {
                //if program is IDPS
                List <BeneficiaryInfo> benficiaries = new List <BeneficiaryInfo>();
                List <AdminUnit>       woredas      = new List <AdminUnit>();
                var zones =
                    _unitOfWork.AdminUnitRepository.FindBy(
                        w => w.AdminUnitTypeID == 3 && w.ParentID == plan.RegionID);
                foreach (var zone in zones)
                {
                    AdminUnit zone1 = zone;
                    woredas.AddRange(_unitOfWork.AdminUnitRepository.FindBy(w => w.ParentID == zone1.AdminUnitID));
                }
                //var
                foreach (var woreda in woredas)
                {
                    AdminUnit  woreda1    = woreda;
                    List <FDP> WoredaFDPs =
                        _unitOfWork.FDPRepository.FindBy(w => w.AdminUnitID == woreda1.AdminUnitID);
                    ICollection <BeneficiaryInfo> woredabeneficiaries =
                        (from FDP fdp in WoredaFDPs
                         select new BeneficiaryInfo {
                        FDPID = fdp.FDPID, FDPName = fdp.Name, Beneficiaries = 0
                    }).
                        ToList();
                    benficiaries.AddRange(woredabeneficiaries);
                }

                //beneficiaryInfos = benficiaries;
                //beneficiaryInfos = null;
            }
            result.BeneficiaryInfos = beneficiaryInfos;
            return(result);
            //}
            //return null;
        }
示例#18
0
 public bool AddRegionalPSNPPlan(RegionalPSNPPlan item)
 {
     _unitOfWork.RegionalPSNPPlanRepository.Add(item);
     _unitOfWork.Save();
     return(true);
 }