private void SendNotification(ReliefRequisition requisition)
        {
            try
            {
                string destinationURl;
                if (Request.Url.Host != null)
                {
                    if (Request.Url.Host == "localhost")
                    {
                        destinationURl = "http://" + Request.Url.Authority +
                                         "/Logistics/DispatchAllocation/IndexFromNotification?paramRegionId=" +
                                         requisition.RegionID +
                                         "&recordId=" + requisition.RequisitionID;
                        return;
                    }
                    destinationURl = "http://" + Request.Url.Authority +
                                     Request.ApplicationPath +
                                     "/Logistics/DispatchAllocation/IndexFromNotification?paramRegionId=" +
                                     requisition.RegionID +
                                     "&recordId=" + requisition.RequisitionID;

                    _notificationService.AddNotificationForLogistcisFromEarlyWaring(destinationURl,
                                                                                    requisition.RequisitionID,
                                                                                    (int)requisition.RegionID,
                                                                                    requisition.RequisitionNo);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public decimal geteAllocatedAmount(ReliefRequisition req)
        {
            List <Cats.Models.ProjectCodeAllocation> pcAllocations = req.HubAllocations.ToList()[0].ProjectCodeAllocations.ToList();
            var siAllocation = pcAllocations.Where(item => item.SINumberID != null).Sum(item => item.Amount_FromSI);
            var pcAllocation = pcAllocations.Where(item => item.ProjectCodeID != null).Sum(item => item.Amount_FromProject);

            return((decimal)(siAllocation + pcAllocation));
        }
        public ActionResult Requisition_Destroy([DataSourceRequest] DataSourceRequest request,
                                                ReliefRequisition reliefRequisition)
        {
            if (reliefRequisition != null)
            {
                _reliefRequisitionDetailService.DeleteById(reliefRequisition.RequisitionID);
            }

            return(Json(ModelState.ToDataSourceResult()));
        }
 public bool DeleteReliefRequisition(ReliefRequisition reliefRequisition)
 {
     if (reliefRequisition == null)
     {
         return(false);
     }
     _unitOfWork.ReliefRequisitionRepository.Delete(reliefRequisition);
     _unitOfWork.Save();
     return(true);
 }
        public JsonResult updateRequisitionStatus(int regionId, int requisitionId)
        {
            ReliefRequisition req = _requisitionService.FindById(requisitionId);

            req.Status = 4;
            _requisitionService.EditReliefRequisition(req);
            List <RequestAllocationViewModel> list = getIndexList(regionId);

            return(Json(list, JsonRequestBehavior.AllowGet));
        }
        public JsonResult updateRequisitionStatus(int RequisitionId)
        {
            ReliefRequisition req = _requisitionService.FindById(RequisitionId);

            if (req.Status == 3)
            {
                var tnx = _transactionService.PostSIAllocation(RequisitionId);
            }
            List <RequestAllocationViewModel> list = getIndexList((int)req.RegionID, RequisitionId);

            /*
             * List<RequestAllocationViewModel> list = new List<RequestAllocationViewModel> ();*/
            return(Json(list, JsonRequestBehavior.AllowGet));
        }
        public List <FDPRequestViewModel> getRequestDetail(ReliefRequisition Request)
        {
            var result = Request.ReliefRequisitionDetails.ToList().Select(item => new FDPRequestViewModel
            {
                RequisitionId   = Request.RequisitionID,
                RequestDetailId = item.RequisitionDetailID,
                FDPId           = item.FDPID,
                FDPName         = item.FDP.Name,
                Name            = item.FDP.Name,
                RequestedAmount = item.Amount.ToPreferedWeightUnit(),
                WoredaId        = item.FDP.AdminUnitID,
                WoredaName      = item.FDP.AdminUnit.Name,
                Commodity       = item.Commodity.Name,
                Allocations     = ToAllocationViewModel(item.SIPCAllocations.ToList())
            }).ToList();

            return(result);
        }
        public ReliefRequisition GenerateRequisition(RegionalRequest regionalRequest, List <RegionalRequestDetail> regionalRequestDetails, int commodityId, int zoneId)
        {
            var relifRequisition = new ReliefRequisition()
            {
                //TODO:Please Include Regional Request ID in Requisition
                RegionalRequestID = regionalRequest.RegionalRequestID,
                Round             = regionalRequest.Round,
                Month             = regionalRequest.Month,
                ProgramID         = regionalRequest.ProgramId,
                CommodityID       = commodityId,
                RequestedDate     = regionalRequest.RequistionDate,
                RationID          = regionalRequest.RationID

                                    //TODO:Please find another way how to specify Requistion No
                ,
                RequisitionNo = Guid.NewGuid().ToString(),
                RegionID      = regionalRequest.RegionID,
                ZoneID        = zoneId,
                Status        = (int)ReliefRequisitionStatus.Draft,
                //RequestedBy =itm.RequestedBy,
                //ApprovedBy=itm.ApprovedBy,
                //ApprovedDate=itm.ApprovedDate,
            };

            foreach (var regionalRequestDetail in regionalRequestDetails)
            {
                decimal contengency = 0;
                if (regionalRequestDetail.RegionalRequest.Contingency)
                {
                    contengency = (regionalRequestDetail.RequestDetailCommodities.Sum(a => a.Amount) * (decimal).05);
                }

                var relifRequistionDetail = new ReliefRequisitionDetail();
                var commodity             = regionalRequestDetail.RequestDetailCommodities.First(t => t.CommodityID == commodityId);
                relifRequistionDetail.DonorID      = regionalRequest.DonorID;
                relifRequistionDetail.FDPID        = regionalRequestDetail.Fdpid;
                relifRequistionDetail.BenficiaryNo = regionalRequestDetail.Beneficiaries;
                relifRequistionDetail.CommodityID  = commodity.CommodityID;
                relifRequistionDetail.Amount       = commodity.Amount + contengency;

                relifRequisition.ReliefRequisitionDetails.Add(relifRequistionDetail);
            }
            return(relifRequisition);
        }
 public ActionResult Edit(ReliefRequisition reliefrequisition, FormCollection collection)
 {
     if (ModelState.IsValid)
     {
         var requisition = _reliefRequisitionService.FindById(reliefrequisition.RequisitionID);
         if (requisition.ReliefRequisitionDetails.Count > 0)
         {
             foreach (var oldRequisitionDetail in requisition.ReliefRequisitionDetails)
             {
                 var commodityAmount = (decimal)0.00;
                 if (reliefrequisition.RationID != null)
                 {
                     var detail = oldRequisitionDetail;
                     var ration = _rationDetailService.FindBy(t => t.RationID == (int)reliefrequisition.RationID && t.CommodityID == detail.CommodityID).FirstOrDefault();
                     if (ration != null)
                     {
                         commodityAmount = ration.Amount / 1000;
                     }
                 }
                 var newRequisitionDetail = new ReliefRequisitionDetail()
                 {
                     RequisitionID       = oldRequisitionDetail.RequisitionID,
                     RequisitionDetailID = oldRequisitionDetail.RequisitionDetailID,
                     CommodityID         = oldRequisitionDetail.CommodityID,
                     BenficiaryNo        = oldRequisitionDetail.BenficiaryNo,
                     Amount      = oldRequisitionDetail.BenficiaryNo * commodityAmount,
                     FDPID       = oldRequisitionDetail.FDPID,
                     DonorID     = oldRequisitionDetail.DonorID,
                     Contingency = oldRequisitionDetail.Contingency
                 };
                 //oldRequisitionDetail.Amount = oldRequisitionDetail.BenficiaryNo*commodityAmount;
                 _reliefRequisitionDetailService.DeleteById(oldRequisitionDetail.RequisitionDetailID);
                 _reliefRequisitionDetailService.AddReliefRequisitionDetail(newRequisitionDetail);
             }
         }
         requisition.RationID      = reliefrequisition.RationID;
         requisition.RequisitionNo = reliefrequisition.RequisitionNo;
         requisition.RequestedDate = reliefrequisition.RequestedDate;
         _reliefRequisitionService.EditReliefRequisition(requisition);
         return(RedirectToAction("Index", "ReliefRequisition"));
     }
     return(View(reliefrequisition));
 }
Exemple #10
0
        public static ReliefRequisitionViewModel BindReliefRequisitionViewModel(ReliefRequisition reliefRequisition, List <WorkflowStatus> statuses, string datePref)
        {
            var requisition = new ReliefRequisitionViewModel();

            requisition.ProgramID         = reliefRequisition.ProgramID;
            requisition.Program           = reliefRequisition.Program.Name;
            requisition.Region            = reliefRequisition.AdminUnit.Name;
            requisition.RequisitionNo     = reliefRequisition.RequisitionNo;
            requisition.RegionID          = reliefRequisition.RegionID;
            requisition.RegionalRequestID = reliefRequisition.RegionalRequestID;
            if (reliefRequisition.RequestedDate.HasValue)
            {
                requisition.RequestedDateEt = reliefRequisition.RequestedDate.Value.ToCTSPreferedDateFormat(datePref);
            }
            //);
            requisition.Round         = reliefRequisition.Round;
            requisition.Status        = statuses.Find(t => t.WorkflowID == (int)WORKFLOW.RELIEF_REQUISITION && t.StatusID == reliefRequisition.Status.Value).Description;
            requisition.RequestedDate = reliefRequisition.RequestedDate.Value;
            requisition.StatusID      = reliefRequisition.Status;
            requisition.RequisitionID = reliefRequisition.RequisitionID;
            requisition.CommodityID   = reliefRequisition.CommodityID;
            requisition.ZoneID        = reliefRequisition.ZoneID;
            requisition.Zone          = reliefRequisition.AdminUnit1.Name;
            requisition.Commodity     = reliefRequisition.Commodity.Name;
            requisition.Month         = RequestHelper.MonthName(reliefRequisition.Month);
            requisition.RequestRefNo  = reliefRequisition.RegionalRequest != null ? reliefRequisition.RegionalRequest.ReferenceNumber : "Transfer/Swap Requisition";


            if (reliefRequisition.RationID != null && reliefRequisition.RationID > 0)
            {
                requisition.RationID = (int)reliefRequisition.RationID;
            }
            else if (reliefRequisition.RegionalRequest != null && reliefRequisition.RegionalRequest.Ration != null)
            {
                requisition.Ration   = reliefRequisition.RegionalRequest.Ration.RefrenceNumber;
                requisition.RationID = reliefRequisition.RegionalRequest.RationID;
            }

            return(requisition);
        }
        public ActionResult Assign(int reqId, double remaining, double totalAssigned)
        {
            var previousModelState = TempData["ModelState"] as ModelStateDictionary;

            if (previousModelState != null)
            {
                foreach (KeyValuePair <string, ModelState> kvp in previousModelState)
                {
                    if (!ModelState.ContainsKey(kvp.Key))
                    {
                        ModelState.Add(kvp.Key, kvp.Value);
                    }
                }
            }

            var hubId = _hubAllocationService.GetAllocatedHubId(reqId);
            ReliefRequisition listOfRequsitions = _requisitionService.Get(r => r.RequisitionID == reqId).SingleOrDefault();

            List <LedgerService.AvailableShippingCodes> freeSICodes = _ledgerService.GetFreeSICodesByCommodity(hubId, (int)listOfRequsitions.CommodityID);
            List <LedgerService.AvailableProjectCodes>  freePCCodes = _ledgerService.GetFreePCCodesByCommodity(hubId, (int)listOfRequsitions.CommodityID);

            ViewBag.FreeSICodes = freeSICodes;
            ViewBag.FreePCCodes = freePCCodes;
            ViewBag.SI          = new SelectList(freeSICodes, "siCodeId", "SIcode");
            ViewBag.PC          = new SelectList(freePCCodes, "pcCodeId", "PCcode");



            // ViewBag.SI = new SelectList(_shippingInstructionService.GetAllShippingInstruction(), "ShippingInstructionID", "Value");
            ViewBag.Total = totalAssigned;
            //ViewBag.PC = new SelectList(_projectCodeService.GetAllProjectCode(), "ProjectCodeID", "Value");
            ViewBag.RequetedAmount = Math.Round(listOfRequsitions.ReliefRequisitionDetails.Sum(a => a.Amount));
            ViewBag.Hub            = _hubAllocationService.GetAllocatedHub(reqId);
            ViewBag.ReqId          = listOfRequsitions.RequisitionID;
            ViewBag.Remaining      = Math.Round(remaining);
            return(View());
        }
 public bool EditReliefRequisition(ReliefRequisition reliefRequisition)
 {
     _unitOfWork.ReliefRequisitionRepository.Edit(reliefRequisition);
     _unitOfWork.Save();
     return(true);
 }
Exemple #13
0
        public bool CreateRequisitonForTransfer(Transfer transfer)
        {
            if (transfer != null)
            {
                var fdp = _unitOfWork.FDPRepository.FindBy(m => m.HubID == transfer.DestinationHubID).FirstOrDefault();
                if (fdp != null)
                {
                    List <LedgerService.AvailableShippingCodes> availableSINumbers = new List <LedgerService.AvailableShippingCodes>();
                    var relifRequisition = new ReliefRequisition()
                    {
                        //RegionalRequestID = regionalRequest.RegionalRequestID,
                        //Round = regionalRequest.Round,
                        Month         = transfer.CreatedDate.Month,
                        ProgramID     = transfer.ProgramID,
                        CommodityID   = transfer.CommodityID,
                        RequestedDate = transfer.CreatedDate,
                        //RationID = regionalRequest.RationID


                        RequisitionNo = Guid.NewGuid().ToString(),
                        RegionID      = fdp.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID,
                        ZoneID        = fdp.AdminUnit.AdminUnit2.AdminUnitID,
                        Status        = (int)ReliefRequisitionStatus.Draft,
                    };
                    _unitOfWork.ReliefRequisitionRepository.Add(relifRequisition);

                    var relifRequistionDetail = new ReliefRequisitionDetail();

                    relifRequistionDetail.DonorID = 1;

                    relifRequistionDetail.FDPID = fdp.FDPID;

                    relifRequistionDetail.BenficiaryNo = 0; //since there is no need of benficiaryNo on transfer
                    relifRequistionDetail.CommodityID  = transfer.CommodityID;
                    relifRequistionDetail.Amount       = transfer.Quantity;
                    relifRequisition.ReliefRequisitionDetails.Add(relifRequistionDetail);

                    // save hub allocation
                    var hubAllocation = new HubAllocation
                    {
                        AllocatedBy    = 1,
                        RequisitionID  = relifRequisition.RequisitionID,
                        AllocationDate = transfer.CreatedDate,
                        ReferenceNo    = "001",
                        HubID          = transfer.SourceHubID
                    };
                    _unitOfWork.HubAllocationRepository.Add(hubAllocation);
                    //relifRequisition.RequisitionNo = String.Format("REQ-{0}", relifRequisition.RequisitionID);
                    relifRequisition.RequisitionNo = transfer.ReferenceNumber;
                    relifRequisition.Status        = (int)ReliefRequisitionStatus.HubAssigned;
                    if (transfer.Commodity.ParentID == null)
                    {
                        availableSINumbers = GetFreeSICodesByCommodity(transfer.SourceHubID, transfer.CommodityID);
                    }
                    else
                    {
                        availableSINumbers = GetFreeSICodesByCommodityChild(transfer.SourceHubID, transfer.CommodityID);
                    }

                    var siNumberExist = availableSINumbers.Any(availableShippingCode => availableShippingCode.siCodeId == transfer.ShippingInstructionID);

                    if (!siNumberExist)
                    {
                        return(false);
                    }
                    _unitOfWork.Save();


                    SIPCAllocation allocation = new SIPCAllocation
                    {
                        Code                = transfer.ShippingInstructionID,
                        AllocatedAmount     = transfer.Quantity,
                        AllocationType      = "SI",
                        RequisitionDetailID = relifRequistionDetail.RequisitionDetailID
                    };
                    _unitOfWork.SIPCAllocationRepository.Add(allocation);

                    relifRequisition.Status        = (int)ReliefRequisitionStatus.ProjectCodeAssigned;
                    relifRequisition.RequisitionNo = String.Format("REQ-{0}", relifRequisition.RequisitionID);
                    _unitOfWork.Save();
                    if (!PostSIAllocation(relifRequisition.RequisitionID, transfer.CommoditySourceID))
                    {
                        return(false);
                    }
                    return(true);
                }
            }
            return(false);
        }
Exemple #14
0
        private List <WoredaDistributionDetailViewModel> GetWoredaStockDistribution(IEnumerable <FDP> fdps, ReliefRequisition reliefRequisition)
        {
            return((from fdp in fdps
                    from detail in reliefRequisition.ReliefRequisitionDetails
                    where fdp.FDPID == detail.FDPID
                    select new WoredaDistributionDetailViewModel()
            {
                FdpId = fdp.FDPID,
                FDP = fdp.Name,
                DistributedAmount = 0,
                RequistionNo = reliefRequisition.RequisitionNo,
                Round = reliefRequisition.Round,
                Month = RequestHelper.MonthName(reliefRequisition.RegionalRequest.Month),
                CommodityID = detail.CommodityID,
                CommodityName = detail.Commodity.Name,
                AllocatedAmount = detail.Amount,
                NumberOfBeneficiaries = detail.BenficiaryNo,
                dispatched = GetDispatchAllocation(reliefRequisition.RequisitionNo, fdp.FDPID),
                delivered = GetDelivered(reliefRequisition.RequisitionNo, fdp.FDPID),
                RequisitionId = reliefRequisition.RequisitionID,
                TotalIn = _utilizationService.GetTotalIn(fdp.FDPID, (int)reliefRequisition.RequisitionID) != 0 ? _utilizationService.GetTotalIn(fdp.FDPID, (int)reliefRequisition.RequisitionID) : 0,

                //RequisitionDetailViewModel = new RequisitionDetailViewModel()
                //    {
                //        CommodityID = detail.CommodityID,
                //        CommodityName = detail.Commodity.Name,
                //        AllocatedAmount = detail.Amount,
                //        BeneficaryNumber = detail.BenficiaryNo

                //    },
                //GetRequisionInfo(reliefRequisition.RequisitionID, fdp.FDPID)
            }).ToList());

            //return (from fdp in fdps
            //        select new WoredaDistributionDetailViewModel()
            //        {
            //            FdpId = fdp.FDPID,
            //            FDP = fdp.Name,
            //            DistributedAmount = 0,


            //        }).ToList();
        }
Exemple #15
0
 private List <WoredaDistributionDetailViewModel> GetWoredaStockDistributionDetail(IEnumerable <WoredaStockDistributionDetail> woredaStockDistributionDetails, ReliefRequisition requisition)
 {
     return((from woredaStockDistributionDetail in woredaStockDistributionDetails
             select new WoredaDistributionDetailViewModel()
     {
         FdpId = woredaStockDistributionDetail.FdpId,
         FDP = woredaStockDistributionDetail.FDP.Name,
         WoredaStockDistributionID = woredaStockDistributionDetail.WoredaStockDistributionID,
         WoredaStockDistributionDetailID = woredaStockDistributionDetail.WoredaStockDistributionDetailID,
         DistributedAmount = woredaStockDistributionDetail.DistributedAmount,
         BeginingBalance = woredaStockDistributionDetail.StartingBalance,
         EndingBalance = woredaStockDistributionDetail.EndingBalance,
         TotalIn = woredaStockDistributionDetail.TotalIn,
         TotalOut = woredaStockDistributionDetail.TotoalOut,
         LossAmount = woredaStockDistributionDetail.LossAmount,
         RequistionNo = requisition.RequisitionNo,
         Round = requisition.Round,
         Month = RequestHelper.MonthName(requisition.RegionalRequest.Month),
         CommodityName = requisition.Commodity.Name,
         RequisitionDetailViewModel = GetRequisionInfo(requisition.RequisitionID, woredaStockDistributionDetail.FdpId)
     }).ToList());
 }