Class DefaultCreditExpirationService

java.lang.Object
com.broadleafcommerce.creditaccount.service.expiration.DefaultCreditExpirationService
All Implemented Interfaces:
CreditExpirationService

public class DefaultCreditExpirationService extends Object implements CreditExpirationService
Author:
Dima Myroniuk (dmyroniuk)
  • Constructor Details

  • Method Details

    • processExpiredTransactions

      @Transactional("creditAccountTransactionManager") public void processExpiredTransactions(@NonNull @NonNull List<Transaction> expiredTransactions, @NonNull @NonNull ExpirationSourceInfo expirationSourceInfo, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CreditExpirationService
      Creates the debit transaction with the DefaultTransactionSubType.EXPIRATION sub-type, adds Transaction.getRelatedTransactionDetails() to the expiring credit transaction, sets the Transaction.getAmountRemaining() of the expired transaction to zero, and subtracts the amount remaining from the credit account balance.
      Specified by:
      processExpiredTransactions in interface CreditExpirationService
      Parameters:
      expiredTransactions - the expired transactions
      expirationSourceInfo - Information about the reason for the expiration
      contextInfo - Context information related to multitenancy
    • processExpiredTransactions

      @Transactional("creditAccountTransactionManager") public CreditAccount processExpiredTransactions(@NonNull @NonNull CreditAccount creditAccount, @NonNull @NonNull ExpirationSourceInfo expirationSourceInfo, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CreditExpirationService
      Creates the debit transaction with the DefaultTransactionSubType.EXPIRATION sub-type, adds Transaction.getRelatedTransactionDetails() to the expiring credit transaction, sets the Transaction.getAmountRemaining() of the expired transaction to zero, and subtracts the amount remaining from the credit account balance.
      Specified by:
      processExpiredTransactions in interface CreditExpirationService
      Parameters:
      creditAccount - the credit account
      expirationSourceInfo - Information about the reason for the expiration
      contextInfo - Context information related to multitenancy
      Returns:
      The updated CreditAccount
    • processExpiredTransactions

      protected CreditAccount processExpiredTransactions(@NonNull @NonNull CreditAccount creditAccount, @NonNull @NonNull List<Transaction> expiredTransactions, @NonNull @NonNull ExpirationSourceInfo expirationSourceInfo, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    • createExpirationTransaction

      protected Transaction createExpirationTransaction(@NonNull @NonNull CreditAccount creditAccount, @NonNull @NonNull Transaction expiredTransaction, @NonNull @NonNull ExpirationSourceInfo expirationSourceInfo, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    • buildRelatedTransactionDetail

      protected RelatedTransactionDetail buildRelatedTransactionDetail(@NonNull @NonNull Transaction expirationTransaction)
    • buildContextInfoForCreditAccount

      @Nullable protected com.broadleafcommerce.data.tracking.core.context.ContextInfo buildContextInfoForCreditAccount(@NonNull @NonNull CreditAccount creditAccount, @NonNull @NonNull com.broadleafcommerce.data.tracking.core.type.OperationType operationType, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Builds a ContextInfo for provided credit account.

      This is useful to make requests for CreditAccount in the correct context, since scheduled job itself doesn't have application context. This method makes it easier to achieve that rather than creating new endpoints for each operation to ignore application context.

      Parameters:
      creditAccount - the CreditAccount to build the context info from
      operationType - the operation type
      Returns:
      a ContextInfo with OperationType.UPDATE from the given CreditAccount
    • getTenantId

      @Nullable protected String getTenantId(@NonNull @NonNull com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState creditAccountContext)
    • getApplicationId

      @Nullable protected String getApplicationId(@NonNull @NonNull com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState creditAccountContext)
    • withOperationType

      protected com.broadleafcommerce.data.tracking.core.context.ContextInfo withOperationType(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo, com.broadleafcommerce.data.tracking.core.type.OperationType operationType)
    • getTransactionService

      protected TransactionService<Transaction> getTransactionService()
    • getCreditAccountService

      protected CreditAccountService<CreditAccount> getCreditAccountService()
    • getTypeFactory

      protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()