public static AddMemberTransaction CreateTransaction(BizPortalSessionContext context, int functionId, Member mTarget, TransitionEventCode eventName, ref string message, ref int warningCount, bool approval) { string functionName = ""; string lange = context.CurrentLanguage.Code; using (ITransaction tx = context.PersistenceSession.BeginTransaction()) { AddMemberTransaction transactionMember = null; try { if (mTarget.IsNotFinalized) { warningCount++; message = Messages.Genaral.TransactionApproved.Format(lange); } if (warningCount == 0) { MaintenanceWorkflow fw = GetFunctionMaintenanceWorkflow(context.User, functionId); functionName = Messages.Member.AddMember.Format(lange, mTarget.MemberOrganization.CurrentName.Code); if (fw.MemberFunction == null) { warningCount++; message = Messages.Genaral.IsNotMemberFunction.Format(context.CurrentLanguage.Code); } BizPortalFunction function = fw.MemberFunction.Function; transactionMember = new AddMemberTransaction(context, fw, DateTime.Now, context.Member, mTarget); transactionMember.Transit(context, fw, functionName, eventName); transactionMember.Persist(context); tx.Commit(); if (approval) { message = String.Format("- {0} {1} {2} <br/>", functionName, Messages.Genaral.Success.Format(lange), Messages.Genaral.PendingApproval.Format(lange)); } else { message = String.Format("- {0} {1} <br/>", functionName, Messages.Genaral.Success.Format(lange)); } context.Log(functionId, 0, 0, Messages.Member.AddMember.Format(lange, ""), functionName); } } catch (Exception ex) { tx.Rollback(); warningCount++; message = ex.Message; context.Log((int)functionId, 0, 0, Messages.Member.AddMember.Format(lange, ""), functionName + ex.Message); } return(transactionMember); } }
public static void ApproveTransaction(BizPortalSessionContext context, string[] eventNameAndId, string remark, ref string message, ref int warningCount) { TransitionEventCode eventNameEng = convertThaiEventToEngEvent(eventNameAndId[0]); string eventNameThai = eventNameAndId[0]; string lange = context.CurrentLanguage.Code; string mark = ""; MaintenanceWorkflowOutstandingTransaction wat = null; bool isAddFunctionWorkflowTransaction = false; int functionID = 0; using (ITransaction tx = context.PersistenceSession.BeginTransaction()) { try { wat = new MaintenanceWorkflowOutstandingTransaction(context, eventNameAndId[1]); if (wat.Workflow.MemberFunction == null) { warningCount++; message = Messages.Genaral.IsNotMemberFunction.Format(context.CurrentLanguage.Code); } mark = wat.CurrentStateRemark; // is not use wat.CurrentStateRemark case bug user null if (ValidateReturnTransaction(wat, eventNameEng)) { warningCount++; message = Messages.Genaral.IsNotReturnTransaction.Format(context.CurrentLanguage.Code); } if (wat.Transaction is EnableUserTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is DisableUserTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateMemberUserTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMaintenanceWorkflowTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateMaintenanceWorkflowTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMemberGroupTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateMemberGroupTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMemberGroupUserTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateMemberGroupUserTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMemberUserTransaction && wat.Transaction.FunctionID != (int)BankMakerFunctionID.AddMemberUser && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ChangeConfigurationTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ChangeMemberProfileTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMultipleHolidaysTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateHoliday && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMultipleMemberGroupUsersTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateMultipleMemberGroupUsersTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ChangeUserGroupMembersTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateServiceWorkflowTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is RetryDebitTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is OverrideDebitTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateServiceTransactionTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is RefundSuccessTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ReExportServiceTransactionTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ChangeEffectiveDateOfServiceTransactionTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ChangeServiceOfServiceTransactionTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is RetryCreditTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is SetStateOfCreditTransactionTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddServiceOptionItemTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is ChangeServiceOptionItemTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateServiceOptionItemTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is AddMemberServiceTransaction && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } else if (wat.Transaction is TerminateMemberService && eventNameEng == TransitionEventCode.ReturnEvent) { warningCount++; message += string.Format("- รายการ {0} สามารถเลือกอนุมัติหรือไม่อนุมัติเท่านั้น </br>", mark); } if (wat.Transaction.EffectiveDate < DateTime.Now) { warningCount++; message += string.Format("- รายการ {0} ไม่สมารถอนุมัติได้ เนื่องจากวันที่มีผลใช้งานเป็นวันย้อนหลัง </br>", mark); } if (warningCount == 0) { //Is Transaction type Add function work flow if (wat.Transaction is AddMaintenanceWorkflowTransaction && eventNameEng == TransitionEventCode.ApproveFinalEvent) { isAddFunctionWorkflowTransaction = true; } //Re-layout Personalization ReLayoutByWorkflowOutstandingTransaction(context, wat); // functionID = wat.Transaction.FunctionID; wat.Transaction.Transit(context, wat.Workflow, mark, eventNameEng); wat.Transaction.Remark = remark; #region GeneratePW & SendEmail, SMS สำหรับการสร้าง User ของ AddMemberUserTransaction และ AddMemberTransaction if (wat.Transaction is AddMemberUserTransaction) { AddMemberUserTransaction trans = (AddMemberUserTransaction)wat.Transaction; SelfAuthenticatedUser user = trans.Target as SelfAuthenticatedUser; if (null != user) { user.GenerateAndSendPasswordOfNewUser(context); } } else if (wat.Transaction is AddMemberTransaction) { AddMemberTransaction trans = (AddMemberTransaction)wat.Transaction; foreach (MemberUser mu in trans.Target.MemberUsers) { SelfAuthenticatedUser user = mu as SelfAuthenticatedUser; if (null != user) { user.GenerateAndSendPasswordOfNewUser(context); } } } #endregion GeneratePW & SendEmail, SMS สำหรับการสร้าง User ของ AddMemberUserTransaction และ AddMemberTransaction message = string.Format("{0} {1}", eventNameAndId[0], Messages.Genaral.ApprovalSuccess.Format(context.CurrentLanguage.Code)); //if (isAddFunctionWorkflowTransaction && wat.TargetMember.SystemID != SystemEnum.BankSystem)// only system 42 // FunctionWorkflowService.TerminateTransaction(context, wat.TargetMember, wat.Transaction); wat.Transaction.Persist(context); tx.Commit(); context.Log(functionID, 0, 0, GetFunctionName(lange, eventNameEng), mark); } } catch (System.Data.SqlTypes.SqlTypeException ex) { warningCount++; message = Messages.Genaral.TransactionNoThrowException.Format(lange) + newLineHTML; tx.Rollback(); context.PersistenceSession.Clear(); context.Log(functionID, 0, 0, Messages.Action.Approval.Format(lange, ""), mark + Messages.Genaral.TransactionException.Format(lange, ex.Message)); } catch (System.NullReferenceException ex) { warningCount++; message += Messages.Genaral.TransactionNoThrowException.Format(lange) + newLineHTML; tx.Rollback(); context.PersistenceSession.Clear(); context.Log(functionID, 0, 0, Messages.Action.Approval.Format(lange, ""), mark + Messages.Genaral.TransactionException.Format(lange, ex.Message)); } catch (Exception ex) { warningCount++; if (Messages.Genaral.TransactionNotPermitToConsider.Format(lange) == ex.Message) { message = Messages.Genaral.TransactionNotPermitToConsider.Format(lange); } else { message = Messages.Genaral.TransactionNoThrowException.Format(lange); } tx.Rollback(); context.PersistenceSession.Clear(); context.Log(functionID, 0, 0, GetFunctionName(lange, eventNameEng), mark + Messages.Genaral.TransactionException.Format(lange, ex.Message)); message = string.Format("{0} {1}", eventNameAndId[0], Messages.Genaral.TransactionException.Format(lange, ex.Message));//by kittikun } } }