Initial commit: Ventor Odoo packages (4 packages)

This commit is contained in:
Ernad Husremovic 2025-08-29 15:49:21 +02:00
commit 1f20ad87e6
190 changed files with 10375 additions and 0 deletions

View file

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="ventor_base_pallet_transfer_tree" model="ir.ui.view">
<field name="name">ventor.base.pallet.transfer.tree</field>
<field name="model">pallet.transfer</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="pallet_name"/>
<field name="source_location_id"/>
<field name="destination_location_id"/>
</tree>
</field>
</record>
<record id="ventor_base_pallet_transfer_form" model="ir.ui.view">
<field name="name">ventor.base.pallet.transfer.form</field>
<field name="model">pallet.transfer</field>
<field name="arch" type="xml">
<form string="Pallet Transfers" edit="false">
<sheet>
<div class="oe_title">
<h1>
<field name="name" readonly="1"/>
</h1>
</div>
<group>
<group>
<field name="pallet_id"
required="1"
options="{'no_create': True, 'no_open': True}"
domain="[('is_pallet', '=', True)]"/>
</group>
<group>
<field name="destination_location_id"
required="1"
options="{'no_create': True, 'no_open': True}"
domain="[('is_pallet', '!=', True), ('usage', '=', 'internal')]"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="ventor_base_quick_pallet_transfer_form" model="ir.ui.view">
<field name="name">ventor.base.quick.pallet.transfer.form</field>
<field name="model">pallet.transfer</field>
<field name="arch" type="xml">
<form>
<div class="oe_title">
<h1>
<field name="name" readonly="1"/>
</h1>
</div>
<group>
<group>
<field name="pallet_id"
required="1"
options="{'no_create': True, 'no_open': True}"
domain="[('is_pallet', '=', True)]"/>
</group>
<group>
<field name="destination_location_id"
required="1"
options="{'no_create': True, 'no_open': True}"
domain="[('is_pallet', '!=', True), ('usage', '=', 'internal')]"/>
</group>
</group>
<footer>
<button
string="Create Transfer"
special="save"
class="oe_highlight"/>
<button
string="Cancel"
class="btn btn-default"
special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="quick_pallets_transfer_action" model="ir.actions.act_window">
<field name="name">Quick Pallet Transfers</field>
<field name="res_model">pallet.transfer</field>
<field name="view_mode">form</field>
<field name="view_id" ref="ventor_base.ventor_base_quick_pallet_transfer_form"/>
<field name="target">new</field>
</record>
<record id="all_pallets_transfer_action" model="ir.actions.act_window">
<field name="name">All Pallet Transfers</field>
<field name="res_model">pallet.transfer</field>
<field name="usage">menu</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="ventor_base.ventor_base_pallet_transfer_tree"/>
<field name="target">current</field>
</record>
<menuitem id="menu_handling_transfer"
name="Pallet Transfers"
parent="stock.menu_stock_root"
sequence="99"
groups="ventor_base.merp_allow_pallet_transfer"/>
<record id="Quick_pallets_transfer_menu" model="ir.ui.menu">
<field name="name">Quick Pallet Transfers</field>
<field name="sequence" eval="1"/>
<field name="action" ref="ventor_base.quick_pallets_transfer_action"/>
<field name="parent_id" ref="ventor_base.menu_handling_transfer"/>
</record>
<record id="all_pallets_transfer_menu" model="ir.ui.menu">
<field name="name">All Pallet Transfers</field>
<field name="sequence" eval="2"/>
<field name="action" ref="ventor_base.all_pallets_transfer_action"/>
<field name="parent_id" ref="ventor_base.menu_handling_transfer"/>
</record>
</odoo>

View file

