Skip to content

Commit

Permalink
invoice: See #495. Remove InvoiceMigrationApi and move existing creat…
Browse files Browse the repository at this point in the history
…eMigrationInvoice into InvoiceUserApi (simplification)
  • Loading branch information
sbrossie committed Feb 26, 2016
1 parent fec1a00 commit a48fc6c
Show file tree
Hide file tree
Showing 9 changed files with 23 additions and 145 deletions.
Expand Up @@ -22,7 +22,5 @@ public interface InvoiceModule {

public void installInvoicePaymentApi();

public void installInvoiceMigrationApi();

public void installInvoiceInternalApi();
}

This file was deleted.

This file was deleted.

Expand Up @@ -28,6 +28,7 @@

import javax.annotation.Nullable;

import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.killbill.billing.ErrorCode;
import org.killbill.billing.ObjectType;
Expand All @@ -37,7 +38,10 @@
import org.killbill.billing.callcontext.InternalCallContext;
import org.killbill.billing.callcontext.InternalTenantContext;
import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.catalog.api.MigrationPlan;
import org.killbill.billing.invoice.InvoiceDispatcher;
import org.killbill.billing.invoice.InvoiceDispatcher.FutureAccountNotifications;
import org.killbill.billing.invoice.InvoiceDispatcher.FutureAccountNotifications.SubscriptionNotification;
import org.killbill.billing.invoice.api.DryRunArguments;
import org.killbill.billing.invoice.api.Invoice;
import org.killbill.billing.invoice.api.InvoiceApiException;
Expand All @@ -47,6 +51,7 @@
import org.killbill.billing.invoice.api.InvoiceUserApi;
import org.killbill.billing.invoice.api.WithAccountLock;
import org.killbill.billing.invoice.dao.InvoiceDao;
import org.killbill.billing.invoice.dao.InvoiceItemModelDao;
import org.killbill.billing.invoice.dao.InvoiceModelDao;
import org.killbill.billing.invoice.model.CreditAdjInvoiceItem;
import org.killbill.billing.invoice.model.DefaultInvoice;
Expand Down Expand Up @@ -74,6 +79,7 @@
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.google.inject.Inject;

Expand Down Expand Up @@ -447,6 +453,22 @@ public void consumeExstingCBAOnAccountWithUnpaidInvoices(final UUID accountId, f
dao.consumeExstingCBAOnAccountWithUnpaidInvoices(accountId, internalCallContextFactory.createInternalCallContext(accountId, context));
}

@Override
public UUID createMigrationInvoice(final UUID accountId, final LocalDate targetDate, final BigDecimal balance, final Currency currency, final CallContext context) {
final InternalCallContext internalCallContext = internalCallContextFactory.createInternalCallContext(accountId, context);

final LocalDate createdDate = internalCallContext.toLocalDate(internalCallContext.getCreatedDate());
final InvoiceModelDao migrationInvoice = new InvoiceModelDao(accountId, createdDate, targetDate, currency, true);
final InvoiceItemModelDao migrationInvoiceItem = new InvoiceItemModelDao(context.getCreatedDate(), InvoiceItemType.FIXED, migrationInvoice.getId(), accountId, null, null,
null, MigrationPlan.MIGRATION_PLAN_NAME, MigrationPlan.MIGRATION_PLAN_PHASE_NAME, null,

This comment has been minimized.

Copy link
@pierre

pierre Feb 29, 2016

Member

Interesting -- wondering what happens with Analytics, which will try to retrieve the catalog entry.

This comment has been minimized.

Copy link
@sbrossie

sbrossie Feb 29, 2016

Author Member

Code has changed in subsequent commit.

targetDate, null, balance, null, currency, null);

dao.createInvoice(migrationInvoice, ImmutableList.<InvoiceItemModelDao>of(migrationInvoiceItem),
true, new FutureAccountNotifications(ImmutableMap.<UUID, List<SubscriptionNotification>>of()), internalCallContext);

return migrationInvoice.getId();
}

