19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:31:00 +01:00
parent a1137a1456
commit e1d89e11e3
2789 changed files with 1093187 additions and 605897 deletions

View file

@ -1,113 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_expense_sheet">
<template id="report_expense">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="web.external_layout">
<div class="page">
<div class="page o_content_pdf">
<div class="oe_structure"></div>
<h2>Expenses Report</h2>
<div class="row mt32 mb32">
<div class="col-2">
<strong>Employee:</strong>
<p t-field="o.employee_id.name"/>
<h3><span t-out="o.name">Business Trip</span></h3>
<div class="row o_header">
<div class="col-6">
<div class="row">
<div class="col-3 fw-bold"><span>Employee:</span> </div>
<div class="col-9 text-muted"><span t-field="o.employee_id.name">Marc Demo</span></div>
</div>
<div class="row" t-if="o.date">
<div class="col-3 fw-bold"><span>Date:</span></div>
<div class="col-9 text-muted"><span t-field="o.date">2023-08-11</span></div>
</div>
</div>
<div class="col-2">
<strong>Date:</strong>
<p t-field="o.accounting_date"/>
</div>
<div class="col-3">
<strong>Description:</strong>
<p t-field="o.name"/>
</div>
<div class="col-2">
<strong>Validated By:</strong>
<p t-field="o.user_id"/>
</div>
<div class="col-3">
<strong>Payment By:</strong>
<p t-field="o.payment_mode"/>
<div class="col-6">
<div class="row" t-if="o.manager_id.name">
<div class="col-3 fw-bold"><span>Manager:</span></div>
<div class="col-9 text-muted"><span t-field="o.manager_id">Mitchell Admin</span></div>
</div>
<div class="row">
<div class="col-3 fw-bold"><span>Paid by:</span></div>
<div class="col-9 text-muted"><span t-field="o.payment_mode">Credit Card</span></div>
</div>
</div>
</div>
<div class="oe_structure"></div>
<table class="table table-sm">
<table class="o_has_total_table table table-borderless">
<thead>
<tr>
<th>Date</th>
<th>Name</th>
<th class="text-center">Ref.</th>
<th>Unit Price</th>
<th>Taxes</th>
<th class="text-center">Qty</th>
<th class="text-end">Price</th>
<th t-if="o.is_multiple_currency" class="text-end">Price in Company Currency</th>
<th class="text-start">Name</th>
<th class="text-end">Unit Price</th>
<th class="text-end">Quantity</th>
<th class="text-end">Taxes</th>
<t t-set="foreign_currencies" t-value="o.currency_id - o.company_currency_id"/>
<th t-if="foreign_currencies" class="text-end">Subtotal in currency</th>
<th class="text-end">Subtotal</th>
</tr>
</thead>
<tbody>
<tr t-foreach="o.expense_line_ids" t-as="line">
<td><span t-field="line.date"/></td>
<td>
<span t-field="line.name"/>
<span t-field="line.description"/><br/>
<span>
<div t-foreach="line.analytic_distribution" t-as="distribution">
<t t-esc="line.env['account.analytic.account'].browse(int(distribution))[0].name"/>: <t t-esc="line.analytic_distribution.get(distribution)"/>
</div>
</span>
<tr t-foreach="o" t-as="line">
<td t-att-class="'text-start' + (' o_overflow' if len(line.name) > 30 else '')">
<span t-field="line.name">Flight Ticket</span>
</td>
<td style="text-center">
<span t-field="line.reference"/>
</td>
<td>
<span t-field="line.unit_amount"/>
</td>
<t t-set="taxes" t-value="', '.join([(tax.description or tax.name) for tax in line.tax_ids])"/>
<td class="text-end"><span t-field="line.price_unit">$100.00</span></td>
<td class="text-end"><span t-field="line.quantity">1</span></td>
<t t-set="taxes" t-value="', '.join(tax.tax_label for tax in line.tax_ids if tax.tax_label)"/>
<td t-attf-class="text-end {{ 'text-nowrap' if len(taxes) &lt; 10 else '' }}">
<span t-out="taxes" id="line_tax_ids">Tax 15%</span>
</td>
<td class="text-center">
<span t-field="line.quantity"/>
<td t-if="foreign_currencies" class="text-end">
<span t-field="line.total_amount_currency" t-options='{"widget": "monetary", "display_currency": line.currency_id}'>$120.00</span>
</td>
<td class="text-end">
<span t-field="line.total_amount"
t-options='{"widget": "monetary", "display_currency": line.currency_id}'/>
</td>
<td t-if="o.is_multiple_currency" class="text-end">
<span t-field="line.total_amount_company"/>
<span t-field="line.total_amount" t-options='{"widget": "monetary", "display_currency": o.company_currency_id}'>$100.00</span>
</td>
</tr>
</tbody>
</table>
<div class="row justify-content-end">
<div class="oe_structure"></div>
<div class="row justify-content-end o_total mt-n3">
<div class="col-4">
<table class="table table-sm">
<tr class="border-black">
<td><strong>Total</strong></td>
<td class="text-end">
<span t-field="o.total_amount"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
<div class="oe_structure"></div>
<table class="table table-borderless">
<tbody>
<tr>
<td>Untaxed Amount</td>
<td class="text-end"><span t-field="o.untaxed_amount" t-options='{"widget": "monetary", "display_currency": o.company_currency_id}'>$500.00</span></td>
</tr>
<tr>
<td>Taxes</td>
<td class="text-end"><span t-field="o.tax_amount" t-options='{"widget": "monetary", "display_currency": o.company_currency_id}'>$100.00</span></td>
</tr>
<tr class="fw-bold">
<td>Total</td>
<td class="text-end">
<span t-field="o.total_amount" t-options='{"widget": "monetary", "display_currency": o.company_currency_id}'>$600.00</span>
</td>
</tr>
</tbody>
</table>
<div class="oe_structure"></div>
</div>
</div>
<p>Certified honest and conform,<br/>(Date and signature).<br/><br/></p>
</div>
</t>
</t>
</t>
</template>
<record id="action_report_hr_expense_sheet" model="ir.actions.report">
<template id="report_expense_img">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="web.basic_layout">
<div class="oe_structure"></div>
<div t-if="attachment and attachment.mimetype != 'application/pdf'">
<h3> <span t-out="attachment.res_name">Attachment Name</span> </h3>
<img t-att-src="attachment.image_src" class="o_attachment_pdf"/>
</div>
</t>
</t>
</t>
</template>
<record id="action_report_hr_expense" model="ir.actions.report">
<field name="name">Expenses Report</field>
<field name="model">hr.expense.sheet</field>
<field name="model">hr.expense</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">hr_expense.report_expense_sheet</field>
<field name="report_file">hr_expense.report_expense_sheet</field>
<field name="print_report_name">'Expenses - %s - %s' % (object.employee_id.name, (object.name).replace('/', ''))</field>
<field name="binding_model_id" ref="model_hr_expense_sheet"/>
<field name="report_name">hr_expense.report_expense</field>
<field name="report_file">hr_expense.report_expense</field>
<field name="print_report_name">'Expense - %s - %s' % (object.employee_id.name, (object.name).replace('/', ''))</field>
<field name="binding_model_id" ref="model_hr_expense"/>
<field name="binding_type">report</field>
</record>
<record id="action_report_expense_img" model="ir.actions.report">
<field name="name">Expense Report Image</field>
<field name="model">hr.expense</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">hr_expense.report_expense_img</field>
<field name="report_file">hr_expense.report_expense_img</field>
</record>
</odoo>