示例#1
0
        public void CanNotificationBeSaved()
        {
            var notification = new Notification()
                                   {
                                       Text = "transport order two",
                                       Url = _destinationURl,
                                       RecordId = 2,
                                       IsRead = false,
                                       TypeOfNotification = "New transport order",
                                       CreatedDate = DateTime.Now,
                                       Id = 1,
                                       Application = "Hub Managers"
                                   };

            var tranportRequsition = new TransportRequisition()
                                         {
                                             CertifiedBy = 1,
                                             CertifiedDate = DateTime.Today,
                                             RequestedBy = 1,
                                             RequestedDate = DateTime.Today,
                                             TransportRequisitionID = 1,
                                             TransportRequisitionNo = "TRN-001",
                                             Status = 1,
                                             Remark = "Remark",
                                         };
            var hubId = new List<int>(){1,2,3};
            var resultLogistics = _notificationService.AddNotificationForLogistcisFromEarlyWaring("",1, 1, "reg-001");
            var resultProcurement = _notificationService.AddNotificationForProcurementFromLogistics("",tranportRequsition);
            var resultHubManager = _notificationService.AddNotificationForHubManagersFromTransportOrder("",1, "trans-001",hubId);

            Assert.IsTrue(resultLogistics);
            Assert.IsTrue(resultProcurement);
            Assert.IsTrue(resultHubManager);
        }
 public static TransportRequisitionViewModel BindTransportRequisitionViewModel(TransportRequisition transportRequisition,List<WorkflowStatus> statuses,string datePrefrence,List<UserInfo> users  )
 {
     TransportRequisitionViewModel transportRequisitionViewModel = null;
     if (transportRequisition != null)
     {
         transportRequisitionViewModel = new TransportRequisitionViewModel();
         transportRequisitionViewModel.CertifiedBy =users.First(t=>t.UserProfileID==transportRequisition.CertifiedBy).FullName;
         transportRequisitionViewModel.CertifiedDate = transportRequisition.CertifiedDate;
         transportRequisitionViewModel.DateCertified = transportRequisition.CertifiedDate.ToCTSPreferedDateFormat(datePrefrence);
         //EthiopianDate.GregorianToEthiopian(transportRequisition.CertifiedDate);
         transportRequisitionViewModel.Remark = transportRequisition.Remark;
         transportRequisitionViewModel.RequestedBy = users.First(t => t.UserProfileID == transportRequisition.RequestedBy).FullName;
         transportRequisitionViewModel.RequestedDate = transportRequisition.RequestedDate;
         transportRequisitionViewModel.DateRequested = transportRequisition.RequestedDate.ToCTSPreferedDateFormat(datePrefrence);
         //EthiopianDate.GregorianToEthiopian( transportRequisition.RequestedDate);
         transportRequisitionViewModel.Status = statuses.First(t=>t.StatusID==transportRequisition.Status).Description;
         transportRequisitionViewModel.StatusID = transportRequisition.Status;
         transportRequisitionViewModel.TransportRequisitionID = transportRequisition.TransportRequisitionID;
         transportRequisitionViewModel.TransportRequisitionNo = transportRequisition.TransportRequisitionNo;
         transportRequisitionViewModel.Program = transportRequisition.Program.Name;
         transportRequisitionViewModel.Month =
             RequestHelper.MonthName(
                 transportRequisition.TransportRequisitionDetails.FirstOrDefault().ReliefRequisition.Month);
         transportRequisitionViewModel.Round =transportRequisition.TransportRequisitionDetails.FirstOrDefault().ReliefRequisition.Round;
         transportRequisitionViewModel.Date = DateTime.Now.ToCTSPreferedDateFormat(datePrefrence);
     }
     return transportRequisitionViewModel;
 }
        private TransportRequisitionViewModel BindTransportRequisitionViewModel(TransportRequisition transportRequisition)
        {
            string userPreference = _userAccountService.GetUserInfo(HttpContext.User.Identity.Name).DatePreference;

            TransportRequisitionViewModel transportRequisitionViewModel = null;
            if (transportRequisition != null)
            {
                var transportRequisitionObj =
                    _transportRequisitionService.FindById(transportRequisition.TransportRequisitionID);
                transportRequisitionViewModel = new TransportRequisitionViewModel();
                transportRequisitionViewModel.CertifiedBy = _userAccountService.FindById(transportRequisitionObj.CertifiedBy).FullName;
                transportRequisitionViewModel.CertifiedDate = transportRequisitionObj.CertifiedDate;
                transportRequisitionViewModel.DateCertified = transportRequisitionObj.CertifiedDate.ToCTSPreferedDateFormat(userPreference);
                //EthiopianDate.GregorianToEthiopian(transportRequisition.CertifiedDate);
                transportRequisitionViewModel.Remark = transportRequisitionObj.Remark;
                transportRequisitionViewModel.RequestedBy = _userAccountService.FindById(transportRequisitionObj.RequestedBy).FullName;
                transportRequisitionViewModel.RequestedDate = transportRequisitionObj.RequestedDate;
                transportRequisitionViewModel.DateRequested = transportRequisitionObj.RequestedDate.ToCTSPreferedDateFormat(userPreference);
                //EthiopianDate.GregorianToEthiopian( transportRequisition.RequestedDate);
                transportRequisitionViewModel.Status = _workflowStatusService.GetStatusName(WORKFLOW.TRANSPORT_REQUISITION, transportRequisitionObj.Status);
                transportRequisitionViewModel.StatusID = transportRequisitionObj.Status;
                transportRequisitionViewModel.TransportRequisitionID = transportRequisitionObj.TransportRequisitionID;
                transportRequisitionViewModel.TransportRequisitionNo = transportRequisitionObj.TransportRequisitionNo;
                transportRequisitionViewModel.Region = _adminUnitService.FindById(transportRequisitionObj.RegionID).Name;
                transportRequisitionViewModel.Program = _programService.FindById(transportRequisitionObj.ProgramID).Name;

            }
            return transportRequisitionViewModel;
        }
        private TransportRequisition BindTransportRequisition(TransportRequisitionViewModel transportRequisitionViewModel)
        {
            string userPreference = _userAccountService.GetUserInfo(HttpContext.User.Identity.Name).DatePreference;

            TransportRequisition transportRequisition = null;
            if (transportRequisitionViewModel != null)
            {
                transportRequisition = new TransportRequisition();
                var firstOrDefault = _userAccountService.FindBy(t => t.UserName == transportRequisitionViewModel.CertifiedBy).FirstOrDefault();
                if (firstOrDefault != null)
                    transportRequisition.CertifiedBy = firstOrDefault.UserProfileID;
                transportRequisition.CertifiedDate = transportRequisitionViewModel.CertifiedDate;
                transportRequisition.CertifiedDate = transportRequisitionViewModel.CertifiedDate;
                //EthiopianDate.GregorianToEthiopian(transportRequisition.CertifiedDate);
                transportRequisition.Remark = transportRequisition.Remark;

                var firstOrDefault1 = _userAccountService.FindBy(t => t.UserName == transportRequisitionViewModel.RequestedBy).FirstOrDefault();
                if (firstOrDefault1 != null)
                    transportRequisition.RequestedBy = firstOrDefault1.UserProfileID;

                transportRequisition.RequestedDate = transportRequisitionViewModel.RequestedDate;
                transportRequisition.RequestedDate = transportRequisitionViewModel.RequestedDate;
                //EthiopianDate.GregorianToEthiopian( transportRequisition.RequestedDate);
                transportRequisition.Status = transportRequisitionViewModel.StatusID;
                transportRequisition.TransportRequisitionID = transportRequisitionViewModel.TransportRequisitionID;
                transportRequisition.TransportRequisitionNo = transportRequisitionViewModel.TransportRequisitionNo;
                transportRequisition.RegionID = transportRequisitionViewModel.RegionID;
                transportRequisition.AdminUnit = _adminUnitService.FindById(transportRequisitionViewModel.RegionID);
                transportRequisition.ProgramID = transportRequisitionViewModel.ProgramID;
                transportRequisition.Program = _programService.FindById(transportRequisitionViewModel.ProgramID);

            }
            return transportRequisition;
        }
        public void Init()
        {
            _transportRequisitions = new List<TransportRequisition>();
            _reliefRequisitions = new List<int> { 1 };
            var unitOfWork = new Mock<IUnitOfWork>();
            var unitOfWorkNotify = new Mock<IUnitOfWork>();
            _transportRequisition = new TransportRequisition
            {
                Status = 1,
                RequestedDate = DateTime.Today,
                RequestedBy = 1,
                CertifiedBy = 1,
                CertifiedDate = DateTime.Today,
                Remark = "",
                TransportRequisitionNo = "REQ-001",
                TransportRequisitionID = 1,
                TransportRequisitionDetails = new List<TransportRequisitionDetail>()
                                                                                  {
                                                                                      new TransportRequisitionDetail
                                                                                          {
                                                                                              RequisitionID = 1,
                                                                                              TransportRequisitionDetailID
                                                                                                  = 1,
                                                                                              TransportRequisitionID = 1
                                                                                          }
                                                                                  }

            };
            reliefRequisitions = new List<ReliefRequisition>()
                                      {

                                          new ReliefRequisition()
                                              {
                                                  RegionID = 1,
                                                  ProgramID = 1,
                                                  CommodityID = 1,
                                                  ZoneID = 2,
                                                  RequisitionNo = "REQ-001",
                                                  Round = 1,
                                                  RegionalRequestID = 1,
                                                  RequisitionID = 1,
                                                  Status = 4,

                                                  AdminUnit = new AdminUnit
                                                                  {
                                                                      AdminUnitID = 2,
                                                                      Name = "Zone1"
                                                                  },
                                                  AdminUnit1 = new AdminUnit
                                                                   {
                                                                       AdminUnitID = 1,
                                                                       Name = "Region1"
                                                                   },
                                                  Commodity = new Commodity
                                                                  {
                                                                      CommodityID = 1,
                                                                      CommodityCode = "C1",
                                                                      Name = "CSB"
                                                                  },
                                                  //HubAllocations = new List<HubAllocation>(){new HubAllocation()
                                                  //                    {
                                                  //                        HubAllocationID = 1,
                                                  //                        HubID = 1,
                                                  //                        RequisitionID = 1,
                                                  //                        Hub = new Hub
                                                  //                                  {
                                                  //                                      HubID = 1,
                                                  //                                      Name = "Test Hub",

                                                  //                                  }

                                                  //                    }},

                                                  ReliefRequisitionDetails = new List<ReliefRequisitionDetail>
                                                                                 {
                                                                                     new ReliefRequisitionDetail()
                                                                                         {
                                                                                             RequisitionID = 1,
                                                                                             RequisitionDetailID = 1,
                                                                                             Amount = 100,
                                                                                             CommodityID = 1,
                                                                                             FDPID = 1,
                                                                                             BenficiaryNo = 10,
                                                                                             DonorID = 1,
                                                                                             FDP=new FDP
                                                                                                     {
                                                                                                         AdminUnitID=1,
                                                                                                         FDPID=1,
                                                                                                         Name="FDP1"
                                                                                                     }

                                                                                         },
                                                                                     new ReliefRequisitionDetail()
                                                                                         {
                                                                                             RequisitionID = 1,
                                                                                             RequisitionDetailID = 2,
                                                                                             Amount = 50,
                                                                                             CommodityID = 1,
                                                                                             FDPID = 2,
                                                                                             BenficiaryNo = 10,
                                                                                             DonorID = 1,
                                                                                             FDP=new FDP
                                                                                                     {
                                                                                                         AdminUnitID=1,
                                                                                                         FDPID=2,
                                                                                                         Name="FDP2"
                                                                                                     }
                                                                                         },
                                                                                     new ReliefRequisitionDetail()
                                                                                         {
                                                                                             RequisitionID = 1,
                                                                                             RequisitionDetailID = 3,
                                                                                             Amount = 60,
                                                                                             CommodityID = 1,
                                                                                             FDPID = 3,
                                                                                             BenficiaryNo = 10,
                                                                                             DonorID = 1,
                                                                                             FDP=new FDP
                                                                                                     {
                                                                                                         AdminUnitID=1,
                                                                                                         FDPID=3,
                                                                                                         Name="FDP3"
                                                                                                     }
                                                                                         },
                                                                                     new ReliefRequisitionDetail()
                                                                                         {
                                                                                             RequisitionID = 1,
                                                                                             RequisitionDetailID = 4,
                                                                                             Amount = 70,
                                                                                             CommodityID = 1,
                                                                                             FDPID = 2,
                                                                                             BenficiaryNo = 10,
                                                                                             DonorID = 1,
                                                                                             FDP=new FDP
                                                                                                     {
                                                                                                         AdminUnitID=1,
                                                                                                         FDPID=4,
                                                                                                         Name="FDP4"
                                                                                                     }
                                                                                         }
                                                                                 }
                                              }
                                      };
            var _workflowstatuses = new List<WorkflowStatus>
                                            {
                                                new WorkflowStatus
                                                    {
                                                        StatusID = 1,
                                                        WorkflowID = 2,
                                                        Description = "Approved",

                                                    }
                                            };

            var _hubAllocation = new List<HubAllocation>
                                         {
                                             new HubAllocation
                                                 {
                                                     RequisitionID = 1,
                                                     HubID = 1,
                                                     HubAllocationID = 1,
                                                     Hub=new Models.Hub()
                                                             {
                                                                 Name="Hub 1",
                                                                 HubID=1,

                                                             }
                                                 }
                                         };
            _transportRequisition = new TransportRequisition()
                                        {
                                            Status = 1,
                                            AdminUnit = new AdminUnit { AdminUnitID = 2,
                                                                      Name = "Zone1"},
                                            RequestedBy = 1,
                                            CertifiedBy = 1,
                                            CertifiedDate = DateTime.Today,
                                            RequestedDate = DateTime.Today,
                                            TransportRequisitionID = 1,
                                            TransportRequisitionNo = "T-001",
                                            Remark = "comment"
                                        };
            var mockReliefRequisitionRepository = new Mock<IGenericRepository<ReliefRequisition>>();
            mockReliefRequisitionRepository.Setup(
                t => t.Get(It.IsAny<Expression<Func<ReliefRequisition, bool>>>(), It.IsAny<Func<IQueryable<ReliefRequisition>, IOrderedQueryable<ReliefRequisition>>>(), It.IsAny<string>())).Returns(
                    (Expression<Func<ReliefRequisition, bool>> perdicate, Func<IQueryable<ReliefRequisition>, IOrderedQueryable<ReliefRequisition>> obrderBy, string prop) =>
                    {
                        var
                            result = reliefRequisitions.AsQueryable();
                        return result;
                    }
                );

            mockReliefRequisitionRepository.Setup(t => t.FindById(It.IsAny<int>())).Returns((int id) => reliefRequisitions
                                                                                                            .ToList().
                                                                                                            Find
                                                                                                            (t =>
                                                                                                             t.
                                                                                                                 RequisitionID ==
                                                                                                             id));
            unitOfWork.Setup(t => t.ReliefRequisitionRepository).Returns(mockReliefRequisitionRepository.Object);
            var transportRequisitionReqository = new Mock<IGenericRepository<TransportRequisition>>();

            transportRequisitionReqository.Setup(t => t.Add(It.IsAny<TransportRequisition>())).Returns(
                (TransportRequisition transportRequisiton) =>
                {
                    _transportRequisitions.Add(transportRequisiton);
                    return true;
                });
            transportRequisitionReqository.Setup(t => t.FindById(It.IsAny<int>())).Returns((int id) =>
            {
                return
                    _transportRequisition;
            });
            unitOfWork.Setup(t => t.TransportRequisitionRepository).Returns(transportRequisitionReqository.Object);
            unitOfWork.Setup(t => t.Save());

            var workflowStatusRepository = new Mock<IGenericRepository<WorkflowStatus>>();
            workflowStatusRepository.Setup(
                t =>
                t.Get(It.IsAny<Expression<Func<WorkflowStatus, bool>>>(),
                      It.IsAny<Func<IQueryable<WorkflowStatus>, IOrderedQueryable<WorkflowStatus>>>(),
                      It.IsAny<string>())).Returns(_workflowstatuses);

            unitOfWork.Setup(t => t.WorkflowStatusRepository).Returns(workflowStatusRepository.Object);
            var hubAllocationRepository = new Mock<IGenericRepository<HubAllocation>>();
            hubAllocationRepository.Setup(
                t =>
                t.Get(It.IsAny<Expression<Func<HubAllocation, bool>>>(),
                      It.IsAny<Func<IQueryable<HubAllocation>, IOrderedQueryable<HubAllocation>>>(),
                      It.IsAny<string>())).Returns(_hubAllocation);
            unitOfWork.Setup(t => t.HubAllocationRepository).Returns(hubAllocationRepository.Object);

            var adminUnitRepository = new Mock<IGenericRepository<AdminUnit>>();
            adminUnitRepository.Setup(t => t.FindById(It.IsAny<int>())).Returns(new
                                                                                    AdminUnit()
                                                                                    {
                                                                                        AdminUnitID = 2,
                                                                                        Name = "Zone1",
                                                                                        AdminUnit2 = new AdminUnit
                                                                                                         {
                                                                                                             AdminUnitID
                                                                                                                 = 1,
                                                                                                             Name =
                                                                                                                 "Region1"
                                                                                                         }
                                                                                    }
                );
            unitOfWork.Setup(t => t.AdminUnitRepository).Returns(adminUnitRepository.Object);

            var programRepository = new Mock<IGenericRepository<Program>>();
            programRepository.Setup(t => t.FindById(It.IsAny<int>())).Returns(new Program
                                                                                  {
                                                                                      ProgramID = 1,
                                                                                      Name = "PSNP",
                                                                                      Description = "PSNP Des."
                                                                                  });
            unitOfWork.Setup(t => t.ProgramRepository).Returns(programRepository.Object);

            _notificationService = new NotificationService(unitOfWorkNotify.Object);
            _transportRequisitionService = new TransportRequisitionService(unitOfWork.Object, _notificationService);
        }
        public bool CreateTransportRequisition(List<List<int>> programRequisitons,int requestedBy)
        {
            if(programRequisitons.Count < 1) return false;
            foreach (var reliefRequisitions in programRequisitons)
            {

                if (reliefRequisitions.Count < 1) break;
                var anyReliefRequisition =
                    _unitOfWork.ReliefRequisitionRepository.FindById(reliefRequisitions.ElementAt(0));
                var region = new AdminUnit();
                if (anyReliefRequisition.RegionID != null)
                {
                    region = _unitOfWork.AdminUnitRepository.FindById(anyReliefRequisition.RegionID.Value);
                }
                var program = new Program();

                if (anyReliefRequisition.ProgramID != null)
                {
                    program = _unitOfWork.ProgramRepository.FindById(anyReliefRequisition.ProgramID);
                }

                var transportRequisition = new TransportRequisition()
                                               {
                                                   Status = (int)TransportRequisitionStatus.Draft, //Draft
                                                   RequestedDate = DateTime.Today,
                                                   RequestedBy = requestedBy, //should be current user
                                                   CertifiedBy = requestedBy, //Should be some user ????
                                                   CertifiedDate = DateTime.Today, //should be date cerified
                                                   TransportRequisitionNo = Guid.NewGuid().ToString(),
                                                   RegionID = region.AdminUnitID,
                                                   ProgramID = program.ProgramID
                                               };

                foreach (var reliefRequisition in reliefRequisitions)
                {
                    transportRequisition.TransportRequisitionDetails.Add(new TransportRequisitionDetail
                                                                             {RequisitionID = reliefRequisition});
                    var orignal =
                        _unitOfWork.ReliefRequisitionRepository.Get(t => t.RequisitionID == reliefRequisition).
                            FirstOrDefault();
                    orignal.Status = (int) ReliefRequisitionStatus.TransportRequisitionCreated;
                }

                AddTransportRequisition(transportRequisition);

                var year = transportRequisition.RequestedDate.Year;
                transportRequisition.TransportRequisitionNo = string.Format("{0}/{1}/{2}/{3}",
                                                                            program.ShortCode, region.AdminUnitID,
                                                                            transportRequisition.TransportRequisitionID,
                                                                            year);

                _unitOfWork.Save();

            }
            return true;
        }
 public bool AddTransportRequisition(TransportRequisition transportRequisition)
 {
     _unitOfWork.TransportRequisitionRepository.Add(transportRequisition);
     _unitOfWork.Save();
     return true;
 }
 private void AddToNotification(TransportRequisition transportRequisition)
 {
     if (HttpContext.Current == null) return;
     string destinationURl;
     if (HttpContext.Current.Request.Url.Host == "localhost")
     {
         destinationURl = "http://" + HttpContext.Current.Request.Url.Authority +
                          "/Procurement/TransportOrder/NotificationNewRequisitions?recordId=" + transportRequisition.TransportRequisitionID;
     }
     else
     {
         destinationURl = "http://" + HttpContext.Current.Request.Url.Authority +
                          HttpContext.Current.Request.ApplicationPath +
                          "/Procurement/TransportOrder/NotificationNewRequisitions?recordId=" + transportRequisition.TransportRequisitionID;
     }
     _notificationService.AddNotificationForProcurementFromLogistics(destinationURl, transportRequisition);
 }
 public bool DeleteTransportRequisition(TransportRequisition transportRequisition)
 {
     if (transportRequisition == null) return false;
     _unitOfWork.TransportRequisitionRepository.Delete(transportRequisition);
     _unitOfWork.Save();
     return true;
 }
示例#10
0
        public bool AddNotificationForProcurementFromLogistics(string destinationURl, TransportRequisition transportRequisition)
        {
            try
            {

                var notification = new Notification
                {
                    Text = "Transport Requisition No:" + transportRequisition.TransportRequisitionNo,
                    CreatedDate = DateTime.Now.Date,
                    IsRead = false,
                    Id = 1,
                    RecordId = transportRequisition.TransportRequisitionID,
                    Url = destinationURl,
                    TypeOfNotification = "New Transport Requisition",
                    Application = Application.PROCUREMENT
                };
                AddNotification(notification);
                return true;
            }
            catch (Exception)
            {

                return false;
            }
        }