Ejemplo n.º 1
0
 public WorkFlowController(IUnitOfWork unitOfWork, WorkFlowService workFlowService)
 {
     _unitOfWork            = unitOfWork;
     _workFlowService       = workFlowService;
     _formService           = new FormService(_unitOfWork);
     _decisionMethodService = new DecisionMethodService(_unitOfWork);
 }
Ejemplo n.º 2
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 IList <object> GetEditableFields(long?documentID)
        {
            IList <object> editableFields = new List <object>();

            if (documentID.HasValue) // Check whether new flag then return the default editableFields.
            {
                SS.Standard.WorkFlow.DTO.WorkFlow workFlow = WorkFlowQueryProvider.WorkFlowQuery.GetWorkFlowByDocumentID(documentID.Value);
                if (workFlow != null)
                {
                    return(WorkFlowService.GetEditableFields(workFlow.WorkFlowID));
                }
            }
            editableFields.Add(FixedAdvanceFieldGroup.PaymentType);
            editableFields.Add(FixedAdvanceFieldGroup.Initiator);
            editableFields.Add(FixedAdvanceFieldGroup.Attachment);
            editableFields.Add(FixedAdvanceFieldGroup.Memo);
            editableFields.Add(FixedAdvanceFieldGroup.Other);
            editableFields.Add(FixedAdvanceFieldGroup.RequestDate);
            editableFields.Add(FixedAdvanceFieldGroup.ServiceTeam);
            editableFields.Add(FixedAdvanceFieldGroup.BuActor);
            editableFields.Add(FixedAdvanceFieldGroup.CounterCashier);
            editableFields.Add(FixedAdvanceFieldGroup.Subject);
            editableFields.Add(FixedAdvanceFieldGroup.Company);
            return(editableFields);
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
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());
            }
        }
Ejemplo n.º 6
0
        public IList <object> GetVisibleFields(long?documentID)
        {
            IList <object> visibleFields = new List <object>();

            if (!documentID.HasValue) // Check whether new flag then return the default editableFields.
            {
                visibleFields.Add(AdvanceFieldGroup.Subject);
                visibleFields.Add(AdvanceFieldGroup.PaymentType);
                visibleFields.Add(AdvanceFieldGroup.RequestDateOfAdvance);
                visibleFields.Add(AdvanceFieldGroup.RequestDateOfRemittance);
                visibleFields.Add(AdvanceFieldGroup.Reason);
                visibleFields.Add(AdvanceFieldGroup.Initiator);
                visibleFields.Add(AdvanceFieldGroup.Attachment);
                visibleFields.Add(AdvanceFieldGroup.Memo);
                //visibleFields.Add(AdvanceFieldGroup.ExchangeRateForPerDiemCalculation);
                visibleFields.Add(AdvanceFieldGroup.Other);
                visibleFields.Add(AdvanceFieldGroup.AdvanceReferTA);
                visibleFields.Add(AdvanceFieldGroup.Company);
                visibleFields.Add(AdvanceFieldGroup.ServiceTeam);
                visibleFields.Add(AdvanceFieldGroup.BuActor);
                visibleFields.Add(AdvanceFieldGroup.CounterCashier);
                visibleFields.Add(AdvanceFieldGroup.DomesticAmountTHB);
                visibleFields.Add(AdvanceFieldGroup.ArrivalDate);
                visibleFields.Add(AdvanceFieldGroup.CurrencyAmount);
                visibleFields.Add(AdvanceFieldGroup.PaymentTypeFR);
                visibleFields.Add(AdvanceFieldGroup.CurrencyRepOffice);
            }
            else // Check whether view or edit flag then return editableFields from workflow state.
            {
                SS.Standard.WorkFlow.DTO.WorkFlow workFlow = WorkFlowQueryProvider.WorkFlowQuery.GetWorkFlowByDocumentID(documentID.Value);
                visibleFields = WorkFlowService.GetVisibleFields(workFlow.WorkFlowID);
            }

            return(visibleFields);
        }
