Prechádzať zdrojové kódy

corretto modo di caricamento indice utenti

mauro 2 mesiacov pred
rodič
commit
4b14047143

+ 1 - 1
azienda/forms.py

@@ -34,7 +34,7 @@ class formSede(forms.Form):
     self.fields['cambiopassword'] = forms.BooleanField(required=False)
     self.fields['forzanuovapassword'] = forms.BooleanField(required=False)
     self.fields['otppassword'] = forms.BooleanField(required=False)
-    self.fields['identificativo'] = forms.CharField(required=False)
+    self.fields['identificativo'] = forms.CharField(required=True)
 
 class formSedePermessi(forms.Form):
   choices = []

+ 1 - 1
azienda/templates/azienda.editSede.html

@@ -21,7 +21,7 @@
       <input type='text' class='form-control form-control-lg' name='info' id='info' value='{{ sedeForm.info.value }}' {% if admin.sola_lettura %}readonly{% endif %}>
     </div>
     <div class='form-group'>
-     <label for="info">Identificativo</label>
+     <label for="info">Identificativo (Obbligatorio)</label>
       <input type='text' class='form-control form-control-lg' name='identificativo' id='identificativo' value='{{ sedeForm.identificativo.value }}' {% if admin.sola_lettura %}readonly{% endif %}>
     </div>
 

+ 7 - 2
documento/managefile.py

@@ -286,6 +286,7 @@ def save_and_load_file_indice(request,fileindice,azienda=None,sede=None):
 
   listaOk=list()
   listaNotOk=list()
+  listaNotAss=list()
 
   with open(os.path.join(fl_path,file_memorizzato),'rb') as ind:
     risultato = ind.read()
@@ -299,6 +300,7 @@ def save_and_load_file_indice(request,fileindice,azienda=None,sede=None):
     
     with open(os.path.join(fl_path,''.join((file_memorizzato,'.cvtd'))),'rt') as ind:
         spamreader = csv.reader(ind,delimiter=';')
+        next(spamreader,None) #salta l'intestazione
         count = 0
         for sr in spamreader:
           salvare = False
@@ -313,14 +315,16 @@ def save_and_load_file_indice(request,fileindice,azienda=None,sede=None):
             print('codice fiscale',sr[1].strip().upper())
             try:
               utente = Utente.objects.get(codicefiscale=sr[1].strip().upper())
-              listaNotOk.append({"nome":utente.nome,"codicefiscale":utente.codicefiscale,"errore":"già presente"})
+              listaNotAss.append({"nome":utente.nome,"codicefiscale":utente.codicefiscale,"errore":"già presente"})
             except Utente.DoesNotExist as dne:
               print('Utente non trovato')
               utente = Utente()
+
               if azienda: utente.azienda = azienda
               if sede: utente.sede = sede
 
               utente.nome = sr[0].strip().title()
+
               utente.codicefiscale=sr[1].strip().upper()
 
               for fmt in ('%d/%m/%y','%d/%m/%Y','%d-%m-%y','%d-%m-%Y'):
@@ -351,6 +355,7 @@ def save_and_load_file_indice(request,fileindice,azienda=None,sede=None):
               utente.inserimento = datetime.datetime.today().strftime("%Y-%m-%d")
 
               utente.pin = str(randint(100000,999999))
+
               if len(utente.codicefiscale) == 16:
                 utente.save()
                 listaOk.append({"nome":utente.nome,"codicefiscale":utente.codicefiscale})
@@ -358,7 +363,7 @@ def save_and_load_file_indice(request,fileindice,azienda=None,sede=None):
                 print("Codice Fiscale NON valido o mancante")
                 listaNotOk.append({"nome":utente.nome,"codicefiscale":utente.codicefiscale,"errore":"Codice Fiscale"})
 
-  return (listaOk,listaNotOk,count)
+  return (listaOk,listaNotOk,listaNotAss,count)
 
 def PrepareZipFile(listafile=[]):
   zip_path = os.path.join(settings.BASE_DIR,getConfig('DocZipFile'))

+ 1 - 1
documento/templates/documento.stato.html

@@ -1,6 +1,6 @@
 <!-- Modal -->
   <div class="modal fade" id="StatoDocumentiCaricatiId" tabindex="-1" role="dialog" aria-labelledby="StatoDocumentiCaricati" aria-hidden="false">
