sale_report_partner.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # #
  2. # You should have received a copy of the GNU Affero General Public License #
  3. # along with this program. If not, see <http://www.gnu.org/licenses/>. #
  4. # #
  5. #################################################################################
  6. from openerp.osv import fields,osv
  7. from openerp import tools
  8. class sale_partner_model(osv.osv):
  9. _name = "sale.partner.model"
  10. _description = "Listado de Clientes"
  11. _auto = False
  12. _columns = {
  13. 'partner_id': fields.many2one('res.partner', string='Cliente', required=True, readonly=True),
  14. 'name': fields.char('Nombre', readonly=True),
  15. 'street': fields.char('Direccion', readonly=True),
  16. 'email': fields.char('Email', readonly=True),
  17. 'mobile': fields.char('Celular', readonly=True),
  18. 'phone': fields.char('Telefono', readonly=True),
  19. 'total_facturado': fields.float('Facturado', readonly=True),
  20. 'user_id':fields.many2one('res.users', 'Vendedor', readonly=True),
  21. 'date': fields.datetime('Fecha', readonly=True),
  22. }
  23. _order = 'total_facturado asc'
  24. def init(self, cr):
  25. tools.sql.drop_view_if_exists(cr, 'sale_partner_model')
  26. cr.execute("""
  27. CREATE OR REPLACE VIEW sale_partner_model AS (
  28. SELECT a.id AS id,
  29. c.partner_id AS partner_id,
  30. a.name,
  31. a.street AS street,
  32. a.email AS email,
  33. a.mobile AS mobile,
  34. a.phone AS phone,
  35. c.price_total AS total_facturado,
  36. p.user_id as user_id,
  37. c.date AS date
  38. FROM res_partner a
  39. left join sale_order p on p.partner_id=a.id
  40. LEFT JOIN(select s.partner_id AS partner_id, sum(l.product_uom_qty * l.price_unit) as price_total, MAX(l.create_date) AS date
  41. from sale_order_line as l
  42. left join sale_order s on s.id=l.order_id
  43. group by partner_id) c on c.partner_id=a.id
  44. WHERE a.customer= True and c.price_total>0
  45. )
  46. """)
  47. sale_partner_model()