Ejemplo n.º 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string TokenCode = Request.QueryString["TokenCode"] == null ? string.Empty : Request.QueryString["TokenCode"].Trim();
            string From      = Request.QueryString["From"] == null ? string.Empty : Request.QueryString["From"].Trim();
            string Type      = Request.QueryString["Type"] == null ? string.Empty : Request.QueryString["Type"].Trim();
            int    eventID   = Request.QueryString["EventID"] == null ? -1 : Int32.Parse(Request.QueryString["EventID"].Trim());

            //1. SignIn by UserName (From)
            string userName = SS.SU.Query.QueryProvider.SuUserQuery.FindByIdentity(UIHelper.ParseLong(From)).UserName;

            UserEngine.SignIn(userName);

            this.Title       = "Approval via Email By :" + userName;
            this.ProgramCode = "ApprovalViaEmail";
            UserAccount.CurrentProgramCode = this.ProgramCode;

            //1.1 If cannot SignIn , we not need to call workflow
            if (UserAccount.Authentication)
            {
                try
                {
                    WorkFlowResponseToken token = WorkFlowResponseTokenQuery.GetByTokenCode_WorkFlowStateEventID(TokenCode, eventID);


                    if (token == null)
                    {
                        Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
                        errors.AddError("General.Error", new Spring.Validation.ErrorMessage(
                                            GetMessage("InvalidTokenID")
                                            ));
                        throw new ServiceValidationException(errors);
                    }
                    else
                    {
                        string successText = GetMessage("ApproveRejectResultMessage",
                                                        token.WorkFlow.Document.DocumentNo,
                                                        WorkFlowStateEventQuery.GetTranslatedEventName(
                                                            token.WorkFlowStateEvent.WorkFlowStateEventID,
                                                            UserAccount.CurrentLanguageID));

                        WorkFlowService.NotifyEventFromToken(TokenCode, UserAccount.UserID, eventID, TokenType.Email);

                        ctlResult.Text = successText;
                    }
                }
                catch (ServiceValidationException ex)
                {
                    this.ValidationErrors.MergeErrors(ex.ValidationErrors);
                }
                finally
                {
                    UserEngine.SignOut(UserAccount.UserID);
                }
            }
            else
            {
                this.ValidationErrors.AddError("General.Error",
                                               new Spring.Validation.ErrorMessage("ApproveRejectResultLoginFail"));
            }
        }
        public IList <object> GetVisibleFields(long?documentID)
        {
            IList <object> visibleFields = new List <object>();

            if (!documentID.HasValue) // Check whether new flag then return the default editableFields.
            {
                visibleFields.Add(FixedAdvanceFieldGroup.PaymentType);
                visibleFields.Add(FixedAdvanceFieldGroup.Initiator);
                visibleFields.Add(FixedAdvanceFieldGroup.Attachment);
                visibleFields.Add(FixedAdvanceFieldGroup.Memo);
                visibleFields.Add(FixedAdvanceFieldGroup.Other);
                visibleFields.Add(FixedAdvanceFieldGroup.RequestDate);
                visibleFields.Add(FixedAdvanceFieldGroup.Company);
                visibleFields.Add(FixedAdvanceFieldGroup.ServiceTeam);
                visibleFields.Add(FixedAdvanceFieldGroup.BuActor);
                visibleFields.Add(FixedAdvanceFieldGroup.CounterCashier);
                visibleFields.Add(FixedAdvanceFieldGroup.Subject);
            }
            else // Check whether view or edit flag then return editableFields from workflow state.
            {
                SS.Standard.WorkFlow.DTO.WorkFlow workFlow = WorkFlowQueryProvider.WorkFlowQuery.GetWorkFlowByDocumentID(documentID.Value);
                visibleFields = WorkFlowService.GetVisibleFields(workFlow.WorkFlowID);
            }

            return(visibleFields);
        }
Ejemplo n.º 9
0
        protected ActionResult MoveNext(string successTip, string failTip,
                                        object moveParam, Func <string, bool> doIfSuccessful, string reason = "未填写", RelationMoveParam relation = null)
        {
            var workFlowInstanceId = Request["id"]; //var uid = Request["uid"];
            var param = new WorkFlowParams(workFlowInstanceId, DataContext.UserId, moveParam, doIfSuccessful, DataContext.UserId, reason, relation);

            return(WorkFlowService.MoveNext(param) ?
                   Json(State.SuccessAutoClose, successTip) : Json(State.Fail, failTip));;
        }
