[NEW] Addons creation - product_rental_bookings
This commit is contained in:
24
product_rental_bookings/views/account_invoice_view.xml
Executable file
24
product_rental_bookings/views/account_invoice_view.xml
Executable file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="inherit_account_move_form">
|
||||
<field name="name">Account Move Inherit</field>
|
||||
<field name="inherit_id" ref="account.view_move_form"/>
|
||||
<field name="model">account.move</field>
|
||||
<field name="arch" type="xml">
|
||||
<field name="team_id" position="after">
|
||||
<field name="contract_id" invisible="1"/>
|
||||
<field name="is_hours" invisible="1"/>
|
||||
<field name="is_days" invisible="1"/>
|
||||
</field>
|
||||
<xpath expr="//page/field[@name='invoice_line_ids']/tree/field[@name='quantity']"
|
||||
position="before">
|
||||
<field name="enter_hour" attrs="{'column_invisible':[('parent.is_hours', '=', False)]}"/>
|
||||
<field name="enter_days" attrs="{'column_invisible':[('parent.is_days', '=', False)]}"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
24
product_rental_bookings/views/assets.xml
Normal file
24
product_rental_bookings/views/assets.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<template id="assets_backend" name="rental_delivery_sign assets" inherit_id="web.assets_backend">
|
||||
<xpath expr="." position="inside">
|
||||
<script type="text/javascript" src="/product_rental_bookings/static/src/js/fabric.min.js" />
|
||||
<script type="text/javascript" src="/product_rental_bookings/static/src/js/product_contract_sign.js" />
|
||||
<link rel="stylesheet" href="/product_rental_bookings/static/src/css/backend.css" id="pos-stylesheet" />
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="fullcalender_assests_backend" name="rental_fullcalender" inherit_id="web.assets_backend">
|
||||
<xpath expr="." position="inside">
|
||||
<link rel="stylesheet" href="/product_rental_bookings/static/src/css/fullcalendar.css" />
|
||||
<link rel="stylesheet" href="/product_rental_bookings/static/src/css/scheduler.css" />
|
||||
<link rel="stylesheet" href="/product_rental_bookings/static/src/css/scheduler.min.css" />
|
||||
|
||||
<script type="text/javascript" src="/product_rental_bookings/static/src/js/lib/fullcalendar.js" />
|
||||
<script type="text/javascript" src="/product_rental_bookings/static/src/js/lib/scheduler.js" />
|
||||
<script type="text/javascript" src="/product_rental_bookings/static/src/js/product_booking_calender.js" />
|
||||
</xpath>
|
||||
</template>
|
||||
</data>
|
||||
</odoo>
|
56
product_rental_bookings/views/menus.xml
Normal file
56
product_rental_bookings/views/menus.xml
Normal file
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- ROOT -->
|
||||
|
||||
<menuitem id="rental_product_main_menu" name="Rental" web_icon="product_rental_bookings/static/description/book_product.png/" />
|
||||
|
||||
<!-- QUICK SEARCH -->
|
||||
|
||||
<menuitem id="feet_product_quick_booking_menu" name="Quick Search" parent="rental_product_main_menu" sequence="0" action="action_product_quick_product_booking" />
|
||||
|
||||
<!-- PRODUCTS -->
|
||||
|
||||
<menuitem id="product_product_product" name="Product" parent="rental_product_main_menu" sequence="1" action="product.product_normal_action_sell" />
|
||||
|
||||
<!-- BOOKING -->
|
||||
|
||||
<menuitem id="rental_product_booking_menu" name="Rental" parent="rental_product_main_menu" sequence="2" />
|
||||
|
||||
<menuitem id="product_order_menu" name="Rental Orders" parent="rental_product_booking_menu" sequence="0" action="action_product_order_id" />
|
||||
|
||||
<menuitem id="feet_product_contract_sub_menu" name="Rental Contracts" parent="rental_product_booking_menu" sequence="1" action="action_rental_product_contract" />
|
||||
|
||||
<menuitem id="feet_product_calender_booking_menu" name="Rental Bookings" parent="rental_product_booking_menu" sequence="2" action="action_product_calender_product_booking1" />
|
||||
|
||||
<menuitem id="feet_product_logs_menu" name="Rental Logs" parent="rental_product_booking_menu" sequence="3" action="action_rental_product_logs" />
|
||||
|
||||
<!-- INVENTORY -->
|
||||
|
||||
<menuitem id="rental_product_inventory_menu" name="Inventory" parent="rental_product_main_menu" sequence="3" />
|
||||
|
||||
<menuitem id="stock_inventory_sub_menu" name="Stock inventory" parent="rental_product_inventory_menu" sequence="1" action="stock.action_view_quants" />
|
||||
|
||||
<!-- ANALYSIS -->
|
||||
|
||||
<menuitem id="rental_product_analysis" name="Analysis" parent="rental_product_main_menu" sequence="5" />
|
||||
|
||||
<menuitem id="product_rental_order_analysis" name="Rental Orders" parent="rental_product_analysis" action="action_rental_order_analysis" sequence="2" />
|
||||
|
||||
<menuitem id="feet_product_logs_analysis" name="Rental Log" parent="rental_product_analysis" action="action_rental_product_logs_analysis" />
|
||||
|
||||
|
||||
<!-- SETTINGS -->
|
||||
|
||||
<menuitem id="product_configuration_menu" name="Configuration" parent="rental_product_main_menu" sequence="10" />
|
||||
|
||||
<menuitem id="rental_product_branch_menu" name="Operation" parent="product_configuration_menu" />
|
||||
|
||||
<menuitem id="menu_operation_type" name="Operations Types" parent="rental_product_branch_menu" action="action_picking_type_list" sequence="4" />
|
||||
|
||||
<menuitem id="rental_menu_configuration" name="Settings" parent="product_configuration_menu" sequence="0" action="rental_config_settings_action" groups="base.group_system" />
|
||||
|
||||
<menuitem id="menu_session_config" name="Session Configuration" parent="product_configuration_menu" action="action_session_config" sequence="4" />
|
||||
|
||||
</data>
|
||||
</odoo>
|
80
product_rental_bookings/views/product_book.xml
Executable file
80
product_rental_bookings/views/product_book.xml
Executable file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="action_product_calender_product_booking1" model="ir.actions.client">
|
||||
<field name="name">Product Rental Booking</field>
|
||||
<field name="tag">resource_view_new</field>
|
||||
</record>
|
||||
|
||||
<record id="product_booking_id" model="ir.ui.view">
|
||||
<field name="name">product booking</field>
|
||||
<field name="model">product.booking</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="product product Booking">
|
||||
<header>
|
||||
<button name="search_product" string="Search" type="object" class="oe_highlight" />
|
||||
<button name="book_product" string="Create" type="object" class="oe_highlight" attrs="{'invisible':[('is_search','=',False)]}" />
|
||||
</header>
|
||||
<sheet>
|
||||
<field name="book_number" invisible="True" />
|
||||
<group col="4">
|
||||
<field name="price_based" />
|
||||
<field name="session_id" attrs="{'invisible':[('price_based','!=','per_session')], 'required':[('price_based','=','per_session')]}" />
|
||||
</group>
|
||||
<group col="4" attrs="{'invisible':[('price_based','!=','per_session')]}">
|
||||
<field name="from_date" required="1" string="Date" />
|
||||
<field name="to_date" invisible="1" />
|
||||
</group>
|
||||
<group col="4" attrs="{'invisible':[('price_based','=','per_session')]}">
|
||||
<field name="from_date" required="1" />
|
||||
<field name="to_date" attrs="{'required':[('price_based','!=','per_session')]}" />
|
||||
</group>
|
||||
<group col="4">
|
||||
<field name="location_id" required="1" domain="[('usage', '=', 'internal')]" />
|
||||
<field name="categ_id" required="1" />
|
||||
<field name="is_search" invisible="1" />
|
||||
</group>
|
||||
<notebook attrs="{'invisible':[('is_search','=',False)]}">
|
||||
<page name="product_details" string="Product Details">
|
||||
<field name="product_line_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="name" />
|
||||
<field name="categ_id" />
|
||||
<field name="currency_id" invisible="1" />
|
||||
<field name="rental_qyt" />
|
||||
<field name="rental_amount" widget="monetary" options="{'currency_field': 'currency_id'}" attrs="{'column_invisible':[('parent.price_based','!=','per_day')]}" />
|
||||
<field name="rental_amount_per_hour" widget="monetary" options="{'currency_field': 'currency_id'}" attrs="{'column_invisible':[('parent.price_based','!=','per_hour')]}" />
|
||||
<field name="rental_amount_per_session" widget="monetary" options="{'currency_field': 'currency_id'}" attrs="{'column_invisible':[('parent.price_based','!=','per_session')]}" />
|
||||
<field name="taxes_id" widget="many2many_tags" />
|
||||
<field name="selected_product" />
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
<group>
|
||||
<group>
|
||||
<group>
|
||||
<field name="total_days" attrs="{'invisible':['|',('is_search','=',False),('price_based', '!=', 'per_day')]}" />
|
||||
<field name="total_hours" widget="float_time" attrs="{'invisible':['|',('is_search','=',False),('price_based', '=', 'per_day')]}" />
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="currency_id" invisible="1" />
|
||||
<field name="extra_charges" widget="monetary" options="{'currency_field': 'currency_id'}" attrs="{'invisible':[('is_search','=',False)]}" />
|
||||
<field name="sub_total" widget="monetary" options="{'currency_field': 'currency_id'}" attrs="{'invisible':[('is_search','=',False)]}" readonly="1" />
|
||||
<field name="total" widget="monetary" options="{'currency_field': 'currency_id'}" attrs="{'invisible':[('is_search','=',False)]}" readonly="1" />
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_product_quick_product_booking" model="ir.actions.act_window">
|
||||
<field name="name">Product booking</field>
|
||||
<field name="res_model">product.booking</field>
|
||||
<field name="view_mode">form</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
191
product_rental_bookings/views/product_contract.xml
Executable file
191
product_rental_bookings/views/product_contract.xml
Executable file
@@ -0,0 +1,191 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
<record id='rental_product_contract_form' model="ir.ui.view">
|
||||
<field name="name">Rental Contracts</field>
|
||||
<field name="model">rental.product.contract</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header>
|
||||
<button name="contract_close" states="open,expired,future" type="object" class="oe_highlight" string="Close Contract" />
|
||||
<button name="send_product_contract" string="Send Contract by Email" type="object" class="oe_highlight" />
|
||||
<button name="contract_open" states="closed" type="object" class="oe_highlight" string="Set
|
||||
Contract In Progress" />
|
||||
<button class="oe_highlight" name="act_renew_contract" type="object" string="Renew
|
||||
Contract" help="Create a new contract automatically with
|
||||
all the same informations except for the date that will
|
||||
start at the end of current contract" attrs="{'invisible':[('state','!=','diesoon')]}" />
|
||||
<button class="oe_highlight" name="create_invoice" type="object" string="Create invoice" attrs="{'invisible':[('first_invoice_created','=',True)]}" />
|
||||
<button name="generate_policy" type="object" string="Generate Policy" invisible="1" />
|
||||
<field name="state" widget="statusbar" />
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<field name="name" placeholder="New" />
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group col="2">
|
||||
<field name="currency_id" invisible="1" />
|
||||
<field name="partner_id" invisible="1" />
|
||||
<field name="origin" string="Source Document" invisible="1" />
|
||||
<field name="company_id" readonly="1" />
|
||||
<field name="rental_id" invisible="1" />
|
||||
<field name="picking_id" invisible="1" />
|
||||
<field name="is_hours" invisible="1" />
|
||||
<field name="is_days" invisible="1" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="contract_date" readonly="1" />
|
||||
<field name="from_date" required="1" readonly="1" />
|
||||
<field name="to_date" required="1" readonly="1" />
|
||||
<field name="cost" invisible="1" />
|
||||
<field name="account_type" invisible="1" />
|
||||
<label for="cost_generated" invisible="1" />
|
||||
<div>
|
||||
<field name="cost_frequency" class="oe_inline" invisible="1" />
|
||||
<field name="cost_generated" style="width:142px;" invisible="1" />
|
||||
</div>
|
||||
</group>
|
||||
<group col="2">
|
||||
<separator string="Payment Details" />
|
||||
<field name="account_payment_term" readonly="1" />
|
||||
<field name="first_invoice_created" invisible="1" />
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Product Details" name="product_details">
|
||||
<group>
|
||||
<field name="attachment_ids" widget="many2many_binary" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="product_contract_lines_ids" nolabel="1">
|
||||
<tree editable="bottom">
|
||||
<field name="product_id" string="Product" domain="[('is_rental', '=', True)]" />
|
||||
<field name="description" />
|
||||
<field name="currency_id" invisible="1" />
|
||||
<field name="price_based" />
|
||||
<field name="enter_days" attrs="{'column_invisible':[('parent.is_days', '=', False)],
|
||||
'invisible': [('price_based', '=', 'per_hour')]}" />
|
||||
<field name="enter_hour" attrs="{'column_invisible':[('parent.is_hours', '=', False)],
|
||||
'invisible': [('price_based', '=', 'per_day')]}" />
|
||||
<field name="qty_needed" />
|
||||
<field name="price" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
<field name="tax_id" widget="many2many_tags" />
|
||||
<field name="sub_total" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
<field name="product_contract_id" invisible="1" />
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Recurring Invoice">
|
||||
<field name="recurring_line" mode="tree" sum="recurring_amount">
|
||||
<tree string="product Reccurring Lines" colors="#0b7a35:payment_info=='paid';#f20b07:payment_info!='paid'">
|
||||
<field name="date_today" />
|
||||
<field name="payment_info" />
|
||||
<field name="recurring_amount" sum="recurring_amount" />
|
||||
</tree>
|
||||
</field>
|
||||
<field name="sum_cost" invisible="1" />
|
||||
</page>
|
||||
<page string="Document">
|
||||
<field name="document_ids" nolabel="1">
|
||||
<tree editable="bottom">
|
||||
<field name="name" />
|
||||
<field name="id_number" />
|
||||
<field name="contract_id" invisible="1" />
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Cancellation Policy">
|
||||
<group>
|
||||
<field name="number_of_slot" required="True" />
|
||||
</group>
|
||||
<field name="cancel_policy_ids" mode="tree">
|
||||
<tree string="Cancellation Policy" editable="bottom" create="false" delete="false">
|
||||
<field name="contract_id" invisible="1" />
|
||||
<field name="from_date" />
|
||||
<field name="to_date" />
|
||||
<field name="policy_charged" />
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
<group>
|
||||
<group>
|
||||
<label for="first_payment" />
|
||||
<field name="first_payment" nolabel="1" widget='monetary' />
|
||||
</group>
|
||||
<group class="oe_subtotal_footer oe_right" colspan="2" name="sale_total">
|
||||
<label for="untaxed_amount" />
|
||||
<field name="untaxed_amount" nolabel="1" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
<label for="taxes" />
|
||||
<field name="taxes" nolabel="1" widget='monetary' />
|
||||
<label for="extra_charges" />
|
||||
<field name="extra_charges" readonly="1" nolabel="1" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
<div class="oe_subtotal_footer_separator oe_inline o_td_label">
|
||||
<label for="total_amount" />
|
||||
</div>
|
||||
<field name="total_amount" nolabel="1" class="oe_subtotal_footer_separator" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="terms_condition" />
|
||||
|
||||
</group>
|
||||
<group col="4">
|
||||
<label for="signature_contractor" />
|
||||
<div>
|
||||
<field name="signature_contractor" widget="image" options="{'size': [90, 35]}" />
|
||||
<button name="signature_contractor" string="Contractor Signature" class="oe_highlight" />
|
||||
</div>
|
||||
<label for="signature_customer" />
|
||||
<div>
|
||||
<field name="signature_customer" widget="image" options="{'size': [90, 35]}" />
|
||||
<button name="signature_customer" string="Customer Signature" class="oe_highlight" />
|
||||
</div>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id='rental_product_contract_tree' model='ir.ui.view'>
|
||||
<field name="name">Rental Contracts</field>
|
||||
<field name="model">rental.product.contract</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="partner_id" />
|
||||
<field name="from_date" />
|
||||
<field name="to_date" />
|
||||
<field name="state" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id='action_rental_product_contract' model='ir.actions.act_window'>
|
||||
<field name="name">Rental Contracts</field>
|
||||
<field name="res_model">rental.product.contract</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class='oe_view_nocontent_create'>Click to add Products Contract</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id='action_rental_product_contract_form' model='ir.actions.act_window'>
|
||||
<field name="name">Rental Contracts</field>
|
||||
<field name="res_model">rental.product.contract</field>
|
||||
<field name="view_mode">form,tree</field>
|
||||
<field name="help" type="html">
|
||||
<p class='oe_view_nocontent_create'>Click to add Products Contract</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_rental_contract_view_tree" model="ir.actions.act_window">
|
||||
<field name="name">Contract</field>
|
||||
<field name="res_model">rental.product.contract</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="rental_product_contract_tree" />
|
||||
<field name="domain">[('state', 'not in', ['futur', 'closed'])]</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
80
product_rental_bookings/views/product_move.xml
Executable file
80
product_rental_bookings/views/product_move.xml
Executable file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="rental_product_logs_form_id" model="ir.ui.view">
|
||||
<field name="name">Product Logs</field>
|
||||
<field name="model">rental.product.logs</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="product_id" />
|
||||
<field name="customer_id" />
|
||||
<field name="from_date" />
|
||||
<field name="to_date" />
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="rental_product_logs_tree_id" model="ir.ui.view">
|
||||
<field name="name">Product Logs</field>
|
||||
<field name="model">rental.product.logs</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="product_id" />
|
||||
<field name="customer_id" />
|
||||
<field name="from_date" />
|
||||
<field name="to_date" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_product_logs_pivot">
|
||||
<field name="name">Products Logs</field>
|
||||
<field name="model">rental.product.logs</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot string="product Logs">
|
||||
<field name="product_id" type="row" />
|
||||
<field name="from_date" type="col" />
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_product_logs_graph">
|
||||
<field name="name">Products Logs</field>
|
||||
<field name="model">rental.product.logs</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="product Logs">
|
||||
<field name="product_id" type="row" />
|
||||
<field name="from_date" type="col" />
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_rental_product_logs" model="ir.actions.act_window">
|
||||
<field name="name">Rental Logs</field>
|
||||
<field name="res_model">rental.product.logs</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<record id="action_rental_product_logs_analysis" model="ir.actions.act_window">
|
||||
<field name="name">product Logs</field>
|
||||
<field name="res_model">rental.product.logs</field>
|
||||
<field name="view_mode">graph,pivot</field>
|
||||
</record>
|
||||
|
||||
<record id="action_rental_product_move" model="ir.actions.act_window">
|
||||
<field name="name">Rental Move</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{'search_default_undone': 1}</field>
|
||||
<field name="domain">[('is_rental', '=', True)]</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
134
product_rental_bookings/views/product_operation.xml
Executable file
134
product_rental_bookings/views/product_operation.xml
Executable file
@@ -0,0 +1,134 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="rental_product_operation_form_id" model="ir.ui.view">
|
||||
<field name="name">Operation Type</field>
|
||||
<field name="model">rental.product.operation</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label class="oe_edit_only" for="name" string="Operation Type Name" />
|
||||
<h1>
|
||||
<field name="name" />
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="rental_move_type" />
|
||||
<field name="location_id" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="source_location" />
|
||||
<field name="destination_location" />
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="rental_product_type_kanban" model="ir.ui.view">
|
||||
<field name="name">rental.product.operation.kanban</field>
|
||||
<field name="model">rental.product.operation</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban class="oe_background_grey o_kanban_dashboard o_emphasize_colors o_stock_kanban" create="0">
|
||||
<field name="color" />
|
||||
<field name="rental_move_type" />
|
||||
<field name="state" />
|
||||
<field name="count_operation_ready" />
|
||||
<field name="count_operation_on_rent" />
|
||||
<field name="count_operation_service" />
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="#{kanban_color(record.color.raw_value)}">
|
||||
<div>
|
||||
<div t-attf-class="o_kanban_card_header">
|
||||
<div class="o_kanban_card_header_title">
|
||||
<div class="o_primary">
|
||||
<field name="name" />
|
||||
</div>
|
||||
<div class="o_secondary">
|
||||
<field class="o_secondary" name="location_id" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_kanban_manage_button_section">
|
||||
<a class="o_kanban_manage_toggle_button" href="#">
|
||||
<i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container o_kanban_card_content">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 o_kanban_primary_left" style="margin-left: 16px;">
|
||||
<button class="btn btn-primary" name="get_action_operation" type="object">
|
||||
<span t-if="record.rental_move_type.raw_value =='outgoing'">
|
||||
<t t-esc="record.count_operation_ready.value" />
|
||||
Deliveries of Product
|
||||
</span>
|
||||
<span t-if="record.rental_move_type.raw_value =='incoming'">
|
||||
<t t-esc="record.count_operation_on_rent.value" />
|
||||
Incoming Products
|
||||
</span>
|
||||
<span t-if="record.rental_move_type.raw_value =='internal'">
|
||||
<t t-esc="record.count_operation_service.value" />
|
||||
Internal Moves
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container o_kanban_card_manage_pane dropdown-menu" role="menu">
|
||||
<div t-if="widget.editable" class="o_kanban_card_manage_settings row">
|
||||
<div class="col-xs-8">
|
||||
<ul class="oe_kanban_colorpicker" data-field="color" />
|
||||
</div>
|
||||
<div class="col-xs-4 text-right">
|
||||
<a type="edit">Settings</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="rental_product_operation_tree_id" model="ir.ui.view">
|
||||
<field name="name">Operation type</field>
|
||||
<field name="model">rental.product.operation</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name" />
|
||||
<field name="location_id" />
|
||||
<field name="rental_move_type" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_picking_type_list" model="ir.actions.act_window">
|
||||
<field name="name">Operation Type</field>
|
||||
<field name="res_model">rental.product.operation</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">Click to define a new transfer.</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_product_operation_type" model="ir.actions.act_window">
|
||||
<field name="name">Operation Type</field>
|
||||
<field name="res_model">rental.product.operation</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_mode">kanban,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">Click to create a new operation type.</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
195
product_rental_bookings/views/product_order.xml
Executable file
195
product_rental_bookings/views/product_order.xml
Executable file
@@ -0,0 +1,195 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="rental_product_order_search" model="ir.ui.view">
|
||||
<field name="name">Rental Order</field>
|
||||
<field name="model">rental.product.order</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="res_number" filter_domain="[('res_number','ilike',self)]" string="Order Number" />
|
||||
<field name="customer_name" filter_domain="[('customer_name','ilike',self)]" string="Customer" />
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="rental_product_order_form_id" model="ir.ui.view">
|
||||
<field name="name">Rental Order</field>
|
||||
<field name="model">rental.product.order</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="product Order">
|
||||
<header>
|
||||
<field name="state" widget="statusbar" />
|
||||
<button name="send_product_quote" string="Send by Email" type="object" class="oe_highlight" />
|
||||
<button name="confirm" string="Confirm" type="object" class="oe_highlight" states="book,draft" />
|
||||
<button name="cancel" string="Cancel" type="object" class="oe_highlight" attrs="{'invisible': [('state', 'in', ('cancel', 'close'))]}" />
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button type="object" class="oe_stat_button" icon="fa-truck" name="action_view_stock_pickings" invisible="1">
|
||||
<div class="o_form_field o_stat_info">
|
||||
<span class="o_stat_value">
|
||||
<field name="picking_count" />
|
||||
</span>
|
||||
<span class="o_stat_text">Move</span>
|
||||
</div>
|
||||
</button>
|
||||
<button type="object" class="oe_stat_button" icon="fa-pencil-square-o" name="action_view_order_invoices" attrs="{'invisible': [('invoice_count','=',0)]}">
|
||||
<div class="o_form_field o_stat_info">
|
||||
<span class="o_stat_value">
|
||||
<field name="invoice_count" />
|
||||
</span>
|
||||
<span class="o_stat_text">Invoiced</span>
|
||||
</div>
|
||||
</button>
|
||||
<button type="object" class="oe_stat_button" icon="fa-book" name="action_view_order_contract" attrs="{'invisible': [('contract_count','=',0)]}">
|
||||
<div class="o_form_field o_stat_info">
|
||||
<span class="o_stat_value">
|
||||
<field name="contract_count" />
|
||||
</span>
|
||||
<span class="o_stat_text">Contract</span>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<field name="res_number" placeholder="New" />
|
||||
</h1>
|
||||
</div>
|
||||
<group col="4">
|
||||
<field name="customer_name" required="1" />
|
||||
<field name="book_date" />
|
||||
<field name="from_date" required="1" readonly="1" />
|
||||
<field name="to_date" required="1" readonly="1" />
|
||||
<field name="start_date" invisible="1" />
|
||||
<field name="end_date" invisible="1" />
|
||||
<field name="is_agreement" invisible="1" />
|
||||
<field name="account_payment_term" />
|
||||
<field name="location_id" invisible="1" />
|
||||
<field name="company_id" invisible="1" />
|
||||
<field name="count" invisible="1" />
|
||||
<field name="is_true" invisible="1" />
|
||||
<field name="pricelist_id" invisible="1" />
|
||||
<field name="return_date" invisible="1" />
|
||||
<field name="currency_id" invisible="1" />
|
||||
<field name="is_hours" invisible="1" />
|
||||
<field name="is_days" invisible="1" />
|
||||
</group>
|
||||
<group>
|
||||
<group col="2"></group>
|
||||
<group col="2"></group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page name="rental_order" string="Rental Order">
|
||||
<field name="product_order_lines_ids" readonly="1">
|
||||
<tree editable="bottom">
|
||||
<field name="product_id" string="Product" context="{'from_date':parent.from_date, 'to_date':parent.to_date, 'from_product_order': True}" domain="[('is_rental', '=', True)]" />
|
||||
<field name="name" />
|
||||
<field name="product_order_id" invisible="1" />
|
||||
<field name="price_based" />
|
||||
<field name="enter_days" attrs="{'column_invisible':[('parent.is_days', '=', False)],'invisible': [('price_based', '=', 'per_hour')]}" />
|
||||
<field name="enter_hour" attrs="{'column_invisible':[('parent.is_hours', '=', False)],'invisible': [('price_based', '=', 'per_day')]}" />
|
||||
<field name="qty_needed" />
|
||||
<field name="currency_id" invisible="1" />
|
||||
<field name="price" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
<field name="tax_id" widget="many2many_tags" />
|
||||
<field name="sub_total" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
</tree>
|
||||
</field>
|
||||
<group class="oe_subtotal_footer oe_right" colspan="2" name="sale_total">
|
||||
<label for="untaxed_amount" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
<field name="untaxed_amount" nolabel="1" widget='monetary' />
|
||||
<label for="taxes" />
|
||||
<field name="taxes" nolabel="1" widget='monetary' />
|
||||
<label for="extra_charges" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
<field name="extra_charges" nolabel="1" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
<div class="oe_subtotal_footer_separator oe_inline o_td_label">
|
||||
<label for="total_amount" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
</div>
|
||||
<field name="total_amount" nolabel="1" class="oe_subtotal_footer_separator" widget='monetary' />
|
||||
</group>
|
||||
<group>
|
||||
<field name="terms_condition" />
|
||||
</group>
|
||||
</page>
|
||||
<page name="other_info" string="Other Information">
|
||||
<group>
|
||||
<group>
|
||||
<field name="user_id" />
|
||||
<field name="invoice_status" />
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="rental_product_driver_schedule" model="ir.ui.view">
|
||||
<field name="name">Rental Order</field>
|
||||
<field name="model">rental.product.order</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree decoration-muted="state=='cancel'" decoration-info="state=='draft'" decoration-success="state=='confirm'">
|
||||
<field name="customer_name" />
|
||||
<field name="res_number" />
|
||||
<field name="from_date" />
|
||||
<field name="to_date" />
|
||||
<field name="state" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_product_rental_order_pivot">
|
||||
<field name="name">rental.order.pivot</field>
|
||||
<field name="model">rental.product.order</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot string="Rental Orders">
|
||||
<field name="customer_name" type="row" />
|
||||
<field name="count" interval="month" type="col" />
|
||||
<field name="total_amount" type="measure" />
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_product_rental_order_graph">
|
||||
<field name="name">rental.order.graph</field>
|
||||
<field name="model">rental.product.order</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Rental Orders">
|
||||
<field name="customer_name" type="row" />
|
||||
<field name="total_amount" type="col" />
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_product_order_id" model="ir.actions.act_window">
|
||||
<field name="name">Rental Order</field>
|
||||
<field name="res_model">rental.product.order</field>
|
||||
<field name="view_mode">tree,form,calendar</field>
|
||||
<field name="context">{'search_default_undone': 1}</field>
|
||||
</record>
|
||||
|
||||
<record id="action_product_order_id_new" model="ir.actions.act_window">
|
||||
<field name="name">Rental Order</field>
|
||||
<field name="res_model">rental.product.order</field>
|
||||
<field name="view_mode">form,tree</field>
|
||||
</record>
|
||||
|
||||
<record id="action_rental_order_analysis" model="ir.actions.act_window">
|
||||
<field name="name">Rental Order</field>
|
||||
<field name="res_model">rental.product.order</field>
|
||||
<field name="view_mode">graph,pivot</field>
|
||||
</record>
|
||||
|
||||
<record id="product_booking_calendar" model="ir.ui.view">
|
||||
<field name="name">Rental order</field>
|
||||
<field name="model">rental.product.order</field>
|
||||
<field name="arch" type="xml">
|
||||
<calendar string="product" date_start="from_date" date_stop="to_date" event_open_popup="true" quick_add="false" form_view_id="%(product_rental_bookings.action_product_order_id)s" event_limit="3" color="customer_name" mode="month">
|
||||
<field name="customer_name" />
|
||||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
25
product_rental_bookings/views/product_view.xml
Executable file
25
product_rental_bookings/views/product_view.xml
Executable file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="product_normal_form_view_inherit" model="ir.ui.view">
|
||||
<field name="name">Product Variant</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='purchase_ok']/parent::div" position="after">
|
||||
<div>
|
||||
<field name="is_rental" />
|
||||
<label for="is_rental" />
|
||||
</div>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='uom_po_id']" position="after">
|
||||
<field name="rental_amount" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
<field name="rental_amount_per_hour" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
<field name="rental_amount_per_session" widget="monetary" options="{'currency_field': 'currency_id'}" />
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
60
product_rental_bookings/views/res_config_settings_view.xml
Executable file
60
product_rental_bookings/views/res_config_settings_view.xml
Executable file
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<record id="rental_res_config_settings_form_inherit" model="ir.ui.view">
|
||||
<field name="name">res.config.settings.from</field>
|
||||
<field name="model">res.config.settings</field>
|
||||
<field name="inherit_id" ref="website.res_config_settings_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[hasclass('settings')]" position="inside">
|
||||
<div class="app_settings_block" data-string="Rental" string="Rental" data-key="product_rental_bookings">
|
||||
<h2>Rental Configuration</h2>
|
||||
<div class="row o_settings_container mt16">
|
||||
<div class="col-xs-12 col-md-6 o_setting_box">
|
||||
<div class="o_setting_right_pane">
|
||||
<div class="content-group">
|
||||
<div class="row mt16">
|
||||
<label for="enabled_day_rent" class="col-md-3 o_light_label" style="font-weight:bold;" />
|
||||
<field name="enabled_day_rent" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6 o_setting_box">
|
||||
<div class="o_setting_right_pane">
|
||||
<div class="content-group">
|
||||
<div class="row mt16">
|
||||
<label for="enabled_hour_rent" class="col-md-3 o_light_label" style="font-weight:bold;" />
|
||||
<field name="enabled_hour_rent" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6 o_setting_box">
|
||||
<div class="o_setting_right_pane">
|
||||
<div class="content-group">
|
||||
<div class="row mt16">
|
||||
<label for="enabled_session_rent" class="col-md-3 o_light_label" style="font-weight:bold;" />
|
||||
<field name="enabled_session_rent" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="rental_config_settings_action" model="ir.actions.act_window">
|
||||
<field name="name">Settings</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' : 'product_rental_bookings', 'bin_size': False}</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
39
product_rental_bookings/views/sales_config_view.xml
Executable file
39
product_rental_bookings/views/sales_config_view.xml
Executable file
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<record id="rental_view_order_form" model="ir.ui.view">
|
||||
<field name="name">sale.order.form</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="partner_id" position="after">
|
||||
<field name="signature" widget="image" options="{'always_reload': True, 'size': [90, 90]}" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<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[@class='app_settings_block']" position="inside">
|
||||
<h2>Signature</h2>
|
||||
<div class="row mt16 o_settings_container">
|
||||
<div class="col-xs-12 col-md-6 o_setting_box">
|
||||
<div class="o_setting_left_pane">
|
||||
<field name="signature" />
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="signature" />
|
||||
<div class="text-muted">
|
||||
Required signature before confirm sale order.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
49
product_rental_bookings/views/sequence.xml
Executable file
49
product_rental_bookings/views/sequence.xml
Executable file
@@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<record id="sequence_product_information" model="ir.sequence">
|
||||
<field name="name">product Contract</field>
|
||||
<field name="code">product_contract</field>
|
||||
<field name="prefix">L</field>
|
||||
<field name="padding">3</field>
|
||||
<field name="suffix">/%(month)s/%(day)s</field>
|
||||
<field name="company_id" eval="False" />
|
||||
</record>
|
||||
|
||||
<record id="sequence_product_registration" model="ir.sequence">
|
||||
<field name="name">product Registration</field>
|
||||
<field name="code">product_registration</field>
|
||||
<field name="prefix">REG</field>
|
||||
<field name="padding">3</field>
|
||||
<field name="suffix">/%(month)s/%(day)s</field>
|
||||
<field name="company_id" eval="False" />
|
||||
</record>
|
||||
|
||||
<record id="sequence_product_move" model="ir.sequence">
|
||||
<field name="name">product Move</field>
|
||||
<field name="code">product_move</field>
|
||||
<field name="prefix">PM</field>
|
||||
<field name="padding">3</field>
|
||||
<field name="suffix">/%(month)s/%(day)s</field>
|
||||
<field name="company_id" eval="False" />
|
||||
</record>
|
||||
|
||||
<record id="sequence_quick_search" model="ir.sequence">
|
||||
<field name="name">product Search</field>
|
||||
<field name="code">product_booking</field>
|
||||
<field name="prefix">QS</field>
|
||||
<field name="padding">3</field>
|
||||
<field name="suffix">%(day)s</field>
|
||||
<field name="company_id" eval="False" />
|
||||
</record>
|
||||
|
||||
<record id="sequence_calender_record" model="ir.sequence">
|
||||
<field name="name">Full Calender</field>
|
||||
<field name="code">virtual_</field>
|
||||
<field name="padding">3</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<odoo>
|
||||
<data>
|
||||
<record id='session_config_form' model="ir.ui.view">
|
||||
<field name="name">Session Configuration Form</field>
|
||||
<field name="model">session.config</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name" required="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group col="4">
|
||||
<group>
|
||||
<field name="start_time" widget="float_time"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="end_time" widget="float_time"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id='session_config_tree' model="ir.ui.view">
|
||||
<field name="name">Session Configuration Tree</field>
|
||||
<field name="model">session.config</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="start_time" widget="float_time"/>
|
||||
<field name="end_time" widget="float_time"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id='action_session_config' model='ir.actions.act_window'>
|
||||
<field name="name">Session Configuration</field>
|
||||
<field name="res_model">session.config</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
31
product_rental_bookings/views/stock_picking.xml
Normal file
31
product_rental_bookings/views/stock_picking.xml
Normal file
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="stock_picking_form_inherit" model="ir.ui.view">
|
||||
<field name="name">view.picking.form.inherit</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//button[@name='action_confirm']" position="after">
|
||||
<button name="incoming" attrs="{'invisible': [('state', 'in', ['draft', 'waiting', 'assigned', 'done', 'cancel'])]}" string="Receive" type="object" class="oe_highlight" states="on_rent" />
|
||||
<button name="delivery" attrs="{'invisible': [('state', 'in', ['waiting', 'confirmed', 'assigned', 'done', 'cancel'])]}" string="Delivery" type="object" class="oe_highlight" groups="base.group_user" />
|
||||
<button name="move" attrs="{'invisible': [('state', 'in', ['draft','waiting', 'confirmed', 'done', 'cancel'])]}" string="Move to Store" type="object" class="oe_highlight" />
|
||||
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='partner_id']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='move_ids_without_package']/tree/field[@name='product_id']" position="after">
|
||||
<field name="products_checked" />
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='origin']" position="after">
|
||||
<field name="rental_move_type" invisible="1" />
|
||||
<field name="is_rental" invisible="1" />
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='origin']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
Reference in New Issue
Block a user