private void notifyBusOfInvoiceAdjustment(final UUID invoiceId, final UUID accountId, final InternalCallContext context) {
try {
eventBus.post(new DefaultInvoiceAdjustmentEvent(invoiceId, accountId, context.getAccountRecordId(), context.getTenantRecordId(), context.getUserToken()));
Expand Down
Expand Up @@ -25,15 +25,13 @@
import org.killbill.billing.invoice.api.DefaultInvoiceService;
import org.killbill.billing.invoice.api.InvoiceApiHelper;
import org.killbill.billing.invoice.api.InvoiceInternalApi;
import org.killbill.billing.invoice.api.InvoiceMigrationApi;
import org.killbill.billing.invoice.api.InvoiceNotifier;
import org.killbill.billing.invoice.api.InvoicePaymentApi;
import org.killbill.billing.invoice.api.InvoiceService;
import org.killbill.billing.invoice.api.InvoiceUserApi;
import org.killbill.billing.invoice.api.formatters.InvoiceFormatterFactory;
import org.killbill.billing.invoice.api.formatters.ResourceBundleFactory;
import org.killbill.billing.invoice.api.invoice.DefaultInvoicePaymentApi;
import org.killbill.billing.invoice.api.migration.DefaultInvoiceMigrationApi;
import org.killbill.billing.invoice.api.svcs.DefaultInvoiceInternalApi;
import org.killbill.billing.invoice.api.user.DefaultInvoiceUserApi;
import org.killbill.billing.invoice.dao.CBADao;
Expand Down Expand Up @@ -104,10 +102,6 @@ protected void installResourceBundleFactory() {
bind(ResourceBundleFactory.class).to(DefaultResourceBundleFactory.class).asEagerSingleton();
}

@Override
public void installInvoiceMigrationApi() {
bind(InvoiceMigrationApi.class).to(DefaultInvoiceMigrationApi.class).asEagerSingleton();
}

protected void installNotifiers() {
bind(NextBillingDateNotifier.class).to(DefaultNextBillingDateNotifier.class).asEagerSingleton();
Expand Down Expand Up @@ -163,7 +157,6 @@ protected void configure() {
installInvoiceUserApi();
installInvoiceInternalApi();
installInvoicePaymentApi();
installInvoiceMigrationApi();
installResourceBundleFactory();
bind(RawUsageOptimizer.class).asEagerSingleton();
bind(InvoiceApiHelper.class).asEagerSingleton();
Expand Down
Expand Up @@ -22,7 +22,6 @@
import org.killbill.billing.account.api.AccountInternalApi;
import org.killbill.billing.currency.api.CurrencyConversionApi;
import org.killbill.billing.invoice.api.InvoiceInternalApi;
import org.killbill.billing.invoice.api.InvoiceMigrationApi;
import org.killbill.billing.invoice.api.InvoicePaymentApi;
import org.killbill.billing.invoice.api.InvoiceUserApi;
import org.killbill.billing.invoice.api.formatters.ResourceBundleFactory;
Expand Down Expand Up @@ -66,8 +65,6 @@ public abstract class InvoiceTestSuiteNoDB extends GuicyKillbillTestSuiteNoDB {
@Inject
protected InvoicePaymentApi invoicePaymentApi;
@Inject
protected InvoiceMigrationApi migrationApi;
@Inject
protected InvoiceGenerator generator;
@Inject
protected BillingInternalApi billingApi;
Expand Down
Expand Up @@ -24,19 +24,15 @@
import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.invoice.api.DefaultInvoiceService;
import org.killbill.billing.invoice.api.InvoiceInternalApi;
import org.killbill.billing.invoice.api.InvoiceMigrationApi;
import org.killbill.billing.invoice.api.InvoicePaymentApi;
import org.killbill.billing.invoice.api.InvoiceService;
import org.killbill.billing.invoice.api.InvoiceUserApi;
import org.killbill.billing.invoice.calculator.InvoiceCalculatorUtils;
import org.killbill.billing.invoice.dao.InvoiceDao;
import org.killbill.billing.invoice.generator.InvoiceGenerator;
import org.killbill.billing.invoice.glue.TestInvoiceModuleWithEmbeddedDb;
import org.killbill.billing.invoice.notification.NextBillingDateNotifier;
import org.killbill.billing.invoice.plugin.api.InvoicePluginApi;
import org.killbill.billing.junction.BillingInternalApi;
import org.killbill.billing.lifecycle.api.BusService;
import org.killbill.billing.osgi.api.OSGIServiceRegistration;
import org.killbill.billing.platform.api.KillbillConfigSource;
import org.killbill.billing.subscription.api.SubscriptionBaseInternalApi;
import org.killbill.billing.util.api.TagUserApi;
Expand Down Expand Up @@ -75,8 +71,6 @@ public abstract class InvoiceTestSuiteWithEmbeddedDB extends GuicyKillbillTestSu
@Inject
protected InvoicePaymentApi invoicePaymentApi;
@Inject
protected InvoiceMigrationApi migrationApi;
@Inject
protected InvoiceGenerator generator;
@Inject
protected BillingInternalApi billingApi;
Expand Down
Expand Up @@ -65,7 +65,7 @@ public void beforeMethod() throws Exception {
}

private UUID createAndCheckMigrationInvoice(final UUID accountId) throws InvoiceApiException {
final UUID migrationInvoiceId = migrationApi.createMigrationInvoice(accountId, date_migrated, MIGRATION_INVOICE_AMOUNT,
final UUID migrationInvoiceId = invoiceUserApi.createMigrationInvoice(accountId, date_migrated, MIGRATION_INVOICE_AMOUNT,
MIGRATION_INVOICE_CURRENCY, callContext);
Assert.assertNotNull(migrationInvoiceId);
//Double check it was created and values are correct
Expand Down
Expand Up @@ -20,7 +20,6 @@

import org.killbill.billing.glue.InvoiceModule;
import org.killbill.billing.invoice.api.InvoiceInternalApi;
import org.killbill.billing.invoice.api.InvoiceMigrationApi;
import org.killbill.billing.invoice.api.InvoicePaymentApi;
import org.killbill.billing.invoice.api.InvoiceUserApi;
import org.killbill.billing.platform.api.KillbillConfigSource;
Expand All @@ -43,17 +42,11 @@ public void installInvoicePaymentApi() {
bind(InvoicePaymentApi.class).toInstance(Mockito.mock(InvoicePaymentApi.class));
}

@Override
public void installInvoiceMigrationApi() {
bind(InvoiceMigrationApi.class).toInstance(Mockito.mock(InvoiceMigrationApi.class));
}

@Override
protected void configure() {
installInvoiceUserApi();
installInvoiceInternalApi();
installInvoicePaymentApi();
installInvoiceMigrationApi();
}

@Override
Expand Down

1 comment on commit a48fc6c

@pierre
Copy link
Member

@pierre pierre commented on a48fc6c Feb 29, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Please sign in to comment.