228 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			XML
		
	
	
			
		
		
	
	
			228 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			XML
		
	
	
| <?xml version="1.0" encoding="utf-8"?>
 | |
| <odoo>
 | |
|     <data>
 | |
|         <!-- Sale Order Body -->
 | |
|         <template id="report_stockpicking_document">
 | |
|             <t t-call="web.external_layout">
 | |
|                 <t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/>
 | |
|                 <div class="page">
 | |
|                     <div class="row">
 | |
|                         <div class="col-xs-6" name="customer_address">
 | |
|                             <div>
 | |
|                                 <strong>Customer Address:</strong>
 | |
|                             </div>
 | |
|                             <div t-if="o.move_lines and o.move_lines[0].partner_id" name="partner_header">
 | |
|                                 <div t-field="o.move_lines[0].partner_id"
 | |
|                                      t-options='{"widget": "contact", "fields": ["address", "name", "phone"], "no_marker": True}'/>
 | |
|                             </div>
 | |
|                             <div t-if="not (o.move_lines and o.move_lines[0].partner_id) and o.partner_id"
 | |
|                                  name="partner_header">
 | |
|                                 <div t-field="o.partner_id"
 | |
|                                      t-options='{"widget": "contact", "fields": ["address", "name", "phone"], "no_marker": True}'/>
 | |
|                             </div>
 | |
|                             <br/>
 | |
|                             <div>
 | |
|                                 <strong>Customer Reference:</strong>
 | |
|                                 <p t-field="o.sale_id.client_order_ref"/>
 | |
|                             </div>
 | |
|                             <div>
 | |
|                                 <strong>Source Document:</strong>
 | |
|                                 <p t-field="o.origin"/>
 | |
|                             </div>
 | |
|                         </div>
 | |
|                     </div>
 | |
| 
 | |
|                     <table class="table table-condensed mt32">
 | |
|                         <thead class="table-header">
 | |
|                             <tr>
 | |
|                                 <th t-if="o.origin">
 | |
|                                     <strong>Order (Origin)</strong>
 | |
|                                 </th>
 | |
|                                 <th name="td_sched_date_h">
 | |
|                                     <strong>Date</strong>
 | |
|                                 </th>
 | |
|                                 <th t-if="o.picking_type_id.code == 'outgoing' and o.carrier_id">
 | |
|                                     <strong>Carrier</strong>
 | |
|                                 </th>
 | |
|                                 <!--<th t-if="o.weight">-->
 | |
|                                 <!--<strong>Weight</strong>-->
 | |
|                                 <!--</th>-->
 | |
|                                 <th t-if="o.carrier_tracking_ref">
 | |
|                                     <strong>Tracking Number</strong>
 | |
|                                 </th>
 | |
|                             </tr>
 | |
|                         </thead>
 | |
|                         <tbody class="stock-tbody">
 | |
|                             <tr>
 | |
|                                 <td t-if="o.origin">
 | |
|                                     <span t-field="o.origin"/>
 | |
|                                 </td>
 | |
|                                 <td name="td_sched_date">
 | |
|                                     <t t-if="o.state == 'done'">
 | |
|                                         <span t-field="o.date_done"/>
 | |
|                                     </t>
 | |
|                                     <t t-if="o.state != 'done'">
 | |
|                                         <span t-field="o.scheduled_date"/>
 | |
|                                     </t>
 | |
|                                 </td>
 | |
|                                 <td t-if="o.picking_type_id.code == 'outgoing' and o.carrier_id">
 | |
|                                     <span t-field="o.carrier_id"/>
 | |
|                                 </td>
 | |
|                                 <!--<td t-if="o.weight">-->
 | |
|                                 <!--<span t-field="o.weight"/>-->
 | |
|                                 <!--<span t-field="o.weight_uom_id"/>-->
 | |
|                                 <!--</td>-->
 | |
|                                 <td t-if="o.carrier_tracking_ref">
 | |
|                                     <span t-field="o.carrier_tracking_ref"/>
 | |
|                                 </td>
 | |
|                             </tr>
 | |
|                         </tbody>
 | |
|                     </table>
 | |
|                     <t t-set="total_ordered_qty" t-value="0"/>
 | |
|                     <table class="table table-condensed mt48" t-if="not o.move_line_ids">
 | |
|                         <thead class="table-header">
 | |
|                             <tr>
 | |
|                                 <th>
 | |
|                                     <strong>Product</strong>
 | |
|                                 </th>
 | |
|                                 <th>
 | |
|                                     <strong>Ordered Quantity</strong>
 | |
|                                 </th>
 | |
|                             </tr>
 | |
|                         </thead>
 | |
|                         <tbody class="stock-tbody">
 | |
|                             <tr t-foreach="o.move_lines" t-as="move">
 | |
|                                 <td>
 | |
|                                     <span t-field="move.product_id"/>
 | |
|                                 </td>
 | |
|                                 <td>
 | |
|                                     <t t-set="ordered_qty" t-value="int(o._formatLang(move_line.ordered_qty).strip('0').strip(',').strip('.'))"/>
 | |
|                                     <t t-set="total_ordered_qty" t-value="total_ordered_qty+ordered_qty"/>
 | |
|                                     <span t-esc="ordered_qty"/>
 | |
|                                     <span t-field="move.product_uom"/>
 | |
|                                 </td>
 | |
|                             </tr>
 | |
|                         </tbody>
 | |
|                     </table>
 | |
| 
 | |
|                     <t t-set="backorder" t-value="False"/>
 | |
|                     <table class="table table-condensed mt48" t-if="o.move_line_ids">
 | |
|                         <t t-set="has_serial_number" t-value="o.move_line_ids.mapped('lot_id')"
 | |
|                            groups="stock.group_production_lot"/>
 | |
