浏览代码

modificato azienda.views: ora riconosce la partita iva doppia

mauro 8 月之前
父节点
当前提交
a7cf0a5bfc

+ 8 - 0
azienda/forms.py

@@ -1,4 +1,5 @@
 from django import  forms
+from .models import Azienda
 
 class formAzienda(forms.Form):
   def __init__(self,*args,**kwargs):
@@ -11,6 +12,13 @@ class formAzienda(forms.Form):
     self.fields['otppassword'] = forms.BooleanField(required=False)
     self.fields['cancellaazienda'] = forms.BooleanField(required=False)
 
+  def clean_partitaiva(self):
+    print("###### check partitaIVA")
+    a = Azienda.objects.get(partitaiva = self.data['partitaiva'])
+    if a:
+      raise forms.ValidationError("PartitaIVA gia' presente")
+    return self.data['partitaiva']
+
 class formAziendaPermessi(forms.Form):
   choices = []
   def __init__(self,*args,amministratori=[],permessi=[],**kwargs):

+ 21 - 0
azienda/migrations/0018_remove_azienda_unique_azienda_azienda_unique_azienda.py

@@ -0,0 +1,21 @@
+# Generated by Django 5.1.6 on 2025-04-01 14:59
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('azienda', '0017_assegnazioneazienda_crea_azienda_and_more'),
+    ]
+
+    operations = [
+        migrations.RemoveConstraint(
+            model_name='azienda',
+            name='unique-azienda',
+        ),
+        migrations.AddConstraint(
+            model_name='azienda',
+            constraint=models.UniqueConstraint(fields=('partitaiva',), name='unique-azienda'),
+        ),
+    ]

+ 26 - 0
azienda/migrations/0019_remove_azienda_unique_azienda_and_more.py

@@ -0,0 +1,26 @@
+# Generated by Django 5.1.6 on 2025-04-01 15:00
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('azienda', '0018_remove_azienda_unique_azienda_azienda_unique_azienda'),
+    ]
+
+    operations = [
+        migrations.RemoveConstraint(
+            model_name='azienda',
+            name='unique-azienda',
+        ),
+        migrations.AlterField(
+            model_name='azienda',
+            name='partitaiva',
+            field=models.CharField(default='', max_length=11, unique=True),
+        ),
+        migrations.AddConstraint(
+            model_name='azienda',
+            constraint=models.UniqueConstraint(fields=('nome', 'partitaiva'), name='unique-azienda'),
+        ),
+    ]

+ 24 - 0
azienda/migrations/0020_alter_azienda_nome_alter_sede_azienda.py

@@ -0,0 +1,24 @@
+# Generated by Django 5.1.6 on 2025-04-01 15:01
+
+import django.db.models.deletion
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('azienda', '0019_remove_azienda_unique_azienda_and_more'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='azienda',
+            name='nome',
+            field=models.CharField(default='', max_length=132, unique=True),
+        ),
+        migrations.AlterField(
+            model_name='sede',
+            name='azienda',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='azienda.azienda'),
+        ),
+    ]

+ 3 - 3
azienda/models.py

@@ -6,8 +6,8 @@ class Azienda(models.Model):
    questa classe definisce le società che gengono gestite dal programma.
    ogni utente può gestire una o più società.
    '''
-   nome = models.CharField(max_length=132,null=False,default="")
-   partitaiva = models.CharField(max_length=11,null=False,default="")
+   nome = models.CharField(max_length=132,null=False,default="",unique=True)
+   partitaiva = models.CharField(max_length=11,null=False,default="",unique=True)
    mail = models.CharField(max_length=256,null=False,default="")
    comm=models.CharField(max_length=256,null=False,default="") # email usata come mittente per le comunicazioni
    cambiopassword = models.BooleanField(null=False,default=False)
@@ -32,7 +32,7 @@ class Sede(models.Model):
     nome = models.CharField(max_length=132,null=False,default="")
     info = models.CharField(max_length=256,null=False,default="")
     identificativo = models.CharField(max_length=10,null=False,default="")
-    azienda = models.ForeignKey(Azienda,on_delete=models.PROTECT)
+    azienda = models.ForeignKey(Azienda,on_delete=models.CASCADE)
     cambiopassword = models.BooleanField(null=False,default=False)
     forzanuovapassword = models.BooleanField(null=False,default=False)
     otppassword = models.BooleanField(null=False,default=False)