Add product_barcode in SO lines, PO lines, stock move lines and invoice lines with optional="hide"
Show warning about double VAT partner even when not in editable mode
This commit is contained in:
@@ -195,6 +195,8 @@ class AccountMoveLine(models.Model):
|
|||||||
matched_credit_ids = fields.One2many(string='Partial Reconcile Credit')
|
matched_credit_ids = fields.One2many(string='Partial Reconcile Credit')
|
||||||
reconcile_string = fields.Char(
|
reconcile_string = fields.Char(
|
||||||
compute='_compute_reconcile_string', string='Reconcile', store=True)
|
compute='_compute_reconcile_string', string='Reconcile', store=True)
|
||||||
|
# for optional display in tree view
|
||||||
|
product_barcode = fields.Char(related='product_id.barcode', string="Product Barcode")
|
||||||
|
|
||||||
def show_account_move_form(self):
|
def show_account_move_form(self):
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
|
|||||||
@@ -30,6 +30,9 @@
|
|||||||
<field name="matching_number" optional="hide"/>
|
<field name="matching_number" optional="hide"/>
|
||||||
<field name="reconcile_string" optional="show"/>
|
<field name="reconcile_string" optional="show"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
<xpath expr="//field[@name='invoice_line_ids']/tree/field[@name='product_id']" position="after">
|
||||||
|
<field name="product_barcode" optional="hide"/>
|
||||||
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,10 @@
|
|||||||
<xpath expr="//field[@name='child_ids']/form//field[@name='title']" position="attributes">
|
<xpath expr="//field[@name='child_ids']/form//field[@name='title']" position="attributes">
|
||||||
<attribute name="attrs"></attribute>
|
<attribute name="attrs"></attribute>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
<!-- Show double VAT partner even when not in editable mode -->
|
||||||
|
<div attrs="{'invisible': [('same_vat_partner_id', '=', False)]}" position="attributes">
|
||||||
|
<attribute name="class">alert alert-warning</attribute>
|
||||||
|
</div>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
@@ -71,3 +71,10 @@ class PurchaseOrder(models.Model):
|
|||||||
# {'subtotal': 8932.23},
|
# {'subtotal': 8932.23},
|
||||||
# ]
|
# ]
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
|
||||||
|
class PurchaseOrderLine(models.Model):
|
||||||
|
_inherit = 'purchase.order.line'
|
||||||
|
|
||||||
|
# for optional display in tree view
|
||||||
|
product_barcode = fields.Char(related='product_id.barcode', string="Product Barcode")
|
||||||
|
|||||||
@@ -34,6 +34,9 @@
|
|||||||
<xpath expr="//field[@name='order_line']/form//field[@name='analytic_tag_ids']" position="attributes">
|
<xpath expr="//field[@name='order_line']/form//field[@name='analytic_tag_ids']" position="attributes">
|
||||||
<attribute name="groups">analytic.group_analytic_tags</attribute>
|
<attribute name="groups">analytic.group_analytic_tags</attribute>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
<xpath expr="//field[@name='order_line']/tree//field[@name='product_id']" position="after">
|
||||||
|
<field name="product_barcode" optional="hide"/>
|
||||||
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,9 @@ class SaleOrder(models.Model):
|
|||||||
class SaleOrderLine(models.Model):
|
class SaleOrderLine(models.Model):
|
||||||
_inherit = 'sale.order.line'
|
_inherit = 'sale.order.line'
|
||||||
|
|
||||||
|
# for optional display in tree view
|
||||||
|
product_barcode = fields.Char(related='product_id.barcode', string="Product Barcode")
|
||||||
|
|
||||||
@api.onchange('product_uom', 'product_uom_qty')
|
@api.onchange('product_uom', 'product_uom_qty')
|
||||||
def product_uom_change(self):
|
def product_uom_change(self):
|
||||||
# When the user has manually set a custom price
|
# When the user has manually set a custom price
|
||||||
|
|||||||
@@ -26,6 +26,9 @@
|
|||||||
<field name="date_order" position="after">
|
<field name="date_order" position="after">
|
||||||
<field name="client_order_ref"/>
|
<field name="client_order_ref"/>
|
||||||
</field>
|
</field>
|
||||||
|
<xpath expr="//field[@name='order_line']/tree/field[@name='product_template_id']" position="after">
|
||||||
|
<field name="product_barcode" optional="hide"/>
|
||||||
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
from odoo import models, _
|
from odoo import fields, models, _
|
||||||
from odoo.exceptions import UserError
|
from odoo.exceptions import UserError
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
@@ -12,6 +12,9 @@ logger = logging.getLogger(__name__)
|
|||||||
class StockMove(models.Model):
|
class StockMove(models.Model):
|
||||||
_inherit = 'stock.move'
|
_inherit = 'stock.move'
|
||||||
|
|
||||||
|
# for optional display in tree view
|
||||||
|
product_barcode = fields.Char(related='product_id.barcode', string="Product Barcode")
|
||||||
|
|
||||||
# def name_get(self):
|
# def name_get(self):
|
||||||
# '''name_get of stock_move is important for the reservation of the
|
# '''name_get of stock_move is important for the reservation of the
|
||||||
# quants: so want to add the name of the customer and the expected date
|
# quants: so want to add the name of the customer and the expected date
|
||||||
@@ -49,6 +52,9 @@ class StockMove(models.Model):
|
|||||||
class StockMoveLine(models.Model):
|
class StockMoveLine(models.Model):
|
||||||
_inherit = 'stock.move.line'
|
_inherit = 'stock.move.line'
|
||||||
|
|
||||||
|
# for optional display in tree view
|
||||||
|
product_barcode = fields.Char(related='product_id.barcode', string="Product Barcode")
|
||||||
|
|
||||||
# TODO: I think it's not complete
|
# TODO: I think it's not complete
|
||||||
def button_do_unreserve(self):
|
def button_do_unreserve(self):
|
||||||
for moveline in self:
|
for moveline in self:
|
||||||
|
|||||||
@@ -58,6 +58,9 @@
|
|||||||
states="partially_available,assigned"
|
states="partially_available,assigned"
|
||||||
icon="fa-ban"/>
|
icon="fa-ban"/>
|
||||||
</field>
|
</field>
|
||||||
|
<field name="product_id" position="after">
|
||||||
|
<field name="product_barcode" optional="hide"/>
|
||||||
|
</field>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@@ -78,6 +81,20 @@
|
|||||||
states="partially_available,assigned"
|
states="partially_available,assigned"
|
||||||
icon="fa-ban"/>
|
icon="fa-ban"/>
|
||||||
</field>
|
</field>
|
||||||
|
<field name="product_id" position="after">
|
||||||
|
<field name="product_barcode" optional="hide"/>
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- View embedded in picking -->
|
||||||
|
<record id="view_stock_move_line_detailed_operation_tree" model="ir.ui.view">
|
||||||
|
<field name="model">stock.move.line</field>
|
||||||
|
<field name="inherit_id" ref="stock.view_stock_move_line_detailed_operation_tree" />
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="product_id" position="after">
|
||||||
|
<field name="product_barcode" optional="hide"/>
|
||||||
|
</field>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
@@ -31,8 +31,9 @@
|
|||||||
<xpath expr="//field[@name='move_ids_without_package']/tree/field[@name='location_id']" position="replace"/>
|
<xpath expr="//field[@name='move_ids_without_package']/tree/field[@name='location_id']" position="replace"/>
|
||||||
<xpath expr="//field[@name='move_ids_without_package']/tree/field[@name='location_dest_id']" position="replace"/>
|
<xpath expr="//field[@name='move_ids_without_package']/tree/field[@name='location_dest_id']" position="replace"/>
|
||||||
<xpath expr="//field[@name='move_ids_without_package']/tree/field[@name='product_id']" position="after">
|
<xpath expr="//field[@name='move_ids_without_package']/tree/field[@name='product_id']" position="after">
|
||||||
<field name="location_id" groups="stock.group_stock_multi_locations"/>
|
<field name="product_barcode" optional="hide"/>
|
||||||
<field name="location_dest_id" groups="stock.group_stock_multi_locations"/>
|
<field name="location_id" groups="stock.group_stock_multi_locations" optional="show"/>
|
||||||
|
<field name="location_dest_id" groups="stock.group_stock_multi_locations" optional="show"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//field[@name='move_ids_without_package']/tree/button[@name='action_assign_serial']" position="after">
|
<xpath expr="//field[@name='move_ids_without_package']/tree/button[@name='action_assign_serial']" position="after">
|
||||||
<button type="object" name="button_do_unreserve" string="Unreserve"
|
<button type="object" name="button_do_unreserve" string="Unreserve"
|
||||||
@@ -40,15 +41,6 @@
|
|||||||
states="partially_available,assigned"
|
states="partially_available,assigned"
|
||||||
icon="fa-ban"/>
|
icon="fa-ban"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<!-- STOCK MOVE LINE -->
|
|
||||||
<!--
|
|
||||||
<xpath expr="//field[@name='move_line_ids_without_package']/tree/field[@name='location_id']" position="attributes">
|
|
||||||
<attribute name="attrs">{}</attribute>
|
|
||||||
</xpath>
|
|
||||||
<xpath expr="//field[@name='move_line_ids_without_package']/tree/field[@name='location_dest_id']" position="attributes">
|
|
||||||
<attribute name="attrs">{}</attribute>
|
|
||||||
</xpath>
|
|
||||||
-->
|
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user