Browse Source

[IMP] account_financial_report: open_items

* added option "show_partner_details"
pull/682/head
Joan Sisquella 5 years ago
parent
commit
12d367de49
  1. 20
      account_financial_report/report/open_items.py
  2. 9
      account_financial_report/report/open_items_xlsx.py
  3. 4
      account_financial_report/report/templates/general_ledger.xml
  4. 41
      account_financial_report/report/templates/open_items.xml
  5. 1
      account_financial_report/wizard/open_items_wizard.py
  6. 1
      account_financial_report/wizard/open_items_wizard_view.xml

20
account_financial_report/report/open_items.py

@ -324,6 +324,20 @@ class OpenItemsReport(models.AbstractModel):
total_amount[account_id]["residual"] += move_line["amount_residual"] total_amount[account_id]["residual"] += move_line["amount_residual"]
return total_amount return total_amount
@api.model
def _get_open_items_no_partners(self, open_items_move_lines_data):
new_open_items = {}
for acc_id in open_items_move_lines_data.keys():
new_open_items[acc_id] = {}
move_lines = []
for prt_id in open_items_move_lines_data[acc_id]:
for move_line in open_items_move_lines_data[acc_id][prt_id]:
move_lines += [move_line]
move_lines = sorted(move_lines, key=lambda k: (k["date"]))
new_open_items[acc_id] = move_lines
return new_open_items
@api.multi
def _get_report_values(self, docids, data): def _get_report_values(self, docids, data):
wizard_id = data["wizard_id"] wizard_id = data["wizard_id"]
company = self.env["res.company"].browse(data["company_id"]) company = self.env["res.company"].browse(data["company_id"])
@ -334,6 +348,7 @@ class OpenItemsReport(models.AbstractModel):
date_at_object = datetime.strptime(date_at, "%Y-%m-%d").date() date_at_object = datetime.strptime(date_at, "%Y-%m-%d").date()
date_from = data["date_from"] date_from = data["date_from"]
target_move = data["target_move"] target_move = data["target_move"]
show_partner_details = data["show_partner_details"]
( (
move_lines_data, move_lines_data,
@ -346,11 +361,16 @@ class OpenItemsReport(models.AbstractModel):
) )
total_amount = self._calculate_amounts(open_items_move_lines_data) total_amount = self._calculate_amounts(open_items_move_lines_data)
if not show_partner_details:
open_items_move_lines_data = self._get_open_items_no_partners(
open_items_move_lines_data
)
return { return {
"doc_ids": [wizard_id], "doc_ids": [wizard_id],
"doc_model": "open.items.report.wizard", "doc_model": "open.items.report.wizard",
"docs": self.env["open.items.report.wizard"].browse(wizard_id), "docs": self.env["open.items.report.wizard"].browse(wizard_id),
"foreign_currency": data["foreign_currency"], "foreign_currency": data["foreign_currency"],
"show_partner_details": data["show_partner_details"],
"company_name": company.display_name, "company_name": company.display_name,
"currency_name": company.currency_id.name, "currency_name": company.currency_id.name,
"date_at": date_at_object.strftime("%d/%m/%Y"), "date_at": date_at_object.strftime("%d/%m/%Y"),

9
account_financial_report/report/open_items_xlsx.py

@ -109,6 +109,7 @@ class OpenItemsXslx(models.AbstractModel):
accounts_data = res_data["accounts_data"] accounts_data = res_data["accounts_data"]
partners_data = res_data["partners_data"] partners_data = res_data["partners_data"]
total_amount = res_data["total_amount"] total_amount = res_data["total_amount"]
show_partner_details = res_data["show_partner_details"]
for account_id in Open_items.keys(): for account_id in Open_items.keys():
# Write account title # Write account title
self.write_array_title( self.write_array_title(
@ -119,6 +120,7 @@ class OpenItemsXslx(models.AbstractModel):
# For each partner # For each partner
if Open_items[account_id]: if Open_items[account_id]:
if show_partner_details:
for partner_id in Open_items[account_id]: for partner_id in Open_items[account_id]:
type_object = "partner" type_object = "partner"
# Write partner title # Write partner title
@ -142,6 +144,13 @@ class OpenItemsXslx(models.AbstractModel):
# Line break # Line break
self.row_pos += 1 self.row_pos += 1
else:
# Display array header for move lines
self.write_array_header()
# Display account move lines
for line in Open_items[account_id]:
self.write_line_from_dict(line)
# Display ending balance line for account # Display ending balance line for account
type_object = "account" type_object = "account"

4
account_financial_report/report/templates/general_ledger.xml

@ -85,6 +85,8 @@
/> />
<t t-set="type" t-value='"partner_type"' /> <t t-set="type" t-value='"partner_type"' />
</t> </t>
</div>
</t>
<!-- Display account footer --> <!-- Display account footer -->
<t t-if="not filter_partner_ids"> <t t-if="not filter_partner_ids">
<t <t
@ -97,8 +99,6 @@
<t t-set="type" t-value='"account_type"' /> <t t-set="type" t-value='"account_type"' />
</t> </t>
</t> </t>
</div>
</t>
</t> </t>
</div> </div>
</t> </t>

41
account_financial_report/report/templates/open_items.xml

@ -28,7 +28,6 @@
<!-- Display filters --> <!-- Display filters -->
<t t-call="account_financial_report.report_open_items_filters" /> <t t-call="account_financial_report.report_open_items_filters" />
<t t-foreach="Open_Items.keys()" t-as="account_id"> <t t-foreach="Open_Items.keys()" t-as="account_id">
<div class="page_break">
<!-- Display account header --> <!-- Display account header -->
<div class="act_as_table list_table" style="margin-top: 10px;" /> <div class="act_as_table list_table" style="margin-top: 10px;" />
<div class="account_title" style="width: 100%;"> <div class="account_title" style="width: 100%;">
@ -36,18 +35,41 @@
- -
<span t-esc="accounts_data[account_id]['name']" /> <span t-esc="accounts_data[account_id]['name']" />
</div> </div>
<t t-if="not show_partner_details">
<div class="act_as_table data_table" style="width: 100%;">
<t
t-call="account_financial_report.report_open_items_lines_header"
/>
<!-- Display account move lines -->
<t t-foreach="Open_Items[account_id]" t-as="line">
<t
t-call="account_financial_report.report_open_items_lines"
/>
</t>
</div>
</t>
<t t-if="show_partner_details">
<div class="page_break">
<!-- Display account partners --> <!-- Display account partners -->
<t t-foreach="Open_Items[account_id]" t-as="partner_id"> <t t-foreach="Open_Items[account_id]" t-as="partner_id">
<div class="page_break">
<!-- Display partner header -->
<div class="act_as_caption account_title"> <div class="act_as_caption account_title">
<span t-esc="partners_data[partner_id]['name']" /> <span t-esc="partners_data[partner_id]['name']" />
</div> </div>
<div class="act_as_table data_table" style="width: 100%;">
<!-- Display partner header -->
<t
t-call="account_financial_report.report_open_items_lines_header"
/>
<!-- Display partner move lines --> <!-- Display partner move lines -->
<t
t-foreach="Open_Items[account_id][partner_id]"
t-as="line"
>
<t <t
t-call="account_financial_report.report_open_items_lines" t-call="account_financial_report.report_open_items_lines"
/> />
<!-- Display partner footer -->
</t>
</div>
<t <t
t-call="account_financial_report.report_open_items_ending_cumul" t-call="account_financial_report.report_open_items_ending_cumul"
> >
@ -61,6 +83,7 @@
/> />
<t t-set="type" t-value='"partner_type"' /> <t t-set="type" t-value='"partner_type"' />
</t> </t>
</t>
</div> </div>
</t> </t>
<!-- Display account footer --> <!-- Display account footer -->
@ -75,7 +98,6 @@
/> />
<t t-set="type" t-value='"account_type"' /> <t t-set="type" t-value='"account_type"' />
</t> </t>
</div>
</t> </t>
</div> </div>
</template> </template>
@ -101,8 +123,7 @@
</div> </div>
</div> </div>
</template> </template>
<template id="account_financial_report.report_open_items_lines">
<div class="act_as_table data_table" style="width: 100%;">
<template id="account_financial_report.report_open_items_lines_header">
<!-- Display table headers for lines --> <!-- Display table headers for lines -->
<div class="act_as_thead"> <div class="act_as_thead">
<div class="act_as_row labels"> <div class="act_as_row labels">
@ -145,8 +166,8 @@
</t> </t>
</div> </div>
</div> </div>
<!-- Display each lines -->
<t t-foreach="Open_Items[account_id][partner_id]" t-as="line">
</template>
<template id="account_financial_report.report_open_items_lines">
<!-- # lines or centralized lines --> <!-- # lines or centralized lines -->
<div class="act_as_row lines"> <div class="act_as_row lines">
<!--## date--> <!--## date-->
@ -228,8 +249,6 @@
</t> </t>
</t> </t>
</div> </div>
</t>
</div>
</template> </template>
<template id="account_financial_report.report_open_items_ending_cumul"> <template id="account_financial_report.report_open_items_ending_cumul">
<!-- Display ending balance line for account or partner --> <!-- Display ending balance line for account or partner -->

1
account_financial_report/wizard/open_items_wizard.py

@ -178,6 +178,7 @@ class OpenItemsReportWizard(models.TransientModel):
"only_posted_moves": self.target_move == "posted", "only_posted_moves": self.target_move == "posted",
"hide_account_at_0": self.hide_account_at_0, "hide_account_at_0": self.hide_account_at_0,
"foreign_currency": self.foreign_currency, "foreign_currency": self.foreign_currency,
"show_partner_details": self.show_partner_details,
"company_id": self.company_id.id, "company_id": self.company_id.id,
"target_move": self.target_move, "target_move": self.target_move,
"account_ids": self.account_ids.ids, "account_ids": self.account_ids.ids,

1
account_financial_report/wizard/open_items_wizard_view.xml

@ -20,6 +20,7 @@
</group> </group>
<group name="other_filters"> <group name="other_filters">
<field name="target_move" widget="radio" /> <field name="target_move" widget="radio" />
<field name="show_partner_details" />
<field name="hide_account_at_0" /> <field name="hide_account_at_0" />
<field name="foreign_currency" /> <field name="foreign_currency" />
</group> </group>

Loading…
Cancel
Save