@ -0,0 +1,104 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_stock_config_settings" model="ir.ui.view">
<field name="name">Ventor Application Demo - Stock Settings</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base.res_config_settings_view_form" />
<field name="arch" type="xml">
<xpath expr="//div[hasclass('settings')]" position="inside" >
<div class="app_settings_block"
data-string="Ventor Configuration"
string="Ventor Configuration"
data-key="ventor_base"
groups="stock.group_stock_manager">
<h2>Ventor Application modules</h2>
<div class="row mt16 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="module_outgoing_routing"/>
</div>
<div class="o_setting_right_pane">
<label for="module_outgoing_routing"/>
<div class="text-muted">
Add Outgoing Routing strategy options (sort locations)
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<field name="base_version"/>
<div class="text-muted">
Base Module Version
</div>
</div>
</div>
</div>
<h2>Inventory settings</h2>
<div class="row mt16 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<div>
<field name="add_barcode_on_view"/>
</div>
</div>
<div class="o_setting_right_pane">
<label for="add_barcode_on_view"/>
<div class="text-muted">
Use it to activate barcodes for the Community version
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<div>
<field name="force_lot_validation_on_inventory_adjustment"/>
</div>
</div>
<div class="o_setting_right_pane">
<label for="force_lot_validation_on_inventory_adjustment"/>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<div>
<field name="barcode_on_picking_document"/>
</div>
</div>
<div class="o_setting_right_pane">
<label for="barcode_on_picking_document"/>
<div class="text-muted">
Showing a barcode of the related sales order on all printed picking documents
</div>
</div>
</div>
</div>
<h2>Additional Customisation</h2>
<div class="row mt16 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane"/>
<div class="o_setting_right_pane">
<span class="o_form_label">Custom Mobile Logo</span>
<div>
<field name="logotype_file"
widget="image" />
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane"/>
<div class="o_setting_right_pane">
<span class="o_form_label">Custom Build Name</span>
<div>
<field name="custom_package_name"/>
</div>
</div>
</div>
</div>
</div>
</xpath>
</field>
</record>
</odoo>

View file

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Update User form -->
<record model="ir.ui.view" id="res_user_form">
<field name="name">Users Preferences</field>
<field name="model">res.users</field>
<field name="inherit_id" ref="base.view_users_form" />
<field name="arch" type="xml">
<data>
<xpath expr="//notebook/page[@name='preferences']" position="after">
<page string="Ventor Preferences">
<group>
<field name="ventor_global_settings"
style="overflow-y: scroll; resize: none; height: 120px; width: 100%%"
groups="base.group_no_one"/>
<field name="ventor_user_settings"
style="overflow-y: scroll; resize: none; height: 120px; width: 100%%"
groups="base.group_no_one"/>
</group>
</page>
</xpath>
<xpath expr="//page[@name='access_rights']//group" position="after">
<group string="Multi Warehouses">
<field name="allowed_warehouse_ids" widget="many2many_tags" options="{'no_create': True}"/>
</group>
<div class="text-danger">
<p>
Warning! If the user is Inventory / Administrator,
the Allowed Warehouses configuration is ignored and
the user will still be able to see all warehouses
</p>
</div>
</xpath>
</data>
</field>
</record>
</odoo>

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_location_form_inherit_additional_barcode" model="ir.ui.view">
<field name="name">stock.location.form.inherit.additional.barcode</field>
<field name="model">stock.location</field>
<field name="active" eval="False"/>
<field name="inherit_id" ref="stock.view_location_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='return_location']" position="after">
<field name="barcode"/>
</xpath>
</field>
</record>
<record id="view_location_form_inherited" model="ir.ui.view">
<field name="name">stock.location.form.inherited</field>
<field name="model">stock.location</field>
<field name="inherit_id" ref="stock.view_location_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='return_location']" position="after">
<field name="is_pallet" attrs="{'invisible': [('usage', '!=', 'internal')]}"/>
</xpath>
</field>
</record>
<!-- stock.location inherit search view -->
<record id="view_location_search" model="ir.ui.view">
<field name="name">stock.location.inherit.view.search</field>
<field name="model">stock.location</field>
<field name="inherit_id" ref="stock.view_location_search"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='location_id']" position="after">
<field name="warehouse_id" string="Warehouse"/>
<group expand='0' string='Group by...'>
<filter string='Warehouse' name="warehouse_id" domain="[]" context="{'group_by' : 'warehouse_id'}"/>
</group>
</xpath>
</field>
</record>
</odoo>

