Esempio n. 1
0
        protected void ctlConfirmPopup_OnNotifyPopup(object sender, PopUpReturnArgs args)
        {
            int intWorkFlowStateEventID = 0;

            try
            {
                if (args.Type == PopUpReturnType.OK)
                {
                    WorkFlowStateEvent workFlowStateEvent = WorkFlowQueryProvider.WorkFlowStateEventQuery.GetSendDraftStateEvent(WorkFlowTypeID.FixedAdvanceWorkFlow);
                    intWorkFlowStateEventID = workFlowStateEvent.WorkFlowStateEventID;
                    object eventData = new SubmitResponse(intWorkFlowStateEventID);

                    WorkFlowService.NotifyEvent(this.WorkflowID, workFlowStateEvent.Name, eventData);
                    Response.Redirect("SubmitResult.aspx?wfid=" + this.WorkflowID);
                }
            }
            catch (ServiceValidationException ex)
            {
                this.ValidationErrors.MergeErrors(ex.ValidationErrors);
                ctlUpdatePanelValidation.Update();
            }

            if (this.ValidationErrors.IsEmpty)
            {
                Response.Redirect("DocumentView.aspx?wfid=" + this.WorkflowID.ToString());
            }
        }
        private void WorkFlowApprove(string DocKind)
        {
            string wfid = System.Web.HttpContext.Current.Request.QueryString["wfid"].ToString();

            if (DocKind == DocumentKind.Advance.ToString())
            {
                IList <WorkFlowStateEvent> workFlowState = WorkFlowQueryProvider.WorkFlowStateEventQuery.FindWorkFlowStateEvent(WorkFlowEventNameConst.Approve, WorkFlowStatEventNameConst.WaitApproveVerify, WorkFlowTypeName.Advance);
                object eventData = new SubmitResponse(workFlowState[0].WorkFlowStateEventID);
                WorkFlowService.NotifyEvent(int.Parse(wfid), WorkFlowEventNameConst.Approve, eventData);
            }
            else if (DocKind == DocumentKind.Remittance.ToString())
            {
                IList <WorkFlowStateEvent> workFlowState = WorkFlowQueryProvider.WorkFlowStateEventQuery.FindWorkFlowStateEvent(WorkFlowEventNameConst.Approve, WorkFlowStatEventNameConst.WaitApproveRemittance, WorkFlowTypeName.Remittance);
                object eventData = new SubmitResponse(workFlowState[0].WorkFlowStateEventID);
                WorkFlowService.NotifyEvent(int.Parse(wfid), WorkFlowEventNameConst.Approve, eventData);
            }
            else if (DocKind == DocumentKind.Expense.ToString())
            {
                IList <WorkFlowStateEvent> workFlowState = WorkFlowQueryProvider.WorkFlowStateEventQuery.FindWorkFlowStateEvent(WorkFlowEventNameConst.Approve, WorkFlowStatEventNameConst.WaitApproveVerify, WorkFlowTypeName.Expense);
                object eventData = new SubmitResponse(workFlowState[0].WorkFlowStateEventID);
                WorkFlowService.NotifyEvent(int.Parse(wfid), WorkFlowEventNameConst.Approve, eventData);
            }
            else if (DocKind == DocumentKind.ExpenseRemittance.ToString())
            {
                IList <WorkFlowStateEvent> workFlowState = WorkFlowQueryProvider.WorkFlowStateEventQuery.FindWorkFlowStateEvent(WorkFlowEventNameConst.Pay, WorkFlowStatEventNameConst.WaitRemittance, WorkFlowTypeName.Expense);
                object eventData = new SubmitResponse(workFlowState[0].WorkFlowStateEventID);
                WorkFlowService.NotifyEvent(int.Parse(wfid), WorkFlowEventNameConst.Pay, eventData);
            }
        }
