Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 34d931b2e8ab3bb7c16e40e9fe5146f68323bfab
  • 16.0 par défaut protégée
  • 18.0
  • 17.0
  • 14.0 protégée
  • 15.0 protégée
  • 12.0 protégée
  • 10.0 protégée
8 résultats

12.0.Dockerfile

Blame
  • crm_report.py 1,96 Kio
    # -*- coding: utf-8 -*-
    
    # © 2017 Le Filament (<http://www.le-filament.com>)
    # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
    
    from odoo import tools
    from odoo import api, fields, models
    
    
    class CrmReport(models.Model):
    	_name = "crm.conversion.report"
    	_description = "Time Conversion Statistics"
    	_auto = False
    	_order = 'date_closed desc'
    
    	name = fields.Char('Affaire', readonly=True)
    	
    	date_open = fields.Datetime('Date Création', readonly=True)
    	date_conversion = fields.Datetime('Date Converstion', readonly=True)
    	date_closed = fields.Datetime('Date Fermeture', readonly=True)
    	days = fields.Integer('Durée', group_operator = 'avg', readonly=True)
    
    	referred = fields.Char('Apporteur')
    
    	partner_id = fields.Many2one('res.partner', 'Client', readonly=True)
    	user_id = fields.Many2one('res.users', 'Vendeur', readonly=True)
    	team_id = fields.Many2one('crm.team', 'DAS', readonly=True)
    	stage_id = fields.Many2one('crm.stage', string='Stage', readonly=True)
    
    	current = fields.Boolean('En Cours', readonly=True)
    	probability = fields.Float('Probabilité', group_operator="avg", readonly=True)
    	planned_revenue = fields.Float('Revenu Total', readonly=True)
    	expected_revenue = fields.Float('Revenu Pondéré', readonly=True)
    	
    	def _select(self):
    		select_str = """
    			SELECT
    				id,
    				name,
    				date_open,
    				date_closed,
    				date_conversion,
    				extract(day from 
    					(case when date_closed is not null then date_closed else current_date end) - 
    					(case when date_open is not null then date_open else create_date end)) as days,
    				referred,
    				partner_id,
    				user_id,
    				team_id,
    				stage_id,
    				active as current,
    				probability,
    				planned_revenue,
    				planned_revenue*(probability/100) as expected_revenue
    			FROM
    				crm_lead
    			WHERE
    				type = 'opportunity'
    		"""
    		return select_str
    
    
    	def init(self):
    		tools.drop_view_if_exists(self.env.cr, self._table)
    		self.env.cr.execute("CREATE or REPLACE VIEW crm_conversion_report as (%s)" % (self._select(),) )