View file

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- Views-->
<record id='ventor_stock_picking_view' model='ir.ui.view'>
<field name="name">Operation Types</field>
<field name="model">stock.picking.type</field>
<field name="priority">1000</field>
<field name="arch" type="xml">
<tree create="false" class="ventor_base_tree" editable="top">
<field name="name" attrs="{'readonly':True}"/>
<field name="warehouse_id" attrs="{'readonly':True}"/>
<field name="company_id" invisible="True"/>
<field name="confirm_source_location"/>
<field name="change_source_location"/>
<field name="confirm_product"/>
<field name="show_next_product"/>
<field name="confirm_destination_location"/>
<field name="change_destination_location"/>
<field name="scan_destination_location_once"/>
<field name="apply_quantity_automatically"/>
<field name="is_package_tracking_enabled" invisible='1'/>
<field name="manage_packages" attrs="{'readonly': [('is_package_tracking_enabled','=',False)]}"/>
<field name="allow_creating_new_packages"
attrs="{'readonly': ['|', ('is_package_tracking_enabled','=',False), ('manage_packages','=',False)]}"/>
<field name="is_consignment_enabled" invisible='1'/>
<field name="confirm_source_package"
attrs="{'readonly': ['|', ('is_package_tracking_enabled','=',False), ('manage_packages','=',False)]}"/>
<field name="scan_destination_package"
attrs="{'readonly': ['|', ('is_package_tracking_enabled','=',False), ('manage_packages','=',False)]}"/>
<field name="manage_product_owner" attrs="{'readonly': [('is_consignment_enabled','=',False)]}"/>
<field name="is_stock_production_lot_enabled" invisible='1'/>
<field name="apply_default_lots" attrs="{'readonly': [('is_stock_production_lot_enabled','=',False)]}"/>
<field name="transfer_more_items"/>
<field name="autocomplete_the_item_quantity_field"/>
<field name="behavior_on_backorder_creation"/>
<field name="behavior_on_split_operation" required="1"/>
<field name="show_print_attachment_button"/>
<field name="show_put_in_pack_button" attrs="{'readonly': [('is_package_tracking_enabled','=',False)]}"/>
<field name="code" invisible='1'/>
<field name="check_shipping_information" attrs="{'readonly': [('code','!=','outgoing')]}"/>
<field name="hide_qty_to_receive" attrs="{'readonly': [('code','!=','incoming')]}"/>
</tree>
</field>
</record>
<record id="ventor_stock_picking_form" model="ir.ui.view">
<field name="name">Operation Types</field>
<field name="model">stock.picking.type</field>
<field name="inherit_id" ref="stock.view_picking_type_form"/>
<field name="arch" type="xml">
<xpath expr="//group[@name='stock_picking_type_lot']" position="before">
<group string="Ventor Configuration" colspan="12">
<group>
<field name="confirm_source_location"/>
<field name="change_source_location"
attrs="{'readonly':[('confirm_source_location','!=',True)]}"/>
<field name="confirm_product"/>
<field name="show_next_product"/>
<field name="confirm_destination_location"/>
<field name="change_destination_location"/>
<field name="scan_destination_location_once"/>
<field name="apply_quantity_automatically"
attrs="{'readonly':[('confirm_destination_location','!=',True)]}"/>
<field name="is_package_tracking_enabled" invisible='1'/>
<field name="manage_packages" attrs="{'invisible': [('is_package_tracking_enabled','=',False)]}"/>
<field name="allow_creating_new_packages"
attrs="{'invisible': ['|', ('is_package_tracking_enabled','=',False), ('manage_packages','=',False)],
'readonly': ['|', ('is_package_tracking_enabled','=',False), ('manage_packages','=',False)]}"/>
<field name="confirm_source_package"
attrs="{'invisible': ['|', ('is_package_tracking_enabled','=',False), ('manage_packages','=',False)],
'readonly': ['|', ('is_package_tracking_enabled','=',False), ('manage_packages','=',False)]}"/>
<field name="scan_destination_package"
attrs="{'invisible': ['|', ('is_package_tracking_enabled','=',False), ('manage_packages','=',False)],
'readonly': ['|', ('is_package_tracking_enabled','=',False), ('manage_packages','=',False)]}"/>
<field name="is_consignment_enabled" invisible='1'/>
<field name="manage_product_owner" attrs="{'invisible': [('is_consignment_enabled','=',False)]}"/>
</group>
<group>
<field name="is_stock_production_lot_enabled" invisible='1'/>
<field name="apply_default_lots" attrs="{'invisible': [('is_stock_production_lot_enabled','=',False)]}"/>
<field name="transfer_more_items"/>
<field name="autocomplete_the_item_quantity_field"/>
<field name="behavior_on_backorder_creation"/>
<field name="behavior_on_split_operation" required="1"/>
<field name="show_print_attachment_button"/>
<field name="show_put_in_pack_button" attrs="{'invisible': [('is_package_tracking_enabled','=',False)]}"/>
<field name="check_shipping_information" attrs="{'invisible': [('code','!=','outgoing')]}"/>
<field name="hide_qty_to_receive" attrs="{'invisible': [('code','!=','incoming')]}"/>
</group>
</group>
</xpath>
</field>
</record>
<!-- Actions-->
<record id='ventor_stock_picking_action' model='ir.actions.act_window'>
<field name="name">Warehouse Operations</field>
<field name="res_model">stock.picking.type</field>
<field name="view_mode">tree,form</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_stock_picking_view"/>
</record>
<record id="ventor_configs_action" model="ir.actions.act_window">
<field name="name">Configuration</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.config.settings</field>
<field name="view_mode">form</field>
<field name="target">inline</field>
<field name="context">{'module' : 'ventor_base'}</field>
</record>
<!-- Menus -->
<menuitem name="Ventor Configuration"
id="ventor_app_base_menu"
web_icon="ventor_base,static/description/icon.png"
groups="merp_manage_ventor_configuration_app"/>
<menuitem id="ventor_app_settings"
name="Settings"
parent="ventor_app_base_menu"
action="ventor_configs_action"/>
<menuitem name="Global Ventor Settings"
id="ventor_settings_app_menu"
parent="ventor_app_base_menu"/>
<menuitem name="Warehouse Operations"
id="ventor_wh_operations_app_menu"
parent="ventor_settings_app_menu"
action="ventor_stock_picking_action"/>
<menuitem name="User Settings"
id="ventor_app_user_settings_menu"
parent="ventor_app_base_menu"
action="base.action_res_users"/>
</data>
</odoo>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_stock_quant_tree_inherit_inventory_editable" model="ir.ui.view">
<field name="name">view.stock.quant.tree.inherit.inventory.editable</field>
<field name="model">stock.quant</field>
<field name="inherit_id" ref="stock.view_stock_quant_tree_inventory_editable"/>
<field name="arch" type="xml">
<xpath expr="//button[@name='action_apply_inventory']" position="attributes">
<attribute name="groups">ventor_base.merp_user_validate_inventory_adjustment</attribute>
</xpath>
</field>
</record>
</odoo>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="view_warehouse" model="ir.ui.view">
<field name="name">stock.warehouse</field>
<field name="model">stock.warehouse</field>
<field name="inherit_id" ref="stock.view_warehouse"/>
<field name="arch" type="xml">
<field name="code" position="after">
<field name="is_internal"/>
</field>
</field>
</record>
</odoo>

