public ActionResult Multiplesubmission(List <TransporterPaymentRequestViewModel> transporterPaymentRequestViewModels, int transporterID)
        {
            var checkedPaymentRequests = transporterPaymentRequestViewModels.Where(m => m.Checked == true).ToList();
            BusinessProcessState processState;

            if (checkedPaymentRequests.Count > 0)
            {
                foreach (var transporterPaymentRequestViewModel in checkedPaymentRequests)
                {
                    var parentBussinessProcessID = transporterPaymentRequestViewModel.BusinessProcess.CurrentState.
                                                   ParentBusinessProcessID;
                    processState = new BusinessProcessState()
                    {
                        DatePerformed           = DateTime.Now,
                        ParentBusinessProcessID = parentBussinessProcessID,
                        PerformedBy             =
                            _userAccountService.GetUserInfo(HttpContext.User.Identity.Name).FirstName,
                        StateID = _transporterPaymentRequestService.GetFinalState(parentBussinessProcessID)
                                  //transporterPaymentRequestViewModel.BusinessProcess.CurrentState.BaseStateTemplate.InitialStateFlowTemplates.FirstOrDefault().FinalStateID
                    };

                    _BusinessProcessService.PromotWorkflow(processState);
                }
                return(RedirectToAction("PaymentRequests", "TransporterPaymentRequest",
                                        new { Area = "Logistics", transporterID }));
            }
            return(RedirectToAction("PaymentRequests", "TransporterPaymentRequest",
                                    new { Area = "Logistics", transporterID }));
        }
示例#2
0
        public bool CheckPlanBeforeReject(BusinessProcessState st)
        {
            var state =
                _unitOfWork.StateTemplateRepository.FindBy(s => s.StateTemplateID == st.StateID).FirstOrDefault();

            return(state != null && state.Name == "Rejected");
        }
示例#3
0
        public ActionResult Create(PaymentRequest request)
        {
            if (ModelState.IsValid)
            {
                int BP_PR = _ApplicationSettingService.getPaymentRequestWorkflow();

                if (BP_PR != 0)
                {
                    BusinessProcessState createdstate = new BusinessProcessState
                    {
                        DatePerformed = DateTime.Now,
                        PerformedBy   = "System",
                        Comment       = "Created workflow for Payment Request"
                    };
                    //_PaymentRequestservice.Create(request);

                    BusinessProcess bp = _BusinessProcessService.CreateBusinessProcess(BP_PR, request.PaymentRequestID,
                                                                                       "PaymentRequest", createdstate);
                    request.BusinessProcessID = bp.BusinessProcessID;
                    request.RequestedDate     = DateTime.Now;
                    _PaymentRequestservice.Create(request);
                    //_PaymentRequestservice.Update(request);
                    return(RedirectToAction("Index"));
                }
                ViewBag.ErrorMessage1 = "The workflow assosiated with Payment Request doesnot exist.";
                ViewBag.ErrorMessage2 = "Please make sure the workflow is created and configured.";
            }
            LoadLookups();
            ModelState.AddModelError("Errors", @"Could not create Request Plan.");
            return(View(request));
        }
示例#4
0
        /*
         * BusinessProcessState createdstate = new BusinessProcessState
         *              {
         *                  DatePerformed = DateTime.Now,
         *                  PerformedBy = "System",
         *                  Comment = "Created workflow for Payment Request"
         *
         *              };
         *              _PaymentRequestservice.Create(request);
         *
         *              BusinessProcess bp = _BusinessProcessService.CreateBusinessProcess(BP_PR,request.PaymentRequestID,
         *                                                                                 "PaymentRequest", createdstate);
         *              request.BusinessProcessID = bp.BusinessProcessID;
         */
        public BusinessProcess CreateBusinessProcessForObject(int templateID, int DocumentID, string DocumentType, bool save = false)
        {
            StateTemplate   startingTemplate = _unitOfWork.StateTemplateRepository.FindBy(s => s.ParentProcessTemplateID == templateID && s.StateType == 0).Single();
            BusinessProcess bp = new BusinessProcess {
                ProcessTypeID = templateID, DocumentID = DocumentID, DocumentType = DocumentType
            };
            BusinessProcessState StartingState = new BusinessProcessState
            {
                DatePerformed = DateTime.Now,
                PerformedBy   = "System",
                Comment       = "Created workflow for" + DocumentType
            };

            _unitOfWork.BusinessProcessRepository.Add(bp);

            StartingState.ParentBusinessProcess = bp;
            StartingState.StateID = startingTemplate.StateTemplateID;

            _unitOfWork.BusinessProcessStateRepository.Add(StartingState);
            bp.CurrentStateID = StartingState.BusinessProcessStateID;

            //   _unitOfWork.BusinessProcessRepository.Edit(bp);
            //  PromotWorkflow(StartingState);

            if (save)
            {
                _unitOfWork.Save();
            }
            return(bp);
        }