Ejemplo n.º 10
0
        public IList <object> GetEditableFields(long?documentID)
        {
            IList <object> editableFields = new List <object>();

            if (documentID.HasValue) // Check whether new flag then return the default editableFields.
            {
                SS.Standard.WorkFlow.DTO.WorkFlow workFlow = WorkFlowQueryProvider.WorkFlowQuery.GetWorkFlowByDocumentID(documentID.Value);
                if (workFlow != null)
                {
                    return(WorkFlowService.GetEditableFields(workFlow.WorkFlowID));
                }
            }
            editableFields.Add(RemittanceFieldGroup.All);
            editableFields.Add(RemittanceFieldGroup.Company);
            editableFields.Add(RemittanceFieldGroup.FullClearing);
            return(editableFields);
        }
Ejemplo n.º 11
0
        public IList <object> GetEditableFields(long?documentID)
        {
            IList <object> editableFields = new List <object>();

            if (!documentID.HasValue) // Check whether new flag then return the default editableFields.
            {
                editableFields.Add(MPAFieldGroup.All);
                editableFields.Add(MPAFieldGroup.Company);
                editableFields.Add(MPAFieldGroup.Initiator);
            }
            else // Check whether view or edit flag then return editableFields from workflow state.
            {
                SS.Standard.WorkFlow.DTO.WorkFlow workFlow = WorkFlowQueryProvider.WorkFlowQuery.GetWorkFlowByDocumentID(documentID.Value);
                editableFields = WorkFlowService.GetEditableFields(workFlow.WorkFlowID);
            }

            return(editableFields);
        }
Ejemplo n.º 12
0
        public IList <object> GetVisibleFields(long?documentID)
        {
            IList <object> visibleFields = new List <object>();

            if (documentID.HasValue) // Check whether new flag then return the default editableFields.
            {
                SS.Standard.WorkFlow.DTO.WorkFlow workFlow = WorkFlowQueryProvider.WorkFlowQuery.GetWorkFlowByDocumentID(documentID.Value);
                if (workFlow != null)
                {
                    return(WorkFlowService.GetVisibleFields(workFlow.WorkFlowID));
                }
            }

            //Because of Remiitance Document does not has Hold State ,
            //And It don't have spacial group , then return group All
            visibleFields.Add(RemittanceFieldGroup.All);
            visibleFields.Add(RemittanceFieldGroup.Company);
            visibleFields.Add(RemittanceFieldGroup.FullClearing);

            return(visibleFields);
        }
Ejemplo n.º 13
0
        private static void Main()
        {
            DIContainer.SetupInjector();
            WorkFlowService objWFservice = DIContainer.GetWorkFlowServiceInstance();

            try
            {
                objWFservice.logger.Trace("STARTED: Main");
                if (objWFservice.StartWorkFlowService())
                {
                    objWFservice.logger.Trace("SUCCESS: Application succcesfully executed with 0 error.");
                    objWFservice.logger.Trace("ENDED:   Main");
                }
                else
                {
                    objWFservice.logger.Trace("ERROR:   Application aborted with 1 error.");
                }
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                objWFservice.logger.Error(ex, ex.TargetSite.Name);
            }
        }
