changes
This commit is contained in:
255
fusion_reports_templates/report/report_delivery.xml
Normal file
255
fusion_reports_templates/report/report_delivery.xml
Normal file
@@ -0,0 +1,255 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright 2026 Nexa Systems Inc.
|
||||
License OPL-1 (Odoo Proprietary License v1.0)
|
||||
Delivery / Packing Slip — portrait + landscape.
|
||||
-->
|
||||
<odoo>
|
||||
|
||||
<!-- ============================================================= -->
|
||||
<!-- PORTRAIT -->
|
||||
<!-- ============================================================= -->
|
||||
<template id="report_fr_delivery_portrait">
|
||||
<t t-call="web.html_container">
|
||||
<t t-foreach="docs" t-as="doc">
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
<t t-call="fusion_reports_templates.fr_portrait_styles"/>
|
||||
<div class="fr-report">
|
||||
<div class="page">
|
||||
|
||||
<h4>
|
||||
<t t-if="doc.picking_type_id.code == 'outgoing'">Delivery Slip </t>
|
||||
<t t-elif="doc.picking_type_id.code == 'incoming'">Receipt </t>
|
||||
<t t-else="">Transfer </t>
|
||||
<span t-field="doc.name"/>
|
||||
</h4>
|
||||
|
||||
<table class="bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 50%;">FROM</th>
|
||||
<th style="width: 50%;">TO</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="height: 70px;">
|
||||
<strong><span t-field="doc.location_id.display_name"/></strong><br/>
|
||||
<span t-field="doc.company_id.partner_id"
|
||||
t-options="{'widget': 'contact', 'fields': ['address', 'phone'], 'no_marker': True}"/>
|
||||
</td>
|
||||
<td style="height: 70px;">
|
||||
<t t-if="doc.partner_id">
|
||||
<div t-field="doc.partner_id"
|
||||
t-options="{'widget': 'contact', 'fields': ['name', 'address', 'phone', 'email'], 'no_marker': True}"/>
|
||||
</t>
|
||||
<t t-else="">
|
||||
<strong><span t-field="doc.location_dest_id.display_name"/></strong>
|
||||
</t>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="info-header" style="width: 25%;">SCHEDULED DATE</th>
|
||||
<th class="info-header" style="width: 25%;">ORDER</th>
|
||||
<th class="info-header" style="width: 25%;">CARRIER</th>
|
||||
<th class="info-header" style="width: 25%;">TRACKING #</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-center"><span t-field="doc.scheduled_date" t-options="{'widget': 'date'}"/></td>
|
||||
<td class="text-center"><span t-esc="doc.origin or '-'"/></td>
|
||||
<td class="text-center"><span t-field="doc.carrier_id"/></td>
|
||||
<td class="text-center"><span t-esc="doc.carrier_tracking_ref or '-'"/></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 15%;">SKU</th>
|
||||
<th class="text-start" style="width: 55%;">PRODUCT</th>
|
||||
<th style="width: 15%;">QTY DONE</th>
|
||||
<th style="width: 15%;">UOM</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="doc.move_ids_without_package" t-as="move">
|
||||
<tr>
|
||||
<td class="text-center"><span t-esc="move.product_id.default_code or ''"/></td>
|
||||
<td><span t-field="move.product_id.display_name"/>
|
||||
<t t-if="move.description_picking and move.description_picking != move.product_id.display_name">
|
||||
<br/><span class="small-muted" t-esc="move.description_picking"/>
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-if="doc.state == 'done'">
|
||||
<span t-esc="int(move.quantity) if move.quantity == int(move.quantity) else move.quantity"/>
|
||||
</t>
|
||||
<t t-else="">
|
||||
<span t-esc="int(move.product_uom_qty) if move.product_uom_qty == int(move.product_uom_qty) else move.product_uom_qty"/>
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-center"><span t-field="move.product_uom"/></td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<t t-if="doc.note">
|
||||
<div style="margin-top: 15px;">
|
||||
<strong>Notes:</strong>
|
||||
<div t-field="doc.note"/>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<div class="row" style="margin-top: 30px;">
|
||||
<div class="col-6">
|
||||
<div class="sig-line"/>
|
||||
<div class="small-muted">Shipper Signature / Date</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="sig-line"/>
|
||||
<div class="small-muted">Receiver Signature / Date</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<!-- ============================================================= -->
|
||||
<!-- LANDSCAPE -->
|
||||
<!-- ============================================================= -->
|
||||
<template id="report_fr_delivery_landscape">
|
||||
<t t-call="web.html_container">
|
||||
<t t-foreach="docs" t-as="doc">
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
<t t-call="fusion_reports_templates.fr_landscape_styles"/>
|
||||
<div class="fr-landscape">
|
||||
<div class="page">
|
||||
|
||||
<h2>
|
||||
<t t-if="doc.picking_type_id.code == 'outgoing'">Delivery Slip </t>
|
||||
<t t-elif="doc.picking_type_id.code == 'incoming'">Receipt </t>
|
||||
<t t-else="">Transfer </t>
|
||||
<span t-field="doc.name"/>
|
||||
</h2>
|
||||
|
||||
<table class="bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 50%;">FROM</th>
|
||||
<th style="width: 50%;">TO</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="height: 70px; font-size: 12pt;">
|
||||
<strong><span t-field="doc.location_id.display_name"/></strong><br/>
|
||||
<span t-field="doc.company_id.partner_id"
|
||||
t-options="{'widget': 'contact', 'fields': ['address', 'phone'], 'no_marker': True}"/>
|
||||
</td>
|
||||
<td style="height: 70px; font-size: 12pt;">
|
||||
<t t-if="doc.partner_id">
|
||||
<div t-field="doc.partner_id"
|
||||
t-options="{'widget': 'contact', 'fields': ['name', 'address', 'phone', 'email'], 'no_marker': True}"/>
|
||||
</t>
|
||||
<t t-else="">
|
||||
<strong><span t-field="doc.location_dest_id.display_name"/></strong>
|
||||
</t>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="bordered info-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>SCHEDULED DATE</th>
|
||||
<th>ORDER</th>
|
||||
<th>CARRIER</th>
|
||||
<th>TRACKING #</th>
|
||||
<th>WEIGHT</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-center"><span t-field="doc.scheduled_date" t-options="{'widget': 'date'}"/></td>
|
||||
<td class="text-center"><span t-esc="doc.origin or '-'"/></td>
|
||||
<td class="text-center"><span t-field="doc.carrier_id"/></td>
|
||||
<td class="text-center"><span t-esc="doc.carrier_tracking_ref or '-'"/></td>
|
||||
<td class="text-center"><span t-field="doc.weight" t-options="{'widget': 'float', 'precision': 2}"/> <span t-field="doc.weight_uom_name"/></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 15%;">SKU</th>
|
||||
<th class="text-start" style="width: 55%;">PRODUCT</th>
|
||||
<th style="width: 15%;">QTY</th>
|
||||
<th style="width: 15%;">UOM</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<t t-foreach="doc.move_ids_without_package" t-as="move">
|
||||
<tr>
|
||||
<td class="text-center"><span t-esc="move.product_id.default_code or ''"/></td>
|
||||
<td><span t-field="move.product_id.display_name"/>
|
||||
<t t-if="move.description_picking and move.description_picking != move.product_id.display_name">
|
||||
<br/><span class="small-muted" t-esc="move.description_picking"/>
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<t t-if="doc.state == 'done'">
|
||||
<span t-esc="int(move.quantity) if move.quantity == int(move.quantity) else move.quantity"/>
|
||||
</t>
|
||||
<t t-else="">
|
||||
<span t-esc="int(move.product_uom_qty) if move.product_uom_qty == int(move.product_uom_qty) else move.product_uom_qty"/>
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-center"><span t-field="move.product_uom"/></td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<t t-if="doc.note">
|
||||
<div style="margin-top: 15px;">
|
||||
<strong>Notes:</strong>
|
||||
<div t-field="doc.note"/>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<div class="row" style="margin-top: 30px;">
|
||||
<div class="col-6">
|
||||
<div class="sig-line"/>
|
||||
<div class="small-muted">Shipper Signature / Date</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="sig-line"/>
|
||||
<div class="small-muted">Receiver Signature / Date</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user