Skip to content

Commit 09380da

Browse files
committed
split analytic item -2
- split account.analytoic.line wizard
1 parent d3517ed commit 09380da

File tree

2 files changed

+39
-82
lines changed

2 files changed

+39
-82
lines changed

condominium/data/ir_actions_server.xml

Lines changed: 22 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -30,29 +30,29 @@ if round(total_share) != 100:
3030
for line in records.x_line_ids:
3131
analytic_id = line.x_analytic_account_name_id
3232
analytic_name = analytic_id.name
33-
33+
original_id = line.x_analytic_line_id.id
3434
3535
new_analytic_item_id = new_analytic_item.create({
3636
"x_plan11_id": analytic_id.id,
3737
"name": analytic_id.name,
3838
"amount": line.x_amount
3939
})
4040
# new_analytic_item += new_analytic_item_id
41-
# occupied_cells.append((line.x_analytic_line_id.id, new_analytic_item_id))
41+
# occupied_cells.append((original_id, new_analytic_item_id))
4242
43-
if line.x_analytic_line_id.id in occupied_cells:
44-
occupied_cells[line.x_analytic_line_id.id].update(new_analytic_item_id)
43+
if original_id in occupied_cells:
44+
occupied_cells[original_id].update(new_analytic_item_id)
4545
else:
46-
occupied_cells.update({line.x_analytic_line_id.id: set(new_analytic_item_id)})
46+
occupied_cells.update({original_id: set(new_analytic_item_id)})
4747
48-
if line.x_analytic_line_id.id in note_details:
48+
if original_id in note_details:
4949
analytic_url = f"/odoo/analytic-items/{new_analytic_item_id.id}"
5050
note_line = f"- {line.x_share:.2f}% on <a href='{analytic_url}' target='_blank'>{analytic_name}</a>"
51-
note_details[line.x_analytic_line_id.id].add(note_line)
51+
note_details[original_id].add(note_line)
5252
else:
5353
analytic_url = f"/odoo/analytic-items/{new_analytic_item_id.id}"
5454
note_line = {f"- {line.x_share:.2f}% on <a href='{analytic_url}' target='_blank'>{analytic_name}</a>"}
55-
note_details.update({line.x_analytic_line_id.id: set(note_line)})
55+
note_details.update({original_id: set(note_line)})
5656
5757
for cell, new_analytic_lines in occupied_cells.items():
5858
for new_analytic_line in list(new_analytic_lines):
@@ -77,20 +77,6 @@ for Aid, values in note_details.items():
7777
"""
7878
new_analytic_item.browse(Aid).write({"x_notes": note_html.strip()})
7979
80-
81-
# for Aid, values in occupied_cells.items():
82-
# raise UserError(values)
83-
# for value in values:
84-
# raise UserError(value)
85-
86-
# note_html = f"""
87-
# <i>{datetime.date}</i><br/>
88-
# <p><b>Analytic item coming from a split</b><br/>
89-
# {'<br/>'.join(note_lines)}<br/>
90-
# See <a href='/odoo/analytic-items/{original_id.id}' target='_blank'> original analytic item:</a>
91-
# </p>
92-
# """
93-
9480
# new_analytic_item.write({"x_notes": note_html.strip()})]]>
9581
</field>
9682
</record>
@@ -101,31 +87,30 @@ for Aid, values in note_details.items():
10187
<field name="binding_model_id" ref="analytic.model_account_analytic_line"/>
10288
<field name="binding_view_types">list,kanban</field>
10389
<field name="state">code</field>
104-
<field name="code"><![CDATA[product_commands = []
90+
<field name="code"><![CDATA[analytic_account_lines = []
10591
amount_total = 0
92+
10693
for record in records:
10794
amount_total += record.amount
108-
product_commands.append((0, 0, {
109-
"x_analytic_account_name_id": record.x_plan11_id.id,
110-
"x_analytic_line_id": record.id,
111-
"x_amount": record.amount / 2
95+
split_amount = record.amount / 2
96+
97+
for _ in range(2):
98+
analytic_account_lines.append((0, 0, {
99+
"x_analytic_account_name_id": record.x_plan11_id.id,
100+
"x_analytic_line_id": record.id,
101+
"x_amount": split_amount
102+
}))
112103
113-
}))
114-
product_commands.append((0, 0, {
115-
"x_analytic_account_name_id": record.x_plan11_id.id,
116-
"x_analytic_line_id": record.id,
117-
"x_amount": record.amount / 2
104+
if amount_total == 0:
105+
raise UserError("Total amount is zero. Cannot split analytic items.")
118106
119-
}))
120107
wizard = env['x_analytic_account_wizard'].create({
121-
"x_line_ids": product_commands,
108+
"x_line_ids": analytic_account_lines,
122109
"x_total": amount_total
123110
})
124111
125112
action = env['ir.actions.act_window']._for_xml_id('condominium.split_act_window')
126-
action['res_id'] = wizard.id
127-
128-
]]>
113+
action['res_id'] = wizard.id]]>
129114
</field>
130115
</record>
131116

