|
|
|
@ -3,10 +3,9 @@
|
|
|
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
|
|
|
|
|
|
|
|
import time
|
|
|
|
|
from odoo.tests.common import TransactionCase
|
|
|
|
|
from odoo import tools
|
|
|
|
|
from odoo.modules.module import get_resource_path
|
|
|
|
|
|
|
|
|
|
from odoo.exceptions import UserError
|
|
|
|
|
from odoo.tests.common import TransactionCase
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestDonationRecurring(TransactionCase):
|
|
|
|
@ -16,77 +15,107 @@ class TestDonationRecurring(TransactionCase):
|
|
|
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
|
super().setUp()
|
|
|
|
|
self.bank_journal = self.env['account.journal'].create({
|
|
|
|
|
'type': 'bank',
|
|
|
|
|
'name': 'test bank journal',
|
|
|
|
|
})
|
|
|
|
|
self.payment_mode = self.env['account.payment.mode'].create({
|
|
|
|
|
'name': 'test_payment_mode',
|
|
|
|
|
'bank_account_link': 'fixed',
|
|
|
|
|
'fixed_journal_id': self.bank_journal.id,
|
|
|
|
|
'payment_method_id': self.env.ref('account.account_payment_method_manual_in').id,
|
|
|
|
|
})
|
|
|
|
|
self.product = self.env.ref(
|
|
|
|
|
'donation_base.product_product_donation')
|
|
|
|
|
self.ddo = self.env['donation.donation']
|
|
|
|
|
self.don_rec1 = self.ddo.create({
|
|
|
|
|
'check_total': 30,
|
|
|
|
|
'partner_id': self.env.ref('donation_recurring.donor_rec1').id,
|
|
|
|
|
'donation_date': time.strftime('%Y-01-01'),
|
|
|
|
|
'payment_mode_id': self.payment_mode.id,
|
|
|
|
|
'tax_receipt_option': 'annual',
|
|
|
|
|
'recurring_template': 'active',
|
|
|
|
|
'line_ids': [(0, 0, {
|
|
|
|
|
'product_id': self.product.id,
|
|
|
|
|
'quantity': 1,
|
|
|
|
|
'unit_price': 30,
|
|
|
|
|
})],
|
|
|
|
|
})
|
|
|
|
|
self.don_rec2 = self.ddo.create({
|
|
|
|
|
'check_total': 25,
|
|
|
|
|
'partner_id': self.env.ref('donation_recurring.donor_rec2').id,
|
|
|
|
|
'donation_date': time.strftime('%Y-01-01'),
|
|
|
|
|
'payment_mode_id': self.payment_mode.id,
|
|
|
|
|
'tax_receipt_option': 'annual',
|
|
|
|
|
'recurring_template': 'active',
|
|
|
|
|
'line_ids': [(0, 0, {
|
|
|
|
|
'product_id': self.product.id,
|
|
|
|
|
'quantity': 1,
|
|
|
|
|
'unit_price': 25,
|
|
|
|
|
})],
|
|
|
|
|
})
|
|
|
|
|
self.don_rec3 = self.ddo.create({
|
|
|
|
|
'check_total': 35,
|
|
|
|
|
'partner_id': self.env.ref('donation_recurring.donor_rec3').id,
|
|
|
|
|
'donation_date': time.strftime('%Y-01-01'),
|
|
|
|
|
'payment_mode_id': self.payment_mode.id,
|
|
|
|
|
'tax_receipt_option': 'annual',
|
|
|
|
|
'recurring_template': 'suspended',
|
|
|
|
|
'line_ids': [(0, 0, {
|
|
|
|
|
'product_id': self.product.id,
|
|
|
|
|
'quantity': 1,
|
|
|
|
|
'unit_price': 35,
|
|
|
|
|
})],
|
|
|
|
|
})
|
|
|
|
|
self.bank_journal = self.env["account.journal"].create(
|
|
|
|
|
{
|
|
|
|
|
"type": "bank",
|
|
|
|
|
"name": "test bank journal",
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
self.payment_mode = self.env["account.payment.mode"].create(
|
|
|
|
|
{
|
|
|
|
|
"name": "test_payment_mode",
|
|
|
|
|
"bank_account_link": "fixed",
|
|
|
|
|
"fixed_journal_id": self.bank_journal.id,
|
|
|
|
|
"payment_method_id": self.env.ref(
|
|
|
|
|
"account.account_payment_method_manual_in"
|
|
|
|
|
).id,
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
self.product = self.env.ref("donation_base.product_product_donation")
|
|
|
|
|
self.ddo = self.env["donation.donation"]
|
|
|
|
|
self.don_rec1 = self.ddo.create(
|
|
|
|
|
{
|
|
|
|
|
"check_total": 30,
|
|
|
|
|
"partner_id": self.env.ref("donation_recurring.donor_rec1").id,
|
|
|
|
|
"donation_date": time.strftime("%Y-01-01"),
|
|
|
|
|
"payment_mode_id": self.payment_mode.id,
|
|
|
|
|
"tax_receipt_option": "annual",
|
|
|
|
|
"recurring_template": "active",
|
|
|
|
|
"line_ids": [
|
|
|
|
|
(
|
|
|
|
|
0,
|
|
|
|
|
0,
|
|
|
|
|
{
|
|
|
|
|
"product_id": self.product.id,
|
|
|
|
|
"quantity": 1,
|
|
|
|
|
"unit_price": 30,
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
self.don_rec2 = self.ddo.create(
|
|
|
|
|
{
|
|
|
|
|
"check_total": 25,
|
|
|
|
|
"partner_id": self.env.ref("donation_recurring.donor_rec2").id,
|
|
|
|
|
"donation_date": time.strftime("%Y-01-01"),
|
|
|
|
|
"payment_mode_id": self.payment_mode.id,
|
|
|
|
|
"tax_receipt_option": "annual",
|
|
|
|
|
"recurring_template": "active",
|
|
|
|
|
"line_ids": [
|
|
|
|
|
(
|
|
|
|
|
0,
|
|
|
|
|
0,
|
|
|
|
|
{
|
|
|
|
|
"product_id": self.product.id,
|
|
|
|
|
"quantity": 1,
|
|
|
|
|
"unit_price": 25,
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
self.don_rec3 = self.ddo.create(
|
|
|
|
|
{
|
|
|
|
|
"check_total": 35,
|
|
|
|
|
"partner_id": self.env.ref("donation_recurring.donor_rec3").id,
|
|
|
|
|
"donation_date": time.strftime("%Y-01-01"),
|
|
|
|
|
"payment_mode_id": self.payment_mode.id,
|
|
|
|
|
"tax_receipt_option": "annual",
|
|
|
|
|
"recurring_template": "suspended",
|
|
|
|
|
"line_ids": [
|
|
|
|
|
(
|
|
|
|
|
0,
|
|
|
|
|
0,
|
|
|
|
|
{
|
|
|
|
|
"product_id": self.product.id,
|
|
|
|
|
"quantity": 1,
|
|
|
|
|
"unit_price": 35,
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def test_donation_recurring(self):
|
|
|
|
|
wizard = self.env['donation.recurring.generate'].create(
|
|
|
|
|
{'payment_ref': 'Don Abbaye Sainte Madeleine'})
|
|
|
|
|
wizard = self.env["donation.recurring.generate"].create(
|
|
|
|
|
{"payment_ref": "Don Abbaye Sainte Madeleine"}
|
|
|
|
|
)
|
|
|
|
|
action = wizard.generate()
|
|
|
|
|
active_don_recs = self.don_rec1 + self.don_rec2
|
|
|
|
|
for don_rec in active_don_recs:
|
|
|
|
|
self.assertTrue(don_rec.recurring_donation_ids)
|
|
|
|
|
don = don_rec.recurring_donation_ids[0]
|
|
|
|
|
self.assertEqual(don.state, 'draft')
|
|
|
|
|
self.assertEqual(
|
|
|
|
|
don.payment_ref,
|
|
|
|
|
'Don Abbaye Sainte Madeleine')
|
|
|
|
|
self.assertEqual(don.state, "draft")
|
|
|
|
|
self.assertEqual(don.payment_ref, "Don Abbaye Sainte Madeleine")
|
|
|
|
|
self.assertEqual(don.campaign_id, don_rec.campaign_id)
|
|
|
|
|
self.assertFalse(self.don_rec3.recurring_donation_ids)
|
|
|
|
|
active_ids = action['domain'][0][2]
|
|
|
|
|
wizard_val = self.env['donation.validate'].with_context(
|
|
|
|
|
active_ids=active_ids, active_model='donation.donation').\
|
|
|
|
|
create({})
|
|
|
|
|
active_ids = action["domain"][0][2]
|
|
|
|
|
wizard_val = (
|
|
|
|
|
self.env["donation.validate"]
|
|
|
|
|
.with_context(active_ids=active_ids, active_model="donation.donation")
|
|
|
|
|
.create({})
|
|
|
|
|
)
|
|
|
|
|
with self.assertRaises(UserError):
|
|
|
|
|
wizard_val.run()
|
|
|
|
|
self.don_rec1.recurring_template_change()
|
|
|
|
|