[IMP] account, point_of_sale: improve menu, filters and search views
Specifications: improve menu organization, search filters and groupby, reorder filters, update some field labels. This commit is related to task #1878516 and PR #26929 .
This commit is contained in:
committed by
Thibault Delavallée
parent
21e5198da1
commit
5aad33098a
@@ -27,8 +27,8 @@ class AccountInvoiceReport(models.Model):
|
||||
record.user_currency_price_average = base_currency_id._convert(record.price_average, user_currency_id, company, date)
|
||||
record.user_currency_residual = base_currency_id._convert(record.residual, user_currency_id, company, date)
|
||||
|
||||
number = fields.Char('Invoice Number', readonly=True)
|
||||
date = fields.Date(readonly=True)
|
||||
number = fields.Char('Invoice #', readonly=True)
|
||||
date = fields.Date(readonly=True, string="Invoice Date")
|
||||
product_id = fields.Many2one('product.product', string='Product', readonly=True)
|
||||
product_qty = fields.Float(string='Product Quantity', readonly=True)
|
||||
uom_name = fields.Char(string='Reference Unit of Measure', readonly=True)
|
||||
@@ -41,7 +41,7 @@ class AccountInvoiceReport(models.Model):
|
||||
commercial_partner_id = fields.Many2one('res.partner', string='Partner Company', help="Commercial Entity")
|
||||
company_id = fields.Many2one('res.company', string='Company', readonly=True)
|
||||
user_id = fields.Many2one('res.users', string='Salesperson', readonly=True)
|
||||
price_total = fields.Float(string='Total Without Tax', readonly=True)
|
||||
price_total = fields.Float(string='Untaxed Total', readonly=True)
|
||||
user_currency_price_total = fields.Float(string="Total Without Tax in Currency", compute='_compute_amounts_in_user_currency', digits=0)
|
||||
price_average = fields.Float(string='Average Price', readonly=True, group_operator="avg")
|
||||
user_currency_price_average = fields.Float(string="Average Price in Currency", compute='_compute_amounts_in_user_currency', digits=0)
|
||||
@@ -61,13 +61,14 @@ class AccountInvoiceReport(models.Model):
|
||||
('cancel', 'Cancelled')
|
||||
], string='Invoice Status', readonly=True)
|
||||
date_due = fields.Date(string='Due Date', readonly=True)
|
||||
account_id = fields.Many2one('account.account', string='Account', readonly=True, domain=[('deprecated', '=', False)])
|
||||
account_line_id = fields.Many2one('account.account', string='Account Line', readonly=True, domain=[('deprecated', '=', False)])
|
||||
account_id = fields.Many2one('account.account', string='Receivable/Payable Account', readonly=True, domain=[('deprecated', '=', False)])
|
||||
account_line_id = fields.Many2one('account.account', string='Revenue/Expense Account', readonly=True, domain=[('deprecated', '=', False)])
|
||||
partner_bank_id = fields.Many2one('res.partner.bank', string='Bank Account', readonly=True)
|
||||
residual = fields.Float(string='Due Amount', readonly=True)
|
||||
user_currency_residual = fields.Float(string="Total Residual", compute='_compute_amounts_in_user_currency', digits=0)
|
||||
country_id = fields.Many2one('res.country', string='Country of the Partner Company')
|
||||
country_id = fields.Many2one('res.country', string="Partner Company's Country")
|
||||
account_analytic_id = fields.Many2one('account.analytic.account', string='Analytic Account', groups="analytic.group_analytic_accounting")
|
||||
amount_total = fields.Float(string='Total', readonly=True)
|
||||
|
||||
_order = 'date desc'
|
||||
|
||||
@@ -95,7 +96,7 @@ class AccountInvoiceReport(models.Model):
|
||||
sub.payment_term_id, sub.uom_name, sub.currency_id, sub.journal_id,
|
||||
sub.fiscal_position_id, sub.user_id, sub.company_id, sub.nbr, sub.invoice_id, sub.type, sub.state,
|
||||
sub.categ_id, sub.date_due, sub.account_id, sub.account_line_id, sub.partner_bank_id,
|
||||
sub.product_qty, sub.price_total as price_total, sub.price_average as price_average,
|
||||
sub.product_qty, sub.price_total as price_total, sub.price_average as price_average, sub.amount_total as amount_total,
|
||||
COALESCE(cr.rate, 1) as currency_rate, sub.residual as residual, sub.commercial_partner_id as commercial_partner_id
|
||||
"""
|
||||
return select_str
|
||||
@@ -113,6 +114,7 @@ class AccountInvoiceReport(models.Model):
|
||||
ai.partner_bank_id,
|
||||
SUM ((invoice_type.sign_qty * ail.quantity) / u.factor * u2.factor) AS product_qty,
|
||||
SUM(ail.price_subtotal_signed * invoice_type.sign) AS price_total,
|
||||
SUM(ai.amount_total * invoice_type.sign) AS amount_total,
|
||||
SUM(ABS(ail.price_subtotal_signed)) / CASE
|
||||
WHEN SUM(ail.quantity / u.factor * u2.factor) <> 0::numeric
|
||||
THEN SUM(ail.quantity / u.factor * u2.factor)
|
||||
|
||||
@@ -69,31 +69,29 @@
|
||||
<filter string="My Invoices" name="my_invoice" domain="[('user_id', '=', uid)]"/>
|
||||
<separator/>
|
||||
<field name="date"/>
|
||||
<filter string="This Year" name="thisyear" domain="['|', ('date', '=', False), '&',('date','<=', time.strftime('%%Y-12-31')),('date','>=',time.strftime('%%Y-01-01'))]" help="Journal invoices with period in current year"/>
|
||||
<separator/>
|
||||
<filter string="To Invoice" name="toinvoice" domain="[('state','=','draft')]" help = "Draft Invoices"/>
|
||||
<filter string="Invoiced" name="current" domain="[('state','not in', ('draft','cancel'))]"/>
|
||||
<separator/>
|
||||
<filter string="Date" name="date_filter" date="date"/>
|
||||
<filter string="Customer" name="customer" domain="['|', ('type','=','out_invoice'),('type','=','out_refund')]"/>
|
||||
<filter string="Vendor" name="supplier" domain="['|', ('type','=','in_invoice'),('type','=','in_refund')]"/>
|
||||
<filter string="Customers" name="customer" domain="['|', ('type','=','out_invoice'),('type','=','out_refund')]"/>
|
||||
<filter string="Vendors" name="supplier" domain="['|', ('type','=','in_invoice'),('type','=','in_refund')]"/>
|
||||
<separator/>
|
||||
<filter string="Invoice" name="invoice" domain="['|', ('type','=','out_invoice'),('type','=','in_invoice')]"/>
|
||||
<filter string="Credit Note" name="creditnote" domain="['|', ('type','=','out_refund'),('type','=','in_refund')]"/>
|
||||
<filter string="Invoices" name="invoice" domain="['|', ('type','=','out_invoice'),('type','=','in_invoice')]"/>
|
||||
<filter string="Credit Notes" name="creditnote" domain="['|', ('type','=','out_refund'),('type','=','in_refund')]"/>
|
||||
<field name="partner_id" operator="child_of"/>
|
||||
<field name="user_id" />
|
||||
<field name="product_id" />
|
||||
<field name="categ_id" filter_domain="[('categ_id', 'child_of', self)]"/>
|
||||
<field name="account_analytic_id"/>
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Partner" name="partner_id" context="{'group_by':'partner_id','residual_visible':True}"/>
|
||||
<filter string="Salesperson" name='user' context="{'group_by':'user_id'}"/>
|
||||
<filter string="Partner" name="partner_id" context="{'group_by':'partner_id','residual_visible':True}"/>
|
||||
<filter string="Product Category" name="category_product" context="{'group_by':'categ_id','residual_invisible':True}"/>
|
||||
<filter string="Status" name="status" context="{'group_by':'state'}"/>
|
||||
<filter string="Analytic Account" name="account_analytic_id" context="{'group_by':'account_analytic_id'}" groups="analytic.group_analytic_accounting" />
|
||||
<filter string="Company" name="company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Date" name="date" context="{'group_by':'date'}"/>
|
||||
<filter string="Due Date" name="duemonth" context="{'group_by':'date_due:month'}"/>
|
||||
<filter string="Analytic Account" name="account_analytic_id" context="{'group_by':'account_analytic_id'}" groups="analytic.group_analytic_accounting" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -118,7 +116,7 @@
|
||||
<field name="help">From this report, you can have an overview of the amount invoiced to your customers. The search tool can also be used to personalise your Invoices reports and so, match this analysis to your needs.</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Invoices" action="action_account_invoice_report_all" id="menu_action_account_invoice_report_all" parent="account.account_reports_management_menu" sequence="25"/>
|
||||
<menuitem name="Invoices" action="action_account_invoice_report_all" id="menu_action_account_invoice_report_all" parent="account.account_reports_management_menu" sequence="1"/>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -632,7 +632,8 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Invoice">
|
||||
<field name="number" string="Invoice" filter_domain="['|','|','|', ('number','ilike',self), ('origin','ilike',self), ('reference', 'ilike', self), ('partner_id', 'child_of', self)]"/>
|
||||
<field name="journal_id" />
|
||||
<filter domain="[('user_id','=',uid)]" name="myinvoices" help="My Invoices"/>
|
||||
<separator/>
|
||||
<filter name="draft" string="Draft" domain="[('state','=','draft')]"/>
|
||||
<filter name="unpaid" string="Open" domain="[('state', '=', 'open')]"/>
|
||||
<filter name="in_payment" string="In Payment" domain="[('state', '=', 'in_payment')]"/>
|
||||
@@ -643,8 +644,6 @@
|
||||
<field name="user_id" string="Salesperson" domain="[('share','=', False)]"/>
|
||||
<field name="date" string="Period"/>
|
||||
<separator/>
|
||||
<filter domain="[('user_id','=',uid)]" name="myinvoices" help="My Invoices"/>
|
||||
<separator/>
|
||||
<filter string="My Activities" name="activities_my"
|
||||
domain="[('activity_ids.user_id', '=', uid)]"/>
|
||||
<separator/>
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
<field name="model">account.journal</field>
|
||||
<field name="inherit_id" ref="account.view_account_journal_search" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="name" position="after">
|
||||
<xpath expr="//filter[@name='inactive']" position="before">
|
||||
<filter name="available_in_pos" string="Available for Point of Sale" domain="[('journal_user', '=', True)]"/>
|
||||
</field>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user