summaryrefslogtreecommitdiff
path: root/addons/delivery/views
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/delivery/views
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/delivery/views')
-rw-r--r--addons/delivery/views/delivery_portal_template.xml29
-rw-r--r--addons/delivery/views/delivery_view.xml393
-rw-r--r--addons/delivery/views/partner_view.xml15
-rw-r--r--addons/delivery/views/product_packaging_view.xml68
-rw-r--r--addons/delivery/views/product_template_view.xml15
-rw-r--r--addons/delivery/views/report_deliveryslip.xml72
-rw-r--r--addons/delivery/views/report_package_barcode.xml20
-rw-r--r--addons/delivery/views/report_shipping.xml16
-rw-r--r--addons/delivery/views/res_config_settings_views.xml19
9 files changed, 647 insertions, 0 deletions
diff --git a/addons/delivery/views/delivery_portal_template.xml b/addons/delivery/views/delivery_portal_template.xml
new file mode 100644
index 00000000..3ae577a5
--- /dev/null
+++ b/addons/delivery/views/delivery_portal_template.xml
@@ -0,0 +1,29 @@
+<odoo>
+ <template id="sale_order_portal_content_inherit_sale_stock_inherit_website_sale_delivery" name="Shipping tracking on orders followup" inherit_id="sale_stock.sale_order_portal_content_inherit_sale_stock">
+ <xpath expr="//div[hasclass('o_sale_stock_picking')]/div" position="after">
+ <div t-if="i.carrier_tracking_ref" class="small d-lg-inline-block">
+ Tracking:
+ <t t-set="multiple_carrier_tracking" t-value="i.get_multiple_carrier_tracking()"/>
+ <t t-if="multiple_carrier_tracking">
+ <t t-foreach="multiple_carrier_tracking" t-as="line">
+ <a t-att-href="line[1]" target="_blank"><span t-esc="line[0]"/></a>
+ <span t-if="not line_last"> + </span>
+ </t>
+ </t>
+ <t t-else="">
+ <t t-if="i.carrier_tracking_url">
+ <a t-att-href="i.carrier_tracking_url" target="_blank"><span t-field="i.carrier_tracking_ref"/></a>
+ </t>
+ <t t-else="">
+ <span t-field="i.carrier_id.name"/> <span t-field="i.carrier_tracking_ref"/>
+ </t>
+ </t>
+ </div>
+ <t t-if="i.carrier_id.get_return_label_from_portal and i.return_label_ids">
+ <div>
+ <a class="ml-3" t-attf-href="/web/content/#{i.return_label_ids[:1].id}" target="_blank">Print Return Label</a>
+ </div>
+ </t>
+ </xpath>
+ </template>
+</odoo>
diff --git a/addons/delivery/views/delivery_view.xml b/addons/delivery/views/delivery_view.xml
new file mode 100644
index 00000000..a0872651
--- /dev/null
+++ b/addons/delivery/views/delivery_view.xml
@@ -0,0 +1,393 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <!-- Delivery Carriers -->
+ <menuitem id="menu_delivery" name="Delivery" parent="stock.menu_stock_config_settings" groups="stock.group_stock_manager" sequence="50"/>
+
+ <record id="action_delivery_packaging_view" model="ir.actions.act_window">
+ <field name="name">Delivery Packages</field>
+ <field name="res_model">product.packaging</field>
+ <field name="domain">[('product_id', '=', False)]</field>
+ <field name="view_ids" eval="[(5, 0, 0),
+ (0, 0, {'view_mode': 'tree', 'view_id': ref('delivery.product_packaging_delivery_tree')}),
+ (0, 0, {'view_mode': 'form', 'view_id': ref('delivery.product_packaging_delivery_form')})]"/>
+ </record>
+
+ <menuitem id="menu_delivery_packagings" name="Delivery Packages" parent="menu_delivery" action="action_delivery_packaging_view" groups="stock.group_tracking_lot"/>
+
+ <record id="view_delivery_carrier_tree" model="ir.ui.view">
+ <field name="name">delivery.carrier.tree</field>
+ <field name="model">delivery.carrier</field>
+ <field name="arch" type="xml">
+ <tree string="Carrier">
+ <field name="sequence" widget="handle"/>
+ <field name="name"/>
+ <field name="delivery_type"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="view_delivery_carrier_search" model="ir.ui.view">
+ <field name="name">delivery.carrier.search</field>
+ <field name="model">delivery.carrier</field>
+ <field name="arch" type="xml">
+ <search string="Delivery Carrier">
+ <field name="name" string="Carrier" />
+ <field name="delivery_type"/>
+ <separator/>
+ <filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
+ <group expand="1" string="Group By">
+ <filter string="Provider" name="provider" context="{'group_by':'delivery_type', 'residual_visible':True}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+
+ <record id="view_delivery_carrier_form" model="ir.ui.view">
+ <field name="name">delivery.carrier.form</field>
+ <field name="model">delivery.carrier</field>
+ <field name="arch" type="xml">
+ <form string="Carrier">
+ <sheet>
+ <div class="oe_button_box" name="button_box">
+ <button name="toggle_prod_environment"
+ attrs="{'invisible': ['|', '|', ('prod_environment', '=', False), ('delivery_type', '=', 'fixed'), ('delivery_type', '=', 'base_on_rule')]}"
+ class="oe_stat_button"
+ type="object" icon="fa-play">
+ <div class="o_stat_info o_field_widget">
+ <span class="text-success">Production</span>
+ <span class="o_stat_text">Environment</span>
+ </div>
+ </button>
+ <!-- transfer referenced here due to view inheritance issue in current master (post-saas-16) -->
+ <button name="toggle_prod_environment"
+ attrs="{'invisible': ['|', '|', ('prod_environment', '=', True), ('delivery_type', '=', 'fixed'), ('delivery_type', '=', 'base_on_rule')]}"
+ class="oe_stat_button"
+ type="object" icon="fa-stop">
+ <div class="o_stat_info o_field_widget">
+ <span class="o_warning_text">Test</span>
+ <span class="o_stat_text">Environment</span>
+ </div>
+ </button>
+ <button name="toggle_debug"
+ attrs="{'invisible': ['|', '|', ('delivery_type', '=', 'fixed'), ('delivery_type', '=', 'base_on_rule'), ('debug_logging', '=', True)]}"
+ class="oe_stat_button"
+ type="object" icon="fa-code">
+ <div class="o_stat_info o_field_widget">
+ <span class="text-danger">No debug</span>
+ </div>
+ </button>
+ <button name="toggle_debug"
+ attrs="{'invisible': ['|', '|', ('delivery_type', '=', 'fixed'), ('delivery_type', '=', 'base_on_rule'), ('debug_logging', '=', False)]}"
+ class="oe_stat_button"
+ type="object" icon="fa-code">
+ <div class="o_stat_info o_field_widget">
+ <span class="text-success">Debug requests</span>
+ </div>
+ </button>
+ </div>
+ <widget name="web_ribbon" text="Archived" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
+ <div class="oe_title" name="title">
+ <label for="name" string="Name" class="oe_edit_only"/>
+ <h1>
+ <field name="name" placeholder="e.g. UPS Express"/>
+ </h1>
+ </div>
+ <group>
+ <group name="provider_details">
+ <field name="active" invisible="1"/>
+ <field name="prod_environment" invisible="1"/>
+ <field name="debug_logging" invisible="1"/>
+ <label for="delivery_type"/>
+ <div>
+ <field name="delivery_type" />
+ <button string="Install more Providers" name="install_more_provider" type="object" class="oe_link oe_edit_only"/>
+ </div>
+ <field name="integration_level" widget="radio" attrs="{'invisible': ['|', ('delivery_type', '=', 'fixed'), ('delivery_type', '=', 'base_on_rule')]}"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ </group>
+ <group name="delivery_details">
+ <field name="product_id" context="{'default_type': 'service', 'default_sale_ok': False, 'default_purchase_ok': False, 'default_invoice_policy': 'order'}" />
+ <field name="invoice_policy" widget="radio" attrs="{'invisible': ['|', ('delivery_type', 'in', ('fixed', 'base_on_rule')), ('integration_level', '=', 'rate')]}"/>
+ <label for="margin" string="Margin on Rate"/>
+ <div>
+ <field name="margin" class="oe_inline"/>%
+ </div>
+ <field name="free_over"/>
+ <field name="amount" attrs="{'required':[('free_over','!=', False)], 'invisible':[('free_over','=', False)]}"/>
+ </group>
+ </group>
+ <notebook>
+ <page name="pricing" string="Pricing" attrs="{'invisible': [('delivery_type', 'not in', ['fixed', 'base_on_rule'])]}">
+ <group attrs="{'invisible':[('delivery_type', '!=', 'fixed')]}">
+ <group name="fixed_price">
+ <field name="fixed_price"/>
+ </group>
+ </group>
+ <group name="general" attrs="{'invisible':[('delivery_type', '!=', 'base_on_rule')]}">
+ <field name="price_rule_ids" nolabel="1"/>
+ </group>
+ </page>
+ <page string="Destination Availability" name="destination">
+ <group>
+ <p>
+ Filling this form allows you to filter delivery carriers according to the delivery address of your customer.
+ </p>
+ </group>
+ <group>
+ <group name="country_details">
+ <field name="country_ids" widget="many2many_tags"/>
+ <field name="state_ids" widget="many2many_tags"/>
+ </group>
+ <group></group>
+ <group name="zip_from">
+ <field name="zip_from"/>
+ </group>
+ <group name="zip_to">
+ <field name="zip_to"/>
+ </group>
+ </group>
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <record id="action_delivery_carrier_form" model="ir.actions.act_window">
+ <field name="name">Shipping Methods</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">delivery.carrier</field>
+ <field name="view_mode">tree,form</field>
+ <field name="context">{'search_default_group_by_provider': True}</field>
+ <field name="help" type="html">
+ <p class="o_view_nocontent_smiling_face">
+ Define a new delivery method
+ </p><p>
+ Each carrier (e.g. UPS) can have several delivery methods (e.g.
+ UPS Express, UPS Standard) with a set of pricing rules attached
+ to each method.
+ </p><p>
+ These methods allow to automatically compute the delivery price
+ according to your settings; on the sales order (based on the
+ quotation) or the invoice (based on the delivery orders).
+ </p>
+ </field>
+ </record>
+
+ <menuitem action="action_delivery_carrier_form" id="menu_action_delivery_carrier_form" parent="menu_delivery" sequence="1"/>
+ <menuitem action="action_delivery_carrier_form" id="sale_menu_action_delivery_carrier_form" parent="sale.menu_sales_config" sequence="4"/>
+
+ <record id="view_delivery_price_rule_form" model="ir.ui.view">
+ <field name="name">delivery.price.rule.form</field>
+ <field name="model">delivery.price.rule</field>
+ <field name="arch" type="xml">
+ <form string="Price Rules">
+ <group>
+ <field name="name" invisible="1"/>
+ </group>
+ <group>
+ <label for="variable" string="Condition"/>
+ <div class="o_row">
+ <field name="variable"/>
+ <field name="operator"/>
+ <field name="max_value"/>
+ </div>
+ <label for="list_base_price" string="Delivery Cost"/>
+ <div>
+ <field name="list_base_price" class="oe_inline"/>
+ +
+ <field name="list_price" class="oe_inline"/>
+ *
+ <field name="variable_factor" class="oe_inline"/>
+ </div>
+ </group>
+ </form>
+ </field>
+ </record>
+ <record id="view_delivery_price_rule_tree" model="ir.ui.view">
+ <field name="name">delivery.price.rule.tree</field>
+ <field name="model">delivery.price.rule</field>
+ <field name="arch" type="xml">
+ <tree string="Price Rules">
+ <field name="sequence" widget="handle" />
+ <field name="name"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="view_picking_withcarrier_out_form" model="ir.ui.view">
+ <field name="name">delivery.stock.picking_withcarrier.form.view</field>
+ <field name="model">stock.picking</field>
+ <field name="inherit_id" ref="stock.view_picking_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <xpath expr="//group[@name='other_infos']" position="before">
+ <group name='carrier_data' string="Shipping Information">
+ <field name="is_return_picking" invisible="1"/>
+ <field name="carrier_id" attrs="{'readonly': [('state', 'in', ('done', 'cancel'))]}" options="{'no_create': True, 'no_open': True}"/>
+ <field name="delivery_type" attrs="{'invisible':True}"/>
+ <label for="carrier_tracking_ref"/>
+ <div name="tracking">
+ <field name="carrier_tracking_ref" class="oe_inline" attrs="{'readonly': [('state', 'in', ('done', 'cancel'))]}"/>
+ <button type='object' class="fa fa-arrow-right oe_link" name="cancel_shipment" string="Cancel" attrs="{'invisible':['|','|','|',('carrier_tracking_ref','=',False),('delivery_type','in', ['fixed', 'base_on_rule']),('delivery_type','=',False),('state','not in',('done'))]}"/>
+ </div>
+ <label for="weight" string="Weight"/>
+ <div>
+ <field name="weight" class="oe_inline"/>
+ <field name="weight_uom_name" nolabel="1" class="oe_inline" style="margin-left:5px"/>
+ </div>
+ <label for="shipping_weight" string="Weight for shipping"/>
+ <div>
+ <field name="shipping_weight" class="oe_inline"/>
+ <field name="weight_uom_name" nolabel="1" class="oe_inline" style="margin-left:5px"/>
+ </div>
+ </group>
+ </xpath>
+ <div name="button_box" position="inside">
+ <button type="object" name="open_website_url" class="oe_stat_button" icon='fa-truck' string="Tracking"
+ attrs="{'invisible': ['|','|',('carrier_tracking_ref','=',False),('carrier_id', '=', False),('delivery_type','=','grid')]}" />
+ </div>
+ <xpath expr="/form/header/button[last()]" position="after">
+ <button name="send_to_shipper" string="Send to Shipper" type="object" attrs="{'invisible':['|','|','|','|',('carrier_tracking_ref','!=',False),('delivery_type','in', ['fixed', 'base_on_rule']),('delivery_type','=',False),('state','not in',('done')),('picking_type_code', '=', 'incoming')]}"/>
+ </xpath>
+ <xpath expr="/form/header/button[last()]" position="after">
+ <button name="print_return_label" string="Print Return Label" type="object" attrs="{'invisible':['|', '|', ('is_return_picking', '=', False),('state', '=', 'done'),('picking_type_code', '!=', 'incoming')]}"/>
+ </xpath>
+ </data>
+ <xpath expr="//field[@name='partner_id']" position="attributes">
+ <attribute name="attrs">{'required': ['&amp;', ('delivery_type', '!=', False), ('delivery_type', 'not in', ['fixed', 'base_on_rule'])]}</attribute>
+ </xpath>
+ </field>
+ </record>
+
+ <record id="view_picking_withweight_internal_move_form" model="ir.ui.view">
+ <field name="name">stock.picking_withweight.internal.move.form.view</field>
+ <field name="model">stock.move</field>
+ <field name="inherit_id" ref="stock.view_move_form"/>
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='location_dest_id']" position="after">
+ <field name="weight"/>
+ </xpath>
+ </field>
+ </record>
+
+ <record id="view_quant_package_weight_form" model="ir.ui.view">
+ <field name="name">stock.quant.package.weight.form</field>
+ <field name="model">stock.quant.package</field>
+ <field name="inherit_id" ref="stock.view_quant_package_form"/>
+ <field name="arch" type="xml">
+ <field name="company_id" position="before">
+ <field name="packaging_id" domain="[('product_id', '=', False)]"/>
+ <label for="shipping_weight"/>
+ <div class="o_row" name="Shipping Weight">
+ <field name="shipping_weight"/>
+ <span><field name="weight_uom_name"/></span>
+ <span class="text-muted">(computed: <field name="weight" nolabel="1"/></span><span class="text-muted"><field name="weight_uom_name" nolabel="1"/>)</span>
+ </div>
+ </field>
+ </field>
+ </record>
+
+ <record id="view_quant_package_packaging_tree" model="ir.ui.view">
+ <field name="name">stock.quant.package.packaging.tree</field>
+ <field name="model">stock.quant.package</field>
+ <field name="inherit_id" ref="stock.view_quant_package_tree"/>
+ <field name="arch" type="xml">
+ <field name="display_name" position="after">
+ <field name="packaging_id"/>
+ </field>
+ </field>
+ </record>
+
+ <record id="view_order_form_with_carrier" model="ir.ui.view">
+ <field name="name">delivery.sale.order.form.view.with_carrier</field>
+ <field name="model">sale.order</field>
+ <field name="inherit_id" ref="sale.view_order_form"/>
+ <field name="arch" type="xml">
+ <data>
+ <xpath expr="//field[@name='partner_id']" position='after'>
+ <field name="delivery_set" invisible="1"/>
+ <field name="is_all_service" invisible="1"/>
+ <field name="recompute_delivery_price" invisible="1"/>
+ </xpath>
+ <xpath expr="//group[@name='note_group']" position="before">
+ <div class="oe_right">
+ <button
+ string="Add shipping"
+ name="action_open_delivery_wizard"
+ type="object"
+ attrs="{'invisible': ['|', '|',('is_all_service', '=', True), ('order_line', '=', []), ('delivery_set', '=', True)]}"
+ />
+ <button
+ string="Update shipping cost"
+ name="action_open_delivery_wizard"
+ context="{'carrier_recompute':True}"
+ type="object"
+ class="text-warning btn-secondary"
+ attrs="{'invisible': ['|', '|',('is_all_service', '=', True), ('recompute_delivery_price', '=', False), ('delivery_set', '=', False)]}"
+ />
+ <button
+ string="Update shipping cost"
+ name="action_open_delivery_wizard"
+ context="{'carrier_recompute':True}"
+ type="object"
+ attrs="{'invisible': ['|', '|',('is_all_service', '=', True), ('recompute_delivery_price', '=', True), ('delivery_set', '=', False)]}"
+ />
+ </div>
+ </xpath>
+ <xpath expr="//field[@name='order_line']/form/group/group/field[@name='price_unit']" position="before">
+ <field name="recompute_delivery_price" invisible="1"/>
+ <field name="is_delivery" invisible="1"/>
+ </xpath>
+ <xpath expr="//field[@name='order_line']/tree/field[@name='price_unit']" position="before">
+ <field name="recompute_delivery_price" invisible="1"/>
+ <field name="is_delivery" invisible="1"/>
+ </xpath>
+ <xpath expr="//field[@name='order_line']/tree" position="attributes">
+ <attribute name="decoration-warning">recompute_delivery_price and is_delivery</attribute>
+ </xpath>
+ </data>
+ </field>
+ </record>
+
+ <record id="delivery_tracking_url_warning_form" model="ir.ui.view">
+ <field name="name">delivery.carrier.warning.url.form</field>
+ <field name="model">stock.picking</field>
+ <field name="arch" type="xml">
+ <form string="Trackers URL">
+ <group>
+ <div class="alert alert-info" role="status">
+ <p>You have multiple tracker links, they are available in the chatter.</p>
+ </div>
+ </group>
+ <footer>
+ <button string="OK" special="cancel" class="oe_highlight"/>
+ </footer>
+ </form>
+ </field>
+ </record>
+
+ <record id="act_delivery_trackers_url" model="ir.actions.act_window">
+ <field name="name">Display tracking links</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">stock.picking</field>
+ <field name="view_id" ref="delivery.delivery_tracking_url_warning_form"/>
+ <field name="view_mode">form</field>
+ <field name="target">new</field>
+ </record>
+
+ <record id="vpicktree_view_tree" model="ir.ui.view">
+ <field name="name">stock.picking.delivery.tree.inherit.delivery</field>
+ <field name="model">stock.picking</field>
+ <field name="inherit_id" ref="stock.vpicktree"/>
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='backorder_id']" position="after">
+ <field name="carrier_tracking_ref" optional="hide"/>
+ <field name="carrier_id" optional="hide"/>
+ <field name="weight" optional="hide"/>
+ <field name="shipping_weight" optional="hide"/>
+ </xpath>
+ </field>
+ </record>
+</odoo>
diff --git a/addons/delivery/views/partner_view.xml b/addons/delivery/views/partner_view.xml
new file mode 100644
index 00000000..a598514f
--- /dev/null
+++ b/addons/delivery/views/partner_view.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <record id="view_partner_property_form" model="ir.ui.view">
+ <field name="name">res.partner.carrier.property.form.inherit</field>
+ <field name="model">res.partner</field>
+ <field name="inherit_id" ref="base.view_partner_form" />
+ <field name="arch" type="xml">
+ <xpath expr="//page[@name='sales_purchases']//field[@name='user_id']" position="after">
+ <field name="property_delivery_carrier_id"/>
+ </xpath>
+ </field>
+ </record>
+
+</odoo>
diff --git a/addons/delivery/views/product_packaging_view.xml b/addons/delivery/views/product_packaging_view.xml
new file mode 100644
index 00000000..0d3baff2
--- /dev/null
+++ b/addons/delivery/views/product_packaging_view.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+<record model="ir.ui.view" id="product_packaging_delivery_form">
+ <field name="name">product.packaging.form.delivery</field>
+ <field name="model">product.packaging</field>
+ <field name="inherit_id" eval="False"/>
+ <field name="arch" type="xml">
+ <form string="Delivery Packaging">
+ <sheet>
+ <label for="name"/>
+ <h1>
+ <field name="name"/>
+ </h1>
+ <group name="delivery">
+ <group>
+ <field name="package_carrier_type"/>
+ <label for="height"/>
+ <div class="o_row" name="height">
+ <field name="height"/>
+ <span><field name="length_uom_name"/></span>
+ </div>
+ <label for="width"/>
+ <div class="o_row" name="width">
+ <field name="width"/>
+ <span><field name="length_uom_name"/></span>
+ </div>
+ <label for="packaging_length"/>
+ <div class="o_row" name="packaging_length">
+ <field name="packaging_length"/>
+ <span><field name="length_uom_name"/></span>
+ </div>
+ </group>
+ <group>
+ <label for="max_weight"/>
+ <div class="o_row" name="max_weight">
+ <field name="max_weight"/>
+ <span><field name="weight_uom_name"/></span>
+ </div>
+ <field name="barcode"/>
+ <field name="shipper_package_code"/>
+ </group>
+ </group>
+ </sheet>
+ </form>
+ </field>
+</record>
+
+<record model="ir.ui.view" id="product_packaging_delivery_tree">
+ <field name="name">product.packaging.tree.delivery</field>
+ <field name="model">product.packaging</field>
+ <field name="inherit_id" eval="False"/>
+ <field name="arch" type="xml">
+ <tree string="Delivery Packages">
+ <field name="sequence" widget="handle"/>
+ <field name="package_carrier_type"/>
+ <field name="name"/>
+ <field name="height"/>
+ <field name="width"/>
+ <field name="packaging_length"/>
+ <field name="max_weight"/>
+ <field name="shipper_package_code"/>
+ <field name="barcode" invisible="1"/>
+ </tree>
+ </field>
+</record>
+
+</odoo>
diff --git a/addons/delivery/views/product_template_view.xml b/addons/delivery/views/product_template_view.xml
new file mode 100644
index 00000000..0606ff2b
--- /dev/null
+++ b/addons/delivery/views/product_template_view.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+<record model="ir.ui.view" id="product_template_hs_code">
+ <field name="name">product.template.form.hs_code</field>
+ <field name="model">product.template</field>
+ <field name="inherit_id" ref="product.product_template_form_view"/>
+ <field name="arch" type="xml">
+ <xpath expr="//group[@name='group_lots_and_weight']" position="inside">
+ <field name="hs_code"/>
+ </xpath>
+ </field>
+</record>
+
+</odoo>
diff --git a/addons/delivery/views/report_deliveryslip.xml b/addons/delivery/views/report_deliveryslip.xml
new file mode 100644
index 00000000..4bf0057d
--- /dev/null
+++ b/addons/delivery/views/report_deliveryslip.xml
@@ -0,0 +1,72 @@
+<odoo>
+ <template id="report_delivery_document2" inherit_id="stock.report_delivery_document">
+ <xpath expr="//div[@name='div_sched_date']" position="after">
+ <div t-if="o.picking_type_id.code == 'outgoing' and o.carrier_id" class="col-auto">
+ <strong>Carrier:</strong>
+ <p t-field="o.carrier_id"/>
+ </div>
+ <div t-if="o.shipping_weight" class="col-auto">
+ <strong>Total Weight:</strong>
+ <br/>
+ <span t-field="o.shipping_weight"/>
+ <span t-field="o.weight_uom_name"/>
+ </div>
+ <div t-if="o.carrier_tracking_ref" class="col-auto">
+ <strong>Tracking Number:</strong>
+ <p t-field="o.carrier_tracking_ref"/>
+ </div>
+ <t t-set="has_hs_code" t-value="o.move_lines.filtered(lambda l: l.product_id.hs_code)"/>
+ </xpath>
+
+ <xpath expr="//table[@name='stock_move_table']/thead/tr" position="inside">
+ <th t-if="has_hs_code"><strong>HS Code</strong></th>
+ </xpath>
+
+ <xpath expr="//table[@name='stock_move_line_table']/thead/tr" position="inside">
+ <th t-if="has_hs_code"><strong>HS Code</strong></th>
+ </xpath>
+ </template>
+
+ <!-- HS Code to table rows-->
+ <template id="stock_report_delivery_has_serial_move_line_inherit_delivery" inherit_id="stock.stock_report_delivery_has_serial_move_line">
+ <xpath expr="//td[@name='move_line_lot_qty_done']" position="after">
+ <td t-if="has_hs_code"><span t-field="move_line.product_id.hs_code"/></td>
+ </xpath>
+ </template>
+ <template id="stock_report_delivery_aggregated_move_lines_inherit_delivery" inherit_id="stock.stock_report_delivery_aggregated_move_lines">
+ <xpath expr="//td[@name='move_line_aggregated_qty_done']" position="after">
+ <td t-if="has_hs_code"><span t-esc="aggregated_lines[line]['hs_code']"/></td>
+ </xpath>
+ </template>
+
+ <!-- package related "section lines" -->
+ <template id="stock_report_delivery_package_section_line_inherit_delivery" inherit_id="stock.stock_report_delivery_package_section_line">
+ <!-- Add additional Package section line info -->
+ <xpath expr="//td[@name='package_info']" position="inside">
+ <t t-if="package.shipping_weight or package.weight">
+ <!-- assume manually typed in value = priority -->
+ <t t-if="package.shipping_weight">
+ <span> - Weight: </span>
+ <span t-field="package.shipping_weight"/>
+ <span t-field="package.weight_uom_name"/>
+ </t>
+ <!-- otherwise default to calculated value -->
+ <t t-else="">
+ <span> - Weight (estimated): </span>
+ <span t-field="package.weight"/>
+ <span t-field="package.weight_uom_name"/>
+ </t>
+ </t>
+ </xpath>
+ </template>
+ <template id="delivery_stock_report_delivery_no_package_section_line" inherit_id="stock.stock_report_delivery_no_package_section_line">
+ <!-- Add additional No Package section line info -->
+ <xpath expr="//td[@name='no_package_info']" position="inside">
+ <t t-if="o.weight_bulk">
+ <span> - Weight: </span>
+ <span t-field="o.weight_bulk"/>
+ <span t-field="o.weight_uom_name"/>
+ </t>
+ </xpath>
+ </template>
+</odoo>
diff --git a/addons/delivery/views/report_package_barcode.xml b/addons/delivery/views/report_package_barcode.xml
new file mode 100644
index 00000000..0b363e10
--- /dev/null
+++ b/addons/delivery/views/report_package_barcode.xml
@@ -0,0 +1,20 @@
+<odoo>
+ <template id="report_package_barcode_delivery" inherit_id="stock.report_package_barcode">
+ <xpath expr="//div[hasclass('o_packaging_type')]" position="after">
+ <div t-if="o.shipping_weight" class="col-auto">
+ <strong>Shipping Weight:</strong>
+ <br/>
+ <span t-field="o.shipping_weight"/>
+ <span t-esc="env['product.template']._get_weight_uom_id_from_ir_config_parameter().display_name"/>
+ </div>
+ </xpath>
+ </template>
+
+ <template id="report_package_barcode_small_delivery" inherit_id="stock.report_package_barcode_small">
+ <xpath expr="//div[hasclass('o_packaging_type')]" position="after">
+ <div class="row o_package_shipping_weight" t-if="o.shipping_weight">
+ <div class="col-12 text-center" style="font-size:24px; font-weight:bold;"><span>Shipping Weight: </span><span t-field="o.shipping_weight"/> <t t-esc="env['product.template']._get_weight_uom_id_from_ir_config_parameter().display_name"/></div>
+ </div>
+ </xpath>
+ </template>
+</odoo>
diff --git a/addons/delivery/views/report_shipping.xml b/addons/delivery/views/report_shipping.xml
new file mode 100644
index 00000000..2eb90476
--- /dev/null
+++ b/addons/delivery/views/report_shipping.xml
@@ -0,0 +1,16 @@
+<odoo>
+ <template id="report_shipping2" inherit_id="stock.report_picking">
+ <xpath expr="//div[@name='div_sched_date']" position="after">
+ <div t-if="o.picking_type_id.code == 'outgoing' and o.carrier_id" class="col-auto">
+ <strong>Carrier:</strong>
+ <p t-field="o.carrier_id"/>
+ </div>
+ <div t-if="o.weight" class="col-auto">
+ <strong>Weight:</strong>
+ <br/>
+ <span t-field="o.weight"/>
+ <span t-field="o.weight_uom_name"/>
+ </div>
+ </xpath>
+ </template>
+</odoo>
diff --git a/addons/delivery/views/res_config_settings_views.xml b/addons/delivery/views/res_config_settings_views.xml
new file mode 100644
index 00000000..b7cb0035
--- /dev/null
+++ b/addons/delivery/views/res_config_settings_views.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <record id="res_config_settings_view_form" model="ir.ui.view">
+ <field name="name">res.config.settings.view.form.inherit.delivery</field>
+ <field name="model">res.config.settings</field>
+ <field name="inherit_id" ref="sale.res_config_settings_view_form"/>
+ <field name="arch" type="xml">
+ <xpath expr="//div[@id='delivery_carrier']" position="after">
+ <div class="content-group">
+ <div class="mt8" attrs="{'invisible': [('module_delivery','=',False)]}">
+ <button name="%(delivery.action_delivery_carrier_form)d" icon="fa-arrow-right" type="action" string="Shipping Methods" class="btn-link"/>
+ </div>
+ </div>
+ </xpath>
+ </field>
+ </record>
+
+</odoo>