Initial commit: Sale packages

This commit is contained in:
Ernad Husremovic 2025-08-29 15:20:49 +02:00
commit 14e3d26998
6469 changed files with 2479670 additions and 0 deletions

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="hr_expense_sheet_view_form" model="ir.ui.view">
<field name="name">hr.expense.sheet.view.form.inherit.sale.expense</field>
<field name="model">hr.expense.sheet</field>
<field name="inherit_id" ref="hr_expense.view_hr_expense_sheet_form"/>
<field name="arch" type="xml">
<button name="action_get_expense_view" position="after">
<button name="action_open_sale_orders"
class="oe_stat_button"
icon="fa-money"
type="object"
attrs="{'invisible': [('sale_order_count', '=', 0)]}">
<field name="sale_order_count" widget="statinfo" string="Sales Orders"/>
</button>
</button>
</field>
</record>
</odoo>

View file

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="hr_expense_form_view_inherit_sale_expense" model="ir.ui.view">
<field name="name">hr.expense.form.inherit.sale.expense</field>
<field name="model">hr.expense</field>
<field name="inherit_id" ref="hr_expense.hr_expense_view_form"/>
<field name="priority">30</field>
<field name="arch" type="xml">
<xpath expr="//field[@name='analytic_distribution']" position="before">
<field name="sale_order_id" groups="!sales_team.group_sale_salesman,!account.group_account_manager"
attrs="{'invisible': [('can_be_reinvoiced', '=', False)], 'readonly': [('sheet_is_editable', '=', False)]}"
options="{'no_create_edit': True, 'no_create': True, 'no_open': True}"
context="{'sale_show_partner_name': True, 'sale_expense_all_order': True}"
widget="sale_order_many2one"/>
<field name="sale_order_id" groups="sales_team.group_sale_salesman,!account.group_account_manager"
attrs="{'invisible': [('can_be_reinvoiced', '=', False)], 'readonly': [('sheet_is_editable', '=', False)]}"
options="{'no_create_edit': True, 'no_create': True}"
context="{'sale_show_partner_name': True, 'sale_expense_all_order': True}"
widget="many2one"/>
<field name="sale_order_id" groups="account.group_account_manager"
widget="many2one"
attrs="{'invisible':[['can_be_reinvoiced','=',False]],'readonly':['|', ['state','in',['done']], ['sheet_is_editable', '=', False]]}"
options="{'no_create_edit': True, 'no_create': True, 'no_open': True}"
context="{'sale_show_partner_name': True, 'sale_expense_all_order': True}"
/>
<field name="can_be_reinvoiced" invisible="1"/>
</xpath>
</field>
</record>
<record id="hr_expense_tree_view_inherit_sale_expense" model="ir.ui.view">
<field name="name">hr.expense.tree.inherit.sale.expense</field>
<field name="model">hr.expense</field>
<field name="inherit_id" ref="hr_expense.view_expenses_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='reference']" position="after">
<field name="sale_order_id" optional="hide" attrs="{'invisible': [('can_be_reinvoiced', '=', False)]}" options="{'no_create_edit': True, 'no_create': True, 'no_open': True}" context="{'sale_show_partner_name': True, 'sale_expense_all_order': True}"/>
<field name="can_be_reinvoiced" invisible="1" readonly="1"/>
</xpath>
</field>
</record>
<record id="hr_expense_split_view_inherit_sale_expense" model="ir.ui.view">
<field name="name">hr.expense.split.view.inherit.sale.expense</field>
<field name="model">hr.expense.split.wizard</field>
<field name="inherit_id" ref="hr_expense.hr_expense_split"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='employee_id']" position="after">
<field name="can_be_reinvoiced" invisible="1"/>
<field name="sale_order_id" force_save="1" attrs="{'readonly': [('can_be_reinvoiced', '=', False)]}"/>
</xpath>
</field>
</record>
<record id="hr_expense_sheet_form_view_inherit_sale_expense" model="ir.ui.view">
<field name="name">hr.expense.sheet.form.inherit.sale.expense</field>
<field name="model">hr.expense.sheet</field>
<field name="inherit_id" ref="hr_expense.view_hr_expense_sheet_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='expense_line_ids']/tree/field[@name='state']" position="after">
<field name="sale_order_id" attrs="{'invisible': [('can_be_reinvoiced', '=', False)]}" optional="show" options="{'no_create_edit': True, 'no_create': True, 'no_open': True}" context="{'sale_show_partner_name': True, 'sale_expense_all_order': True}"/>
<field name="can_be_reinvoiced" invisible="1"/>
</xpath>
</field>
</record>
<record id="hr_expense_action_from_sale_order" model="ir.actions.act_window">
<field name="name">Expenses</field>
<field name="res_model">hr.expense</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('sale_order_id', '=', active_id)]</field>
<field name="context">{'default_sale_order_id': active_id}</field>
</record>
</odoo>

View file

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="product_product_view_form_inherit_sale_expense" model="ir.ui.view">
<field name="name">product.template.expense</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="hr_expense.product_product_expense_form_view"/>
<field name="arch" type="xml">
<xpath expr="//group[@name='product_details']" position="inside">
<group string="Invoicing">
<field name="expense_policy" widget="radio"/>
<label for="expense_policy_tooltip" string=""/>
<div class="o_row">
<field name="expense_policy_tooltip" class="fst-italic text-muted"/>
</div>
</group>
</xpath>
<xpath expr="//field[@name='standard_price']" position="before">
<field name="list_price" attrs="{'invisible':[('expense_policy', '!=', 'sales_price')]}"/>
</xpath>
<xpath expr="//field[@name='supplier_taxes_id']" position="after">
<field name="taxes_id" widget="many2many_tags" attrs="{'invisible':[('expense_policy', '=', 'no')]}"
options="{'no_quick_create': True}"/>
</xpath>
</field>
</record>
<record id="product_product_view_list_inherit_sale_expense" model="ir.ui.view">
<field name="name">product.product.view.list.inherit.sale.expense</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="hr_expense.product_product_expense_categories_tree_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='supplier_taxes_id']" position="after">
<field name="expense_policy" optional="show"/>
<field name="taxes_id" optional="hide"/>
</xpath>
</field>
</record>
<record id="hr_expense.hr_expense_product" model="ir.actions.act_window">
<field name="context">{"default_can_be_expensed": 1, 'default_detailed_type': 'service',
'default_expense_policy' : 'cost'}</field>
</record>
</odoo>

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="sale_order_form_view_inherit" model="ir.ui.view">
<field name="name">sale.order.form.inherit.sale.expense</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<data>
<xpath expr="//button[@name='action_view_invoice']" position="before">
<button type="action"
name="%(sale_expense.hr_expense_action_from_sale_order)d"
class="oe_stat_button"
icon="fa-money"
attrs="{'invisible': [('expense_count', '=', 0)]}">
<field name="expense_count" widget="statinfo" string="Expenses"/>
</button>
</xpath>
</data>
</field>
</record>
</odoo>