Initial commit: OCA Warehouse packages (12 packages)

This commit is contained in:
Ernad Husremovic 2025-08-29 15:43:06 +02:00
commit af1eea7692
627 changed files with 55555 additions and 0 deletions

View file

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<!-- Actions inside the menu -->
<record id="view_stock_barcodes_action_tree" model="ir.ui.view">
<field name="name">stock.barcodes.action.tree</field>
<field name="model">stock.barcodes.action</field>
<field name="arch" type="xml">
<tree editable="top">
<header>
<button
string="Print barcodes"
type="object"
name="print_barcodes"
/>
</header>
<field name="sequence" widget="handle" />
<field name="name" />
<field name="action_window_id" />
<field name="context" />
<field name="key_shortcut" />
<field name="key_char_shortcut" />
<field name="active" widget="boolean_toggle" />
<field name="barcode" />
<field name="icon_class" />
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_stock_barcodes">
<field name="res_model">stock.barcodes.action</field>
<field name="name">Barcodes actions</field>
<field name="view_mode">tree</field>
</record>
<record id="view_stock_barcodes_action_kanban" model="ir.ui.view">
<field name="name">stock.barcodes.action.kanban</field>
<field name="model">stock.barcodes.action</field>
<field name="arch" type="xml">
<kanban
class="o_kanban_mobile stock_barcodes_action_kanban"
create="0"
edit="0"
delete="0"
action="open_action"
type="object"
>
<field name="name" />
<field name="action_window_id" />
<field name="key_shortcut" />
<field name="key_char_shortcut" />
<field name="icon_class" />
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_card oe_kanban_content">
<t t-set="shortcut" t-value="record.key_char_shortcut" />
<t
t-set="hotkey"
t-value="context.context_display_menu &amp;&amp; record.key_char_shortcut.raw_value || ''"
/>
<div class="d-flex justify-content-between">
<div>
<i
t-if="record.icon_class.raw_value != false"
t-attf-class="mx-2 #{record.icon_class.raw_value}"
/>
<field name="name" />
</div>
<div class="rounded-circle count-elements">
<field name="count_elements" />
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!-- Main menu from scan wizard -->
<record id="action_stock_barcodes_action_kanban" model="ir.actions.act_window">
<field name="res_model">stock.barcodes.action</field>
<field name="name">Barcodes</field>
<field name="view_mode">kanban</field>
<field name="view_id" ref="view_stock_barcodes_action_kanban" />
<field name="domain">[('action_window_id', '!=', False)]</field>
<field name="target">fullscreen</field>
</record>
<record id="action_stock_barcodes_action_client" model="ir.actions.client">
<field name="name">Barcodes</field>
<field name="tag">stock_barcodes_main_menu</field>
<field name="target">fullscreen</field>
</record>
<record model="ir.actions.act_window" id="action_stock_barcodes_action">
<field name="res_model">wiz.stock.barcodes.read.picking</field>
<field name="name">Barcodes actions</field>
<field name="view_mode">form</field>
<field
name="context"
>{'control_panel_hidden': True, 'default_display_menu': True}</field>
</record>
<menuitem
action="action_stock_barcodes"
id="menu_action_stock_barcodes"
groups="stock.group_stock_user"
name="Barcode actions"
parent="stock.menu_product_in_config_stock"
sequence="100"
/>
</odoo>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<menuitem
id="stock_barcodes_root"
name="Barcodes"
web_icon="stock_barcodes,static/description/icon.png"
action="stock_barcodes.action_stock_barcodes_action_client"
groups="stock.group_stock_user"
/>
</odoo>

View file

@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_stock_barcodes_option_group_form" model="ir.ui.view">
<field name="name">stock.barcodes.option.group.form</field>
<field name="model">stock.barcodes.option.group</field>
<field name="arch" type="xml">
<form string="Barcode options">
<sheet>
<group>
<group>
<field name="name" />
<field name="barcode_guided_mode" />
</group>
<group>
<field name="code" />
<field
name="display_notification"
widget="boolean_toggle"
/>
</group>
</group>
<group string="Behavior settings">
<group>
<field name="manual_entry" />
<field name="manual_entry_field_focus" />
<field name="confirmed_moves" />
<field name="show_pending_moves" />
<field
name="source_pending_moves"
attrs="{'invisible': [('show_pending_moves', '=', False), ('barcode_guided_mode', '=', False)]}"
/>
<field name="group_key_for_todo_records" />
<field name="location_field_to_sort" />
<field name="show_detailed_operations" />
<field name="auto_put_in_pack" />
<field name="display_read_quant" />
</group>
<group>
<field name="ignore_filled_fields" />
<field name="keep_screen_values" />
<field name="is_manual_confirm" />
<field name="is_manual_qty" />
<field name="accumulate_read_quantity" />
<field name="allow_negative_quant" />
<field name="fill_fields_from_lot" />
<field name="ignore_quant_location" />
<field name="auto_lot" />
<field name="create_lot" />
<field name="use_location_dest_putaway" />
</group>
</group>
<separator string="Steps to scan" />
<field name="option_ids">
<tree editable="bottom">
<field name="step" />
<field name="sequence" widget="handle" />
<field name="name" />
<field name="field_name" />
<field name="filled_default" />
<field
name="forced"
attrs="{'column_invisible': [('parent.barcode_guided_mode', '=', False)]}"
/>
<field name="to_scan" />
<field name="required" />
<field name="clean_after_done" />
</tree>
</field>
</sheet>
</form>
</field>
</record>
<record id="view_stock_barcodes_option_tree" model="ir.ui.view">
<field name="name">stock.barcodes.option.tree</field>
<field name="model">stock.barcodes.option</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="sequence" />
<field name="name" />
<field
name="option_group_id"
invisible="context.get('hide_option_group_id', False)"
/>
<field name="field_name" />
<field name="filled_default" />
<field name="forced" />
<field name="to_scan" />
<field name="required" />
<field name="clean_after_done" />
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_stock_barcodes_option">
<field name="res_model">stock.barcodes.option</field>
<field name="name">Barcodes options</field>
<field name="view_mode">tree</field>
</record>
<record model="ir.actions.act_window" id="action_stock_barcodes_option_group">
<field name="res_model">stock.barcodes.option.group</field>
<field name="name">Barcodes options groups</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem
id="menu_action_stock_barcodes_option_group"
action="action_stock_barcodes_option_group"
groups="stock.group_stock_user"
name="Barcode options"
parent="stock.menu_product_in_config_stock"
sequence="100"
/>
</odoo>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!--
Odoo v13.0 has been removed barcode field from location view, so we need to
add the field to allow to assign a value
-->
<record id="stock_location_form_inherit" model="ir.ui.view">
<field name="name">stock.location.inherit</field>
<field name="model">stock.location</field>
<field name="inherit_id" ref="stock.view_location_form" />
<field name="arch" type="xml">
<group name="additional_info" position="after">
<group name="barcode" string="Barcode">
<field name="barcode" />
</group>
</group>
</field>
</record>
</odoo>

