use of org.killbill.billing.invoice.template.HtmlInvoice in project killbill by killbill.
the class TestHtmlInvoiceGenerator method testGenerateInvoice.
@Test(groups = "fast")
public void testGenerateInvoice() throws Exception {
final HtmlInvoice output = g.generateInvoice(createAccount(), createInvoice(), false, internalCallContext);
Assert.assertNotNull(output);
Assert.assertNotNull(output.getBody());
Assert.assertEquals(output.getSubject(), "Your invoice");
}
use of org.killbill.billing.invoice.template.HtmlInvoice in project killbill by killbill.
the class TestHtmlInvoiceGenerator method testGenerateNullInvoice.
@Test(groups = "fast")
public void testGenerateNullInvoice() throws Exception {
final HtmlInvoice output = g.generateInvoice(createAccount(), null, false, internalCallContext);
Assert.assertNull(output);
}
use of org.killbill.billing.invoice.template.HtmlInvoice in project killbill by killbill.
the class TestHtmlInvoiceGenerator method testGenerateEmptyInvoice.
@Test(groups = "fast")
public void testGenerateEmptyInvoice() throws Exception {
final Invoice invoice = Mockito.mock(Invoice.class);
final HtmlInvoice output = g.generateInvoice(createAccount(), invoice, false, internalCallContext);
Assert.assertNotNull(output);
Assert.assertNotNull(output.getBody());
Assert.assertEquals(output.getSubject(), "Your invoice");
}
use of org.killbill.billing.invoice.template.HtmlInvoice in project killbill by killbill.
the class EmailInvoiceNotifier method notify.
@Override
public void notify(final Account account, final Invoice invoice, final TenantContext context) throws InvoiceApiException {
if (Strings.emptyToNull(account.getEmail()) == null) {
throw new InvoiceApiException(new IllegalArgumentException("Email for account " + account.getId() + " not specified"), ErrorCode.EMAIL_SENDING_FAILED);
}
final InternalTenantContext internalTenantContext = internalCallContextFactory.createInternalTenantContext(account.getId(), context);
final List<String> to = new ArrayList<String>();
to.add(account.getEmail());
final List<AccountEmail> accountEmailList = accountApi.getEmails(account.getId(), internalTenantContext);
final List<String> cc = new ArrayList<String>();
for (final AccountEmail email : accountEmailList) {
cc.add(email.getEmail());
}
// Check if this account has the MANUAL_PAY system tag
boolean manualPay = false;
final List<Tag> accountTags = tagUserApi.getTags(account.getId(), ObjectType.ACCOUNT, internalTenantContext);
for (final Tag tag : accountTags) {
if (ControlTagType.MANUAL_PAY.getId().equals(tag.getTagDefinitionId())) {
manualPay = true;
break;
}
}
final HtmlInvoice htmlInvoice;
try {
htmlInvoice = generator.generateInvoice(account, invoice, manualPay, internalTenantContext);
} catch (final IOException e) {
throw new InvoiceApiException(e, ErrorCode.EMAIL_SENDING_FAILED);
}
// take localized subject, or the configured one if the localized one is not available
String subject = htmlInvoice.getSubject();
if (subject == null) {
subject = config.getInvoiceEmailSubject();
}
final EmailSender sender = new DefaultEmailSender(config);
try {
sender.sendHTMLEmail(to, cc, subject, htmlInvoice.getBody());
} catch (final EmailApiException e) {
throw new InvoiceApiException(e, ErrorCode.EMAIL_SENDING_FAILED);
} catch (final IOException e) {
throw new InvoiceApiException(e, ErrorCode.EMAIL_SENDING_FAILED);
}
}
use of org.killbill.billing.invoice.template.HtmlInvoice in project killbill by killbill.
the class DefaultInvoiceUserApi method getInvoiceAsHTML.
@Override
public String getInvoiceAsHTML(final UUID invoiceId, final TenantContext context) throws AccountApiException, IOException, InvoiceApiException {
final Invoice invoice = getInvoice(invoiceId, context);
if (invoice == null) {
throw new InvoiceApiException(ErrorCode.INVOICE_NOT_FOUND, invoiceId);
}
final InternalTenantContext internalContext = internalCallContextFactory.createInternalTenantContext(invoiceId, ObjectType.INVOICE, context);
final Account account = accountUserApi.getAccountById(invoice.getAccountId(), internalContext);
// Check if this account has the MANUAL_PAY system tag
boolean manualPay = false;
final List<Tag> accountTags = tagApi.getTags(account.getId(), ObjectType.ACCOUNT, internalContext);
for (final Tag tag : accountTags) {
if (ControlTagType.MANUAL_PAY.getId().equals(tag.getTagDefinitionId())) {
manualPay = true;
break;
}
}
final HtmlInvoice htmlInvoice = generator.generateInvoice(account, invoice, manualPay, internalContext);
return htmlInvoice.getBody();
}
Aggregations