1 package org.campware.cream.modules.actions; 2 3 42 43 import java.util.Date ; 44 import org.apache.velocity.context.Context; 45 46 import org.apache.turbine.util.RunData; 47 import org.apache.torque.util.Criteria; 48 import org.apache.torque.util.Transaction; 49 import java.sql.Connection ; 50 51 import org.campware.cream.om.OutboxEvent; 52 import org.campware.cream.om.OutboxEventPeer; 53 import org.apache.turbine.util.velocity.VelocityHtmlEmail; 54 import org.apache.turbine.Turbine; 55 56 57 61 public class OutboxEventSQL extends CreamAction 62 { 63 protected void initScreen() 64 { 65 setModuleType(DOCUMENT); 66 setModuleName("OUTBOX"); 67 } 68 69 79 public void doInsert(RunData data, Context context) 80 throws Exception 81 { 82 OutboxEvent entry = new OutboxEvent(); 83 data.getParameters().setProperties(entry); 84 85 String myCode=data.getParameters().getString("outboxeventcode"); 86 int myStatus= data.getParameters().getInt("status"); 87 88 boolean bSave=true; 89 90 if (myStatus==30){ 91 bSave= sendEmail(data, context, entry); 92 if (bSave) entry.setStatus(50); 93 } 94 95 if (bSave){ 96 entry.setOutboxEventCode(getTempCode()); 97 98 entry.setIssuedDate(parseDate(data.getParameters().getString("issueddate"))); 99 entry.setClosedDate(parseDate(data.getParameters().getString("closeddate"))); 100 entry.setCreatedBy(data.getUser().getName()); 101 entry.setCreated(new Date ()); 102 entry.setModifiedBy(data.getUser().getName()); 103 entry.setModified(new Date ()); 104 105 Connection conn = Transaction.begin(OutboxEventPeer.DATABASE_NAME); 106 boolean success = false; 107 try { 108 entry.save(conn); 109 entry.setOutboxEventCode(getRowCode("OE", entry.getOutboxEventId())); 110 entry.save(conn); 111 Transaction.commit(conn); 112 success = true; 113 114 } finally { 115 if (!success) Transaction.safeRollback(conn); 116 } 117 } 118 } 119 120 128 public void doUpdate(RunData data, Context context) 129 throws Exception 130 { 131 OutboxEvent entry = new OutboxEvent(); 132 data.getParameters().setProperties(entry); 133 134 int myStatus= data.getParameters().getInt("status"); 135 136 boolean bSave=true; 137 138 if (myStatus==30){ 139 bSave= sendEmail(data, context, entry); 140 if (bSave) entry.setStatus(50); 141 } 142 143 if (bSave){ 144 entry.setIssuedDate(parseDate(data.getParameters().getString("issueddate"))); 145 entry.setClosedDate(parseDate(data.getParameters().getString("closeddate"))); 146 entry.setCreated(parseDateTime(data.getParameters().getString("created"))); 147 entry.setModifiedBy(data.getUser().getName()); 148 entry.setModified(new Date ()); 149 150 entry.setModified(true); 151 entry.setNew(false); 152 entry.save(); 153 } 154 } 155 156 159 private boolean sendEmail(RunData data, Context context, OutboxEvent emailEntry) 160 throws Exception 161 { 162 String sEmailAddress=emailEntry.getReceiverTo(); 164 165 if (sEmailAddress.length()>2){ 166 176 179 try{ 180 VelocityHtmlEmail ve = new VelocityHtmlEmail(data); 181 ve.setCharset("UTF-8"); 183 ve.addTo( sEmailAddress, ""); 184 ve.setFrom(Turbine.getConfiguration().getString("mail.smtp.from"), Turbine.getConfiguration().getString("mail.smtp.from.name")); 185 ve.setSubject(emailEntry.getSubject()); 186 context.put("emailbody", emailEntry.getBody()); 188 ve.setHtmlTemplate("screens/SendEmail.vm"); 190 ve.send(); 191 192 return true; 193 }catch(Exception e){ 194 data.setScreenTemplate("CreamError.vm"); 195 return false; 196 } 197 198 }else{ 199 data.setScreenTemplate("CreamError.vm"); 200 return false; 201 } 202 203 } 204 205 206 207 211 public void doDelete(RunData data, Context context) 212 throws Exception 213 { 214 Criteria criteria = new Criteria(); 215 criteria.add(OutboxEventPeer.OUTBOX_EVENT_ID, data.getParameters().getInt("outboxeventid")); 216 OutboxEventPeer.doDelete(criteria); 217 } 218 219 223 public void doDeleteselected(RunData data, Context context) 224 throws Exception 225 { 226 int[] delIds= data.getParameters().getInts("rowid"); 227 Criteria criteria = new Criteria(); 228 criteria.addIn(OutboxEventPeer.OUTBOX_EVENT_ID, delIds); 229 OutboxEventPeer.doDelete(criteria); 230 } 231 232 } 233 | Popular Tags |