condominium/data/ir_model_fields.xml

Lines changed: 17 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1761,33 +1761,7 @@ for record in self: record['x_x_studio_condominium_x_property_count'] = self.env
17611761
<field name="relation">x_calendar_event_line_a1bce</field>
17621762
</record>
17631763

1764-
<!-- <record id="field_analytic_line_id" model="ir.model.fields">
1765-
<field name="name">x_analytic_line_id</field>
1766-
<field name="ttype">many2one</field>
1767-
<field name="field_description">Analytic Line</field>
1768-
<field name="model_id" ref="model_analytic_account_wizard" />
1769-
<field name="relation">account.analytic.line</field>
1770-
</record>
1771-
<record id="field_analytic_account_name" model="ir.model.fields">
1772-
<field name="name">x_analytic_account_name_id</field>
1773-
<field name="ttype">many2one</field>
1774-
<field name="related">x_analytic_line_id.x_plan11_id</field>
1775-
<field name="field_description">Account name</field>
1776-
<field name="model_id" ref="model_analytic_account_wizard" />
1777-
<field name="relation">account.analytic.account</field>
1778-
</record>
1779-
<record id="x_share_field" model="ir.model.fields">
1780-
<field name="name">x_share</field>
1781-
<field name="ttype">float</field>
1782-
<field name="field_description">Share</field>
1783-
<field name="model_id" ref="model_analytic_account_wizard" />
1784-
</record>
1785-
<record id="x_total_field" model="ir.model.fields">
1786-
<field name="name">x_total</field>
1787-
<field name="ttype">float</field>
1788-
<field name="field_description">Total</field>
1789-
<field name="model_id" ref="model_analytic_account_wizard" />
1790-
</record> -->
1764+
17911765

17921766
<record id="field_line_wizard_id" model="ir.model.fields">
17931767
<field name="name">x_analytic_account_wizard_id</field>
@@ -1796,6 +1770,16 @@ for record in self: record['x_x_studio_condominium_x_property_count'] = self.env
17961770
<field name="model_id" ref="model_x_analytic_account_wizard_line"/>
17971771
<field name="relation">x_analytic_account_wizard</field>
17981772
</record>
1773+
<!-- Add One2many field to Wizard -->
1774+
<record id="field_line_ids" model="ir.model.fields">
1775+
<field name="name">x_line_ids</field>
1776+
<field name="ttype">one2many</field>
1777+
<field name="relation">x_analytic_account_wizard_line</field>
1778+
<field name="relation_field">x_analytic_account_wizard_id</field>
1779+
<field name="field_description">Split Lines</field>
1780+
<field name="model_id" ref="model_analytic_account_wizard"/>
1781+
</record>
1782+
17991783

18001784
<!-- Many2one to analytic line -->
18011785
<record id="field_x_analytic_line_id" model="ir.model.fields">
@@ -1831,15 +1815,6 @@ for record in self: record['x_x_studio_condominium_x_property_count'] = self.env
18311815
<field name="currency_field">x_currency_id</field>
18321816
<field name="store">True</field>
18331817
</record>
1834-
<!-- Add One2many field to Wizard -->
1835-
<record id="field_line_ids" model="ir.model.fields">
1836-
<field name="name">x_line_ids</field>
1837-
<field name="ttype">one2many</field>
1838-
<field name="relation">x_analytic_account_wizard_line</field>
1839-
<field name="relation_field">x_analytic_account_wizard_id</field>
1840-
<field name="field_description">Split Lines</field>
1841-
<field name="model_id" ref="model_analytic_account_wizard"/>
1842-
</record>
18431818
<!-- Share -->
18441819
<record id="field_x_share" model="ir.model.fields">
18451820
<field name="name">x_share</field>
@@ -1855,20 +1830,17 @@ for line in self:
18551830
<field name="store" eval="True"/>
18561831
<field name="readonly" eval="True"/>
18571832
</record>
1858-
1859-
<record id="x_total_field" model="ir.model.fields">
1860-
<field name="name">x_total</field>
1861-
<field name="ttype">float</field>
1862-
<field name="field_description">Total</field>
1863-
<field name="model_id" ref="model_analytic_account_wizard" />
1864-
</record>
1865-
18661833
<record id="x_notes_splited_analytic_items" model="ir.model.fields">
18671834
<field name="name">x_notes</field>
18681835
<field name="ttype">html</field>
18691836
<field name="copied" eval="True"/>
18701837
<field name="field_description">Notes</field>
18711838
<field name="model_id" ref="analytic.model_account_analytic_line"/>
18721839
</record>
1873-
1840+
<record id="x_total_field" model="ir.model.fields">
1841+
<field name="name">x_total</field>
1842+
<field name="ttype">float</field>
1843+
<field name="field_description">Total</field>
1844+
<field name="model_id" ref="model_analytic_account_wizard" />
1845+
</record>
18741846
</odoo>

0 commit comments

Comments
 (0)