コード例 #1
0
        public static List<RequisitionViewModel> ReturnRequisitionGroupByReuisitionNo(List<ReliefRequisition> requisition )
        {
            if (requisition==null)
                return  new List<RequisitionViewModel>();

             var result = (from req in requisition
                         select new RequisitionViewModel()
                                     {
                                        RequisitionNo =req.RequisitionNo,
                                        RequisitionId = req.RequisitionID,
                                        RequisitionDate = DateTime.Parse(req.RequestedDate.ToString()),
                                        Commodity = req.Commodity.Name,
                                        BenficiaryNo = req.ReliefRequisitionDetails.Sum(a=>a.BenficiaryNo),
                                        Amount = req.ReliefRequisitionDetails.Sum(a => a.Amount).ToPreferedWeightUnit(),
                                        Status = int.Parse( req.Status.ToString()),
                                        Region = req.AdminUnit.Name,
                                        RegionId = (int) req.RegionID,
                                        Zone = req.AdminUnit1.Name,
                                        Program  = req.Program.Name,
                                        ProgramId = req.ProgramID,
                                        Round = req.Round,
                                        Month = req.Month,
                                        MonthName = RequestHelper.GetMonthList().Find(t => t.Id == req.Month).Name,
                                        AmountAllocated = req.ReliefRequisitionDetails.Sum(a=>a.Amount),
                                        StrRequisitionDate = req.RequestedDate.Value.ToCTSPreferedDateFormat(UserAccountHelper.UserCalendarPreference())
                                      });

             var r = new List<RequisitionViewModel>();

             foreach (var req in requisition)
             {

                 var n = new RequisitionViewModel();
                 n.RequisitionNo = req.RequisitionNo;
                 n.RequisitionId = req.RequisitionID;
                 n.RequisitionDate = DateTime.Parse(req.RequestedDate.ToString());
                 n.Commodity = req.Commodity.Name;
                 n.BenficiaryNo = req.ReliefRequisitionDetails.Sum(a => a.BenficiaryNo);
                 var m = req.ReliefRequisitionDetails.Sum(a => a.Amount);
                 n.Amount = m.ToPreferedWeightUnit();
                 n.Status = int.Parse(req.Status.ToString());
                 n.Region = req.AdminUnit.Name;
                 n.RegionId = (int)req.RegionID;
                 n.Zone = req.AdminUnit1.Name;
                 n.Program = req.Program.Name;
                 n.Round = req.Round;
                 n.Month = req.Month;
                 n.MonthName = RequestHelper.GetMonthList().Find(t => t.Id == req.Month).Name;
                 n.AmountAllocated = req.ReliefRequisitionDetails.Sum(a => a.Amount);
                 n.StrRequisitionDate = req.RequestedDate.Value.ToCTSPreferedDateFormat(UserAccountHelper.UserCalendarPreference());

                 r.Add(n);
             }

            return r.ToList();
        }
コード例 #2
0
        public ActionResult SaveProjectAllocation(RequisitionViewModel requisitionViewModel, 
                                                    FormCollection form, 
                                                    string hub, 
                                                    string datepicker,
                                                    int RequisitionId,
                                                    int Remaining=0, 
                                                    int PCodeqty=0, 
                                                    int SICodeqty=0)
        {
            DateTime date;
            bool isProjectCodeSelected = false;
            bool isSICodeSelected = false;

            try
            {
                date = DateTime.Parse(datepicker);
                //checkes if date is ethiopian date. if it is then it will enter to the catch and convert to gragorian for  persistance.
            }
            catch (Exception)
            {

                var strEth = new getGregorianDate();
                date = strEth.ReturnGregorianDate(datepicker);
            }

            bool isLastAssignment = false;
            int? pCode =null;
            int? siCode=null;

            if (Remaining < PCodeqty + SICodeqty)
            {
                ModelState.AddModelError("Errors",@"Amount entered is greater than the remaining quantity ");
                TempData["ModelState"] = ModelState;
                return RedirectToAction("Assign", "ProjectAllocation", new { ReqId= RequisitionId, Remaining = Remaining});

            }

            var requisitionId = requisitionViewModel.RequisitionId;

            try
            {
                pCode = int.Parse(form["PCCode"].ToString(CultureInfo.InvariantCulture));
                isProjectCodeSelected = true;
            }
            catch
            {
                pCode = null;
            }

            try
            {
                siCode = int.Parse(form["SICode"].ToString(CultureInfo.InvariantCulture));
                isSICodeSelected = true;
            }
            catch(Exception ex)
            {
                 siCode = null;
                var log = new Logger();
                log.LogAllErrorsMesseges(ex,_log);

            }

            if (isProjectCodeSelected == false && isSICodeSelected == false)
            {
                ModelState.AddModelError("Errors", @"SI code or Project Code is not selected.");
                TempData["ModelState"] = ModelState;
                return RedirectToAction("Assign", "ProjectAllocation", new { ReqId = RequisitionId, Remaining = Remaining });
            }

            if ((isProjectCodeSelected && PCodeqty == 0) || (isSICodeSelected && SICodeqty == 0))
            {
                ModelState.AddModelError("Errors", @"Value entered for Projecte Code/SI Code is zero or Invalid. ");
                TempData["ModelState"] = ModelState;
                return RedirectToAction("Assign", "ProjectAllocation", new { ReqId = RequisitionId, Remaining = Remaining });
            }

            var hubAllocation = _hubAllocationService.GetAllocatedHubByRequisitionNo(requisitionId);
            var newProjectAllocation = new ProjectCodeAllocation
                                           {

                                               AllocatedBy = 1,
                                               AlloccationDate = date,
                                               Amount_FromProject = PCodeqty,
                                               ProjectCodeID = pCode,
                                               Amount_FromSI = SICodeqty,
                                               SINumberID = siCode,
                                               HubAllocationID = hubAllocation.HubAllocationID
                                           };

            if (Remaining == PCodeqty + SICodeqty)
                isLastAssignment = true;
            try
            {
                _projectCodeAllocationService.AddProjectCodeAllocation(newProjectAllocation, requisitionId, isLastAssignment);

            }
            catch(Exception exception)
            {

                var log = new Logger();
                log.LogAllErrorsMesseges(exception,_log);
                ModelState.AddModelError("Errors",@"Can't add new project code allocation");

            }

               if (isLastAssignment)
               {
               return RedirectToAction("AllocateProjectCode", "ProjectAllocation");
               }
               else
               {
               return RedirectToAction("AssignedprojectCodes", "ProjectAllocation",new {requisitionId= requisitionId});
               }
        }