|                         <thead class="table-header">
 | |
|                             <tr>
 | |
|                                 <th>
 | |
|                                     <strong>Product</strong>
 | |
|                                 </th>
 | |
|                                 <th name="lot_serial" t-if="has_serial_number">
 | |
|                                     Lot/Serial Number
 | |
|                                 </th>
 | |
|                                 <th class="text-center">
 | |
|                                     <strong>Ordered Quantity</strong>
 | |
|                                 </th>
 | |
|                                 <th t-if="any([move_line.state == 'done' for move_line in o.move_line_ids])"
 | |
|                                     class="text-right">
 | |
|                                     <strong>Delivered Quantity</strong>
 | |
|                                 </th>
 | |
|                             </tr>
 | |
|                         </thead>
 | |
|                         <tbody class="stock-tbody">
 | |
|                             <tr t-foreach="o.move_line_ids" t-as="move_line">
 | |
|                                 <td>
 | |
|                                     <span t-field="move_line.product_id"/>
 | |
|                                     <p t-if="o.picking_type_code == 'outgoing'">
 | |
|                                         <span t-field="move_line.product_id.sudo().description_pickingout"/>
 | |
|                                     </p>
 | |
|                                     <p t-if="o.picking_type_code == 'incoming'">
 | |
|                                         <span t-field="move_line.product_id.sudo().description_pickingin"/>
 | |
|                                     </p>
 | |
|                                     <t t-if="not move_line.product_id and move_line.package_id">
 | |
|                                         <span t-field="move_line.package_id"/>
 | |
|                                     </t>
 | |
|                                 </td>
 | |
|                                 <t t-if="has_serial_number">
 | |
|                                     <td>
 | |
|                                         <table width="100%">
 | |
|                                             <tr>
 | |
|                                                 <td>
 | |
|                                                     <span t-field="move_line.lot_id"/>
 | |
|                                                     <t t-if="not move_line.lot_id">
 | |
|                                                         <span t-field="move_line.lot_name"/>
 | |
|                                                     </t>
 | |
|                                                 </td>
 | |
|                                                 <td name="lot_qty">
 | |
|                                                     <t t-if="move_line.product_qty">
 | |
|                                                         <span t-esc="o._formatLang(move_line.product_qty).strip('0').strip(',').strip('.')"/>
 | |
|                                                     </t>
 | |
|                                                 </td>
 | |
|                                             </tr>
 | |
|                                         </table>
 | |
|                                     </td>
 | |
|                                 </t>
 | |
|                                 <td class="text-center">
 | |
|                                     <span t-field="move_line.package_id"/>
 | |
|                                     <span t-if="move_line.package_id">:</span>
 | |
|                                     <t t-set="ordered_qty" t-value="int(o._formatLang(move_line.ordered_qty).strip('0').strip(',').strip('.'))"/>
 | |
|                                     <t t-set="total_ordered_qty" t-value="total_ordered_qty+ordered_qty"/>
 | |
|                                     <span t-esc="ordered_qty"/>
 | |
|                                     <span t-field="move_line.product_uom_id"/>
 | |
|                                 </td>
 | |
|                                 <td class="text-right" t-if="move_line.state == 'done'">
 | |
|                                     <t t-if="move_line.ordered_qty != move_line.qty_done">
 | |
|                                         <t t-set="backorder" t-value="True"/>
 | |
|                                     </t>
 | |
|                                     <span t-esc="o._formatLang(move_line.qty_done).strip('0').strip(',').strip('.')"/>
 | |
|                                     <span t-field="move_line.product_uom_id"/>
 | |
|                                 </td>
 | |
|                             </tr>
 | |
|                         </tbody>
 | |
|                     </table>
 | |
| 
 | |
|                     <div class="row">
 | |
|                         <div class="col-xs-6">
 | |
|                             <span style="padding-top: 5px; border-top: 1px solid;">
 | |
|                                 <strong>Total Weight:</strong>
 | |
|                                 <span t-field="o.weight"/>
 | |
|                             </span>
 | |
|                         </div>
 | |
|                         <div class="col-xs-6">
 | |
|                             <span class="pull-right" style="padding-top: 5px; border-top: 1px solid;">
 | |
|                                 <strong>Total Amount:</strong>
 | |
|                                 <span t-esc="total_ordered_qty"/>
 | |
|                             </span>
 | |
|                         </div>
 | |
|                     </div>
 | |
|                     <p class="col-xs-12">
 | |
|                         <span t-field="o.note"/>
 | |
|                     </p>
 | |
| 
 | |
|                     <p t-if="o.backorder_id">
 | |
|                         This shipment is a backorder of<t t-esc="o.backorder_id.name"/>.
 | |
|                     </p>
 | |
|                     <p>
 | |
|                         <t t-if="backorder">
 | |
|                             All items couldn't be shipped, the remaining ones will be shipped as soon as they become
 | |
|                             available.
 | |
|                         </t>
 | |
|                     </p>
 | |
|                 </div>
 | |
|             </t>
 | |
|         </template>
 | |
| 
 | |
|         <template id="stock.report_deliveryslip">
 | |
|             <t t-call="web.html_container">
 | |
|                 <t t-foreach="docs" t-as="o">
 | |
|                     <t t-set="is_picking" t-value="True"/>
 | |
|                     <t t-call="dp_reports_stock.report_stockpicking_document" t-lang="o.partner_id.lang"/>
 | |
|                 </t>
 | |
|             </t>
 | |
|         </template>
 | |
| 
 | |
| 
 | |
|     </data>
 | |
| 
 | |
|     <record id="stock.action_report_delivery" model="ir.actions.report">
 | |
|         <field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/>
 | |
|     </record>
 | |
| </odoo>
 |