@Override public boolean apply(final InvoiceItem input) { return input.getId().equals(invoiceItemId); } }).orNull();
@Override public boolean apply(final InvoiceItem input) { return input.getId().equals(item.getLinkedItemId()); } }).orNull();
@Override public boolean apply(final InvoiceItem input) { return input.getId().equals(item.getLinkedItemId()); } }).orNull();
@Test(groups = "slow") public void testFullRefundWithBothInvoiceItemAdjustments() throws Exception { // Create an invoice with two items (30 \u20ac and 10 \u20ac) final Invoice invoice = createAndPersistInvoice(invoiceUtil, invoiceDao, clock, ImmutableList.<BigDecimal>of(THIRTY, BigDecimal.TEN), CURRENCY, internalCallContext); // Fully adjust both items final Map<UUID, BigDecimal> adjustments = new HashMap<UUID, BigDecimal>(); adjustments.put(invoice.getInvoiceItems().get(0).getId(), null); adjustments.put(invoice.getInvoiceItems().get(1).getId(), null); verifyRefund(invoice, new BigDecimal("40"), new BigDecimal("40"), BigDecimal.ZERO, true, adjustments); }
@Test(groups = "slow") public void testPartialRefundWithSingleInvoiceItemAdjustment() throws Exception { // Create an invoice with two items (30 \u20ac and 10 \u20ac) final Invoice invoice = createAndPersistInvoice(invoiceUtil, invoiceDao, clock, ImmutableList.<BigDecimal>of(THIRTY, BigDecimal.TEN), CURRENCY, internalCallContext); // Fully adjust both items final Map<UUID, BigDecimal> adjustments = new HashMap<UUID, BigDecimal>(); adjustments.put(invoice.getInvoiceItems().get(0).getId(), null); verifyRefund(invoice, new BigDecimal("40"), new BigDecimal("30"), BigDecimal.ZERO, true, adjustments); }
public ItemAdjInvoiceItem(final InvoiceItem linkedInvoiceItem, final LocalDate effectiveDate, final BigDecimal amount, final Currency currency) { this(UUIDs.randomUUID(), null, linkedInvoiceItem.getInvoiceId(), linkedInvoiceItem.getAccountId(), effectiveDate, linkedInvoiceItem.getDescription(), amount, currency, linkedInvoiceItem.getId(), null); }
private void checkInvoiceDescriptions(final Invoice invoice) { for (final InvoiceItem invoiceItem : invoice.getInvoiceItems()) { assertEquals(invoiceItem.getDescription(), String.format("[plugin] %s", invoiceItem.getId())); } }
@Override public boolean apply(final InvoiceItem invoiceItem) { return invoiceItem.getId().compareTo(taxInvoiceItem.getId()) == 0; } });
@Test(groups = "slow") public void testRefundWithInvoiceItemAdjustemts() throws Exception { final Map<UUID, BigDecimal> iias = new HashMap<UUID, BigDecimal>(); iias.put(invoice.getInvoiceItems().get(0).getId(), null); refundPaymentWithInvoiceItemAdjAndCheckForCompletion(account, payment, iias, NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT, NextEvent.INVOICE_ADJUSTMENT); refundChecker.checkRefund(payment.getId(), callContext, new ExpectedRefundCheck(payment.getId(), true, new BigDecimal("233.82"), Currency.USD, initialCreationDate.toLocalDate())); invoice = invoiceChecker.checkInvoice(account.getId(), invoiceItemCount++, callContext, new ExpectedInvoiceItemCheck(new LocalDate(2012, 3, 2), new LocalDate(2012, 3, 31), InvoiceItemType.RECURRING, new BigDecimal("233.82")), new ExpectedInvoiceItemCheck(InvoiceItemType.ITEM_ADJ, new BigDecimal("-233.82")) ); }
protected Plan getPlanFromInvoiceItem(final InvoiceItem invoiceItem, final TenantContext context) throws OSGIServiceNotAvailable { try { final Catalog catalog = getCatalog(context); return catalog.findPlan(invoiceItem.getPlanName(), invoiceItem.getStartDate().toDateTimeAtStartOfDay()); } catch (final CatalogApiException e) { logService.log(LogService.LOG_INFO, "Unable to retrieve plan for invoice item " + invoiceItem.getId(), e); return null; } }
@Test(groups = "slow") public void testCreditBalanceInvoiceSqlDao() throws EntityPersistenceException { final UUID invoiceId = UUID.randomUUID(); final UUID accountId = account.getId(); final LocalDate creditDate = new LocalDate(2012, 4, 1); final InvoiceItem creditInvoiceItem = new CreditBalanceAdjInvoiceItem(invoiceId, accountId, creditDate, TEN, Currency.USD); invoiceUtil.createInvoiceItem(creditInvoiceItem, context); final InvoiceItemModelDao savedItem = invoiceUtil.getInvoiceItemById(creditInvoiceItem.getId(), context); assertSameInvoiceItem(creditInvoiceItem, savedItem); }
public CreditJson(final Invoice invoice, final InvoiceItem credit, final List<AuditLog> auditLogs) { super(toAuditLogJson(auditLogs)); this.creditId = credit.getId(); this.accountId = credit.getAccountId(); this.creditAmount = credit.getAmount(); this.currency = credit.getCurrency(); this.invoiceId = credit.getInvoiceId(); this.invoiceNumber = invoice.getInvoiceNumber().toString(); this.effectiveDate = credit.getStartDate(); this.description = credit.getDescription(); this.itemDetails = credit.getItemDetails(); }
/** * ******************************************** INVOICE ******************************************************* */ public void checkInvoiceCreated(final Invoice invoice, final CallContext context) { final List<AuditLog> invoiceLogs = getAuditLogForInvoice(invoice, context); //Assert.assertEquals(invoiceLogs.size(), 1); checkAuditLog(ChangeType.INSERT, context, invoiceLogs.get(0), invoice.getId(), InvoiceSqlDao.class, false, false); for (InvoiceItem cur : invoice.getInvoiceItems()) { final List<AuditLog> auditLogs = getAuditLogForInvoiceItem(cur, context); Assert.assertTrue(auditLogs.size() >= 1); checkAuditLog(ChangeType.INSERT, context, auditLogs.get(0), cur.getId(), InvoiceItemSqlDao.class, false, false); } }
protected PlanPhase getPlanPhaseFromInvoiceItem(final InvoiceItem invoiceItem, final LocalDate subscriptionStartDate, final TenantContext context) throws OSGIServiceNotAvailable { try { final Catalog catalog = getCatalog(context); // TODO - Inaccurate timing return catalog.findPhase(invoiceItem.getPhaseName(), invoiceItem.getStartDate().toDateTimeAtStartOfDay(), subscriptionStartDate.toDateTimeAtStartOfDay()); } catch (final CatalogApiException e) { logService.log(LogService.LOG_INFO, "Unable to retrieve phase for invoice item " + invoiceItem.getId(), e); return null; } }
@Override public Void apply(@Nullable final Void input) { try { invoiceUserApi.insertInvoiceItemAdjustment(account.getId(), invoice.getId(), invoice.getInvoiceItems().get(itemNb - 1).getId(), invoice.getInvoiceDate(), null, null, null, callContext); } catch (final InvoiceApiException e) { fail(e.toString()); } return null; } }, events);
@Override public InvoiceItem getCreditById(final UUID creditId, final TenantContext context) throws InvoiceApiException { final InvoiceItem creditItem = InvoiceItemFactory.fromModelDao(dao.getCreditById(creditId, internalCallContextFactory.createInternalTenantContext(creditId, ObjectType.INVOICE_ITEM, context))); if (creditItem == null) { throw new InvoiceApiException(ErrorCode.INVOICE_NO_SUCH_CREDIT, creditId); } return new CreditAdjInvoiceItem(creditItem.getId(), creditItem.getCreatedDate(), creditItem.getInvoiceId(), creditItem.getAccountId(), creditItem.getStartDate(), creditItem.getDescription(), creditItem.getAmount().negate(), creditItem.getCurrency(), creditItem.getItemDetails()); }
@Override public InvoiceItem getExternalChargeById(final UUID externalChargeId, final TenantContext context) throws InvoiceApiException { final InvoiceItem externalChargeItem = InvoiceItemFactory.fromModelDao(dao.getExternalChargeById(externalChargeId, internalCallContextFactory.createInternalTenantContext(externalChargeId, ObjectType.INVOICE_ITEM, context))); if (externalChargeItem == null) { throw new InvoiceApiException(ErrorCode.INVOICE_NO_SUCH_EXTERNAL_CHARGE, externalChargeId); } return new ExternalChargeInvoiceItem(externalChargeItem.getId(), externalChargeItem.getInvoiceId(), externalChargeItem.getAccountId(), externalChargeItem.getDescription(), externalChargeItem.getStartDate(), externalChargeItem.getEndDate(), externalChargeItem.getAmount(), externalChargeItem.getCurrency(), externalChargeItem.getItemDetails()); }