Skip to content

Commit fb7c97f

Browse files
committed
[IMP] accounting_firm: add fields and custos for ID, AML and CSAM
Adds customizations and demo data to the accounting_firm app to implement additional aspects: - Identity document management features such as requesting documents button and scheduled action, and more fields to complete about ID - Anti-money Laundering (AML) tab in contact and additional model to evaluate risks - CSAM fields for additional information on contacts - More localized buttons on contact Task-5092478 closes #1206 Signed-off-by: Vallaeys Valentin (vava) <vava@odoo.com>
1 parent ed7910b commit fb7c97f

20 files changed

+1284
-163
lines changed

accounting_firm/__manifest__.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
'name': 'Accounting firm',
3-
'version': '1.0',
3+
'version': '1.1',
44
'category': 'Services',
55
'author': 'Odoo S.A.',
66
'depends': [
@@ -15,12 +15,22 @@
1515
'sale_planning',
1616
'sale_timesheet_enterprise',
1717
'sign',
18+
'web_studio',
1819
],
1920
'data': [
2021
'data/ir_attachment_pre.xml',
2122
'data/res_config_settings.xml',
23+
'data/ir_model.xml',
24+
'data/ir_model_access.xml',
25+
'data/ir_model_fields.xml',
26+
'data/ir_default.xml',
2227
'data/ir_actions_server.xml',
28+
'data/base_automation.xml',
29+
'data/ir_cron.xml',
2330
'data/ir_ui_view.xml',
31+
'data/ir_actions_act_window.xml',
32+
'data/ir_ui_menu.xml',
33+
'data/x_aml_risk_type.xml',
2434
'data/mail_activity_type.xml',
2535
'data/crm_stage.xml',
2636
'data/knowledge_article.xml',
@@ -40,6 +50,7 @@
4050
'data/sale_order_template_line.xml',
4151
],
4252
'demo': [
53+
'demo/x_mandate.xml',
4354
'demo/res_partner.xml',
4455
'demo/crm_lead.xml',
4556
'demo/equity_ubo.xml',
@@ -57,7 +68,6 @@
5768
'demo/project_task.xml',
5869
],
5970
'cloc_exclude': [
60-
'data/ir_actions_server.xml',
6171
'data/knowledge_article.xml',
6272
],
6373
'images': [
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo>
3+
<record id="base_automation_on_id_scan_changed" model="base.automation">
4+
<field name="name">Accounting Firm: On ID Scan Changed</field>
5+
<field name="action_server_ids" eval="[(6, 0, [ref('server_action_keep_scan_in_chatter')])]"/>
6+
<field name="model_id" ref="base.model_res_partner"/>
7+
<field name="on_change_field_ids" eval="[(6, 0, [ref('x_id_scan_field_res_partner')])]"/>
8+
<field name="trigger">on_change</field>
9+
</record>
10+
</odoo>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo>
3+
<record id="action_mandate_list_view" model="ir.actions.act_window">
4+
<field name="name">Mandate list view</field>
5+
<field name="res_model">x_mandate</field>
6+
<field name="view_mode">list,form</field>
7+
</record>
8+
</odoo>

accounting_firm/data/ir_actions_server.xml

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,97 @@ action = {
1212
}
1313
]]></field>
1414
</record>
15+
<record id="action_server_request_identity_document" model="ir.actions.server">
16+
<field name="model_id" ref="base.model_res_partner"/>
17+
<field name="state">code</field>
18+
<field name="name">Request Identity Document</field>
19+
<field name="binding_model_id" ref="base.model_res_partner"/>
20+
<field name="binding_view_types">form</field>
21+
<field name="code"><![CDATA[
22+
action ={
23+
"type": "ir.actions.act_window",
24+
"res_model": "documents.request_wizard",
25+
"views": [[False, "form"]],
26+
"target": "new",
27+
"context": {
28+
"default_folder_id": env.ref('documents.document_inbox_folder').id,
29+
"default_res_id": record.id,
30+
"default_res_model": env.context.get("default_res_model", False),
31+
"default_name": "Identity Document - " + record.name,
32+
"default_requestee_id": record.id,
33+
"default_partner_id": record.id,
34+
"default_activity_date_deadline_range": 7,
35+
"default_activity_note": "Please provide your identity document for update.",
36+
"default_x_has_chatter_message": True,
37+
},
38+
"name": "New Document Request",
39+
}
40+
]]></field>
41+
</record>
42+
<record id="server_action_update_owner_id" model="ir.actions.server">
43+
<field name="model_id" ref="equity.model_equity_ubo"/>
44+
<field name="state">code</field>
45+
<field name="name">Update Owner ID</field>
46+
<field name="code"><![CDATA[
47+
for ubo in records:
48+
ubo.holder_id['x_id_scan'] = ubo.attachment_ids[-1].datas
49+
ubo.holder_id['x_id_expiration_date'] = ubo.attachment_expiration_date
50+
ubo.holder_id.message_post(
51+
body="The Identity Document Scan changed for this one: ",
52+
attachment_ids=[ubo.attachment_ids[-1].id]
53+
)
54+
action = {
55+
'type': 'ir.actions.client',
56+
'tag': 'display_notification',
57+
'params': {
58+
'message': "Identity Document updated",
59+
'type': 'success',
60+
},
61+
}
62+
]]></field>
63+
</record>
64+
<record id="server_action_request_document_with_chatter_message" model="ir.actions.server">
65+
<field name="model_id" ref="documents.model_documents_request_wizard"/>
66+
<field name="state">code</field>
67+
<field name="name">Request Document with Chatter Message</field>
68+
<field name="code"><![CDATA[
69+
doc = record.request_document()
70+
doc['x_is_identity_document_request'] = True
71+
record.partner_id.message_post(body="Document request has been sent")
72+
]]></field>
73+
</record>
74+
<record id="server_action_keep_scan_in_chatter" model="ir.actions.server">
75+
<field name="model_id" ref="base.model_res_partner"/>
76+
<field name="state">code</field>
77+
<field name="name">Keep Scan in Chatter</field>
78+
<field name="code"><![CDATA[
79+
for partner in records:
80+
partner.message_post(
81+
body="The Identity Document Scan changed for this one: ",
82+
attachment_ids=[env['ir.attachment'].create({
83+
'name': 'Identity Document - ' + record.name + ' - History',
84+
'datas': record.x_id_scan,
85+
}).id]
86+
)
87+
]]></field>
88+
</record>
89+
<record id="server_action_update_document_partner_identity" model="ir.actions.server">
90+
<field name="model_id" ref="documents.model_documents_document"/>
91+
<field name="state">code</field>
92+
<field name="name">Update Document Partner ID</field>
93+
<field name="code"><![CDATA[
94+
for document in records:
95+
document.partner_id['x_id_scan'] = document.attachment_id.datas
96+
document.partner_id.message_post(
97+
body="The Identity Document Scan changed for this one: ",
98+
attachment_ids=[document.attachment_id.id]
99+
)
100+
action = {
101+
'view_mode': 'form',
102+
'res_model': 'res.partner',
103+
'res_id': document.partner_id.id,
104+
'type': 'ir.actions.act_window',
105+
}
106+
]]></field>
107+
</record>
15108
</odoo>