-    <div class="modal-dialog" role="document">
+    <div class="modal-dialog modal-xl" role="document">
       <div class="modal-content">
         <div class="modal-header">
           <h5 class="modal-title" id="SdcLabel">Stato Documenti Caricati</h5>

+ 74 - 0
utente/templates/utente.stato.html

@@ -0,0 +1,74 @@
+<!-- Modal -->
+  <div class="modal fade" id="StatoDocumentiCaricatiId" tabindex="-1" role="dialog" aria-labelledby="StatoDocumentiCaricati" aria-hidden="false">
+    <div class="modal-dialog modal-lg" role="document">
+      <div class="modal-content">
+        <div class="modal-header">
+          <h5 class="modal-title" id="SdcLabel">Stato Dipendenti Caricati</h5>
+        </div>
+        <div class="modal-body">
+          <div>Totale dei record analizzati: {{ count }}</div>
+          {% if listaok %}
+            <div>Sono stati caricati {{ listaoklen }} dipendenti</div>
+            <table class='table table-striped table-hover'>
+              <thead class='thead-dark'>
+                <tr>
+                  <th scope='col'>Dipendenti caricato con successo</th>
+                </tr>
+              </thead>
+              <tbody>
+                {% for l in listaok %}
+                  <tr>
+                    <td> {{ l }} </td>
+                  </tr>
+                {% endfor %}
+              </tbody>
+            </table>
+          {% endif %}
+
+	<div><br></div>
+
+        {% if listanotok %}
+          <div>Sono stati rifiutati {{ listanotoklen }} dipendentii</div>
+          <table class='table table-striped table-hover'>
+            <thead class='thead-dark'>
+              <tr>
+                <th scope='col'>Dipendenti non caricati perche già presente</th>
+              </tr>
+            </thead>
+            <tbody>
+              {% for l in listanotok %}
+                <tr>
+                  <td> {{ l }} </td>
+                </tr>
+              {% endfor %}
+            </tbody>
+          </table>
+
+          <div>Non sono stati caricati {{ listanotasslen }} dipendentii</div>
+          <table class='table table-striped table-hover'>
+            <thead class='thead-dark'>
+              <tr>
+                <th scope='col'>Dipendenti Non validi o non associabili</th>
+              </tr>
+            </thead>
+            <tbody>
+              {% for l in listanotass %}
+                <tr>
+                  <td> {{ l }} </td>
+                </tr>
+              {% endfor %}
+            </tbody>
+          </table>
+        {% endif %}
+
+        <div class="modal-footer">
+          <form name='SDCModal' method='POST'>
+            {% csrf_token %}
+            <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Chiudi/Annulla</button>
+          </form>
+        </div>
+      </div>
+    </div>
+  </div>
+<!-- end modal -->
+

+ 2 - 2
utente/templates/utente.welcome.html

@@ -9,7 +9,7 @@ function toggleCSV(source) {
   }
 }
 
-{% if listaok or listanotok %}
+{% if listaok or listanotok or listanotass %}
   $(window).on('load', function() {
       $('#StatoDocumentiCaricatiId').modal('show');
     });
@@ -136,6 +136,6 @@ function toggleCSV(source) {
 {% endblock %}
 
 {% block bodybottom %}
-  {% include "documento.stato.html" %}
+  {% include "utente.stato.html" %}
 {% endblock %}
 

+ 7 - 2
utente/views.py

@@ -126,10 +126,15 @@ def welcome(request):
           print('record filecaricati validi')
           print('presente file indice')
           fileindiceottenuto = fileindicecaricato.cleaned_data.get('indice')
-          listaok,listanotok,count = save_and_load_file_indice(request,fileindiceottenuto,data['azienda'],data['sede'])
+          listaok,listanotok,listanotass,count = save_and_load_file_indice(request,fileindiceottenuto,data['azienda'],data['sede'])
           data['listaok'] = listaok
+          data['listaoklen'] = len(listaok)
           data['listanotok'] = listanotok
-          data['count'] = count
+          data['listanotoklen'] = len(listanotok)
+          data['listanotass'] = listanotass
+          data['listanotasslen'] = len(listanotass)
+          data['count'] = count #totale dei record letti
+
         else:
           print('request non valida')