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,30 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_invoice_document" inherit_id="account.report_invoice_document">
<xpath expr="//td[@name='account_invoice_line_name']" position="inside">
<t t-set="pos_orders" t-value="o.sudo().pos_order_ids"/>
<t t-if="pos_orders">
<div style="margin-left:15px; font-style: italic">
<t t-set="down_payment_product" t-value="pos_orders[0].config_id.down_payment_product_id"/>
<t t-if="line.product_id == down_payment_product">
<t t-set="sale_orders" t-value="pos_orders[0].lines.filtered(lambda l: l.product_id == down_payment_product and l.price_subtotal_incl == line.price_total).mapped('sale_order_origin_id')"/>
<t t-if="sale_orders">
<t t-set="sale_order" t-value="sale_orders[0]"/>
<t t-foreach="sale_order.order_line" t-as="sale_order_line">
<t t-if="sale_order_line.product_id != down_payment_product">
<div>
<span style="margin-right: 5px;"><t t-esc="int(sale_order_line.product_uom_qty)"/>x</span>
<span t-esc="sale_order_line.name" />
<span style="margin: 0px 5px;">:</span>
<t t-esc="sale_order_line.price_total" t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</div>
</t>
</t>
<div style="font-weight: bold">From <t t-esc="sale_order.name"/> </div>
</t>
</t>
</div>
</t>
</xpath>
</template>
</odoo>

View file

@ -0,0 +1,26 @@
<?xml version="1.0"?>
<odoo>
<data>
<record id="view_pos_order_form_inherit_pos_sale" model="ir.ui.view">
<field name="name">pos.order.form.pos.sale</field>
<field name="model">pos.order</field>
<field name="inherit_id" ref="point_of_sale.view_pos_pos_form"/>
<field name="arch" type="xml">
<xpath expr="//button[@name='action_view_invoice']" position="before">
<button type="object"
name="action_view_sale_order"
class="oe_stat_button"
icon="fa-shopping-basket"
attrs="{'invisible': [('sale_order_count', '=', 0)]}" groups="sales_team.group_sale_salesman">
<div class="o_field_widget o_stat_info">
<span class="o_stat_value">
<field name="sale_order_count" widget="statinfo" nolabel="1" class="mr4" /> Transfered<br/>
from Sale
</span>
</div>
</button>
</xpath>
</field>
</record>
</data>
</odoo>

View file

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.pos_sale</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="point_of_sale.res_config_settings_view_form"/>
<field name="arch" type="xml">
<div id="pos_accounting_section" position="after">
<h2>Sales</h2>
<div class="row mt16 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Sales Team</span>
<div class="text-muted">
Sales are reported to the following sales team
</div>
<div class="content-group mt16">
<field name="pos_crm_team_id" kanban_view_ref="%(sales_team.crm_team_view_kanban)s" domain="['|', ('company_id', '=', company_id), ('company_id', '=', False)]"/>
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Down Payment Product</span>
<div class="text-muted">
This product will be applied when down payment is made
</div>
<div class="content-group mt16">
<field
name="pos_down_payment_product_id"
domain="[('type', '=', 'service'), '|', ('company_id', '=', company_id), ('company_id', '=', False)]"
context="{'default_detailed_type': 'service', 'default_taxes_id': False }"
/>
</div>
</div>
</div>
</div>
</div>
</field>
</record>
</odoo>

View file

@ -0,0 +1,26 @@
<?xml version="1.0"?>
<odoo>
<data>
<record id="view_order_form_inherit_pos_sale" model="ir.ui.view">
<field name="name">sale.order.form.pos.sale</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//button[@name='action_view_invoice']" position="before">
<button type="object"
name="action_view_pos_order"
class="oe_stat_button"
icon="fa-shopping-basket"
attrs="{'invisible': [('pos_order_count', '=', 0)]}" groups="point_of_sale.group_pos_user">
<div class="o_field_widget o_stat_info">
<span class="o_stat_value">
<field name="pos_order_count" widget="statinfo" nolabel="1" class="mr4" /> Transfered<br/>
to POS
</span>
</div>
</button>
</xpath>
</field>
</record>
</data>
</odoo>

View file

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_pos_session_search_inherit_pos_sale" model="ir.ui.view">
<field name="name">pos.session.search.view</field>
<field name="model">pos.session</field>
<field name="inherit_id" ref="point_of_sale.view_pos_session_search"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='config_id']" position="after">
<field name="crm_team_id" kanban_view_ref="%(sales_team.crm_team_view_kanban)s"/>
</xpath>
</field>
</record>
<record id="pos_session_action_from_crm_team" model="ir.actions.act_window">
<field name="name">Open Sessions</field>
<field name="binding_model_id" ref="sales_team.model_crm_team"/>
<field name="res_model">pos.session</field>
<field name="view_mode">tree,form</field>
<field name="context">{'search_default_open_sessions': True, 'search_default_crm_team_id': active_id}</field>
</record>
<record id="view_pos_config_search_inherit_pos_sale" model="ir.ui.view">
<field name="name">pos.config.search.view</field>
<field name="model">pos.config</field>
<field name="inherit_id" ref="point_of_sale.view_pos_config_search"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<field name="crm_team_id" kanban_view_ref="%(sales_team.crm_team_view_kanban)s"/>
</xpath>
</field>
</record>
<record id="crm_team_view_kanban_dashboard" model="ir.ui.view">
<field name="name">crm.team.view.kanban.dashboard.inherit.pos</field>
<field name="model">crm.team</field>
<field name="inherit_id" ref="sales_team.crm_team_view_kanban_dashboard"/>
<field name="arch" type="xml">
<data>
<xpath expr="//t[@name='first_options']" position="before">
<div class="row" t-if="record.pos_sessions_open_count.raw_value" groups="point_of_sale.group_pos_user">
<div class="col-8">
<a name="%(pos_session_action_from_crm_team)d" type="action">
<field name="pos_sessions_open_count"/>
<t t-if="record.pos_sessions_open_count.raw_value == 1">Session Running</t>
<t t-else="">Sessions Running</t>
</a>
</div>
<div class="col-4 text-end">
<field name="pos_order_amount_total" widget="monetary"/>
</div>
</div>
</xpath>
</data>
</field>
</record>
</odoo>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="message_body" inherit_id="stock.message_body">
<xpath expr="//t[contains(@t-if, 'move.state')]" position="inside">
<t groups="point_of_sale.group_pos_user">
<t t-set="pos_orders" t-value="move.sale_line_id.pos_order_line_ids.mapped('order_id')" />
<t t-if="len(pos_orders)">
<li>
Delivered from
<t t-foreach="pos_orders" t-as="pos_order">
<a href="#" t-att-data-oe-model="pos_order._name" t-att-data-oe-id="pos_order.id">
<t t-esc="pos_order.display_name" />
</a><span t-if="pos_orders.ids[-1:] != pos_order.ids">, </span>
</t>
</li>
</t>
</t>
</xpath>
</template>
</odoo>