Feat: Informe de Ventas Por Usuario
This commit is contained in:
59
report.py
59
report.py
@@ -2,7 +2,7 @@ from trytond.model import ModelSQL, ModelView, fields
|
||||
from trytond.pool import Pool
|
||||
from trytond.pyson import If, Eval
|
||||
from sql import Literal, Null
|
||||
from sql.aggregate import Min, Sum
|
||||
from sql.aggregate import Min, Sum, Count
|
||||
from sql.functions import CurrentTimestamp
|
||||
from trytond.transaction import Transaction
|
||||
import datetime
|
||||
@@ -149,3 +149,60 @@ class ReportSaleProduct(ReportSaleAbstract, ModelView):
|
||||
where &= product_template.pizza == Literal(True)
|
||||
|
||||
return where
|
||||
|
||||
|
||||
class ReportSaleByUser(ReportSaleAbstract, ModelView):
|
||||
"""Report Sale Group by User"""
|
||||
__name__ = 'sale_fast_food.reporting.by_user'
|
||||
|
||||
user = fields.Many2One('res.user', "User")
|
||||
completed_sales = fields.Integer("Completed Sales")
|
||||
untaxed_amount = fields.Numeric(
|
||||
"Untaxed Amount", digits='currency', readonly=True)
|
||||
tax_amount = fields.Numeric(
|
||||
"Tax Amount", digits='currency', readonly=True)
|
||||
total_amount = fields.Numeric(
|
||||
"Total Amount", digits='currency', readonly=True)
|
||||
total_tip_amount = fields.Numeric(
|
||||
"Total Tip Amount", digits='currency', readonly=True)
|
||||
currency = fields.Many2One(
|
||||
'currency.currency', 'Currency', required=True)
|
||||
|
||||
@classmethod
|
||||
def _joins(cls):
|
||||
pool = Pool()
|
||||
tables = {}
|
||||
|
||||
Sale = pool.get('sale.sale')
|
||||
tables['sale.sale'] = sale = Sale.__table__()
|
||||
|
||||
from_item = sale
|
||||
|
||||
return from_item, tables
|
||||
|
||||
@classmethod
|
||||
def _columns(cls, tables):
|
||||
sale = tables['sale.sale']
|
||||
return super(ReportSaleByUser, cls)._columns(tables) + [
|
||||
sale.create_uid.as_('user'),
|
||||
Count(Literal(1)).as_('completed_sales'),
|
||||
Sum(sale.untaxed_amount_cache).as_('untaxed_amount'),
|
||||
Sum(sale.tax_amount_cache).as_('tax_amount'),
|
||||
Sum(sale.total_amount_cache).as_('total_amount'),
|
||||
Sum(sale.total_tip_cache).as_('total_tip_amount'),
|
||||
sale.currency.as_('currency'),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def _group_by(cls, tables):
|
||||
sale = tables['sale.sale']
|
||||
|
||||
return [
|
||||
sale.create_uid,
|
||||
sale.currency
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def _column_id(cls, tables):
|
||||
sale = tables['sale.sale']
|
||||
return Min(sale.id)
|
||||
|
||||
Reference in New Issue
Block a user