/* * Temporary block for sending mail for accepted appliactions. * @author al */ package se.idega.idegaweb.commune.childcare.presentation.admin; import java.rmi.RemoteException; import java.text.MessageFormat; import java.util.Collection; import java.util.Iterator; import se.idega.idegaweb.commune.care.data.ChildCareApplication; import se.idega.idegaweb.commune.childcare.presentation.ChildCareBlock; import com.idega.presentation.IWContext; import com.idega.presentation.text.Text; import com.idega.presentation.ui.SubmitButton; import com.idega.user.data.User; import com.idega.util.IWTimestamp; import com.idega.util.text.TextSoap; public class ChildCareApplicationMailer extends ChildCareBlock { public void init(IWContext iwc) throws Exception { if (iwc.isParameterSet("send_mail")) { int n = sendMails(iwc); add(new Text("" + n + " e-mails sent")); } else { add(new SubmitButton("send_mail", "Send e-mails")); } } private int sendMails(IWContext iwc) throws RemoteException { int nrOfMailsSent = 0; Collection c = getBusiness().findAllGrantedApplications(); Iterator iter = c.iterator(); while (iter.hasNext()) { ChildCareApplication application = (ChildCareApplication) iter.next(); String messageHeader = localize("child_care.application_accepted_subject", "Child care application accepted."); String messageBody = MessageFormat.format(localize("child_care.offer_message", "We can offer {0} a placing in {5} from {4}.\n\nRegards,\n{1}\n{2}\n{3}"), getArguments(iwc, application)); if (messageBody.indexOf("$datum$") != -1) { messageBody = TextSoap.findAndReplace(messageBody, "$datum$", "{4}"); } if (messageBody.indexOf("$link$") != -1) { messageBody = TextSoap.findAndReplace(messageBody, "$link$", ""); } getBusiness().sendMessageToParents(application, messageHeader, messageBody); nrOfMailsSent++; } return nrOfMailsSent; } private Object[] getArguments(IWContext iwc, ChildCareApplication application) { User child = application.getChild(); String email = ""; String workphone = ""; Object[] arguments = { child.getName(), application.getProvider().getName(), email, workphone, new IWTimestamp(application.getFromDate()).getLocaleDate(iwc.getCurrentLocale()), application.getProvider().getName() }; return arguments; } }