212 lines
11 KiB
XML
212 lines
11 KiB
XML
|
<?xml version="1.0" encoding="utf-8"?>
|
||
|
<odoo>
|
||
|
<template id="hr_timesheet.timesheet_table">
|
||
|
<t t-set='is_uom_day' t-value='lines._is_timesheet_encode_uom_day()'/>
|
||
|
<div class="row mt8">
|
||
|
<div class="col-12">
|
||
|
<table class="table table-sm">
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<t t-set="timesheet_record_label" t-value="False"/>
|
||
|
<t t-if="show_task">
|
||
|
<t t-set="timesheet_record_label">Task</t>
|
||
|
</t>
|
||
|
<t t-elif="show_project">
|
||
|
<t t-set="timesheet_record_label">Project</t>
|
||
|
</t>
|
||
|
<th class="text-start align-middle"><span>Date</span></th>
|
||
|
<th class="text-start align-middle"><span>Employee</span></th>
|
||
|
<th class="text-start align-middle" t-if="timesheet_record_label"><span t-out="timesheet_record_label"/></th>
|
||
|
<th class="text-start align-middle"><span>Description</span></th>
|
||
|
<th class="text-end">
|
||
|
<span t-if="not is_uom_day">Hours</span>
|
||
|
<span t-else="">Days</span>
|
||
|
</th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody>
|
||
|
<tr t-foreach="lines" t-as="line" t-att-style="'background-color: #F1F1F1;' if line_index % 2 == 0 else ''">
|
||
|
<td class="align-middle">
|
||
|
<span t-field="line.date">2021-09-01</span>
|
||
|
</td>
|
||
|
<td class="align-middle">
|
||
|
<span t-if="line.user_id.partner_id.name" t-field="line.user_id.partner_id.name">Audrey Peterson</span>
|
||
|
<span t-else="" t-field="line.employee_id">Audrey Peterson</span>
|
||
|
</td>
|
||
|
<t t-set="timesheet_record_info" t-value="False"/>
|
||
|
<t t-if="show_project">
|
||
|
<t t-set="timesheet_record_info" t-value="line.project_id.sudo().name"/>
|
||
|
<t t-if="show_task and line.task_id" t-set="timesheet_record_info" t-value="'%s / %s' % (timesheet_record_info, line.task_id.sudo().name)"/>
|
||
|
</t>
|
||
|
<t t-elif="show_task" t-set="timesheet_record_info" t-value="line.task_id.sudo().name"/>
|
||
|
<td t-if="timesheet_record_info" class="align-middle">
|
||
|
<span t-out="timesheet_record_info">Research and Development/New Portal System</span>
|
||
|
</td>
|
||
|
<td class="align-middle">
|
||
|
<span t-field="line.name" t-options="{'widget': 'text'}">Call client and discuss project</span>
|
||
|
</td>
|
||
|
<td class="text-end align-middle">
|
||
|
<span t-if="not is_uom_day" t-field="line.unit_amount" t-options="{'widget': 'duration', 'digital': True, 'unit': 'hour', 'round': 'minute'}">2 hours</span>
|
||
|
<span t-else="" t-esc="line._get_timesheet_time_day()" t-options="{'widget': 'timesheet_uom'}">1 day</span>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td class="text-end" colspan="100">
|
||
|
<strong t-if="not is_uom_day">
|
||
|
<span style="margin-right: 15px;">Total (Hours)</span>
|
||
|
<t t-esc="sum(lines.mapped('unit_amount'))" t-options="{'widget': 'duration', 'digital': True, 'unit': 'hour', 'round': 'minute'}">2 hours</t>
|
||
|
</strong>
|
||
|
<strong t-else="">
|
||
|
<span style="margin-right: 15px;">Total (Days)</span>
|
||
|
<t t-esc="lines._convert_hours_to_days(sum(lines.mapped('unit_amount')))" t-options="{'widget': 'timesheet_uom'}">1 day</t>
|
||
|
</strong>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</tbody>
|
||
|
</table>
|
||
|
</div>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<template id="hr_timesheet.timesheet_project_task_page">
|
||
|
<t t-set="show_record" t-value="len(docs.ids) == 1"/>
|
||
|
<t t-set="title" t-value="docs._description"/>
|
||
|
<t t-set="company" t-value="docs.company_id if len(docs) == 1 else docs.env.company"/>
|
||
|
<t t-call="web.html_container">
|
||
|
<t t-call="web.internal_layout">
|
||
|
<div class="page">
|
||
|
<t t-foreach="docs" t-as="doc">
|
||
|
<t t-if="from_project" t-set="show_task"
|
||
|
t-value="bool(doc.timesheet_ids.task_id)"/>
|
||
|
<div class="oe_structure"/>
|
||
|
<div class="row mt8">
|
||
|
<div class="col-12">
|
||
|
<t t-if="doc.allow_timesheets and doc.timesheet_ids">
|
||
|
<h1 class="my-4">
|
||
|
<t t-if="not show_record">
|
||
|
<t t-out="title"/>: <span t-field="doc.name"/>
|
||
|
</t>
|
||
|
</h1>
|
||
|
<h2>
|
||
|
<span>Timesheets
|
||
|
<t t-if="show_record">
|
||
|
for the <t t-out="doc.name"/> <t t-out="title"/>
|
||
|
</t>
|
||
|
</span>
|
||
|
</h2>
|
||
|
<t t-set='lines' t-value='doc.timesheet_ids'/>
|
||
|
<t t-call="hr_timesheet.timesheet_table"/>
|
||
|
</t>
|
||
|
</div>
|
||
|
</div>
|
||
|
</t>
|
||
|
</div>
|
||
|
</t>
|
||
|
</t>
|
||
|
</template>
|
||
|
|
||
|
<template id="report_timesheet">
|
||
|
<t t-call="web.html_container">
|
||
|
<t t-call="web.internal_layout">
|
||
|
<t t-set="company" t-value="docs.project_id.company_id if len(docs.project_id) == 1 else docs.env.company"/>
|
||
|
<t t-set="show_task" t-value="bool(docs.task_id)"/>
|
||
|
<t t-set="show_project" t-value="len(docs.project_id) > 1"/>
|
||
|
<div class="page">
|
||
|
<div class="oe_structure"/>
|
||
|
<div class="row mt8">
|
||
|
<div class="col-lg-12">
|
||
|
<h2>
|
||
|
<span>Timesheets
|
||
|
<t t-if="len(docs.project_id) == 1">
|
||
|
for the <t t-out="docs.project_id.name">Research and Development</t> Project
|
||
|
</t>
|
||
|
</span>
|
||
|
</h2>
|
||
|
</div>
|
||
|
</div>
|
||
|
<t t-set='lines' t-value='docs'/>
|
||
|
<t t-call="hr_timesheet.timesheet_table"/>
|
||
|
<div class="oe_structure"/>
|
||
|
</div>
|
||
|
</t>
|
||
|
</t>
|
||
|
</template>
|
||
|
|
||
|
<!-- Project Task Timesheet Report for given timesheets -->
|
||
|
<template id="report_timesheet_task">
|
||
|
<t t-call="web.html_container">
|
||
|
<t t-call="web.internal_layout">
|
||
|
<t t-set="company" t-value="docs.project_id.company_id if len(docs.project_id) == 1 else docs.env.company"/>
|
||
|
<t t-set="show_task" t-value="len(docs.task_id) > 1"/>
|
||
|
<t t-set="show_project" t-value="False"/>
|
||
|
<div class="page">
|
||
|
<div class="oe_structure"/>
|
||
|
<div class="row mt8">
|
||
|
<div class="col-12">
|
||
|
<h2>
|
||
|
<span>Timesheets
|
||
|
<t t-if="len(docs.task_id) == 1">
|
||
|
for <t t-out="docs.task_id.name"/>
|
||
|
</t>
|
||
|
</span>
|
||
|
</h2>
|
||
|
</div>
|
||
|
</div>
|
||
|
<t t-set='lines' t-value='docs'/>
|
||
|
<t t-call="hr_timesheet.timesheet_table"/>
|
||
|
<div class="oe_structure"/>
|
||
|
</div>
|
||
|
</t>
|
||
|
</t>
|
||
|
</template>
|
||
|
|
||
|
<record id="timesheet_report" model="ir.actions.report">
|
||
|
<field name="name">Timesheets</field>
|
||
|
<field name="model">account.analytic.line</field>
|
||
|
<field name="report_type">qweb-pdf</field>
|
||
|
<field name="report_name">hr_timesheet.report_timesheet</field>
|
||
|
<field name="report_file">report_timesheet</field>
|
||
|
<field name="binding_model_id" ref="model_account_analytic_line"/>
|
||
|
<field name="binding_type">report</field>
|
||
|
</record>
|
||
|
|
||
|
<!-- Project Task Timesheet Report -->
|
||
|
<template id="report_project_task_timesheet">
|
||
|
<t t-call="hr_timesheet.timesheet_project_task_page"/>
|
||
|
</template>
|
||
|
|
||
|
<record id="timesheet_report_task" model="ir.actions.report">
|
||
|
<field name="name">Timesheets</field>
|
||
|
<field name="model">project.task</field>
|
||
|
<field name="report_type">qweb-pdf</field>
|
||
|
<field name="report_name">hr_timesheet.report_project_task_timesheet</field>
|
||
|
<field name="report_file">report_timesheet_task</field>
|
||
|
<field name="binding_model_id" ref="model_project_task"/>
|
||
|
<field name="binding_type">report</field>
|
||
|
</record>
|
||
|
|
||
|
<!-- Project Timesheet Report -->
|
||
|
<template id="report_timesheet_project">
|
||
|
<t t-set="from_project" t-value="True"/>
|
||
|
<t t-call="hr_timesheet.timesheet_project_task_page"/>
|
||
|
</template>
|
||
|
|
||
|
<record id="timesheet_report_project" model="ir.actions.report">
|
||
|
<field name="name">Timesheets</field>
|
||
|
<field name="model">project.project</field>
|
||
|
<field name="report_type">qweb-pdf</field>
|
||
|
<field name="report_name">hr_timesheet.report_timesheet_project</field>
|
||
|
<field name="report_file">report_timesheet_project</field>
|
||
|
<field name="binding_model_id" ref="model_project_project"/>
|
||
|
</record>
|
||
|
|
||
|
<record id="timesheet_report_task_timesheets" model="ir.actions.report">
|
||
|
<field name="name">Timesheets</field>
|
||
|
<field name="model">account.analytic.line</field>
|
||
|
<field name="report_type">qweb-pdf</field>
|
||
|
<field name="report_name">hr_timesheet.report_timesheet_task</field>
|
||
|
<field name="report_file">report_timesheet</field>
|
||
|
<field name="binding_type">report</field>
|
||
|
</record>
|
||
|
</odoo>
|