Ejemplo n.º 14
0
        public long SaveToDatabase()
        {
            // Save all table in dataset to database and clear transaction.
            long caDocumentID = CADocumentService.SaveCADocument(this.TransactionID, this.CADocumentID);
            // Get ta document
            CADocument caDocument = ScgeAccountingQueryProvider.CADocumentQuery.FindProxyByIdentity(caDocumentID);

            TransactionService.Commit(this.TransactionID);

            #region Work Flow
            long workFlowID = 0;

            // Save New WorkFlow.
            if ((caDocument != null) && (caDocument.DocumentID != null))
            {
                SCGDocument document = ScgeAccountingQueryProvider.SCGDocumentQuery.FindProxyByIdentity(caDocument.DocumentID.DocumentID);
                SS.Standard.WorkFlow.DTO.WorkFlow workFlow = new SS.Standard.WorkFlow.DTO.WorkFlow();
                // WorkFlow Type ID = 9 is CA Workflow Image. wait confirm where to store this data.
                workFlow.WorkFlowType = new SS.Standard.WorkFlow.DTO.WorkFlowType(WorkFlowTypeID.CAWorkFlow);
                // WorkFlow Type ID = 9 is CA Workflow Image. wait confirm where to store this data.
                workFlow.CurrentState = WorkFlowQueryProvider.WorkFlowStateQuery.FindWorkFlowStateIDByTypeIDAndStateName(WorkFlowTypeID.CAWorkFlow, WorkFlowStateFlag.Draft);
                workFlow.Description  = null;
                workFlow.Document     = document;
                workFlow.Active       = true;
                workFlow.CreBy        = document.CreBy;
                workFlow.CreDate      = document.CreDate;
                workFlow.UpdBy        = document.UpdBy;
                workFlow.UpdDate      = document.UpdDate;
                workFlow.UpdPgm       = document.UpdPgm;

                workFlowID = WorkFlowService.CheckExistAndAddNew(workFlow);
            }
            #endregion Work Flow

            return(workFlowID);
        }
Ejemplo n.º 15
0
        private bool CallWorkFlow(string TokenCode, string approveFlag, string From)
        {
            //1.1 If cannot SignIn , we not need to call workflow



            string docNo = "";

            if (UserAccount != null && UserAccount.Authentication)
            {
                try
                {
                    IList <WorkFlowResponseToken> responseTokens = WorkFlowQueryProvider.WorkFlowResponseTokenQuery.FindByTokenCode(TokenCode);

                    int?eventID = null;

                    foreach (WorkFlowResponseToken responseToken in responseTokens)
                    {
                        if (responseToken.WorkFlowStateEvent.Name.ToLower() == approveFlag.ToLower())
                        {
                            eventID = responseToken.WorkFlowStateEvent.WorkFlowStateEventID;
                            break;
                        }
                        else if (responseToken.WorkFlowStateEvent.Name.ToLower() == approveFlag.ToLower())
                        {
                            eventID = responseToken.WorkFlowStateEvent.WorkFlowStateEventID;
                            break;
                        }
                    }


                    WorkFlowResponseToken token = WorkFlowResponseTokenQuery.GetByTokenCode_WorkFlowStateEventID(TokenCode, eventID.Value);

                    if (token == null)
                    {
                        Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
                        string error = new Spring.Validation.ErrorMessage("InvalidTokenID").ToString();
                        //errors.AddError("General.Error", new Spring.Validation.ErrorMessage("InvalidTokenID"));

                        //send sms notify error
                        SCGSMSService.SendSMS09(error, TokenCode, From, true);

                        //throw new ServiceValidationException(errors);
                    }
                    else
                    {
                        docNo = token.WorkFlow.Document.DocumentNo;
                        string successText = GetMessage("ApproveRejectResultMessage",
                                                        token.WorkFlow.Document.DocumentNo,
                                                        WorkFlowStateEventQuery.GetTranslatedEventName(
                                                            token.WorkFlowStateEvent.WorkFlowStateEventID,
                                                            UserAccount.CurrentLanguageID));

                        WorkFlowService.NotifyEventFromSMSToken(TokenCode, UserAccount.UserID, eventID.Value, TokenType.SMS);


                        //send sms notify approve comleted user
                        SCGSMSService.SendSMS05(TokenCode, UserAccount.UserID, true, approveFlag);
                    }
                }
                catch (ServiceValidationException ex)
                {
                    this.ValidationErrors.MergeErrors(ex.ValidationErrors);

                    string error = ex.ValidationErrors.ToString();
                    //send sms notify approve comleted user
                    //SCGSMSService.SendSMS04(TokenCode + " " + approveFlag + " ", UserAccount.UserID, true);
                    //send sms notify error
                    SCGSMSService.SendSMS09(error, TokenCode, From, true);
                }
                catch (Exception exm)
                {
                    string error = exm.Message.ToString();
                    //send sms notify approve comleted user
                    //SCGSMSService.SendSMS04(TokenCode + " " + approveFlag + " ", UserAccount.UserID, true);
                    //send sms notify error
                    SCGSMSService.SendSMS09(error, TokenCode, From, true);
                }
                finally
                {
                    UserEngine.SignOut(UserAccount.UserID);
                }
            }
            else
            {
                this.ValidationErrors.AddError("General.Error",
                                               new Spring.Validation.ErrorMessage("ApproveRejectResultLoginFail"));

                //send sms notify approve comleted user
                SCGSMSService.SendSMS06(TokenCode, UserAccount.UserID, true);
            }
            return(true);
        }
        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();
            }
        }