View file

@ -0,0 +1,206 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- Views-->
<record id='ventor_settings_tree_view' model='ir.ui.view'>
<field name="name">Ventor Settings</field>
<field name="model">ventor.option.setting</field>
<field name="priority">1000</field>
<field name="arch" type="xml">
<tree create="false" editable="top">
<field name="name" readonly="1"/>
<field name="technical_name" readonly="1"/>
<field name="settings_dependency" invisible="1"/>
<field name="value" attrs="{'readonly': [('technical_name','=','show_next_product')]}" options="{'no_create': True, 'no_open': True}"/>
<field name="value_type" readonly="1" groups="base.group_no_one"/>
<field name="action_type" readonly="1" groups="base.group_no_one"/>
<field name="description" readonly="1"/>
</tree>
</field>
</record>
<!-- Actions-->
<record id='ventor_package_management_action' model='ir.actions.act_window'>
<field name="name">Package Management</field>
<field name="res_model">ventor.option.setting</field>
<field name="view_mode">tree</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_settings_tree_view"/>
<field name="domain">[('action_type', '=', 'package_management')]</field>
</record>
<record id='ventor_batch_picking_action' model='ir.actions.act_window'>
<field name="name">Batch Picking</field>
<field name="res_model">ventor.option.setting</field>
<field name="view_mode">tree</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_settings_tree_view"/>
<field name="domain">[('action_type', '=', 'batch_picking'), ('technical_name', '!=', 'show_next_product')]</field>
</record>
<record id='ventor_wave_picking_action' model='ir.actions.act_window'>
<field name="name">Wave Picking</field>
<field name="res_model">ventor.option.setting</field>
<field name="view_mode">tree</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_settings_tree_view"/>
<field name="domain">[('action_type', '=', 'wave_picking'), ('technical_name', '!=', 'show_next_product')]</field>
</record>
<record id='ventor_cluster_picking_action' model='ir.actions.act_window'>
<field name="name">Cluster Picking</field>
<field name="res_model">ventor.option.setting</field>
<field name="view_mode">tree</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_settings_tree_view"/>
<field name="domain">[('action_type', '=', 'cluster_picking'), ('technical_name', '!=', 'show_next_product')]</field>
</record>
<record id='ventor_internal_transfers_action' model='ir.actions.act_window'>
<field name="name">Internal Transfers</field>
<field name="res_model">ventor.option.setting</field>
<field name="view_mode">tree</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_settings_tree_view"/>
<field name="domain">[('action_type', '=', 'internal_transfers')]</field>
</record>
<record id='ventor_putaway_action' model='ir.actions.act_window'>
<field name="name">Putaway</field>
<field name="res_model">ventor.option.setting</field>
<field name="view_mode">tree</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_settings_tree_view"/>
<field name="domain">[('action_type', '=', 'putaway')]</field>
</record>
<record id='ventor_inventory_adjustments_action' model='ir.actions.act_window'>
<field name="name">Inventory Adjustments</field>
<field name="res_model">ventor.option.setting</field>
<field name="view_mode">tree</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_settings_tree_view"/>
<field name="domain">[('action_type', '=', 'inventory_adjustments')]</field>
</record>
<record id='ventor_instant_inventory_action' model='ir.actions.act_window'>
<field name="name">Instant Inventory</field>
<field name="res_model">ventor.option.setting</field>
<field name="view_mode">tree</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_settings_tree_view"/>
<field name="domain">[('action_type', '=', 'instant_inventory')]</field>
</record>
<record id='ventor_quick_info_action' model='ir.actions.act_window'>
<field name="name">Quick info</field>
<field name="res_model">ventor.option.setting</field>
<field name="view_mode">tree</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_settings_tree_view"/>
<field name="domain">[('action_type', '=', 'quick_info')]</field>
</record>
<record id='ventor_scrap_management_action' model='ir.actions.act_window'>
<field name="name">Scrap Management</field>
<field name="res_model">ventor.option.setting</field>
<field name="view_mode">tree</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_settings_tree_view"/>
<field name="domain">[('action_type', '=', 'scrap_management')]</field>
</record>
<record id='ventor_create_so_action' model='ir.actions.act_window'>
<field name="name">Create SO</field>
<field name="res_model">ventor.option.setting</field>
<field name="view_mode">tree</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_settings_tree_view"/>
<field name="domain">[('action_type', '=', 'create_so')]</field>
</record>
<record id='ventor_create_po_action' model='ir.actions.act_window'>
<field name="name">Create PO</field>
<field name="res_model">ventor.option.setting</field>
<field name="view_mode">tree</field>
<field name="usage">menu</field>
<field name="view_id" ref="ventor_settings_tree_view"/>
<field name="domain">[('action_type', '=', 'create_po')]</field>
</record>
<!-- Menus -->
<menuitem name="Package Management"
id="ventor_package_management_app_menu"
parent="ventor_base.ventor_settings_app_menu"
action="ventor_package_management_action"
sequence="1"/>
<menuitem name="Batch Picking"
id="ventor_batch_picking_app_menu"
parent="ventor_base.ventor_settings_app_menu"
action="ventor_batch_picking_action"
sequence="2"/>
<menuitem name="Wave Picking"
id="ventor_wave_picking_app_menu"
parent="ventor_base.ventor_settings_app_menu"
action="ventor_wave_picking_action"
groups="stock.group_stock_picking_wave"
sequence="3"/>
<menuitem name="Cluster Picking"
id="ventor_cluster_picking_app_menu"
parent="ventor_base.ventor_settings_app_menu"
action="ventor_cluster_picking_action"
sequence="4"/>
<menuitem name="Internal Transfers"
id="ventor_internal_transfers_app_menu"
parent="ventor_base.ventor_settings_app_menu"
action="ventor_internal_transfers_action"
sequence="5"/>
<menuitem name="Putaway"
id="ventor_putaway_app_menu"
parent="ventor_base.ventor_settings_app_menu"
action="ventor_putaway_action"
sequence="6"/>
<menuitem name="Inventory Adjustments"
id="ventor_inventory_adjustments_app_menu"
parent="ventor_base.ventor_settings_app_menu"
action="ventor_inventory_adjustments_action"
sequence="7"/>
<menuitem name="Instant Inventory"
id="ventor_instant_inventory_app_menu"
parent="ventor_base.ventor_settings_app_menu"
action="ventor_instant_inventory_action"
sequence="8"/>
<menuitem name="Quick info"
id="ventor_quick_info_app_menu"
parent="ventor_base.ventor_settings_app_menu"
action="ventor_quick_info_action"
sequence="9"/>
<menuitem name="Scrap Management"
id="ventor_scrap_management_app_menu"
parent="ventor_base.ventor_settings_app_menu"
action="ventor_scrap_management_action"
sequence="10"/>
<menuitem name="Create SO"
id="ventor_create_so_app_menu"
parent="ventor_base.ventor_settings_app_menu"
action="ventor_create_so_action"
sequence="11"/>
<menuitem name="Create PO"
id="ventor_create_po_app_menu"
parent="ventor_base.ventor_settings_app_menu"
action="ventor_create_po_action"
sequence="12"/>
</data>
</odoo>