ajouté la section du coût global
authorNicolas Cadou <ncadou@cadou.ca>
Fri, 8 Apr 2011 04:45:19 +0000 (00:45 -0400)
committerNicolas Cadou <ncadou@cadou.ca>
Fri, 8 Apr 2011 04:45:19 +0000 (00:45 -0400)
project/dae/migrations/0011_auto__del_groupetyperemuneration__del_typeremuneration__del_field_remu.py [new file with mode: 0644]
project/dae/models.py
project/dae/templates/dae/embauche-remun.html [new file with mode: 0644]
project/dae/templates/dae/embauche.html
project/dae/urls.py
project/dae/views.py
project/rh_v1/models.py

diff --git a/project/dae/migrations/0011_auto__del_groupetyperemuneration__del_typeremuneration__del_field_remu.py b/project/dae/migrations/0011_auto__del_groupetyperemuneration__del_typeremuneration__del_field_remu.py
new file mode 100644 (file)
index 0000000..e83a146
--- /dev/null
@@ -0,0 +1,438 @@
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting model 'GroupeTypeRemuneration'
+        db.delete_table('dae_groupetyperemuneration')
+
+        # Deleting model 'TypeRemuneration'
+        db.delete_table('dae_typeremuneration')
+
+        # Deleting field 'Remuneration.desactivation'
+        db.delete_column('dae_remuneration', 'desactivation')
+
+        # Deleting field 'Remuneration.annulation'
+        db.delete_column('dae_remuneration', 'annulation')
+
+        # Deleting field 'Remuneration.user_desactivation'
+        db.delete_column('dae_remuneration', 'user_desactivation')
+
+        # Deleting field 'Remuneration.date_desactivation'
+        db.delete_column('dae_remuneration', 'date_desactivation')
+
+        # Deleting field 'Remuneration.pourcentage'
+        db.delete_column('dae_remuneration', 'pourcentage')
+
+        # Deleting field 'Remuneration.date_effective'
+        db.delete_column('dae_remuneration', 'date_effective')
+
+        # Deleting field 'Remuneration.date_annulation'
+        db.delete_column('dae_remuneration', 'date_annulation')
+
+        # Deleting field 'Remuneration.user_annulation'
+        db.delete_column('dae_remuneration', 'user_annulation')
+
+        # Adding field 'Remuneration.precision'
+        db.add_column('dae_remuneration', 'precision', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True), keep_default=False)
+
+        # Changing field 'Remuneration.montant'
+        db.alter_column('dae_remuneration', 'montant', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=12, decimal_places=2))
+
+        # Changing field 'Remuneration.type'
+        db.alter_column('dae_remuneration', 'type', self.gf('django.db.models.fields.related.ForeignKey')(db_column='type', to=orm['rh_v1.TypeRemuneration']))
+
+        # Changing field 'Remuneration.id'
+        db.alter_column('dae_remuneration', 'id', self.gf('django.db.models.fields.AutoField')(primary_key=True))
+    
+    
+    def backwards(self, orm):
+        
+        # Adding model 'GroupeTypeRemuneration'
+        db.create_table('dae_groupetyperemuneration', (
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('ordre', self.gf('django.db.models.fields.IntegerField')()),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('dae', ['GroupeTypeRemuneration'])
+
+        # Adding model 'TypeRemuneration'
+        db.create_table('dae_typeremuneration', (
+            ('groupe', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['dae.GroupeTypeRemuneration'])),
+            ('ordre', self.gf('django.db.models.fields.IntegerField')()),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('dae', ['TypeRemuneration'])
+
+        # Adding field 'Remuneration.desactivation'
+        db.add_column('dae_remuneration', 'desactivation', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Remuneration.annulation'
+        db.add_column('dae_remuneration', 'annulation', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Remuneration.user_desactivation'
+        db.add_column('dae_remuneration', 'user_desactivation', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Remuneration.date_desactivation'
+        db.add_column('dae_remuneration', 'date_desactivation', self.gf('django.db.models.fields.DateField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Remuneration.pourcentage'
+        db.add_column('dae_remuneration', 'pourcentage', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Remuneration.date_effective'
+        db.add_column('dae_remuneration', 'date_effective', self.gf('django.db.models.fields.DateField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Remuneration.date_annulation'
+        db.add_column('dae_remuneration', 'date_annulation', self.gf('django.db.models.fields.DateField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Remuneration.user_annulation'
+        db.add_column('dae_remuneration', 'user_annulation', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True), keep_default=False)
+
+        # Deleting field 'Remuneration.precision'
+        db.delete_column('dae_remuneration', 'precision')
+
+        # Changing field 'Remuneration.montant'
+        db.alter_column('dae_remuneration', 'montant', self.gf('django.db.models.fields.DecimalField')(max_digits=12, decimal_places=2))
+
+        # Changing field 'Remuneration.type'
+        db.alter_column('dae_remuneration', 'type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['dae.TypeRemuneration'], db_column='type'))
+
+        # Changing field 'Remuneration.id'
+        db.alter_column('dae_remuneration', 'id', self.gf('django.db.models.fields.IntegerField')(primary_key=True))
+    
+    
+    models = {
+        'dae.documentemploye': {
+            'Meta': {'object_name': 'DocumentEmploye'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+        },
+        'dae.documentposte': {
+            'Meta': {'object_name': 'DocumentPoste'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+        },
+        'dae.dossier': {
+            'Meta': {'object_name': 'Dossier'},
+            'classement': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Classement']"}),
+            'classement_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+            'classement_titulaire_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+            'compte_compta': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'compte_courriel': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'contrat_date_debut': ('django.db.models.fields.DateField', [], {}),
+            'contrat_date_fin': ('django.db.models.fields.DateField', [], {}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['dae.Employe']"}),
+            'employe_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Employe']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.OrganismeBstg']"}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['dae.Poste']"}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}),
+            'remplacement': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'salaire': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+            'salaire_anterieur': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'salaire_titulaire_anterieur': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Statut']"}),
+            'statut_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Statut']"}),
+            'statut_residence': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'statut_titulaire_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Statut']"}),
+            'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.TypeContrat']"})
+        },
+        'dae.employe': {
+            'Meta': {'object_name': 'Employe'},
+            'genre': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'id_rh': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Employe']"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'dae.justificationemploye': {
+            'Meta': {'object_name': 'JustificationEmploye'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+        },
+        'dae.justificationposte': {
+            'Meta': {'object_name': 'JustificationPoste'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+        },
+        'dae.poste': {
+            'Meta': {'object_name': 'Poste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'appel': ('django.db.models.fields.CharField', [], {'default': "'interne'", 'max_length': '10'}),
+            'autre_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'autre_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'classement_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Classement']"}),
+            'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Classement']"}),
+            'coefficient_max': ('django.db.models.fields.FloatField', [], {'null': 'True'}),
+            'coefficient_min': ('django.db.models.fields.FloatField', [], {'null': 'True'}),
+            'comp_autre_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_autre_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_fonctionpub_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_fonctionpub_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_locale_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_locale_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_ong_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_ong_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_universite_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_universite_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'devise_comparaison': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+            'devise_max': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+            'devise_min': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'id_rh': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Poste']"}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']"}),
+            'indemn_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'indemn_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'mise_a_disposition': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100', 'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '40', 'max_digits': '12', 'decimal_places': '2'}),
+            'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Poste']"}),
+            'salaire_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'salaire_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'service': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Service']"}),
+            'statut_residence': ('django.db.models.fields.CharField', [], {'default': "'MAD'", 'max_length': '10'}),
+            'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.TypePoste']"}),
+            'valeur_point_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.ValeurPoint']"}),
+            'valeur_point_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.ValeurPoint']"})
+        },
+        'dae.postefinancement': {
+            'Meta': {'object_name': 'PosteFinancement'},
+            'commentaire': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'montant': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'financements'", 'to': "orm['dae.Poste']"}),
+            'pourcentage': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '1'})
+        },
+        'dae.remuneration': {
+            'Meta': {'object_name': 'Remuneration'},
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to_field': "'code'", 'db_column': "'devise'", 'to': "orm['rh_v1.Devise']"}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']", 'db_column': "'dossier'"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'montant': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+            'precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type'", 'to': "orm['rh_v1.TypeRemuneration']"}),
+            'user_creation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'dae.validation': {
+            'Meta': {'object_name': 'Validation'},
+            'date': ('django.db.models.fields.DateField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+        },
+        'dae.validationemploye': {
+            'Meta': {'object_name': 'ValidationEmploye'},
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Employe']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+        },
+        'dae.validationposte': {
+            'Meta': {'object_name': 'ValidationPoste'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Poste']"})
+        },
+        'datamaster_modeles.bureau': {
+            'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"})
+        },
+        'datamaster_modeles.implantation': {
+            'Meta': {'object_name': 'Implantation', 'db_table': "u'ref_implantation'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'adresse_physique_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_physique_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'adresse_physique_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_physique_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_physique'", 'to_field': "'code'", 'db_column': "'adresse_physique_pays'", 'to': "orm['datamaster_modeles.Pays']"}),
+            'adresse_physique_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'adresse_postale_boite_postale': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'adresse_postale_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_postale'", 'to_field': "'code'", 'db_column': "'adresse_postale_pays'", 'to': "orm['datamaster_modeles.Pays']"}),
+            'adresse_postale_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'bureau_rattachement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'bureau_rattachement'"}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'code_meteo': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'courriel': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'courriel_interne': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'date_extension': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fermeture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_inauguration': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_ouverture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'fax': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'fax_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'fuseau_horaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'hebergement_convention': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'hebergement_convention_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'hebergement_etablissement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'modif_date': ('django.db.models.fields.DateField', [], {}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"}),
+            'remarque': ('django.db.models.fields.TextField', [], {}),
+            'responsable_implantation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'statut': ('django.db.models.fields.IntegerField', [], {}),
+            'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'telephone_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'url': ('django.db.models.fields.URLField', [], {'max_length': '255', 'blank': 'True'})
+        },
+        'datamaster_modeles.pays': {
+            'Meta': {'object_name': 'Pays', 'db_table': "u'ref_pays'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2'}),
+            'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Bureau']", 'to_field': "'code'", 'db_column': "'code_bureau'"}),
+            'code_iso3': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3', 'blank': 'True'}),
+            'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'monnaie': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nord_sud': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"})
+        },
+        'datamaster_modeles.region': {
+            'Meta': {'object_name': 'Region', 'db_table': "u'ref_region'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'gere_region'", 'db_column': "'implantation_bureau'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.classement': {
+            'Meta': {'object_name': 'Classement'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'coefficient': ('django.db.models.fields.FloatField', [], {}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'degre': ('django.db.models.fields.IntegerField', [], {}),
+            'echelon': ('django.db.models.fields.IntegerField', [], {}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.devise': {
+            'Meta': {'object_name': 'Devise'},
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.employe': {
+            'Meta': {'object_name': 'Employe'},
+            'adresse': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'code_postal': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_maj': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'genre': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nationalite'", 'to_field': "'code'", 'db_column': "'nationalite'", 'to': "orm['datamaster_modeles.Pays']"}),
+            'no_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pays'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['datamaster_modeles.Pays']", 'blank': 'True', 'null': 'True'}),
+            'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'province': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'situation_famille': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+            'tel_cellulaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'tel_domicile': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'ville': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'rh_v1.familleemploi': {
+            'Meta': {'object_name': 'FamilleEmploi'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.organismebstg': {
+            'Meta': {'object_name': 'OrganismeBstg'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.poste': {
+            'Meta': {'object_name': 'Poste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'proportion': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypePoste']", 'db_column': "'type_poste'"})
+        },
+        'rh_v1.service': {
+            'Meta': {'object_name': 'Service'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.statut': {
+            'Meta': {'object_name': 'Statut'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '25'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type_contrat_categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.typecontrat': {
+            'Meta': {'object_name': 'TypeContrat'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.typeposte': {
+            'Meta': {'object_name': 'TypePoste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'famille_emploi': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.FamilleEmploi']", 'db_column': "'famille_emploi'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.typeremuneration': {
+            'Meta': {'object_name': 'TypeRemuneration'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nature_remuneration': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type_paiement': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+        },
+        'rh_v1.valeurpoint': {
+            'Meta': {'object_name': 'ValeurPoint'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'valeur': ('django.db.models.fields.FloatField', [], {})
+        }
+    }
+    
+    complete_apps = ['dae']
index ef533b7..8c6e55a 100644 (file)
@@ -301,27 +301,29 @@ class Dossier(models.Model):
 
 class Remuneration(models.Model):
     # Identification
-    id = models.IntegerField(primary_key=True)
     dossier = models.ForeignKey('Dossier', db_column='dossier')
-    type = models.ForeignKey('TypeRemuneration', db_column='type')
+    type = models.ForeignKey(rh.TypeRemuneration, db_column='type',
+                             related_name='+')
     # TODO: what's that?
     # type_revalorisation = models.ForeignKey('TypeRevalorisation',
                                             # db_column='type_revalorisation')
-    montant = models.DecimalField(max_digits=12, decimal_places=2)  # Annuel
+    montant = models.DecimalField(max_digits=12, decimal_places=2,
+                                  null=True)  # Annuel
     devise = models.ForeignKey(rh.Devise, to_field='code',
                                db_column='devise', related_name='+')
-    date_effective = models.DateField(null=True, blank=True)
-    pourcentage = models.IntegerField(null=True, blank=True)
+    precision = models.CharField(max_length=255, null=True, blank=True)
+    # date_effective = models.DateField(null=True, blank=True)
+    # pourcentage = models.IntegerField(null=True, blank=True)
 
     # Méta
     date_creation = models.DateField(auto_now_add=True)
     user_creation = models.IntegerField(null=True, blank=True)
-    desactivation = models.BooleanField(default=False, blank=True)
-    date_desactivation = models.DateField(null=True, blank=True)
-    user_desactivation = models.IntegerField(null=True, blank=True)
-    annulation = models.BooleanField(default=False, blank=True)
-    date_annulation = models.DateField(null=True, blank=True)
-    user_annulation = models.IntegerField(null=True, blank=True)
+    # desactivation = models.BooleanField(default=False, blank=True)
+    # date_desactivation = models.DateField(null=True, blank=True)
+    # user_desactivation = models.IntegerField(null=True, blank=True)
+    # annulation = models.BooleanField(default=False, blank=True)
+    # date_annulation = models.DateField(null=True, blank=True)
+    # user_annulation = models.IntegerField(null=True, blank=True)
 
 
 class JustificationPoste(models.Model):
@@ -353,13 +355,3 @@ class ValidationPoste(models.Model):
 
 class ValidationEmploye(models.Model):
     employe = models.ForeignKey('Employe')
-
-
-class TypeRemuneration(models.Model):
-    ordre = models.IntegerField()
-    groupe = models.ForeignKey('GroupeTypeRemuneration')
-
-
-class GroupeTypeRemuneration(models.Model):
-    nom = models.CharField(max_length=255)
-    ordre = models.IntegerField()
diff --git a/project/dae/templates/dae/embauche-remun.html b/project/dae/templates/dae/embauche-remun.html
new file mode 100644 (file)
index 0000000..97997f2
--- /dev/null
@@ -0,0 +1,29 @@
+<tr>
+  <th>Type</th>
+  <th colspan="2">Devise locale</th>
+  <th colspan="2">Conversion en Euros</th>
+  <th>Précision</th>
+</tr>
+{% for remun in dossier.remuneration_set.all %}
+  <tr>
+    <td>{{ remun.type }}</td>
+    <td>
+        {{ remun.devise }}
+        <input name="montant_mois-{{ remun.id }}"
+               value="{{ remun.montant_mois }}" /></td>
+    <td><input name="cg-montant-{{ remun.id }}"
+               value="{{ remun.montant|default_if_none:'' }}" /></td>
+    <td><input name="montant_euro_mois-{{ remun.id }}"
+               value="{{ remun.montant_euro_mois }}" /></td>
+    <td><input name="montant_euro-{{ remun.id }}"
+               value="{{ remun.montant_euro }}" /></td>
+    <td><input name="cg-precision-{{ remun.id }}"
+               value="{{ remun.precision|default_if_none:'' }}" /></td>
+  </tr>
+{% empty %}
+  <tr>
+    <td colspan="6">
+      Aucun coût au registre
+    </td>
+  </tr>
+{% endfor %}
index 1d1e55b..8f492a8 100644 (file)
 
         activateDossierDropDowns();
       </script>
+
+      <fieldset>
+        <h2>Coût global</h2>
+
+        {% if new %}
+          <p>
+            Vous devez enregister ce dossier avant de pouvoir détailler le
+            coût global.
+          </p>
+        {% else %}
+          <table cellspacing="0" id="global-cost">
+            {% include 'dae/embauche-remun.html' %}
+          </table>
+
+          <select id="type-remun" name="type-remun">
+            <option value="">(Ajouter une ligne)</option>
+            {% for tr in type_remun %}
+              <option value="{{ tr.id }}">{{ tr.nom }}</option>
+            {% endfor %}
+          </select>
+        {% endif %}
+
+      </fieldset>
+
       <input type="submit" name="save" value="Sauvegarder" />
-    {% endif %}
-  </form>
+    </form>
+    <script type="text/javascript">
+        $('#type-remun').change(function() {
+            if ($(this).val() != '') {
+                $('#global-cost').html('<tr><td>Chargement...</td></tr>')
+                                 .load('{% url add_remun %}/' +
+                                       $('#dossier').val() + '/' +
+                                       $(this).val(), function() {
+                    $('#type-remun').val('');
+                });
+            }
+        });
+    </script>
+  {% endif %}
 {% endblock %}
 
index b6fc092..a16628c 100644 (file)
@@ -25,4 +25,7 @@ urlpatterns = patterns(
     url(r'^valeur$', 'valeur', name='dae_valeur'),
     url(r'^devise$', 'devise', name='dae_devise'),
     url(r'^devise/code$', 'devise_code', name='dae_devise_code'),
+    url(r'^add-remun$', 'add_remun', name='add_remun'),
+    url(r'^add-remun/(?P<dossier>.*)/(?P<type_remun>.*)$', 'add_remun',
+        name='add_remun'),
 )
index 5fb7e5a..c9034ef 100644 (file)
@@ -1,4 +1,5 @@
 # -*- encoding: utf-8 -*-
+from collections import defaultdict
 from datetime import date
 from json import dumps
 import warnings
@@ -112,15 +113,23 @@ def financement(request, key=None, id=None):
     return render_to_response(template, vars, RequestContext(request))
 
 
+def filtered_type_remun():
+    # Exclusion de "Indemnité de fonction" des types de rémun utilisés
+    return rh.TypeRemuneration.objects.exclude(pk=7)
+
 def embauche(request, key=None, dossier=None):
     """ Formulaire d'autorisation d'embauche. """
     if not key:
         vars = dict(step='poste', form=ChoosePosteForm())
     else:
+        type_remun = filtered_type_remun()
+        vars = dict(type_remun=type_remun)
         source, id = key.split('-')
         if source != 'dae':
             return Http404
         poste = get_object_or_404(dae.Poste, pk=id)
+        if not dossier:
+            vars['new'] = True
 
         if request.POST:
             if request.POST['employe'] == '':
@@ -149,13 +158,40 @@ def embauche(request, key=None, dossier=None):
                         employe = employe_form.save()
                     data['employe'] = 'dae-%s' % employe.id
                     employe_form = EmployeForm(data, instance=employe)
+
                 if not dossier:
                     dossier = dae.Dossier(poste=poste, employe=employe)
                 else:
                     dossier = get_object_or_404(dae.Dossier, pk=dossier)
                 dossier_form = DossierForm(request.POST, instance=dossier)
+
                 if dossier_form.is_valid():
                     dossier = dossier_form.save()
+                    if not dossier.remuneration_set.all():
+                        # Pré-peuplement des entrées de la section "coût
+                        # global", à l'exclusion de "Indemnité de fonction"
+                        for type in type_remun.all():
+                            dae.Remuneration(dossier=dossier, type=type,
+                                             devise=dossier.devise).save()
+
+                    else:
+                        # Sauvegarde du coût global
+                        cg_lines = defaultdict(dict)
+                        for k, v in request.POST.items():
+                            if k.startswith('cg-'):
+                                prefix, field_name, cg_id = k.split('-')
+                                cg_lines[int(cg_id)][unicode(field_name)] = v
+
+                        for r in dossier.remuneration_set.all():
+                            print 'trying %r' % r
+                            if r.id in cg_lines:
+                                if cg_lines[r.id]['montant'] == '':
+                                   r.delete()
+                                else:
+                                    for k, v in cg_lines[r.id].items():
+                                        setattr(r, k, v)
+                                        r.save()
+
                     return redirect('embauche', key='dae-%s' % poste.id,
                                     dossier=dossier.id)
             else:
@@ -174,7 +210,7 @@ def embauche(request, key=None, dossier=None):
                 employe_form = EmployeForm()
             dossier_form = DossierForm(instance=dossier)
 
-        vars = dict(step='employe', poste=poste, dossier=dossier,
+        vars.update(step='employe', poste=poste, dossier=dossier,
                     forms=dict(employe=employe_form, dossier=dossier_form))
 
     return render_to_response('dae/embauche.html', vars,
@@ -363,3 +399,12 @@ def devise_code(request):
         data['taux_euro'] = taux[0].taux
     return HttpResponse(dumps(data))
 
+
+def add_remun(request, dossier, type_remun):
+    dossier = get_object_or_404(dae.Dossier, pk=dossier)
+    type_remun = get_object_or_404(rh.TypeRemuneration, pk=type_remun)
+    dae.Remuneration(dossier=dossier, devise=dossier.devise,
+                     type=type_remun).save()
+
+    return render_to_response('dae/embauche-remun.html', dict(dossier=dossier),
+                              RequestContext(request))
index acd4b67..efe943d 100644 (file)
@@ -198,7 +198,11 @@ class TypeRemuneration(models.Model):
     nature_remuneration = models.CharField(max_length=30, choices=NATURE_REMUNERATION_CHOICES)
     #Méta
     actif = models.BooleanField()
-        
+
+    def __unicode__(self):
+        return u'%s' % self.nom
+
+
 class TypeRevalorisation(models.Model):
     #Identification
     id = models.IntegerField(primary_key=True)