robin.keunen
5 years ago
7 changed files with 262 additions and 13 deletions
-
14easy_my_coop/demo/coop.xml
-
44easy_my_coop/demo/users.xml
-
2easy_my_coop/security/res_groups.xml
-
174easy_my_coop/tests/test_emc.py
-
4easy_my_coop_document/__openerp__.py
-
3easy_my_coop_loan/__manifest__.py
-
34easy_my_coop_loan/demo/coop.xml
@ -0,0 +1,44 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<!-- |
||||
|
Copyright 2019 Coop IT Easy |
||||
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
||||
|
--> |
||||
|
<odoo> |
||||
|
|
||||
|
<record id="res_partner_user_emc_demo" model="res.partner"> |
||||
|
<field name="name">User EMC</field> |
||||
|
<field name="customer" eval="False"/> |
||||
|
<field name="is_company" eval="False"/> |
||||
|
<field name="email">user.emc@coop.coop</field> |
||||
|
<field name="street">Rue de la colocation, 23</field> |
||||
|
<field name="city">Bruxelles</field> |
||||
|
<field name="zip">1030</field> |
||||
|
<field name="country_id" ref="base.be"/> |
||||
|
</record> |
||||
|
|
||||
|
<record id="res_users_user_emc_demo" model="res.users"> |
||||
|
<field name="partner_id" ref="res_partner_user_emc_demo"/> |
||||
|
<field name="login">user-emc</field> |
||||
|
<field name="password">demo</field> |
||||
|
<field name="groups_id" eval="[(4, ref('easy_my_coop.group_easy_my_coop_user'))]"/> |
||||
|
</record> |
||||
|
|
||||
|
<record id="res_partner_manager_emc_demo" model="res.partner"> |
||||
|
<field name="name">Manager EMC</field> |
||||
|
<field name="customer" eval="False"/> |
||||
|
<field name="is_company" eval="False"/> |
||||
|
<field name="email">manager.emc@coop.coop</field> |
||||
|
<field name="street">Rue de la colocation, 24</field> |
||||
|
<field name="city">Liège</field> |
||||
|
<field name="zip">4100</field> |
||||
|
<field name="country_id" ref="base.be"/> |
||||
|
</record> |
||||
|
|
||||
|
<record id="res_users_manager_emc_demo" model="res.users"> |
||||
|
<field name="partner_id" ref="res_partner_manager_emc_demo"/> |
||||
|
<field name="login">manager-emc</field> |
||||
|
<field name="password">demo</field> |
||||
|
<field name="groups_id" eval="[(4, ref('easy_my_coop.group_easy_my_coop_manager'))]"/> |
||||
|
</record> |
||||
|
|
||||
|
</odoo> |
@ -0,0 +1,174 @@ |
|||||
|
# Copyright 2019 Coop IT Easy SCRL fs |
||||
|
# Robin Keunen <robin@coopiteasy.be> |
||||
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
|
from odoo.fields import Date |
||||
|
from odoo.exceptions import AccessError |
||||
|
from .test_base import EMCBaseCase |
||||
|
|
||||
|
|
||||
|
class EMCCase(EMCBaseCase): |
||||
|
def setUp(self): |
||||
|
super(EMCCase, self).setUp() |
||||
|
|
||||
|
self.request = self.browse_ref( |
||||
|
"easy_my_coop.subscription_request_1_demo" |
||||
|
) |
||||
|
self.bank_journal_euro = self.env["account.journal"].create( |
||||
|
{"name": "Bank", "type": "bank", "code": "BNK67"} |
||||
|
) |
||||
|
self.payment_method_manual_in = self.env.ref( |
||||
|
"account.account_payment_method_manual_in" |
||||
|
) |
||||
|
|
||||
|
def test_put_on_waiting_list(self): |
||||
|
self.as_emc_user() |
||||
|
self.request.put_on_waiting_list() |
||||
|
self.assertEquals(self.request.state, "waiting") |
||||
|
|
||||
|
def test_validate_subscription_request(self): |
||||
|
self.as_emc_user() |
||||
|
self.request.validate_subscription_request() |
||||
|
|
||||
|
self.assertEquals(self.request.state, "done") |
||||
|
self.assertTrue(self.request.partner_id) |
||||
|
self.assertTrue(self.request.partner_id.coop_candidate) |
||||
|
self.assertFalse(self.request.partner_id.member) |
||||
|
self.assertEquals(self.request.type, "new") |
||||
|
self.assertTrue(len(self.request.capital_release_request) >= 1) |
||||
|
self.assertEquals(self.request.capital_release_request.state, "open") |
||||
|
self.assertTrue(self.request.capital_release_request.sent) |
||||
|
|
||||
|
def test_register_payment_for_capital_release(self): |
||||
|
self.as_emc_user() |
||||
|
self.request.validate_subscription_request() |
||||
|
invoice = self.request.capital_release_request |
||||
|
|
||||
|
ctx = {"active_model": "account.invoice", "active_ids": [invoice.id]} |
||||
|
register_payments = ( |
||||
|
self.env["account.register.payments"] |
||||
|
.with_context(ctx) |
||||
|
.create( |
||||
|
{ |
||||
|
"payment_date": Date.today(), |
||||
|
"journal_id": self.bank_journal_euro.id, |
||||
|
"payment_method_id": self.payment_method_manual_in.id, |
||||
|
} |
||||
|
) |
||||
|
) |
||||
|
register_payments.create_payments() |
||||
|
self.assertEquals(self.request.capital_release_request.state, "paid") |
||||
|
|
||||
|
partner = self.request.partner_id |
||||
|
self.assertFalse(partner.coop_candidate) |
||||
|
self.assertTrue(partner.member) |
||||
|
self.assertTrue(partner.share_ids) |
||||
|
self.assertEquals(self.request.partner_id.effective_date, Date.today()) |
||||
|
|
||||
|
share = partner.share_ids[0] |
||||
|
self.assertEquals(share.share_number, self.request.ordered_parts) |
||||
|
self.assertEquals( |
||||
|
share.share_product_id, self.request.share_product_id |
||||
|
) |
||||
|
self.assertEquals(share.effective_date, Date.today()) |
||||
|
|
||||
|
def test_user_rights(self): |
||||
|
|
||||
|
request_values = { |
||||
|
"name": "test create request", |
||||
|
"email": "test@demo.net", |
||||
|
"address": "schaerbeekstraat", |
||||
|
"zip_code": "1111", |
||||
|
"city": "Brussels", |
||||
|
"country_id": self.ref("base.be"), |
||||
|
"date": Date.today(), |
||||
|
"source": "manual", |
||||
|
"ordered_parts": 3, |
||||
|
"share_product_id": self.ref( |
||||
|
"easy_my_coop.product_template_share_type_2_demo" |
||||
|
).product_variant_id.id, |
||||
|
"lang": "en_US", |
||||
|
} |
||||
|
|
||||
|
# test ir model access for base user |
||||
|
self.as_user() |
||||
|
read_request = self.browse_ref( |
||||
|
"easy_my_coop.subscription_request_1_demo" |
||||
|
) |
||||
|
with self.assertRaises(AccessError): |
||||
|
read_request.name = "test write request" |
||||
|
with self.assertRaises(AccessError): |
||||
|
self.env["subscription.request"].create(request_values) |
||||
|
with self.assertRaises(AccessError): |
||||
|
read_request.unlink() |
||||
|
|
||||
|
share_line = self.browse_ref("easy_my_coop.share_line_1_demo") |
||||
|
with self.assertRaises(AccessError): |
||||
|
share_line.share_number = 3 |
||||
|
|
||||
|
# test ir model access for easy my coop user |
||||
|
self.as_emc_user() |
||||
|
read_request = self.browse_ref( |
||||
|
"easy_my_coop.subscription_request_1_demo" |
||||
|
) |
||||
|
read_request.name = "test write request" |
||||
|
create_request = self.env["subscription.request"].create( |
||||
|
request_values |
||||
|
) |
||||
|
with self.assertRaises(AccessError): |
||||
|
create_request.unlink() |
||||
|
|
||||
|
share_line = self.browse_ref("easy_my_coop.share_line_1_demo") |
||||
|
share_line.share_number = 3 |
||||
|
with self.assertRaises(AccessError): |
||||
|
share_line.unlink() |
||||
|
|
||||
|
share_type = self.browse_ref( |
||||
|
"easy_my_coop.product_template_share_type_1_demo" |
||||
|
) |
||||
|
share_type.list_price = 30 |
||||
|
with self.assertRaises(AccessError): |
||||
|
self.env["product.template"].create( |
||||
|
{ |
||||
|
"name": "Part C - Client", |
||||
|
"short_name": "Part C", |
||||
|
"is_share": True, |
||||
|
"default_share_product": True, |
||||
|
"force_min_qty": True, |
||||
|
"minimum_quantity": 2, |
||||
|
"by_individual": True, |
||||
|
"by_company": True, |
||||
|
"list_price": 50, |
||||
|
"display_on_website": True, |
||||
|
} |
||||
|
) |
||||
|
with self.assertRaises(AccessError): |
||||
|
share_type.unlink() |
||||
|
|
||||
|
# test ir model access for easy my coop manager |
||||
|
self.as_emc_manager() |
||||
|
read_request = self.browse_ref( |
||||
|
"easy_my_coop.subscription_request_1_demo" |
||||
|
) |
||||
|
read_request.name = "test write request" |
||||
|
create_request = self.env["subscription.request"].create( |
||||
|
request_values |
||||
|
) |
||||
|
create_request.unlink() |
||||
|
|
||||
|
share_type = self.env["product.template"].create( |
||||
|
{ |
||||
|
"name": "Part C - Client", |
||||
|
"short_name": "Part C", |
||||
|
"is_share": True, |
||||
|
"default_share_product": True, |
||||
|
"force_min_qty": True, |
||||
|
"minimum_quantity": 2, |
||||
|
"by_individual": True, |
||||
|
"by_company": True, |
||||
|
"list_price": 50, |
||||
|
"display_on_website": True, |
||||
|
} |
||||
|
) |
||||
|
share_type.list_price = 30 |
||||
|
share_type.unlink() |
@ -0,0 +1,34 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<!-- |
||||
|
Copyright 2019 Coop IT Easy |
||||
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
||||
|
--> |
||||
|
<odoo> |
||||
|
<record id="loan_issue_1_demo" model="loan.issue"> |
||||
|
<field name="name">test loan issue</field> |
||||
|
<field name="is_bond" eval="False"/> |
||||
|
<field name="is_loan" eval="True"/> |
||||
|
<field name="default_issue" eval="True"/> |
||||
|
<field name="subscription_start_date" eval="datetime.today()"/> |
||||
|
<field name="subscription_end_date" eval="datetime.today() + timedelta(days=60)"/> |
||||
|
<field name="term_date" eval="datetime.today() + timedelta(days=600)"/> |
||||
|
<field name="user_id" ref="easy_my_coop.res_users_manager_emc_demo"/> |
||||
|
<field name="rate">0.03</field> |
||||
|
<field name="face_value">100</field> |
||||
|
<field name="minimum_amount">4000</field> |
||||
|
<field name="maximum_amount">10000</field> |
||||
|
<field name="maximum_amount_per_sub">1000</field> |
||||
|
<field name="interest_payment">yearly</field> |
||||
|
<field name="by_company" eval="True"/> |
||||
|
<field name="by_individual" eval="True"/> |
||||
|
<field name="display_on_website" eval="True"/> |
||||
|
<field name="taxes_rate">0.08</field> |
||||
|
<field name="state">ongoing</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="loan_issue_line_1_demo" model="loan.issue.line"> |
||||
|
<field name="loan_issue_id" ref="loan_issue_1_demo"/> |
||||
|
<field name="quantity">3</field> |
||||
|
<field name="partner_id" ref="easy_my_coop.res_partner_cooperator_4_demo"/> |
||||
|
</record> |
||||
|
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue