示例#1
0
 public bool DeleteProjectCodeAllocationDetail(ProjectCodeAllocation _ProjectCodeAllocationDetail)
 {
     if (_ProjectCodeAllocationDetail == null)
     {
         return(false);
     }
     _unitOfWork.ProjectCodeAllocationRepository.Delete(_ProjectCodeAllocationDetail);
     _unitOfWork.Save();
     return(true);
 }
示例#2
0
        public bool Save(ProjectCodeAllocation _projectAllocation)
        {
            _unitOfWork.ProjectCodeAllocationRepository.Add(_projectAllocation);
            var hubAllocation = _unitOfWork.HubAllocationRepository.FindById(_projectAllocation.HubAllocationID);
            var requisition   = _unitOfWork.ReliefRequisitionRepository.FindById(hubAllocation.RequisitionID);

            requisition.Status = 4;
            _unitOfWork.Save();

            return(true);
        }
示例#3
0
        public bool AddProjectCodeAllocation(ProjectCodeAllocation _ProjectCodeAllocationDetail, int requisitionId, bool IsLastAssignment)
        {
            if (IsLastAssignment)
            {
                var requisition = _unitOfWork.ReliefRequisitionRepository.FindBy(r => r.RequisitionID == requisitionId).Single();
                requisition.Status = 4;
            }


            _unitOfWork.ProjectCodeAllocationRepository.Add(_ProjectCodeAllocationDetail);
            _unitOfWork.Save();
            return(true);
        }
        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 }));
            }
        }
示例#5
0
 public bool EditProjectCodeAllocationDetail(ProjectCodeAllocation _ProjectCodeAllocationDetail)
 {
     _unitOfWork.ProjectCodeAllocationRepository.Edit(_ProjectCodeAllocationDetail);
     _unitOfWork.Save();
     return(true);
 }