You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.4 KiB

  1. # -*- coding: utf-8 -*-
  2. from openerp import tools
  3. from openerp import models, fields, api
  4. #----------------
  5. class ReportVisit(models.Model):
  6. _name = "beesdoo.report.visits"
  7. _description = "Labo Market Visit"
  8. _auto = False
  9. _order = 'week desc'
  10. week = fields.Date("Week")
  11. type = fields.Char()
  12. visitors = fields.Integer("Visitors")
  13. visits = fields.Integer("Visits")
  14. #gross_sale = fields.Float("Gross Sales")
  15. def init(self, cr):
  16. # self._table = account_invoice_report
  17. tools.drop_view_if_exists(cr, self._table)
  18. cr.execute("""CREATE or REPLACE VIEW beesdoo_report_visits as (
  19. select
  20. row_number() over() as id,
  21. week,
  22. type,
  23. visits
  24. from(
  25. select
  26. date_trunc('WEEK', date_order )::date as week,
  27. count (distinct partner_id) + sum (case when partner_id is null then 1 else 0 end ) - 1 as visits,
  28. 'visites_uniques' as type
  29. from
  30. pos_order
  31. group by
  32. date_trunc('WEEK', date_order)
  33. union
  34. select
  35. date_trunc('WEEK', date_order )::date as week,
  36. count (distinct id) as visits,
  37. 'visites' as type
  38. from
  39. pos_order
  40. group by
  41. date_trunc('WEEK', date_order)
  42. ) t
  43. order by
  44. week, type desc
  45. )""")