1 14 package org.compiere.process; 15 16 import java.sql.*; 17 import java.math.*; 18 import java.util.*; 19 20 import org.compiere.process.*; 21 import org.compiere.model.*; 22 import org.compiere.util.*; 23 24 47 public class RequestAction implements ProcessCall 48 { 49 52 public RequestAction() 53 { 54 } 56 57 private Logger log = Logger.getCLogger (getClass()); 58 59 69 public boolean startProcess (Properties ctx, ProcessInfo pi) 70 { 71 log.info("startProcess - " + pi); 72 int AD_Client_ID = 0; 74 String DocumentNo = null; 75 String ActionType = null; 76 String Summary = null; 77 String MailSubject = null; 78 String MailText = null; 79 int C_BPartner_ID = 0; 80 int AD_User_ID = 0; 81 int SalesRep_ID = 0; 82 int UpdatedBy = 0; 83 String sql = "SELECT AD_Client_ID, DocumentNo, ActionType, Summary, " + "MailSubject,MailText, C_BPartner_ID,AD_User_ID, " + "SalesRep_ID, UpdatedBy " + "FROM R_Request WHERE R_Request_ID=?"; 88 try 89 { 90 PreparedStatement pstmt = DB.prepareStatement(sql); 91 pstmt.setInt(1, pi.getRecord_ID()); 92 ResultSet rs = pstmt.executeQuery(); 93 if (rs.next()) 94 { 95 AD_Client_ID = rs.getInt(1); 96 DocumentNo = rs.getString(2); 97 ActionType = rs.getString(3); 98 Summary = rs.getString(4); 99 MailSubject = rs.getString(5); 100 MailText = rs.getString(6); 101 C_BPartner_ID = rs.getInt(7); 102 AD_User_ID = rs.getInt(8); 103 SalesRep_ID = rs.getInt(9); 104 UpdatedBy = rs.getInt(10); 105 } 106 rs.close(); 107 pstmt.close(); 108 } 109 catch (SQLException e) 110 { 111 log.error("startProcess", e); 112 return false; 113 } 114 115 if (ActionType == null) 116 return true; 117 118 if (ActionType.equals(MRequest.ACTIONTYPE_EMail)) 120 { 121 String smtpHost = EMailUtil.getSmtpHost(AD_Client_ID); 122 String from = EMailUtil.getEMail_User(SalesRep_ID); 123 String to = EMailUtil.getEMail_BPartner(C_BPartner_ID, AD_User_ID); 124 EMail email = new EMail(smtpHost, from, to, MailSubject, MailText); 126 String msg = email.send(); 127 if (EMail.SENT_OK.equals(msg)) 128 updateRequest (pi.getRecord_ID(), Msg.getMsg(ctx, "RequestActionEMailOK")); 129 else 130 { 131 updateRequest (pi.getRecord_ID(), Msg.getMsg(ctx, "RequestActionEMailError") + " - " + msg); 132 return false; 133 } 134 } 135 136 else if (ActionType.equals(MRequest.ACTIONTYPE_Transfer)) 138 { 139 Object [] args = new Object [] {DocumentNo, EMailUtil.getNameOfUser(UpdatedBy), EMailUtil.getNameOfUser(AD_User_ID)}; 141 String subject = Msg.getMsg(Env.getAD_Language(ctx), "RequestActionTransfer", args); 142 updateRequest (pi.getRecord_ID(), subject); 143 String smtpHost = EMailUtil.getSmtpHost(AD_Client_ID); 145 String to = EMailUtil.getEMail_User(AD_User_ID); 146 String from = EMailUtil.getEMail_User(UpdatedBy); 147 String message = subject + "\n" + Summary; 148 EMail email = new EMail(smtpHost, from, to, subject, message); 150 String msg = email.send(); 151 } 152 153 return true; 154 } 156 163 private boolean updateRequest (int R_Request_ID, String result) 164 { 165 StringBuffer sql = new StringBuffer ("UPDATE R_Request SET Result="); 166 String msg = DB.TO_STRING(result); if (msg.length() < 258) sql.append(msg); 169 else 170 sql.append(msg.substring(0,256)).append("'"); 171 sql.append(" WHERE R_Request_ID=").append(R_Request_ID); 172 int no = DB.executeUpdate(sql.toString()); 173 if (no != 1) 174 { 175 log.error("updateRequest - not updated - R_Request_ID=" + R_Request_ID); 176 return false; 177 } 178 return true; 179 } 181 } | Popular Tags |