oHlr = new MailSessionHandler();
} catch (IOException ioe) {
Log.out.error("AsyncSendInvitation new MailSessionHandler() "+ioe.getClass().getName()+" "+ioe.getMessage(), ioe);
}
AtrilSession oSes = DAO.getAdminSession("AsyncSendInvitation");
oSes.autoCommit(true);
Dms oDms = oSes.getDms();
CustomerAccount oAcc = new CustomerAccount(oDms, sAccId);
for (int t=0; t<aTxprs.length; t++) {
String sTxpId = aTxprs[t];
TaxPayer oTxp = new TaxPayer (oDms, sTxpId);
try {
sUid = User.forEmail(sEmail);
oUsr = new User(oSes, sUid);
try {
oUsr.allowTaxPayer(oSes, oTxp.id());
} catch (Exception xcpt) {
Log.out.error("AsyncSendInvitation User.allowTaxPayer() "+xcpt.getClass().getName()+" "+xcpt.getMessage(), xcpt);
}
} catch (ElementNotFoundException enfe) {
String sPwd = Gadgets.generateRandomId(6, "abcdefghjkmnpqrtuvwxyz", Character.LOWERCASE_LETTER);
sUid = User.create(oSes, sRec1stName, sRec2ndName, sRecEmail, sPwd, false).id();
oUsr = new User(oSes, sUid);
oUsr.canApproveInvoices(bApprove);
oUsr.canSettleBillNotes(bSettle);
oUsr.canUsePremiumCaptureServiceFlavor(bPremium);
oUsr.setRole(oSes, oAcc, Role.user);
oUsr.save(oSes);
try {
oUsr.allowTaxPayer(oSes, oTxp.id());
} catch (Exception xcpt) {
Log.out.error("AsyncSendInvitation User.allowTaxPayer() "+xcpt.getClass().getName()+" "+xcpt.getMessage(), xcpt);
}
HashMap oMap = FastStreamReplacer.createMap(new String[] {"1","2","3","4","5","6"},
new String[] {oUsr.getFirstName(), sSender1stName, sSender2ndName, oTxp.getBusinessName() + (aTxprs.length>1 ? " y a otras " + String.valueOf(aTxprs.length-1) + " más": ""), oUsr.id(), sPwd});
ByteArrayOutputStream oByOut = new ByteArrayOutputStream();
PrintStream oPrt = new PrintStream(oByOut);
try {
Log.out.debug("sending email");
oHlr.sendMessage("Acceso a zesped", "Zesped", "noreply@zesped.com", "noreply@zesped.com",
new String[] {sEmail}, RecipientType.TO, oRpl.replace(oTxt, oMap), oRpl.replace(oHtm, oMap),
"ISO8859_1", null, null, null, oPrt);
} catch (Exception xcpt) {
Log.out.error("AsyncSendInvitation MailSessionHandler.sendMessage() "+xcpt.getClass().getName()+" "+xcpt.getMessage(), xcpt);
}
oPrt.close();
Log.out.info(oByOut.toString());
try {
oByOut.close();
} catch (IOException ignore) { }
DAO.log(oSes, oUsr.getDocument(), User.class, "SEND INVITATION", AtrilEvent.Level.INFO, sEmail);
}
if (bCreateEmp) {
Employees oEms = oTxp.employees(oSes);
try {
oEms.seek(oSes, oUsr.getNickName());
} catch (InstantiationException xcpt) {
Log.out.error("AsyncSendInvitation Employees.seek() "+xcpt.getClass().getName()+" "+xcpt.getMessage(), xcpt);
} catch (IllegalAccessException xcpt) {
Log.out.error("AsyncSendInvitation Employees.seek() "+xcpt.getClass().getName()+" "+xcpt.getMessage(), xcpt);
} catch (ElementNotFoundException enfe) {
Log.out.debug("creating employee");
Employee oEmp = new Employee(oSes, oEms);
oEmp.setUuid(oUsr.getNickName());
oEmp.setName(oUsr.getFirstName()+" "+oUsr.getLastName());
oEmp.setEmployeeId("");
oEmp.setTaxId("");
oEmp.setActive(true);
oEmp.save(oSes);
if (0==t) oActivationInfo.put("employee_uuid", oUsr.getNickName());
}
}
} // next
oActivationInfo.put("nickname", oUsr.getNickName());
oActivationInfo.put("password", oUsr.getPassword());
oActivationInfo.put("fullname", oUsr.getFirstName()+" "+oUsr.getLastName());
oActivationInfo.put("email", oUsr.getEmail());
oActivationInfo.put("user_docid", oUsr.id());
oActivationInfo.put("user_uuid", oUsr.getString("user_uuid"));
oActivationInfo.put("businessname", oAcc.getBusinessName());
oActivationInfo.put("customer_acount", oAcc.getUuid());
oActivationInfo.put("customer_account_docid", oAcc.id());
oActivationInfo.put("taxpayer_docid", aTxprs[0]);
oActivationInfo.put("can_approve", oUsr.getString("can_approve"));
oActivationInfo.put("can_settle", oUsr.getString("can_settle"));
oActivationInfo.put("can_premium", oUsr.getString("can_premium"));
oActivationInfo.put("role", Role.user);
oActivationInfo.put("hasorders", new Boolean(oAcc.orders(oSes).count()>0));
try {
Cache.putEntry(oUsr.id()+"activationinfo", oActivationInfo);
} catch (Exception xcpt) {
Log.out.error("AsyncSendInvitation Cache.putEntry() "+xcpt.getClass().getName()+" "+xcpt.getMessage(), xcpt);
}
oSes.disconnect();
oSes.close();
Log.out.debug("End AsyncSendInvitation()");
}