mirror of
https://github.com/bringout/oca-ocb-sale.git
synced 2026-04-27 17:31:59 +02:00
19.0 vanilla
This commit is contained in:
parent
79f83631d5
commit
73afc09215
6267 changed files with 1534193 additions and 1130106 deletions
|
|
@ -1,20 +1,37 @@
|
|||
# coding: utf-8
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
from odoo import api, fields, models
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class SaleReport(models.Model):
|
||||
_inherit = 'sale.report'
|
||||
|
||||
website_id = fields.Many2one('website', readonly=True)
|
||||
is_abandoned_cart = fields.Boolean(string="Abandoned Cart", readonly=True)
|
||||
public_categ_ids = fields.Many2many(
|
||||
string="eCommerce Categories",
|
||||
related='product_tmpl_id.public_categ_ids',
|
||||
)
|
||||
|
||||
def _select_additional_fields(self):
|
||||
res = super()._select_additional_fields()
|
||||
res['website_id'] = "s.website_id"
|
||||
res['is_abandoned_cart'] = """
|
||||
s.date_order <= (timezone('utc', now()) - ((COALESCE(w.cart_abandoned_delay, '1.0') || ' hour')::INTERVAL))
|
||||
AND s.website_id IS NOT NULL
|
||||
AND s.state = 'draft'
|
||||
AND s.partner_id != %s""" % self.env.ref('base.public_partner').id
|
||||
return res
|
||||
|
||||
def _from_sale(self):
|
||||
res = super()._from_sale()
|
||||
res += """
|
||||
LEFT JOIN website w ON w.id = s.website_id"""
|
||||
return res
|
||||
|
||||
def _group_by_sale(self):
|
||||
res = super()._group_by_sale()
|
||||
res += """,
|
||||
s.website_id"""
|
||||
s.website_id,
|
||||
w.cart_abandoned_delay"""
|
||||
return res
|
||||
|
|
|
|||
|
|
@ -0,0 +1,130 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="sale_report_view_search_website" model="ir.ui.view">
|
||||
<field name="name">sale.report.search</field>
|
||||
<field name="model">sale.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Sales">
|
||||
<field name="website_id" groups="website.group_multi_website"/>
|
||||
<field name="product_id"/>
|
||||
<field name="categ_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="country_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<filter string="Confirmed Orders" name="confirmed" domain="[('state', '=', 'sale')]"/>
|
||||
<separator/>
|
||||
<filter name="filter_date" date="date" default_period="month"/>
|
||||
<group>
|
||||
<filter string="Website" name="groupby_website" context="{'group_by':'website_id'}" groups="website.group_multi_website"/>
|
||||
<filter string="Product" name="groupby_product" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Product Category" name="groupby_product_category" context="{'group_by':'categ_id'}"/>
|
||||
<filter string="Customer" name="groupby_customer" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Customer Country" name="groupby_country" context="{'group_by':'country_id'}"/>
|
||||
<filter string="Status" name="groupby_status" context="{'group_by':'state'}"/>
|
||||
<filter
|
||||
string="eCommerce Category"
|
||||
name="groupby_product_public_category"
|
||||
context="{'group_by': 'public_categ_ids'}"
|
||||
/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Order Date" name="groupby_order_date" context="{'group_by':'date'}"/>
|
||||
<!-- Dashboard filter - used by context -->
|
||||
<filter string="Last Week" invisible="1" name="week" domain="[('date','>=', 'today -7d')]"/>
|
||||
<filter string="Last Month" invisible="1" name="month" domain="[('date','>=', 'today -30d')]"/>
|
||||
<filter string="Last Year" invisible="1" name="year" domain="[('date','>=', 'today -365d')]"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_report_view_pivot_website" model="ir.ui.view">
|
||||
<field name="name">sale.report.view.pivot.website</field>
|
||||
<field name="model">sale.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot string="Sales Analysis" sample="1">
|
||||
<field name="date" type="row"/>
|
||||
<field name="state" type="col"/>
|
||||
<field name="price_subtotal" type="measure"/>
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_report_view_graph_website" model="ir.ui.view">
|
||||
<field name="name">sale.report.view.graph.website</field>
|
||||
<field name="model">sale.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Sale Analysis" sample="1">
|
||||
<field name="date"/>
|
||||
<field name="price_subtotal" type='measure'/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_report_view_tree" model="ir.ui.view">
|
||||
<field name="name">sale.report.view.list.inherit.website.sale</field>
|
||||
<field name="model">sale.report</field>
|
||||
<field name="inherit_id" ref="sale.sale_report_view_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="order_reference" position="after">
|
||||
<field name="website_id" optional="hide"/>
|
||||
<field name="public_categ_ids" optional="hide"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_report_action_dashboard" model="ir.actions.act_window">
|
||||
<field name="name">Online Sales Analysis</field>
|
||||
<field name="res_model">sale.report</field>
|
||||
<field name="path">online-sales-analysis</field>
|
||||
<field name="view_mode">pivot,graph</field>
|
||||
<field name="domain">[('website_id', '!=', False)]</field>
|
||||
<field name="context">{'search_default_confirmed': 1}</field>
|
||||
<field name="search_view_id" ref="sale_report_view_search_website"/>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_empty_folder">
|
||||
You don't have any order from the website
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_report_action_view_pivot_website" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">pivot</field>
|
||||
<field name="view_id" ref="sale_report_view_pivot_website"/>
|
||||
<field name="act_window_id" ref="sale_report_action_dashboard"/>
|
||||
</record>
|
||||
|
||||
<record id="sale_report_action_view_graph_website" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="view_id" ref="sale_report_view_graph_website"/>
|
||||
<field name="act_window_id" ref="sale_report_action_dashboard"/>
|
||||
</record>
|
||||
|
||||
<record id="sale_report_action_carts" model="ir.actions.act_window">
|
||||
<field name="name">Sales</field>
|
||||
<field name="res_model">sale.report</field>
|
||||
<field name="view_mode">pivot,graph</field>
|
||||
<field name="domain">[('website_id', '!=', False)]</field>
|
||||
<field name="search_view_id" ref="sale_report_view_search_website"/>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_empty_folder">
|
||||
You don't have any order from the website
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_report_action_view_pivot_carts" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">pivot</field>
|
||||
<field name="view_id" ref="sale_report_view_pivot_website"/>
|
||||
<field name="act_window_id" ref="sale_report_action_carts"/>
|
||||
</record>
|
||||
|
||||
<record id="sale_report_action_view_graph_carts" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="view_id" ref="sale_report_view_graph_website"/>
|
||||
<field name="act_window_id" ref="sale_report_action_carts"/>
|
||||
</record>
|
||||
</odoo>
|
||||
Loading…
Add table
Add a link
Reference in a new issue