示例#5
0
        public ActionResult Promote(BusinessProcessState st)
        {
            var isReject = _BusinessProcessService.CheckPlanBeforeReject(st);

            if (isReject)
            {
            }
            _BusinessProcessService.PromotWorkflow(st);
            return(RedirectToAction("Index"));
        }
示例#6
0
 public bool Delete(BusinessProcessState item)
 {
     if (item == null)
     {
         return(false);
     }
     _unitOfWork.BusinessProcessStateRepository.Delete(item);
     _unitOfWork.Save();
     return(true);
 }
        public ActionResult Promote(BusinessProcessState st)
        {
            loadLookups();
            BusinessProcess item = _BusinessProcessService.FindById(st.ParentBusinessProcessID);

            item.ProcessTypeID = st.StateID;
            _BusinessProcessService.Update(item);
            _BusinessProcessStateService.Add(st);
            return(View());
        }
        public async Task Save(BusinessProcessState businessProcessState)
        {
            var searchResult = await BusinessProcessStateCollection.FindAsync(x => x.Id == businessProcessState.Id);

            if (searchResult.Any())
            {
                await BusinessProcessStateCollection.FindOneAndReplaceAsync(x => x.Id == businessProcessState.Id, businessProcessState);
            }
            else
            {
                await BusinessProcessStateCollection.InsertOneAsync(businessProcessState);
            }
        }
        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 bool PromotWorkflow(BusinessProcessState state)
        {
            BusinessProcess item = this.FindById(state.ParentBusinessProcessID);

            if (item != null)
            {
                _unitOfWork.BusinessProcessStateRepository.Add(state);
                _unitOfWork.Save();
                item.CurrentStateID = state.BusinessProcessStateID;
                _unitOfWork.BusinessProcessRepository.Edit(item);
                _unitOfWork.Save();

                return(true);
            }
            return(false);
        }
示例#11
0
        public ActionResult Edit(BusinessProcessState st)
        {
            _BusinessProcessService.PromotWorkflow(st);
            BusinessProcess item = _BusinessProcessService.FindById(st.ParentBusinessProcessID);

            /*if (ModelState.IsValid)
             * {
             *
             *  item.CurrentStateID = st.StateID;
             *  _BusinessProcessService.Update(item);
             *  _BusinessProcessStateService.Add(st);
             *  return View(item);
             * //  _BusinessProcessService.Update(item);
             * //   return RedirectToAction("Index");
             * }*/
            return(View(item));
        }
        public async Task <IActionResult> Create([FromForm] string id, [FromForm] string name)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                throw new ArgumentNullException(nameof(id));
            }

            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException(nameof(name));
            }

            var bp = await _businessProcessRepositary.GetById(new ObjectId(id));

            var bps = new BusinessProcessState(name, bp);
            await _emulatorStateRepositary.Save(bps);

            return(RedirectToAction("Index"));
        }
示例#13
0
 public ActionResult Promote(BusinessProcessState st, int transporterID)
 {
     _businessProcessService.PromotWorkflow(st);
     return(RedirectToAction("PaymentRequests", "ValidatedPaymentRequest", new { Area = "Finance", transporterID }));
 }
