bemade_fsm: further progress on work order PDF.

This commit is contained in:
Marc Durepos 2023-08-22 16:04:22 -04:00
parent 8459ce3673
commit 838db389b0
2 changed files with 72 additions and 6 deletions

View file

@ -51,12 +51,14 @@ class Task(models.Model):
relevant_order_lines = fields.Many2many(comodel_name='sale.order.line',
store=False,
compute='_compute_relevant_order_lines',)
compute='_compute_relevant_order_lines', )
@api.depends('sale_order_id')
def _compute_relevant_order_lines(self):
for rec in self:
rec.relevant_order_lines = rec.sale_order_id \
and rec.sale_order_id.get_relevant_order_lines(rec)
rec.relevant_order_lines = (
rec.sale_order_id and rec.sale_order_id.get_relevant_order_lines(
rec) or False)
def _get_closed_stage_by_project(self):
""" Gets the stage representing completed tasks for each project in
@ -172,7 +174,7 @@ class Task(models.Model):
template = rec.sale_line_id and rec.sale_line_id.product_id.task_template_id
if not rec.parent_id:
rec.name = f"{rec.sale_order_id.name}: " \
f"{rec.sale_order_id.partner_shipping_id.name} - " \
f"{rec.sale_order_id.partner_shipping_id.name} - " \
f"{rec.sale_line_id.name}"
if template:
rec.name += f" ({template.name})"

View file

@ -128,14 +128,14 @@
t-options='{"widget": "monetary", "display_currency": doc.sale_order_id.pricelist_id.currency_id}'/>
</td>
</tr>
<tr t-if="final_tax">
<tr t-if="final_tax" class="border-black o_subtotal">
<td><strong>Taxes</strong></td>
<td class="text-right">
<span t-esc="final_tax"
t-options='{"widget": "monetary", "display_currency": doc.sale_order_id.pricelist_id.currency_id}'/>
</td>
</tr>
<tr>
<tr t-if="final_total" class="border-black o_total">
<td><strong>Total</strong></td>
<td class="text-right">
<span t-esc="final_total"
@ -147,6 +147,69 @@
</div>
</div>
</template>
<template id="subtask_list">
<ul t-if="task.child_ids" class="ml-1 pl-1" style="list-style-type: none;">
<t t-foreach="task.child_ids" t-as="subtask">
<li class="ml-1">
<span t-out="subtask.name"/>
<t t-call="bemade_fsm.subtask_list">
<t t-set="task" t-value="subtask"/>
</t>
</li>
</t>
</ul>
</template>
<template id="workorder_page_tasks_table">
<t t-set="interventions" t-value="doc.child_ids"/>
<t t-set="timesheets" t-value="doc.timesheet_ids"/>
<t t-foreach="interventions" t-as="intervention">
<h2 style="page-break-before: always;"
t-out="str(intervention_index + 1) + '. ' + intervention.name"/>
<h3 t-if="intervention.equipment_ids">Equipment:
<t t-foreach="intervention.equipment_ids" t-as="equipment_id">
<span t-out="equipment_id.complete_name + (', ' if not equipment_id_last else '')"/>
</t>
</h3>
<t t-set="tasks" t-value="intervention.child_ids"/>
<div t-if="tasks" class="table-responsive-sm">
<table class="table table-sm o_main_table">
<thead>
<tr>
<th width="7%">Status</th>
<th width="30%">Task</th>
<th width="18%">Technician</th>
<th width="45%">Comments</th>
</tr>
</thead>
<tbody>
<t t-foreach="tasks" t-as="task">
<tr class="o_line_section">
<td t-out="task.stage_id.name"/>
<td>
<span t-out="task.name"/>
</td>
<td>
<t t-foreach="task.user_ids" t-as="user">
<span t-out="user.name + (', ' if not user_last else '')"/>
</t>
</td>
<td t-out="task.description or ''"/>
</tr>
<tr class="mt-0 pt-0">
<td/>
<td>
<t t-call="bemade_fsm.subtask_list"/>
</td>
<td/>
<td/>
</tr>
</t>
</tbody>
</table>
</div>
</t>
</template>
<template id="workorder_page_info_block">
<div class="row">
<div t-attf-class="{{'col-6' if report_type == 'pdf' else 'col-md-6 col-12'}}">
@ -210,6 +273,7 @@
<t t-call="bemade_fsm.workorder_page_info_block"/>
<t t-call="bemade_fsm.workorder_page_sale_order_table"/>
<t t-call="bemade_fsm.workorder_page_signature_block"/>
<t t-call="bemade_fsm.workorder_page_tasks_table"/>
</div>
</template>
<template id="work_order">