Ejemplo n.º 17
0
        private static void Main(string[] args)
        {
            DIContainer.SetupInjector();
            WorkFlowService objWFservice = DIContainer.GetWorkFlowServiceInstance();

            try
            {
                objWFservice.logger.Trace("STARTED: Main");
                if (args.Length >= 4)
                {
                    _inputFile         = args[0];
                    _inputRecordLength = args[1];
                    _dataCenter        = args[2];
                    _trackingId        = args[3];

                    objWFservice.logger.Trace("Input file name: " + _inputFile + "");
                    objWFservice.logger.Trace("Input record length: " + _inputRecordLength);
                    objWFservice.logger.Trace("Data Center:  " + _dataCenter);
                    objWFservice.logger.Trace("Tracking Id:  " + _trackingId);

                    if (!File.Exists(_inputFile))
                    {
                        objWFservice.logger.Trace($"Input file does not exist: {_inputFile}.");
                        throw new FileNotFoundException($"Carrington Mortgage: File not found at location = {_inputFile}");
                    }
                    if (objWFservice.StartWorkFlowService(_inputFile, _trackingId))
                    {
                        //  objWFservice.logger.Trace("SUCCESS: Application succcesfully executed with 0 error.");
                        objWFservice.logger.Trace("ENDED:   Main");
                    }
                    else
                    {
                        objWFservice.logger.Trace("ERROR:   Application aborted with 1 error.");
                    }
                }
                else
                {
                    objWFservice.logger.Trace("Invalid number of parameters supplied.");
                }
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                objWFservice.logger.Error(ex, ex.TargetSite.Name);
            }

            //  DIContainer.SetupInjector();
            //  WorkFlowExpert objWFservice = DIContainer.GetWorkFlowServiceInstance();


            //try
            //{
            //    objWFservice.logger.Trace("STARTED: Main");
            //    if (args.Length >= 4)
            //    {
            //        _inputFile = args[0];
            //        _inputRecordLength = args[1];
            //        _dataCenter = args[2];
            //        _trackingId = args[3];

            //        bool status = objWFservice.FileReadingProcess(_inputFile, _trackingId);

            //        Logger.Trace("Input file name: " + _inputFile + "");
            //        Logger.Trace("Input record length: " + _inputRecordLength);
            //        Logger.Trace("Data Center: {0}" + _dataCenter);
            //        Logger.Trace("Tracking Id: {0}" + _trackingId);

            //        if (!File.Exists(_inputFile))
            //        {
            //            objWFservice.logger.Trace($"Input file does not exist: {_inputFile}.");
            //            throw new FileNotFoundException($"FirstTech_HELOC_Mortgage: file {_inputFile}");
            //        }
            //    }
            //    else
            //    {
            //        objWFservice.logger.Trace("Invalid number of parameters supplied.");
            //    }
            //}
            //catch (Exception ex)
            //{
            //    //  objWFservice.logger.Error(ex, ex.TargetSite.Name);
            //}
        }
