protected void ctlConfirm_Click(object sender, EventArgs e) { //Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors(); try { SuUser user = new SuUser(); user.UserName = ctlUserName.Text; string realPassword = SuUserService.Forgetpassword(ctlUserName.Text); user = SuUserService.FindByUserName(ctlUserName.Text).First <SuUser>(); if (user != null) { UserEngine.SyncUpdateUserData(user.UserName); } SCGEmailService.SendEmailEM12(user.Userid, realPassword.ToString()); //Alert(GetMessage("ForgetPasswordIsComplete")); this.ModalPopupMsg.Show(); HidePopup(); } catch (ServiceValidationException ex) { ValidationErrors.MergeErrors(ex.ValidationErrors); } }
public void SendEmailToOverDueDate() { IList <FixedAdvanceOverDue> voList = ScgeAccountingQueryProvider.SCGDocumentQuery.GetFixedAdvanceOverdueList(); foreach (FixedAdvanceOverDue item in voList) { SCGEmailService.SendEmailEM15(item.CacheWorkflowID, item.RequesterID); } }
public void SendEmailToOverDueDate() { IList <VOAdvanceOverDueReport> voList = ScgeAccountingQueryProvider.SCGDocumentQuery.GetAdvanceOverdueList(); foreach (VOAdvanceOverDueReport item in voList) { SCGDocument document = SCGDocumentService.FindByIdentity(item.DocumentID); SCGEmailService.SendEmailEM10(item.AdvanceID, document.RequesterID.Userid, document.ApproverID.Email, "This is e-mail for autoreminder advancedocument system.", true); } }
/*เพิ่มแจ้งเตือนก่อนครบกำหนด fixedadvance*/ public void SendEmailToBeforeDueDate() { /*Criteria ก่อน7วัน กับก่อน30วัน ค่าจากใน dbparameter*/ IList <FixedAdvanceBeforeDue> mailLogList = ScgeAccountingQueryProvider.SCGDocumentQuery.GetFixedAdvanceBeforedueList(); foreach (FixedAdvanceBeforeDue item in mailLogList) { SCGEmailService.SendEmailEM16(item.DocumentId); } }
public void SendEmailToOverDueDate() { IList <SCGDocumentEmail> scgDocumentList = ScgeAccountingQueryProvider.SCGDocumentQuery.FindDocumentWaitApprove(); foreach (SCGDocumentEmail item in scgDocumentList) { //SCGDocument document = FindByIdentity(item.DocumentID); string tokenCode = SaveResponseTokenEmail(item.CacheWorkflowID, item.UserID); SCGEmailService.SendEmailEM14(item.CacheWorkflowID, item.UserID, tokenCode); } }
protected void ctlResetPassword_Click(object sender, EventArgs e) { try { SuUser user = new SuUser(); user = SuUserService.FindByIdentity(UserID); if (user != null) { string realPassword = SuUserService.Forgetpassword(user.UserName); SCGEmailService.SendEmailEM12(user.Userid, realPassword.ToString()); ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), string.Empty, string.Format("alert('{0}');", GetProgramMessage("ResetPasswordSuccess")), true); } } catch (ServiceValidationException ex) { ValidationErrors.MergeErrors(ex.ValidationErrors); } }
protected void ctlSend_Click(object sender, ImageClickEventArgs e) { //เรียก service สำหรับส่ง email SS.Standard.WorkFlow.DTO.WorkFlow workFlow = new SS.Standard.WorkFlow.DTO.WorkFlow(); long workFlowID = 0; if (this.RequesterID != 0) { workFlow = WorkFlowQueryProvider.WorkFlowQuery.GetWorkFlowByDocumentID(this.DocumentID); if (workFlow != null) { try { workFlowID = workFlow.WorkFlowID; if (this.EmailType.Equals("EM09")) { SCGEmailService.SendEmailEM09(workFlow.Document.DocumentID, ctlCC.Text, ctlRemark.Text, string.Empty); } else if (this.EmailType.Equals("EM10")) { SCGEmailService.SendEmailEM10(this.AdvanceDocumentID, UIHelper.ParseLong(ctlUserID.Text), ctlCC.Text, ctlRemark.Text, false); } else if (this.EmailType.Equals("EM15")) { SCGEmailService.SendEmailEM15(workFlowID, UIHelper.ParseLong(ctlUserID.Text)); } ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "SendEmailSuccess", "alert('" + GetMessage("Send Complete") + "');", true); Hide(); } catch (Exception ex) { throw ex; } } } }
protected void ctlInsert_Click1(object sender, ImageClickEventArgs e) { try { if (Mode == FlagEnum.NewFlag) { #region Insert user = new SuUser(); user.UserName = ctlUserProfileId.Text; user.PeopleID = ctlUserProfilePeopleId.Text; user.SetFailTime = UIHelper.ParseShort(ctlSetFailTime.Text); user.EmployeeCode = ctlUserProfileEmployeeCode.Text; user.EmployeeName = ctlUserProfileEmployeeName.Text; user.SMSApproveOrReject = ctlApproveRecject.Checked; user.SMSReadyToReceive = ctlToReceive.Checked; user.MobilePhoneNo = ctlUserProfileMobilePhoneNo.Text; user.SectionName = ctlUserProfileSectionName.Text; user.PersonalLevel = ctlUserProfilePersonalLevel.Text; user.PersonalDescription = ctlUserProfilePersonalLevelDescription.Text; user.PersonalGroup = ctlUserProfilePersonalGroup.Text; user.PersonalLevelGroupDescription = ctlUserProfilePersonalGroupDescription.Text; user.PositionName = ctlUserProfilePositionName.Text; user.PhoneNo = ctlUserProfilePhoneNo.Text; user.Email = ctlUserProfileEmail.Text; user.ApprovalFlag = ctlUserProfileApprovalFlag.Checked; user.Active = ctlUserProfileActive.Checked; user.Language = new SS.DB.DTO.DbLanguage(UIHelper.ParseShort(ctlCmbLanguage.SelectedValue)); user.ChangePassword = ctlChangePassword.Checked; user.IsAdUser = ctlIsAdUser.Checked; user.VendorCode = ctlVendorCode.Text; user.EmailActive = ctlEmailActive.Checked; DbCompany com = ScgDbQueryProvider.DbCompanyQuery.FindByIdentity(UIHelper.ParseLong(ctlCompanyField.CompanyID)); if (com != null) { user.CompanyCode = com.CompanyCode; user.Company = com; } if (ctlLocationField.LocationID != null) { DbLocation location = ScgDbQueryProvider.DbLocationQuery.FindProxyByIdentity(ctlLocationField.LocationID.Value); if (location != null) { user.LocationCode = location.LocationCode; user.Location = location; } } DbCostCenter cost = ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(UIHelper.ParseLong(ctlCostCenterField.CostCenterId)); if (cost != null) { user.CostCenter = cost; user.CostCenterCode = cost.CostCenterCode; } if (ctlSupervisor.UserID != null) { SuUser su = QueryProvider.SuUserQuery.FindProxyByIdentity(ctlSupervisor.UserID.Value); if (su != null) { user.Supervisor = su.Userid; } } user.UpdBy = UserAccount.UserID; user.UpdDate = DateTime.Now; user.CreBy = UserAccount.UserID; user.CreDate = DateTime.Now; user.UpdPgm = UserAccount.CurrentProgramCode; // ========== Add code for control password same as Password Policy by Anuwat S on 23/04/2009 ========== if (!string.IsNullOrEmpty(ctlUserPassword.Text)) { user.Password = Encryption.Md5Hash(ctlUserPassword.Text); } user.AllowPasswordChangeDate = DateTime.Now.AddDays(ParameterServices.MinPasswordAge); user.PasswordExpiryDate = DateTime.Now.AddDays(ParameterServices.MaxPasswordAge); if (ctlLockUser.Checked) { user.FailTime = user.SetFailTime; } else { user.FailTime = 0; } // ======== End add code for control password same as Password Policy by Anuwat S on 23/04/2009 ======== SuUserService.SaveUserProfile(user); // ========== Add code for control password same as Password Policy by Anuwat S on 23/04/2009 ========== SCGEmailService.SendEmailEM08(user.Userid, ctlUserPassword.Text); #endregion Insert } else if (Mode == FlagEnum.EditFlag) { #region Edit user = QueryProvider.SuUserQuery.FindByIdentity(UserID); user.UserName = ctlUserProfileId.Text; user.PeopleID = ctlUserProfilePeopleId.Text; user.SetFailTime = UIHelper.ParseShort(ctlSetFailTime.Text); user.EmployeeCode = ctlUserProfileEmployeeCode.Text; user.EmployeeName = ctlUserProfileEmployeeName.Text; user.SMSApproveOrReject = ctlApproveRecject.Checked; user.SMSReadyToReceive = ctlToReceive.Checked; user.MobilePhoneNo = ctlUserProfileMobilePhoneNo.Text; user.SectionName = ctlUserProfileSectionName.Text; user.PersonalLevel = ctlUserProfilePersonalLevel.Text; user.PersonalDescription = ctlUserProfilePersonalLevelDescription.Text; user.PersonalGroup = ctlUserProfilePersonalGroup.Text; user.PersonalLevelGroupDescription = ctlUserProfilePersonalGroupDescription.Text; user.PositionName = ctlUserProfilePositionName.Text; user.PhoneNo = ctlUserProfilePhoneNo.Text; user.Email = ctlUserProfileEmail.Text; user.ApprovalFlag = ctlUserProfileApprovalFlag.Checked; user.Active = ctlUserProfileActive.Checked; user.Language = new SS.DB.DTO.DbLanguage(UIHelper.ParseShort(ctlCmbLanguage.SelectedValue)); user.ChangePassword = ctlChangePassword.Checked; user.IsAdUser = ctlIsAdUser.Checked; user.VendorCode = ctlVendorCode.Text; user.EmailActive = ctlEmailActive.Checked; DbCompany com = ScgDbQueryProvider.DbCompanyQuery.FindByIdentity(UIHelper.ParseLong(ctlCompanyField.CompanyID)); if (com != null) { user.CompanyCode = com.CompanyCode; user.Company = com; } if (ctlLocationField.LocationID != null) { DbLocation location = ScgDbQueryProvider.DbLocationQuery.FindProxyByIdentity(ctlLocationField.LocationID.Value); if (location != null) { user.LocationCode = location.LocationCode; user.Location = location; } } DbCostCenter cost = ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(UIHelper.ParseLong(ctlCostCenterField.CostCenterId)); if (cost != null) { user.CostCenter = cost; user.CostCenterCode = cost.CostCenterCode; } if (ctlSupervisor.UserID != null) { SuUser su = QueryProvider.SuUserQuery.FindProxyByIdentity(ctlSupervisor.UserID.Value); if (su != null) { user.Supervisor = su.Userid; } } user.UpdBy = UserAccount.UserID; user.UpdDate = DateTime.Now; user.CreBy = UserAccount.UserID; user.CreDate = DateTime.Now; user.UpdPgm = UserAccount.CurrentProgramCode; // ========== Add code for control password same as Password Policy by Anuwat S on 23/04/2009 ========== if ((int.Parse(ctlOriginFailTime.Value) <= (user.FailTime) && !ctlLockUser.Checked) || !user.SetFailTime.Equals(short.Parse(ctlOriginFailTime.Value))) { user.FailTime = 0; // Unlock user } else if (ctlLockUser.Checked) { user.FailTime = user.SetFailTime; // Still lock user } // ========== Add code for control password same as Password Policy by Anuwat S on 23/04/2009 ========== //SuUserService.SaveOrUpdate(user); SuUserService.UpdateUserProfile(user); #endregion Edit } // ========== Add code for control password same as Password Policy by Anuwat S on 23/04/2009 ========== IList <SuPasswordHistory> passwordHistoryList = QueryProvider.SuPasswordHistoryQuery.FindActiveByUserId(user.Userid); foreach (SuPasswordHistory passwordHist in passwordHistoryList) { passwordHist.Active = false; passwordHist.UpdBy = UserAccount.UserID; passwordHist.UpdDate = DateTime.Now; passwordHist.UpdPgm = ProgramCode; SuPasswordHistoryService.SaveOrUpdate(passwordHist); } // ========== Add code for control password same as Password Policy by Anuwat S on 23/04/2009 ========== if (Notify_Ok != null) { Notify_Ok(sender, e); } Alert(GetMessage("SaveSuccessFully")); } catch (ServiceValidationException ex) { ValidationErrors.MergeErrors(ex.ValidationErrors); ctlUpdatePanelUserProfileForm.Update(); } }
public string OnCancelComplete(long workFlowID, object eventData) { WorkFlow workFlow = WorkFlowQueryProvider.WorkFlowQuery.FindByIdentity(workFlowID); SCGDocument scgDocument = ScgeAccountingQueryProvider.SCGDocumentQuery.GetSCGDocumentByDocumentID(workFlow.Document.DocumentID); /*TODO validate , save event data to workflow*/ WorkFlowResponse response = new WorkFlowResponse(); try { SubmitResponse submitResponse = eventData as SubmitResponse; response.WorkFlow = workFlow; response.WorkFlowStateEvent = WorkFlowQueryProvider.WorkFlowStateEventQuery.FindByIdentity(submitResponse.WorkFlowStateEventID); response.ResponseBy = UserAccount.UserID; response.ResponseDate = DateTime.Now; response.Active = true; response.CreBy = UserAccount.UserID; response.CreDate = DateTime.Now; response.UpdBy = UserAccount.UserID; response.UpdDate = DateTime.Now; response.UpdPgm = "WorkFlow"; WorkFlowDaoProvider.WorkFlowResponseDao.Save(response); if (string.IsNullOrEmpty(scgDocument.DocumentNo)) { //TODO : Generate Document No and Save it int year = DateTime.Now.Year; scgDocument.DocumentNo = DbDocumentRunningService.RetrieveNextDocumentRunningNo(year, scgDocument.DocumentType.DocumentTypeID, scgDocument.CompanyID.CompanyID); scgDocument.DocumentDate = DateTime.Now; ScgeAccountingDaoProvider.SCGDocumentDao.Update(scgDocument); } } catch (Exception) { throw; } /* TODO generate signal string * Case 1 : MPA Document has initiator => SendDraftToWaitInitator * Case 2 : MPA Document has no initiator => SendDraftToWaitApprove */ string signal = ""; MPADocument mpaDocument = ScgeAccountingQueryProvider.MPADocumentQuery.GetMPADocumentByDocumentID(workFlow.Document.DocumentID); //IList<DocumentInitiator> initiators = ScgeAccountingQueryProvider.DocumentInitiatorQuery.GetNotResponseInitiatorByDocumentID(workFlow.Document.DocumentID); signal = "WithdrawCompleteToCancel"; if (ParameterServices.EnableEmail02Creator || ParameterServices.EnableEmail02Requester || ParameterServices.EnableEmail02Initiator) { long sendToUserID = 0; IList <long> ccList = new List <long>(); if (ParameterServices.EnableEmail02Creator) { sendToUserID = scgDocument.CreatorID.Userid; } if (ParameterServices.EnableEmail02Requester) { if (sendToUserID == 0) { sendToUserID = scgDocument.RequesterID.Userid; } else if (scgDocument.CreatorID.Userid != scgDocument.RequesterID.Userid) { ccList.Add(scgDocument.RequesterID.Userid); } //Send mail02 to all travellers that doesnot requester IList <MPAItem> items = ScgeAccountingQueryProvider.MPAItemQuery.FindMPAItemByMPADocumentID(mpaDocument.MPADocumentID); foreach (MPAItem item in items) { if (sendToUserID == 0) { sendToUserID = item.UserID.Userid; } else if (item.UserID.Userid != sendToUserID && !ccList.Contains(item.UserID.Userid)) { ccList.Add(item.UserID.Userid); } } } if (ParameterServices.EnableEmail02Initiator) { IList <DocumentInitiator> initiators = ScgeAccountingQueryProvider.DocumentInitiatorQuery.GetDocumentInitiatorByDocumentID(workFlow.Document.DocumentID); foreach (DocumentInitiator initiator in initiators) { if (sendToUserID == 0) { sendToUserID = initiator.UserID.Userid; } else if (initiator.UserID.Userid != sendToUserID && !ccList.Contains(initiator.UserID.Userid)) { ccList.Add(initiator.UserID.Userid); } } } SCGEmailService.SendEmailEM02(response.WorkFlowResponseID, sendToUserID, ccList); } return(signal); }
public override string OnRejectWaitApprove(long workFlowID, object eventData) { /*TODO validate , save event data to workflow*/ WorkFlow workFlow = WorkFlowQueryProvider.WorkFlowQuery.FindByIdentity(workFlowID); SCGDocument scgDocument = ScgeAccountingQueryProvider.SCGDocumentQuery.GetSCGDocumentByDocumentID(workFlow.Document.DocumentID); MPADocument mpaDocument = ScgeAccountingQueryProvider.MPADocumentQuery.GetMPADocumentByDocumentID(scgDocument.DocumentID); RejectDetailResponse rejectDetailResponse; try { if (eventData is SubmitResponse) { rejectDetailResponse = DefaultRejectDetailResponse((eventData as SubmitResponse).WorkFlowStateEventID, (eventData as SubmitResponse).ResponseMethod); } else { rejectDetailResponse = eventData as RejectDetailResponse; } WorkFlowResponse response = new WorkFlowResponse(); response.WorkFlow = workFlow; response.WorkFlowStateEvent = WorkFlowQueryProvider.WorkFlowStateEventQuery.FindByIdentity(rejectDetailResponse.WorkFlowStateEventID); response.ResponseBy = UserAccount.UserID; response.ResponseDate = DateTime.Now; if (rejectDetailResponse.ResponseMethod != null) { response.ResponseMethod = rejectDetailResponse.ResponseMethod.GetHashCode().ToString(); } response.Active = true; response.CreBy = UserAccount.UserID; response.CreDate = DateTime.Now; response.UpdBy = UserAccount.UserID; response.UpdDate = DateTime.Now; response.UpdPgm = "WorkFlow"; WorkFlowDaoProvider.WorkFlowResponseDao.Save(response); WorkFlowRejectResponse rejectResponse = new WorkFlowRejectResponse(); rejectResponse.WorkFlowResponse = response; rejectResponse.Reason = ScgDbQueryProvider.DbRejectReasonQuery.FindProxyByIdentity(rejectDetailResponse.ReasonID); rejectResponse.Remark = rejectDetailResponse.Remark; rejectResponse.Active = true; rejectResponse.CreBy = UserAccount.UserID; rejectResponse.CreDate = DateTime.Now; rejectResponse.UpdBy = UserAccount.UserID; rejectResponse.UpdDate = DateTime.Now; rejectResponse.UpdPgm = "WorkFlow"; WorkFlowDaoProvider.WorkFlowRejectResponseDao.Save(rejectResponse); SCGEmailService.SendEmailEM04(response.WorkFlowResponseID, scgDocument.CreatorID.Userid); if (ParameterServices.EnableEmail02Requester || ParameterServices.EnableEmail02Initiator) { long sendToUserID = 0; IList <long> ccList = new List <long>(); if (ParameterServices.EnableEmail02Requester) { if (scgDocument.CreatorID.Userid != scgDocument.RequesterID.Userid) { sendToUserID = scgDocument.RequesterID.Userid; } IList <MPAItem> items = ScgeAccountingQueryProvider.MPAItemQuery.FindMPAItemByMPADocumentID(mpaDocument.MPADocumentID); foreach (MPAItem item in items) { if (sendToUserID == 0) { sendToUserID = item.UserID.Userid; } else if (item.UserID.Userid != sendToUserID && !ccList.Contains(item.UserID.Userid)) { ccList.Add(item.UserID.Userid); } } } if (ParameterServices.EnableEmail02Initiator) { IList <DocumentInitiator> initiators = ScgeAccountingQueryProvider.DocumentInitiatorQuery.GetDocumentInitiatorByDocumentID(scgDocument.DocumentID); foreach (DocumentInitiator initiator in initiators) { if (sendToUserID == 0) { sendToUserID = initiator.UserID.Userid; } else if (initiator.UserID.Userid != sendToUserID && !ccList.Contains(initiator.UserID.Userid)) { ccList.Add(initiator.UserID.Userid); } } } SCGEmailService.SendEmailEM02(response.WorkFlowResponseID, sendToUserID, ccList); } } catch (Exception) { throw; } // Use state WaitInitial to add into table WorkflowResponse string eventName = "Reject"; WorkFlowStateEvent stateEvent = WorkFlowQueryProvider.WorkFlowStateEventQuery.GetByWorkFlowStateID_EventName(AdvanceStateID.WaitApprove, eventName); rejectDetailResponse.WorkFlowStateEventID = stateEvent.WorkFlowStateEventID; /*TODO generate signal string*/ return("RejectWaitApproveToDraft"); }
public override string OnApproveWaitApprove(long workFlowID, object eventData) { /*TODO validate , save event data to workflow*/ WorkFlow workFlow = WorkFlowQueryProvider.WorkFlowQuery.FindByIdentity(workFlowID); SCGDocument scgDocument = ScgeAccountingQueryProvider.SCGDocumentQuery.GetSCGDocumentByDocumentID(workFlow.Document.DocumentID); Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors(); MPADocument mpaDocument = ScgeAccountingQueryProvider.MPADocumentQuery.GetMPADocumentByDocumentID(workFlow.Document.DocumentID); if (!errors.IsEmpty) { throw new SS.Standard.Utilities.ServiceValidationException(errors); } try { ////SubmitResponse submitResponse = eventData as SubmitResponse; WorkFlowResponse response = new WorkFlowResponse(); int workFlowStateEventId; response.WorkFlow = workFlow; response.ResponseBy = UserAccount.UserID; response.ResponseDate = DateTime.Now; response.Active = true; response.CreBy = UserAccount.UserID; response.CreDate = DateTime.Now; response.UpdBy = UserAccount.UserID; response.UpdDate = DateTime.Now; response.UpdPgm = UserAccount.CurrentProgramCode; if (eventData is RejectDetailResponse) { RejectDetailResponse rejectDetailResponse = eventData as RejectDetailResponse; workFlowStateEventId = rejectDetailResponse.WorkFlowStateEventID; WorkFlowRejectResponse rejectResponse = new WorkFlowRejectResponse(); rejectResponse.WorkFlowResponse = response; if (rejectDetailResponse.ReasonID != 0) { rejectResponse.Reason = ScgDbQueryProvider.DbRejectReasonQuery.FindProxyByIdentity(rejectDetailResponse.ReasonID); } rejectResponse.Remark = rejectDetailResponse.Remark; rejectResponse.Active = true; rejectResponse.CreBy = UserAccount.UserID; rejectResponse.CreDate = DateTime.Now; rejectResponse.UpdBy = UserAccount.UserID; rejectResponse.UpdDate = DateTime.Now; rejectResponse.UpdPgm = UserAccount.CurrentProgramCode; if (rejectDetailResponse.ResponseMethod != null) { response.ResponseMethod = rejectDetailResponse.ResponseMethod.GetHashCode().ToString(); } response.WorkFlowStateEvent = WorkFlowQueryProvider.WorkFlowStateEventQuery.FindByIdentity(workFlowStateEventId); WorkFlowDaoProvider.WorkFlowResponseDao.Save(response); if (rejectDetailResponse.ReasonID != 0 || !string.IsNullOrEmpty(rejectDetailResponse.Remark)) { WorkFlowDaoProvider.WorkFlowRejectResponseDao.Save(rejectResponse); } } else { SubmitResponse submitResponse = eventData as SubmitResponse; workFlowStateEventId = submitResponse.WorkFlowStateEventID; if (submitResponse.ResponseMethod != null) { response.ResponseMethod = submitResponse.ResponseMethod.GetHashCode().ToString(); } response.WorkFlowStateEvent = WorkFlowQueryProvider.WorkFlowStateEventQuery.FindByIdentity(workFlowStateEventId); WorkFlowDaoProvider.WorkFlowResponseDao.Save(response); } scgDocument.ApproveDate = DateTime.Now; scgDocument.UpdBy = UserAccount.UserID; scgDocument.UpdDate = DateTime.Now; scgDocument.UpdPgm = UserAccount.CurrentProgramCode; SCGDocumentService.SaveOrUpdate(scgDocument); if (ParameterServices.EnableEmail02Creator || ParameterServices.EnableEmail02Requester || ParameterServices.EnableEmail02Initiator) { long sendToUserID = 0; IList <long> ccList = new List <long>(); if (ParameterServices.EnableEmail02Creator) { sendToUserID = scgDocument.CreatorID.Userid; } if (ParameterServices.EnableEmail02Requester) { if (sendToUserID == 0) { sendToUserID = scgDocument.RequesterID.Userid; } else if (scgDocument.CreatorID.Userid != scgDocument.RequesterID.Userid) { ccList.Add(scgDocument.RequesterID.Userid); } //Send mail02 to all travellers that doesnot requester IList <MPAItem> items = ScgeAccountingQueryProvider.MPAItemQuery.FindMPAItemByMPADocumentID(mpaDocument.MPADocumentID); foreach (MPAItem item in items) { if (sendToUserID == 0) { sendToUserID = item.UserID.Userid; } else if (item.UserID.Userid != sendToUserID && !ccList.Contains(item.UserID.Userid)) { ccList.Add(item.UserID.Userid); } } } if (ParameterServices.EnableEmail02Initiator) { IList <DocumentInitiator> initiators = ScgeAccountingQueryProvider.DocumentInitiatorQuery.GetDocumentInitiatorByDocumentID(workFlow.Document.DocumentID); foreach (DocumentInitiator initiator in initiators) { if (sendToUserID == 0) { sendToUserID = initiator.UserID.Userid; } else if (initiator.UserID.Userid != sendToUserID && !ccList.Contains(initiator.UserID.Userid)) { ccList.Add(initiator.UserID.Userid); } } } SCGEmailService.SendEmailEM02(response.WorkFlowResponseID, sendToUserID, ccList); } } catch (Exception) { throw; } // ====================== For Approve all advance that link to TA ====================== // Use state WaitApprove to add into table WorkflowResponse string eventName = "Approve"; WorkFlowStateEvent stateEvent = WorkFlowQueryProvider.WorkFlowStateEventQuery.GetByWorkFlowStateID_EventName(AdvanceStateID.WaitApprove, eventName); return("ApproveWaitApproveToComplete"); }
public override string OnSendDraft(long workFlowID, object eventData) { WorkFlow workFlow = WorkFlowQueryProvider.WorkFlowQuery.FindByIdentity(workFlowID); SCGDocument scgDocument = ScgeAccountingQueryProvider.SCGDocumentQuery.GetSCGDocumentByDocumentID(workFlow.Document.DocumentID); /*TODO validate , save event data to workflow*/ WorkFlowResponse response = new WorkFlowResponse(); try { SubmitResponse submitResponse = eventData as SubmitResponse; response.WorkFlow = workFlow; response.WorkFlowStateEvent = WorkFlowQueryProvider.WorkFlowStateEventQuery.FindByIdentity(submitResponse.WorkFlowStateEventID); response.ResponseBy = UserAccount.UserID; response.ResponseDate = DateTime.Now; response.Active = true; response.CreBy = UserAccount.UserID; response.CreDate = DateTime.Now; response.UpdBy = UserAccount.UserID; response.UpdDate = DateTime.Now; response.UpdPgm = "WorkFlow"; WorkFlowDaoProvider.WorkFlowResponseDao.Save(response); if (string.IsNullOrEmpty(scgDocument.DocumentNo)) { //TODO : Generate Document No and Save it int year = DateTime.Now.Year; scgDocument.DocumentNo = DbDocumentRunningService.RetrieveNextDocumentRunningNo(year, scgDocument.DocumentType.DocumentTypeID, scgDocument.CompanyID.CompanyID); scgDocument.DocumentDate = DateTime.Now; ScgeAccountingDaoProvider.SCGDocumentDao.Update(scgDocument); } } catch (Exception) { throw; } /* TODO generate signal string * Case 1 : CA Document has initiator => SendDraftToWaitInitator * Case 2 : CA Document has no initiator => SendDraftToWaitApprove */ string signal = ""; //CADocument caDocument = ScgeAccountingQueryProvider.CADocumentQuery.GetCADocumentByDocumentID(workFlow.Document.DocumentID); IList <DocumentInitiator> initiators = ScgeAccountingQueryProvider.DocumentInitiatorQuery.GetNotResponseInitiatorByDocumentID(workFlow.Document.DocumentID); if (initiators.Count > 0) { signal = "SendDraftToWaitInitial"; } else { signal = "SendDraftToWaitApprove"; } if (ParameterServices.EnableEmail02Requester) { if (scgDocument.CreatorID.Userid != scgDocument.RequesterID.Userid) { SCGEmailService.SendEmailEM02(response.WorkFlowResponseID, scgDocument.RequesterID.Userid, null); } } return(signal); }