From 838bc59d54d5f65ecc2a5cb4e789074e0f9ba764 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20Larchev=C3=AAque?= Date: Thu, 29 Mar 2012 10:58:33 -0400 Subject: [PATCH] apercu --- project/assets/css/admin_print.css | 2 + project/assets/css/rh_apercus.css | 6 ++ project/dae/models.py | 92 ------------------ project/rh/models.py | 100 +++++++++++++++++++- project/rh/templates/admin/rh/dossier/apercu.html | 13 ++- project/rh/templates/rh/form-row.html | 3 + project/rh/templates/rh/include/commentaires.html | 1 - project/rh/templates/rh/include/dossier.html | 98 ++++++++++--------- project/rh/templates/rh/include/remunerations.html | 5 +- project/rh/views.py | 1 + 10 files changed, 173 insertions(+), 148 deletions(-) create mode 100644 project/assets/css/admin_print.css create mode 100644 project/assets/css/rh_apercus.css create mode 100644 project/rh/templates/rh/form-row.html diff --git a/project/assets/css/admin_print.css b/project/assets/css/admin_print.css new file mode 100644 index 0000000..c48ed01 --- /dev/null +++ b/project/assets/css/admin_print.css @@ -0,0 +1,2 @@ +#header, .breadcrumbs {display: none;} +.page-break { display:block; page-break-before:always; } diff --git a/project/assets/css/rh_apercus.css b/project/assets/css/rh_apercus.css new file mode 100644 index 0000000..ff497fb --- /dev/null +++ b/project/assets/css/rh_apercus.css @@ -0,0 +1,6 @@ +.gauche {float:left; } +.droite {float:right; text-align:right; } +.montant {text-align: right;} +table {margin: 2em;} +table th, table td {border-left: 1px solid #D0E8F8; border-top: 1px solid #D0E8F8; padding: 5px;} +.module {margin: 8px 0;} diff --git a/project/dae/models.py b/project/dae/models.py index 989d173..ad18708 100644 --- a/project/dae/models.py +++ b/project/dae/models.py @@ -447,98 +447,6 @@ class Dossier(DossierWorkflow, rh.Dossier_): return None return int(round(float(self.salaire_titulaire_anterieur) * float(taux), 2)) - def get_salaire_euros(self): - tx = self.taux_devise() - return (float)(tx) * (float)(self.salaire) - - def get_remunerations_brutes(self): - """ - 1 Salaire de base - 3 Indemnité de base - 4 Indemnité d'expatriation - 5 Indemnité pour frais - 6 Indemnité de logement - 7 Indemnité de fonction - 8 Indemnité de responsabilité - 9 Indemnité de transport - 10 Indemnité compensatrice - 11 Indemnité de subsistance - 12 Indemnité différentielle - 13 Prime d'installation - 14 Billet d'avion - 15 Déménagement - 16 Indemnité de départ - 18 Prime de 13ième mois - 19 Prime d'intérim - """ - ids = [1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19] - return [r for r in self.dae_remunerations.all() if r.type_id in ids] - - def get_charges_salariales(self): - """ - 20 Charges salariales ? - """ - ids = [20, ] - return [r for r in self.dae_remunerations.all() if r.type_id in ids] - - def get_total_charges_salariales(self): - total = 0.0 - for r in self.get_charges_salariales(): - total += r.montant_euros() - return total - - def get_charges_patronales(self): - """ - 17 Charges patronales - """ - ids = [17, ] - return [r for r in self.dae_remunerations.all() if r.type_id in ids] - - def get_total_charges_patronales(self): - total = 0.0 - for r in self.get_charges_patronales(): - total += r.montant_euros() - return total - - def get_salaire_brut(self): - """ - somme des rémuérations brutes - """ - total = 0.0 - for r in self.get_remunerations_brutes(): - total += r.montant_euros() - return total - - def get_salaire_net(self): - """ - salaire brut - charges salariales - """ - total_charges = 0.0 - for r in self.get_charges_salariales(): - total_charges += r.montant_euros() - return self.get_salaire_brut() - total_charges - - def get_couts_auf(self): - """ - salaire net + charges patronales - """ - total_charges = 0.0 - for r in self.get_charges_patronales(): - total_charges += r.montant_euros() - return self.get_salaire_net() + total_charges - - def get_remunerations_tierces(self): - """ - 2 Salaire MAD - """ - return [r for r in self.dae_remunerations.all() if r.type_id in (2, )] - - def get_total_remunerations_tierces(self): - total = 0.0 - for r in self.get_remunerations_tierces(): - total += r.montant_euros() - return total - def valide(self): return self.etat in (DOSSIER_ETAT_REGION_FINALISATION, DOSSIER_ETAT_DRH_FINALISATION, diff --git a/project/rh/models.py b/project/rh/models.py index ee41fc1..a5527b5 100644 --- a/project/rh/models.py +++ b/project/rh/models.py @@ -6,6 +6,7 @@ from decimal import Decimal from django.core.files.storage import FileSystemStorage from django.db import models +from django.db.models import Q from django.conf import settings from auf.django.emploi.models import GENRE_CHOICES, SITUATION_CHOICES # devrait plutot être dans references @@ -659,10 +660,13 @@ class Dossier_(AUFMetadata, DevisableMixin): def remunerations(self): - return self.rh_remunerations.all().order_by('date_debut') + key = "%s_remunerations" % self._meta.app_label + remunerations = getattr(self, key) + return remunerations.all().order_by('-date_debut') def remunerations_en_cours(self): - return self.rh_remunerations.all().filter(date_fin__exact=None).order_by('date_debut') + q = Q(date_fin__exact=None) | Q(date_fin__gt=datetime.date.today()) + return self.remunerations().all().filter(q).order_by('date_debut') def get_salaire(self): try: @@ -670,6 +674,98 @@ class Dossier_(AUFMetadata, DevisableMixin): except: return None + def get_salaire_euros(self): + tx = self.taux_devise() + return (float)(tx) * (float)(self.salaire) + + def get_remunerations_brutes(self): + """ + 1 Salaire de base + 3 Indemnité de base + 4 Indemnité d'expatriation + 5 Indemnité pour frais + 6 Indemnité de logement + 7 Indemnité de fonction + 8 Indemnité de responsabilité + 9 Indemnité de transport + 10 Indemnité compensatrice + 11 Indemnité de subsistance + 12 Indemnité différentielle + 13 Prime d'installation + 14 Billet d'avion + 15 Déménagement + 16 Indemnité de départ + 18 Prime de 13ième mois + 19 Prime d'intérim + """ + ids = [1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19] + return [r for r in self.remunerations_en_cours().all() if r.type_id in ids] + + def get_charges_salariales(self): + """ + 20 Charges salariales ? + """ + ids = [20, ] + return [r for r in self.remunerations_en_cours().all() if r.type_id in ids] + + def get_total_charges_salariales(self): + total = 0.0 + for r in self.get_charges_salariales(): + total += r.montant_euros() + return total + + def get_charges_patronales(self): + """ + 17 Charges patronales + """ + ids = [17, ] + return [r for r in self.remunerations_en_cours().all() if r.type_id in ids] + + def get_total_charges_patronales(self): + total = 0.0 + for r in self.get_charges_patronales(): + total += r.montant_euros() + return total + + def get_salaire_brut(self): + """ + somme des rémuérations brutes + """ + total = 0.0 + for r in self.get_remunerations_brutes(): + total += r.montant_euros() + return total + + def get_salaire_net(self): + """ + salaire brut - charges salariales + """ + total_charges = 0.0 + for r in self.get_charges_salariales(): + total_charges += r.montant_euros() + return self.get_salaire_brut() - total_charges + + def get_couts_auf(self): + """ + salaire net + charges patronales + """ + total_charges = 0.0 + for r in self.get_charges_patronales(): + total_charges += r.montant_euros() + return self.get_salaire_net() + total_charges + + def get_remunerations_tierces(self): + """ + 2 Salaire MAD + """ + return [r for r in self.remunerations_en_cours().all() if r.type_id in (2, )] + + def get_total_remunerations_tierces(self): + total = 0.0 + for r in self.get_remunerations_tierces(): + total += r.montant_euros() + return total + class Dossier(Dossier_): __doc__ = Dossier_.__doc__ diff --git a/project/rh/templates/admin/rh/dossier/apercu.html b/project/rh/templates/admin/rh/dossier/apercu.html index a4a0621..1415072 100644 --- a/project/rh/templates/admin/rh/dossier/apercu.html +++ b/project/rh/templates/admin/rh/dossier/apercu.html @@ -2,6 +2,12 @@ {% load i18n admin_modify adminmedia %} +{% block extrahead %} + {{ block.super }} + + +{% endblock %} + {% block breadcrumbs %}{% if not is_popup %}