Esempio n. 3
0
        protected void ctlConfirmPopup_OnNotifyPopup(object sender, PopUpReturnArgs args)
        {
            try
            {
                if (args.Type == PopUpReturnType.OK)
                {
                    WorkFlowStateEvent workFlowStateEvent = WorkFlowQueryProvider.WorkFlowStateEventQuery.GetSendDraftStateEvent(WorkFlowTypeID.RemittanceWorkFlow);
                    int    intWorkFlowStateEventID        = workFlowStateEvent.WorkFlowStateEventID;
                    object eventData = new SubmitResponse(intWorkFlowStateEventID);

                    WorkFlowService.NotifyEvent(this.WorkFlowID, workFlowStateEvent.Name, eventData);
                    Response.Redirect("SubmitResult.aspx?wfid=" + this.WorkFlowID);
                }
            }
            catch (ServiceValidationException ex)
            {
                this.ValidationErrors.MergeErrors(ex.ValidationErrors);
                ctlUpdatePanelValidation.Update();
            }

            // if No error then redirect to SubmitResult.aspx
            if (this.ValidationErrors.IsEmpty)
            {
                //Page.RegisterStartupScript("comfirm", "<script>return confirm('Do you want to send your document to WorkFlow')</script>");
                Response.Redirect("DocumentView.aspx?wfid=" + this.WorkFlowID.ToString());
            }
        }
        public void MultipleApproveVerify()
        {
            IList <long>               workflowList            = GetWorkflowIDForMultipleApprove();
            ApproveVerifyStatus        approveVerifyStatus     = null;
            List <ApproveVerifyStatus> approveVerifyStatusList = new List <ApproveVerifyStatus>();

            foreach (long workflowId in workflowList)
            {
                try
                {
                    SS.Standard.WorkFlow.DTO.WorkFlow workFlow = WorkFlowQueryProvider.WorkFlowQuery.FindByIdentity(workflowId);
                    SCGDocument document = ScgeAccountingQueryProvider.SCGDocumentQuery.GetSCGDocumentByDocumentID(workFlow.Document.DocumentID);
                    approveVerifyStatus            = new ApproveVerifyStatus();
                    approveVerifyStatus.DocumentNo = document.DocumentNo;
                    approveVerifyStatus.Subject    = document.Subject;

                    int workFlowStateEventID = ScgeAccountingQueryProvider.SCGDocumentQuery.GetWorkStateEvent(workFlow.CurrentState.WorkFlowStateID, WorkFlowEventNameConst.Approve);
                    if (workFlow.WorkFlowType.WorkFlowTypeID == WorkFlowTypeID.AdvanceWorkFlowType)
                    {
                        AvAdvanceDocument advDocument = ScgeAccountingQueryProvider.AvAdvanceDocumentQuery.GetAvAdvanceByDocumentID(workFlow.Document.DocumentID);
                        approveVerifyStatus.Amount = advDocument.Amount;
                        IList <WorkFlowStateEvent> workFlowState = WorkFlowQueryProvider.WorkFlowStateEventQuery.FindWorkFlowStateEvent(WorkFlowEventNameConst.Approve, WorkFlowStatEventNameConst.WaitApproveVerify, WorkFlowTypeName.Advance);
                        object eventData = new SubmitResponse(workFlowState[0].WorkFlowStateEventID);
                        WorkFlowService.NotifyEvent(workflowId, WorkFlowEventNameConst.Approve, eventData);
                    }
                    else if (workFlow.WorkFlowType.WorkFlowTypeID == WorkFlowTypeID.ExpenseWorkFlow)
                    {
                        FnExpenseDocument expDocument = ScgeAccountingQueryProvider.FnExpenseDocumentQuery.GetExpenseDocumentByDocumentID(workFlow.Document.DocumentID);
                        approveVerifyStatus.Amount = expDocument.DifferenceAmount;

                        IList <WorkFlowStateEvent> workFlowState = WorkFlowQueryProvider.WorkFlowStateEventQuery.FindWorkFlowStateEvent(WorkFlowEventNameConst.Approve, WorkFlowStatEventNameConst.WaitApproveVerify, WorkFlowTypeName.Expense);
                        object eventData = new SubmitResponse(workFlowState[0].WorkFlowStateEventID);
                        WorkFlowService.NotifyEvent(workflowId, WorkFlowEventNameConst.Approve, eventData);
                    }
                    else if (workFlow.WorkFlowType.WorkFlowTypeID == WorkFlowTypeID.RemittanceWorkFlow)
                    {
                        FnRemittance rmtDocument = ScgeAccountingQueryProvider.FnRemittanceQuery.GetFnRemittanceByDocumentID(workFlow.Document.DocumentID);
                        approveVerifyStatus.Amount = rmtDocument.TotalAmount;

                        IList <WorkFlowStateEvent> workFlowState = WorkFlowQueryProvider.WorkFlowStateEventQuery.FindWorkFlowStateEvent(WorkFlowEventNameConst.Approve, WorkFlowStatEventNameConst.WaitApproveRemittance, WorkFlowTypeName.Remittance);
                        object eventData = new SubmitResponse(workFlowState[0].WorkFlowStateEventID);
                        WorkFlowService.NotifyEvent(workflowId, WorkFlowEventNameConst.Approve, eventData);
                    }

                    approveVerifyStatus.Status = "Success";
                }
                catch (ServiceValidationException ex)
                {
                    approveVerifyStatus.Status = "Error";
                    approveVerifyStatus.Reason = new List <string>();
                    foreach (Spring.Validation.ErrorMessage errorMsg in ex.ValidationErrors.GetErrors("WorkFlow.Error"))
                    {
                        approveVerifyStatus.Reason.Add(errorMsg.Id);
                    }
                    //ctlApproveStatusSummary.ValidationErrors.MergeErrors(ex.ValidationErrors);
                }
                approveVerifyStatusList.Add(approveVerifyStatus);
            }

            if (approveVerifyStatusList.Count > 0)
            {
                ctlApproveStatusSummary.DataList = approveVerifyStatusList.OrderBy(x => x.Status).ThenBy(x => x.DocumentNo).ToList();
                ctlApproveStatusSummary.BindGridView();
                ctlApproveResultSummaryModalPopupExtender.Show();
            }
        }