accounting_firm/data/ir_cron.xml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo>
3+
<record id="ir_cron_request_contact_id_document" model="ir.cron">
4+
<field name="name">Accounting Firm: Request Contact Identity Document</field>
5+
<field name="interval_number">1</field>
6+
<field name="interval_type">days</field>
7+
<field name="model_id" ref="base.model_res_partner"/>
8+
<field name="state">code</field>
9+
<field name="code"><![CDATA[
10+
for contact in model.search([('x_id_expiration_date', '!=', False), ('x_id_expiration_date', '<', datetime.datetime.today().date() + dateutil.relativedelta.relativedelta(days=7))]):
11+
if not env['documents.document'].search_count([('partner_id', '=', contact.id), ('x_is_identity_document_request', '!=', False), ('attachment_id', '=', False)], limit=1):
12+
doc = env['documents.request_wizard'].create({
13+
"folder_id": env.ref('documents.document_inbox_folder').id,
14+
"res_id": contact.id,
15+
"res_model": env.context.get("default_res_model", False),
16+
"name": "Identity Document - " + contact.name,
17+
"requestee_id": contact.id,
18+
"partner_id": contact.id,
19+
"activity_date_deadline_range": 7,
20+
"activity_note": "Please provide your identity document for update.",
21+
}).request_document()
22+
doc['x_is_identity_document_request'] = True
23+
contact.message_post(body="Document request has been sent")
24+
]]></field>
25+
</record>
26+
</odoo>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo noupdate="1">
3+
<record id="default_x_mandate_x_active" model="ir.default">
4+
<field name="field_id" ref="x_active_field_x_mandate"/>
5+
<field name="json_value">true</field>
6+
</record>
7+
</odoo>

accounting_firm/data/ir_model.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo>
3+
<record id="x_mandate_model" model="ir.model">
4+
<field name="name">Mandate</field>
5+
<field name="model">x_mandate</field>
6+
</record>
7+
<record id="x_aml_risk_model" model="ir.model">
8+
<field name="name">AML Risk</field>
9+
<field name="model">x_aml_risk</field>
10+
</record>
11+
<record id="x_aml_risk_type_model" model="ir.model">
12+
<field name="name">Risk Type</field>
13+
<field name="model">x_aml_risk_type</field>
14+
</record>
15+
</odoo>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo>
3+
<record id="mandate_user_access" model="ir.model.access">
4+
<field name="group_id" ref="base.group_user"/>
5+
<field name="model_id" ref="x_mandate_model"/>
6+
<field name="name">x_mandate_user_access</field>
7+
<field name="perm_create" eval="True"/>
8+
<field name="perm_read" eval="True"/>
9+
<field name="perm_unlink" eval="True"/>
10+
<field name="perm_write" eval="True"/>
11+
</record>
12+
<record id="aml_risk_user_access" model="ir.model.access">
13+
<field name="group_id" ref="base.group_user"/>
14+
<field name="model_id" ref="x_aml_risk_model"/>
15+
<field name="name">x_aml_risk_user_access</field>
16+
<field name="perm_create" eval="True"/>
17+
<field name="perm_read" eval="True"/>
18+
<field name="perm_unlink" eval="True"/>
19+
<field name="perm_write" eval="True"/>
20+
</record>
21+
<record id="aml_risk_type_user_access" model="ir.model.access">
22+
<field name="group_id" ref="base.group_user"/>
23+
<field name="model_id" ref="x_aml_risk_type_model"/>
24+
<field name="name">x_aml_risk_type_user_access</field>
25+
<field name="perm_create" eval="True"/>
26+
<field name="perm_read" eval="True"/>
27+
<field name="perm_unlink" eval="True"/>
28+
<field name="perm_write" eval="True"/>
29+
</record>
30+
</odoo>

0 commit comments

Comments
 (0)