def _generate_rate_credits_for_testing(self, fee, rate_kwarg, generate_invoice_credit=True): """ Generates enough line item credit for two invoicing periods. """ rate_credit_by_account = CreditLine.add_rate_credit( fee, self.account, **rate_kwarg ) self.assertEqual(CreditAdjustment.objects.filter(credit_line=rate_credit_by_account).count(), 1) rate_credit_by_subscription = CreditLine.add_rate_credit( fee, self.account, subscription=self.subscription, **rate_kwarg ) self.assertEqual(CreditAdjustment.objects.filter(credit_line=rate_credit_by_subscription).count(), 1) if generate_invoice_credit: # this credit should not count toward the line item subscription_credit = CreditLine.add_subscription_credit( fee, self.subscription ) self.assertEqual(CreditAdjustment.objects.filter(credit_line=subscription_credit).count(), 1) return rate_credit_by_account, rate_credit_by_subscription
def add_feature_rate(): CreditLine.add_rate_credit( amount, get_account_for_rate(), feature_rate=FeatureRate.objects.get(id=self.cleaned_data["feature_rate"]), subscription=subscription, note=note, )
def add_product_rate(): CreditLine.add_rate_credit( amount, get_account_for_rate(), product_rate=SoftwareProductRate.objects.get(id=self.cleaned_data["product_rate"]), subscription=subscription, note=note, )
def test_balance_adjustment(self): """ Makes sure that the balance is added to the same invoice and same line item credit. """ product_credit = CreditLine.add_rate_credit( self.product_rate.monthly_fee, self.account, product_rate=self.product_rate, ) self.assertEqual(CreditAdjustment.objects.filter(credit_line=product_credit).count(), 1) CreditLine.add_rate_credit( self.product_rate.monthly_fee, self.account, product_rate=self.product_rate, ) self.assertEqual(CreditAdjustment.objects.filter(credit_line=product_credit).count(), 2) current_product_credit = CreditLine.objects.get(id=product_credit.id) self.assertEqual(current_product_credit.balance, self.product_rate.monthly_fee * 2) subscription_credit = CreditLine.add_subscription_credit( self.monthly_user_fee, self.subscription ) self.assertEqual(CreditAdjustment.objects.filter(credit_line=subscription_credit).count(), 1) CreditLine.add_subscription_credit( self.monthly_user_fee, self.subscription ) self.assertEqual(CreditAdjustment.objects.filter(credit_line=subscription_credit).count(), 2) current_subscription_credit = CreditLine.objects.get(id=subscription_credit.id) self.assertEqual(current_subscription_credit.balance, self.monthly_user_fee * 2) account_credit = CreditLine.add_account_credit( self.product_rate.monthly_fee, self.account ) self.assertEqual(CreditAdjustment.objects.filter(credit_line=account_credit).count(), 1) CreditLine.add_account_credit( self.monthly_user_fee, self.account ) self.assertEqual(CreditAdjustment.objects.filter(credit_line=account_credit).count(), 2) current_account_credit = CreditLine.objects.get(id=account_credit.id) self.assertEqual(current_account_credit.balance, self.product_rate.monthly_fee + self.monthly_user_fee)