示例#14
0
        public ActionResult EditCollectiveChequeInfo(Models.TransporterChequeViewModel transporterChequeViewModel, int transporterID)
        {
            var paymentRequestList = (IEnumerable <Cats.Models.TransporterPaymentRequest>)_transporterPaymentRequestService
                                     .Get(t => t.BusinessProcess.CurrentState.BaseStateTemplate.StateNo == 3, null, "BusinessProcess")
                                     .OrderByDescending(t => t.TransporterPaymentRequestID);

            //var transporterChequeObj = _transporterChequeService.Get(t => t.TransporterChequeId == transporterChequeViewModel.TransporterChequeId).FirstOrDefault();
            if (paymentRequestList.Any())
            {
                var transporterChequeDetails = new List <TransporterChequeDetail>();
                foreach (var paymentRequest in paymentRequestList)
                {
                    var transporterChequeDetail = new TransporterChequeDetail
                    {
                        TransporterPaymentRequestID = paymentRequest.TransporterPaymentRequestID
                    };
                    transporterChequeDetails.Add(transporterChequeDetail);
                }
                var user = UserAccountHelper.GetUser(User.Identity.Name);
                var transporterChequeObj = new TransporterCheque()
                {
                    CheckNo                  = transporterChequeViewModel.CheckNo,
                    PaymentVoucherNo         = transporterChequeViewModel.PaymentVoucherNo,
                    BankName                 = transporterChequeViewModel.BankName,
                    Amount                   = transporterChequeViewModel.Amount,
                    PreparedBy               = user.UserProfileID,
                    Status                   = 1,
                    TransporterChequeDetails = transporterChequeDetails
                };

                int BP_PR = _applicationSettingService.getTransporterChequeWorkflow();
                if (BP_PR != 0)
                {
                    BusinessProcessState createdstate = new BusinessProcessState
                    {
                        DatePerformed = DateTime.Now,
                        PerformedBy   = "System",
                        Comment       = "Created workflow for Transporter Cheque"
                    };
                    //_PaymentRequestservice.Create(request);

                    BusinessProcess bp = _businessProcessService.CreateBusinessProcess(BP_PR, transporterChequeObj.TransporterChequeId,
                                                                                       "ValidatedPaymentRequest", createdstate);
                    transporterChequeObj.BusinessProcessID = bp.BusinessProcessID;
                    transporterChequeObj.IssueDate         = DateTime.Now;
                    _transporterChequeService.AddTransporterCheque(transporterChequeObj);
                    foreach (var paymentRequest in paymentRequestList)
                    {
                        var currFlowTemplate = paymentRequest.BusinessProcess.CurrentState.BaseStateTemplate.InitialStateFlowTemplates.FirstOrDefault();
                        if (currFlowTemplate != null)
                        {
                            var state = new BusinessProcessState()
                            {
                                StateID                 = currFlowTemplate.FinalStateID,
                                PerformedBy             = user.FullName,
                                Comment                 = "Finance: Batch generated cheque for the payment request",
                                DatePerformed           = DateTime.Now,
                                ParentBusinessProcessID = paymentRequest.BusinessProcess.CurrentState.ParentBusinessProcessID
                            };
                            var item = _businessProcessService.FindById(state.ParentBusinessProcessID);
                            _businessProcessStateService.Add(state);
                            item.CurrentStateID = state.BusinessProcessStateID;
                            _businessProcessService.Update(item);
                        }
                    }
                }
            }
            return(RedirectToAction("Cheques", "Cheque", new { Area = "Finance", transporterID }));
        }
示例#15
0
 public ActionResult Promote(BusinessProcessState st)
 {
     _BusinessProcessService.PromotWorkflow(st);
     return(RedirectToAction("Index"));
 }
 public ActionResult Promote(BusinessProcessState st, int transporterID)
 {
     _BusinessProcessService.PromotWorkflow(st);
     return(RedirectToAction("PaymentRequests", "TransporterPaymentRequest", new { Area = "Logistics", transporterID }));
 }
示例#17
0
        public BusinessProcess CreateBusinessProcess(int templateID, int documentID, string documentType, BusinessProcessState startingState)
        {
            var startingTemplate = _unitOfWork.StateTemplateRepository.FindBy(s => s.ParentProcessTemplateID == templateID && s.StateType == 0).FirstOrDefault();

            if (startingTemplate == null)
            {
                return(null);
            }
            var bp = new BusinessProcess {
                ProcessTypeID = templateID, DocumentID = documentID, DocumentType = documentType
            };

            Add(bp);
            startingState.ParentBusinessProcessID = bp.BusinessProcessID;
            startingState.StateID = startingTemplate.StateTemplateID;
            PromotWorkflow(startingState);
            return(bp);
        }
