Skip to content

Commit 3e237bb

Browse files
committed
[IMP] condominium: add automation to compute usage of meter readings
Before this commit, the usage of meter readings needs to be inserted manually. After this commit, the usage is computed on all meter readings related to the current property. closes #337 Signed-off-by: Vallaeys Valentin (vava) <[email protected]>
1 parent 457ed4d commit 3e237bb

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

condominium/__manifest__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@
2525
'data/res_config_settings.xml',
2626
'data/ir_attachment_pre.xml',
2727
'data/ir_model.xml',
28-
'data/ir_actions_server.xml',
2928
'data/account_analytic_plan.xml',
3029
'data/ir_model_fields.xml',
30+
'data/base_automation.xml',
31+
'data/ir_actions_server.xml',
3132
'data/ir_filters.xml',
3233
'data/ir_default.xml',
3334
'data/meter_view.xml',
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<odoo>
3+
<record id="automation_set_usage_meter_reading" model="base.automation">
4+
<field name="name">Set Usage in Meter Readings</field>
5+
<field name="model_id" ref="model_meter_reading"/>
6+
<field name="trigger">on_create_or_write</field>
7+
<field name="trigger_field_ids" eval="[(6, 0, [ref('field_meter_reading_date'), ref('field_meter_reading_quantity'), ref('field_meter_reading_meter_id')])]"/>
8+
</record>
9+
</odoo>

condominium/data/ir_actions_server.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,23 @@ for aml in record.invoice_line_ids:
8989
records.action_confirm()
9090
]]></field>
9191
</record>
92+
<record id="action_server_set_usage_meter_reading" model="ir.actions.server" >
93+
<field name="name">Meter Reading</field>
94+
<field name="model_id" ref="model_meter_reading"/>
95+
<field name="state">code</field>
96+
<field name="base_automation_id" ref="automation_set_usage_meter_reading"/>
97+
<field name="code"><![CDATA[
98+
mrs = env['x_meter_reading'].search([
99+
('id', 'in', record.x_account_analytic_account_id.x_property_meter_reading_ids.ids),
100+
('x_meter_id', '=', record.x_meter_id.id)], order='x_date')
101+
previous_mr = False
102+
for mr in mrs:
103+
if previous_mr:
104+
mr['x_usage'] = mr['x_quantity'] - previous_mr['x_quantity']
105+
else :
106+
mr['x_usage'] = 0
107+
previous_mr = mr
108+
]]>
109+
</field>
110+
</record>
92111
</odoo>

0 commit comments

Comments
 (0)