View file

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_picking_form" model="ir.ui.view">
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form" />
<field name="arch" type="xml">
<div name="button_box" position="inside">
<button
name="action_barcode_scan"
class="oe_stat_button"
icon="fa-barcode"
type="object"
help="Start barcode interface"
states="confirmed,assigned"
>
<div class="o_form_field o_stat_info">
<span class="o_stat_text">Scan barcodes</span>
</div>
</button>
</div>
</field>
</record>
<record id="stock_picking_kanban" model="ir.ui.view">
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.stock_picking_kanban" />
<field name="arch" type="xml">
<xpath expr="//kanban" position="attributes">
<attribute name="type">object</attribute>
</xpath>
<xpath expr="//kanban" position="attributes">
<attribute name="action">action_barcode_scan</attribute>
</xpath>
<xpath expr="//kanban" position="attributes">
<attribute name="js_class">stock_barcodes_kanban</attribute>
</xpath>
</field>
</record>
<record id="stock_picking_type_kanban" model="ir.ui.view">
<field name="model">stock.picking.type</field>
<field name="inherit_id" ref="stock.stock_picking_type_kanban" />
<field name="arch" type="xml">
<field name="code" position="after">
<field name="default_location_src_id" invisible="1" />
<field name="default_location_dest_id" invisible="1" />
</field>
<xpath expr="//div[hasclass('o_kanban_primary_left')]" position="inside">
<field name="barcode_option_group_id" invisible="1" />
<div
class="mt8"
t-if="['incoming', 'outgoing', 'internal'].indexOf(record.code.raw_value) &gt; -1"
attrs="{'invisible': [('barcode_option_group_id', '=', False)]}"
>
<button
name="action_barcode_scan"
type="object"
class="btn btn-secondary"
>
<i
class="fa fa-barcode fa-2x"
title="Start barcode interface"
/>
</button>
</div>
</xpath>
<xpath expr="//div[hasclass('o_kanban_primary_right')]" position="inside">
<div
class="float-end mt8"
t-if="record.default_location_src_id.raw_value and record.default_location_dest_id.raw_value"
>
<button
name="action_barcode_new_picking"
type="object"
class="btn btn-secondary"
context="{'default_immediate_transfer': True, 'manual_picking': True}"
>
<i class="fa fa-plus" title="Scan new picking " />
<small>New</small>
</button>
</div>
</xpath>
</field>
</record>
<record id="view_picking_type_form" model="ir.ui.view">
<field name="model">stock.picking.type</field>
<field name="inherit_id" ref="stock.view_picking_type_form" />
<field name="arch" type="xml">
<xpath expr="//field[@name='use_create_lots']/../.." position="after">
<group string="Barcodes">
<field name="barcode_option_group_id" />
<field name="new_picking_barcode_option_group_id" />
</group>
</xpath>
</field>
</record>
<record id="view_pickingtype_filter" model="ir.ui.view">
<field name="model">stock.picking.type</field>
<field name="inherit_id" ref="stock.view_pickingtype_filter" />
<field name="arch" type="xml">
<field name="name" position="after">
<field name="code" string="Type of operation" />
<field name="sequence_code" string="Code" />
<filter
string="Barcode Options"
name="barcode_options"
domain="[('barcode_option_group_id','!=',False)]"
/>
</field>
</field>
</record>
<record id="stock_barcodes_action_picking_tree_ready" model="ir.actions.act_window">
<field name="name">Operations</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">kanban</field>
<field
name="context"
>{'contact_display': 'partner_address', 'search_default_available': 1}
</field>
<field name="search_view_id" ref="stock.view_picking_internal_search" />
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No transfer found. Let's create one!
</p>
<p>
Transfers allow you to move products from one location to another.
</p>
</field>
</record>
</odoo>