示例#18
0
 public bool Add(BusinessProcessState item)
 {
     _unitOfWork.BusinessProcessStateRepository.Add(item);
     _unitOfWork.Save();
     return(true);
 }
示例#19
0
        public ActionResult EditGRN(GRNViewModel delivery)
        {
            var originaldelivery = _deliveryService.Get(t => t.DispatchID == delivery.DispatchID, null,
                                                        "FDP,FDP.AdminUnit,FDP.AdminUnit.AdminUnit2,FDP.AdminUnit.AdminUnit2.AdminUnit2,Hub").FirstOrDefault();
            var newdelivery    = new Delivery();
            var deliveryDetail = new DeliveryDetail();

            if (originaldelivery != null)
            {
                newdelivery = _deliveryService.FindBy(t => t.DeliveryID == originaldelivery.DeliveryID).FirstOrDefault();
                if (newdelivery != null)
                {
                    newdelivery.DispatchID      = delivery.DispatchID;
                    newdelivery.ReceivingNumber = delivery.ReceivingNumber;
                    newdelivery.WayBillNo       = delivery.WayBillNo;
                    newdelivery.ReceivedBy      = delivery.ReceivedBy;
                    newdelivery.ReceivedDate    = delivery.ReceivedDate != null?DateTime.Parse(delivery.ReceivedDate) : DateTime.Now;

                    newdelivery.DeliveryBy   = delivery.DeliveryBy;
                    newdelivery.DeliveryDate = delivery.DeliveryDate != null?DateTime.Parse(delivery.DeliveryDate) : DateTime.Now;

                    newdelivery.DocumentReceivedDate = delivery.DocumentReceivedDate != null?DateTime.Parse(delivery.DocumentReceivedDate) : DateTime.Now;

                    _deliveryService.EditDelivery(newdelivery);

                    deliveryDetail =
                        _deliveryDetailService.Get(t => t.DeliveryID == newdelivery.DeliveryID, null,
                                                   "Commodity,Unit").FirstOrDefault();
                    if (deliveryDetail != null)
                    {
                        deliveryDetail.ReceivedQuantity = delivery.ReceivedQuantity;
                        _deliveryDetailService.EditDeliveryDetail(deliveryDetail);
                    }
                }
            }
            else
            {
                var dispatch = _dispatchService.FindBy(t => t.DispatchID == delivery.DispatchID).FirstOrDefault();
                //newDelivery = new Delivery();
                newdelivery.DeliveryID      = Guid.NewGuid();
                newdelivery.DispatchID      = delivery.DispatchID;
                newdelivery.ReceivingNumber = delivery.ReceivingNumber;
                newdelivery.WayBillNo       = delivery.WayBillNo;
                newdelivery.ReceivedBy      = delivery.ReceivedBy;
                newdelivery.ReceivedDate    = delivery.ReceivedDate != null?DateTime.Parse(delivery.ReceivedDate) : DateTime.Now;

                newdelivery.DeliveryBy   = delivery.DeliveryBy;
                newdelivery.DeliveryDate = delivery.DeliveryDate != null?DateTime.Parse(delivery.DeliveryDate) : DateTime.Now;

                newdelivery.DocumentReceivedDate = delivery.DocumentReceivedDate != null?DateTime.Parse(delivery.DocumentReceivedDate) : DateTime.Now;

                if (dispatch != null)
                {
                    if (dispatch.DriverName != null)
                    {
                        newdelivery.DriverName = dispatch.DriverName;
                    }
                    //newDistribution.FDP = dispatch.FDP;
                    if (dispatch.FDPID != null)
                    {
                        newdelivery.FDPID = int.Parse(dispatch.FDPID.ToString());
                    }
                    //newDistribution.Hub = dispatch.Hub;
                    newdelivery.HubID           = dispatch.HubID;
                    newdelivery.InvoiceNo       = dispatch.GIN;
                    newdelivery.PlateNoPrimary  = dispatch.PlateNo_Prime;
                    newdelivery.PlateNoTrailler = dispatch.PlateNo_Trailer;
                    newdelivery.RequisitionNo   = dispatch.RequisitionNo;
                    newdelivery.TransporterID   = dispatch.TransporterID;
                }
                //_deliveryService.AddDelivery(newdelivery);

                deliveryDetail.DeliveryDetailID = Guid.NewGuid();
                deliveryDetail.CommodityID      = delivery.CommodityID;
                deliveryDetail.UnitID           = delivery.UnitID;
                deliveryDetail.SentQuantity     = delivery.SentQuantity;
                deliveryDetail.ReceivedQuantity = delivery.ReceivedQuantity;
                //deliveryDetail.Delivery.DeliveryBy = _commodityService.FindById(delivery.CommodityID);
                //deliveryDetail.Unit = _unitService.FindById(delivery.UnitID);
                newdelivery.DeliveryDetails = new List <DeliveryDetail> {
                    deliveryDetail
                };
                _deliveryService.AddDelivery(newdelivery);

                var transporterPaymentRequest = new TransporterPaymentRequest();
                transporterPaymentRequest.ReferenceNo = "PR-" + delivery.ReceivingNumber;
                var firstOrDefault = _transportOrderService.Get(t => t.TransporterID == newdelivery.TransporterID && t.StatusID == 3).FirstOrDefault();
                if (firstOrDefault != null)
                {
                    transporterPaymentRequest.TransportOrderID = firstOrDefault.TransportOrderID;
                }
                transporterPaymentRequest.DeliveryID   = newdelivery.DeliveryID;
                transporterPaymentRequest.ShortageBirr = (decimal)0.00;
                int BP_PR = _applicationSettingService.getPaymentRequestWorkflow();

                if (BP_PR != 0)
                {
                    BusinessProcessState createdstate = new BusinessProcessState
                    {
                        DatePerformed = DateTime.Now,
                        PerformedBy   = "System",
                        Comment       = "Created workflow for Payment Request"
                    };
                    //_PaymentRequestservice.Create(request);

                    BusinessProcess bp = _businessProcessService.CreateBusinessProcess(BP_PR, transporterPaymentRequest.TransporterPaymentRequestID,
                                                                                       "PaymentRequest", createdstate);
                    transporterPaymentRequest.BusinessProcessID = bp.BusinessProcessID;
                    transporterPaymentRequest.RequestedDate     = DateTime.Now;
                    _transporterPaymentRequestService.AddTransporterPaymentRequest(transporterPaymentRequest);
                }
                ViewBag.ErrorMessage1 = "The workflow assosiated with Payment Request doesnot exist.";
                ViewBag.ErrorMessage2 = "Please make sure the workflow is created and configured.";
            }
            var deliveryViewModel = new GRNViewModel();

            if (newdelivery != null && deliveryDetail != null)
            {
                var deliveryWithFDP = _deliveryService.Get(t => t.DeliveryID == newdelivery.DeliveryID, null, "FDP").FirstOrDefault();
                deliveryViewModel = BindDeliveryViewModel(deliveryWithFDP);
                var deliveryDetailWithComodityUnit = _deliveryDetailService.Get(t => t.DeliveryDetailID == deliveryDetail.DeliveryDetailID, null, "Commodity,Unit").FirstOrDefault();
                if (deliveryDetailWithComodityUnit != null)
                {
                    deliveryViewModel.DeliveryID       = deliveryDetailWithComodityUnit.DeliveryID;
                    deliveryViewModel.CommodityID      = deliveryDetailWithComodityUnit.CommodityID;
                    deliveryViewModel.UnitID           = deliveryDetailWithComodityUnit.UnitID;
                    deliveryViewModel.SentQuantity     = deliveryDetailWithComodityUnit.SentQuantity;
                    deliveryViewModel.ReceivedQuantity = deliveryDetailWithComodityUnit.ReceivedQuantity;
                    deliveryViewModel.Commodity        = deliveryDetailWithComodityUnit.Commodity.Name;
                    deliveryViewModel.Unit             = deliveryDetailWithComodityUnit.Unit.Name;
                }
            }

            return(Json(deliveryViewModel, JsonRequestBehavior.AllowGet));
            //return View("Dispatches", distributionViewModel);
        }