Ejemplo n.º 18
0
        private bool CallWorkFlow(string TokenCode, string approveFlag, string From)
        {
            //1.1 If cannot SignIn , we not need to call workflow

            IWorkFlowResponseTokenQuery WorkFlowResponseTokenQuery = (IWorkFlowResponseTokenQuery)ContextRegistry.GetContext().GetObject("WorkFlowResponseTokenQuery");

            string docNo = "";

            if (UserAccount != null && UserAccount.Authentication)
            {
                try
                {
                    IList <WorkFlowResponseToken> responseTokens = WorkFlowResponseTokenQuery.FindByTokenCode(TokenCode);

                    int?eventID = null;

                    foreach (WorkFlowResponseToken responseToken in responseTokens)
                    {
                        if (responseToken.WorkFlowStateEvent.Name.ToLower() == approveFlag.ToLower())
                        {
                            eventID = responseToken.WorkFlowStateEvent.WorkFlowStateEventID;
                            break;
                        }
                        else if (responseToken.WorkFlowStateEvent.Name.ToLower() == approveFlag.ToLower())
                        {
                            eventID = responseToken.WorkFlowStateEvent.WorkFlowStateEventID;
                            break;
                        }
                    }


                    WorkFlowResponseToken token = WorkFlowResponseTokenQuery.GetByTokenCode_WorkFlowStateEventID(TokenCode, eventID.Value);

                    if (token == null)
                    {
                        Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
                        string error = new Spring.Validation.ErrorMessage("InvalidTokenID").ToString();
                        //send sms notify error
                        SCGSMSService.SendSMS09(error, TokenCode, From, true);
                    }
                    else
                    {
                        docNo = token.WorkFlow.Document.DocumentNo;

                        WorkFlowService = (IWorkFlowService)ContextRegistry.GetContext().GetObject("WorkFlowService");

                        WorkFlowService.NotifyEventFromSMSToken(TokenCode, UserAccount.UserID, eventID.Value, TokenType.SMS);


                        //send sms notify approve comleted user
                        SCGSMSService.SendSMS05(TokenCode, UserAccount.UserID, true, approveFlag);
                    }
                }
                catch (ServiceValidationException ex)
                {
                    string error = ex.ValidationErrors.ToString();
                    //send sms notify error
                    SCGSMSService.SendSMS09(error, TokenCode, From, true);
                }
                catch (Exception exm)
                {
                    string error = exm.Message.ToString();
                    //send sms notify error
                    SCGSMSService.SendSMS09(error, TokenCode, From, true);
                }
                finally
                {
                    UserEngine.SignOut(UserAccount.UserID);
                }
            }
            else
            {
                //send sms notify approve comleted user
                SCGSMSService.SendSMS06(TokenCode, UserAccount.UserID, true);
            }
            return(true);
        }
Ejemplo n.º 19
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType     = "text/plain";
            context.Response.Buffer          = true;
            context.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1.0);
            context.Response.AddHeader("pragma", "no-cache");
            context.Response.AddHeader("cache-control", "");
            context.Response.CacheControl = "no-cache";

            string Action       = context.Request["action"];
            string WorkInfoId   = context.Request["WorkInfoId"];
            string ContractId   = context.Request["ContractId"];
            string ContractType = context.Request["ContractType"];
            string HUID         = context.Request["HUID"];

            Contract_IDAO cidal = new Contract_Dal();

            if (RequestSession.GetSessionUser() == null)
            {
                context.Response.Write("");
                context.Response.End();
            }
            if (Action != null)
            {
                string ACT = Action.ToUpper();
                if (ACT == "SUBMIT")
                {
                    //WorkFlowService flowService = new WorkFlowService();
                    //context.Response.Write(flowService.CreateWorkFlow(ContractId).ToUpper());
                    //context.Response.End();
                    //判断是否已经存在审批记录

                    string UID     = cidal.GetUIDbyHUID(HUID);
                    bool   isexist = cidal.IsExistApprove(UID);
                    if (isexist)
                    {
                        context.Response.Write("EXIST");
                        context.Response.End();
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(UID))
                        {
                            WorkFlowService flowService = new WorkFlowService();
                            context.Response.Write(flowService.CreateWorkFlow(UID).ToUpper());
                            context.Response.End();
                        }
                        else
                        {
                            context.Response.Write("false");
                            context.Response.End();
                        }
                    }
                }
            }
            else
            {
                context.Response.Write("false");
                context.Response.End();
            }
        }
Ejemplo n.º 20
0
        protected void btn_addContract_Click(object sender, EventArgs e)
        {
            WorkFlowService flowService = new WorkFlowService();

            flowService.CreateWorkFlow(Guid.NewGuid().ToString(), "48f3889c-af8d-401f-ada2-c383031af92d", 10000);
        }
 public WorkFlowProcessController(WorkFlowProcessService workFlowProcessService)
 {
     _workFlowProcessService = workFlowProcessService;
     _workFlowService        = DependencyResolver.Current.GetService <WorkFlowService>();
 }