Skip to content
Extraits de code Groupes Projets
lefilament_projets.py 1,99 ko
Newer Older
  • Learn to ignore specific revisions
  • Benj's avatar
    Benj a validé
    # -*- coding: utf-8 -*-
    
    from datetime import datetime, date
    import time
    from openerp import tools
    from openerp import models, fields, api, osv
    
    class SapovalPartners(models.Model):
    	_name = 'project.project'
    	_inherit = 'project.project'
    
    	lf_total_budget = fields.Float('Budget Projet',)
    	lf_tarif_jour = fields.Float('Tarif Jour',)
    	lf_taux_horaire = fields.Float('Taux Horaire', compute='_taux_horaire')
    
    Benj's avatar
    Benj a validé
    	lf_heures_projet = fields.Float('Allouées (h)', compute='_total_heures')
    
    Benj's avatar
    Benj a validé
    	lf_heures_passees = fields.Float('Heures passées', compute='_total_heures_passees')
    
    Benj's avatar
    Benj a validé
    	lf_heures_restantes = fields.Float('Restant (h)', compute='_total_heures_restantes')
    	lf_heures_planifiees = fields.Float('Planifiées (h)', compute='_total_heures_planifiees')
    
    	lf_couts_annexes =  fields.Float('Coûts Annexes', compute='_couts_annexes')
    
    Benj's avatar
    Benj a validé
    
    	@api.one
    	def _taux_horaire(self):
    		self.lf_taux_horaire = self.lf_tarif_jour / 7.5
    
    	@api.one
    	def _total_heures(self):
    		if (self.lf_tarif_jour != 0.0):
    			self.lf_heures_projet = (self.lf_total_budget / self.lf_tarif_jour) * 7.5
    		else:
    			self.lf_heures_projet = 0.0
    
    	@api.one
    	def _total_heures_passees(self):
    		res = 0.0
    		for record in self.task_ids:
    			res = res + record.effective_hours
    
    Benj's avatar
    Benj a validé
    		self.lf_heures_passees = res
    
    	@api.one
    	def _total_heures_restantes(self):
    
    Benj's avatar
    Benj a validé
    		self.lf_heures_restantes = self.lf_heures_projet - self.lf_heures_passees
    
    	@api.one
    	def _total_heures_planifiees(self):
    		res = 0.0
    		for record in self.task_ids:
    			res = res + record.planned_hours
    
    		self.lf_heures_planifiees = res
    
    	@api.one
    	def _couts_annexes(self):
    		account = self.analytic_account_id.id		
    		##############    Calcul couts annexes   ################
    		self.env.cr.execute("select sum(amount) from account_analytic_line where amount<0 and is_timesheet=FALSE and account_id=%s;", (account, ) )
    		couts_annexes = self.env.cr.fetchone()[0]
    		if couts_annexes:
    			self.lf_couts_annexes = couts_annexes * (-1.0)
    		else:
    			self.lf_couts_annexes = 0.0