ソースを参照

print nomi errore

FabioFratini 8 ヶ月 前
コミット
e7c02e2c4a

+ 33 - 14
app/Http/Livewire/RecordOUT.php

@@ -56,7 +56,7 @@ class RecordOUT extends Component
         $amount,
         $note,
         $commercial, $update = false, $add = false;
-        public $attachment;
+    public $attachment;
 
     public $filterSupplier = 0, $filterPaymentMethod = 0, $filterCausals = [], $filterFrom = '', $filterTo = '', $filterCommercial = 0;
 
@@ -377,7 +377,7 @@ class RecordOUT extends Component
     public function store()
     {
         $this->emit('refresh');
-/*
+        /*
         if ($this->attachment) {
             Log::info("Attachment: " . json_encode($this->attachment));
             $name = md5($this->attachment . microtime()) . '.' . $this->attachment->extension();
@@ -769,6 +769,9 @@ class RecordOUT extends Component
             $updateCount = 0;
             $errorsCount = 0;
             $errorMessages = [];
+            $importedFiles = [];
+            $updatedFiles = [];
+            $errorFiles = [];
             $totalFiles = count($this->receiptFiles);
 
             // disabilita select
@@ -806,24 +809,25 @@ class RecordOUT extends Component
                         $record = $this->updateRecord($existingRecord, $paymentMethodId, $fatturaData);
                         $isUpdate = true;
                         $updateCount++;
+                        $updatedFiles[] = $fileName; // Aggiungiamo il nome del file alla lista degli aggiornati
                         Log::info("Fattura aggiornata con successo: {$fatturaData['numeroFattura']}, Fornitore: {$supplier->name}");
                     } else {
                         // Crea un nuovo record
                         $record = $this->createRecord($supplier->id, $paymentMethodId, $fatturaData);
                         $importCount++;
+                        $importedFiles[] = $fileName; // Aggiungiamo il nome del file alla lista degli importati
                         Log::info("Fattura importata con successo: {$fatturaData['numeroFattura']}, Fornitore: {$supplier->name}");
                     }
 
-
                     // Crea il record row
                     $this->createRecordRow($record->id, $fatturaData);
 
-                    //$importCount++;
                     Log::info("Fattura importata con successo: {$fatturaData['numeroFattura']}, Fornitore: {$fatturaData['denominazione']} OR {$fatturaData['cognome']}, {$fatturaData['nome']}");
                 } catch (\Exception $e) {
                     $errorMsg = 'Errore durante l\'importazione della fattura';
                     if (isset($fileName)) {
                         $errorMsg .= " ($fileName)";
+                        $errorFiles[] = $fileName; // Aggiungiamo il nome del file alla lista degli errori
                     }
                     $errorMsg .= ': ' . $e->getMessage();
 
@@ -836,8 +840,8 @@ class RecordOUT extends Component
                 $this->emit('update-progress', $progress);
             }
 
-            $this->showResultMessages($importCount, $updateCount, $errorsCount);
-        }  catch (\Exception $e) {
+            $this->showResultMessages($importCount, $updateCount, $errorsCount, $importedFiles, $updatedFiles, $errorFiles, $errorMessages);
+        } catch (\Exception $e) {
             $errorMsg = 'Errore durante l\'importazione dei file XML: ' . $e->getMessage();
             Log::error($errorMsg);
             $this->emit('show-import-result', [
@@ -931,7 +935,7 @@ class RecordOUT extends Component
             $data['linee'] = [];
             if (isset($bodyNode->DatiBeniServizi) && isset($bodyNode->DatiBeniServizi->DettaglioLinee)) {
                 foreach ($bodyNode->DatiBeniServizi->DettaglioLinee as $index => $linea) {
-                    if(isset($linea->Quantita)) {
+                    if (isset($linea->Quantita)) {
                         $lineaData = [
                             'numeroLinea' => (int)($linea->NumeroLinea ?? ($index + 1)),
                             'descrizione' => (string)($linea->Descrizione ?? ''),
@@ -1357,29 +1361,44 @@ class RecordOUT extends Component
         return $condizioniPagamento[$codice] ?? $codice;
     }
 
-    private function showResultMessages($importCount, $updateCount, $errorsCount)
+    private function showResultMessages($importCount, $updateCount, $errorsCount, $importedFiles = [], $updatedFiles = [], $errorFiles = [], $errorMessages = [])
     {
         $message = "";
         $messageType = "success";
 
         if ($importCount > 0) {
             $message .= "Importate $importCount nuove fatture.<br>";
+            if (!empty($importedFiles)) {
+                $message .= "<details><summary>File importati (clicca per espandere)</summary><ul>";
+                foreach ($importedFiles as $file) {
+                    $message .= "<li>" . htmlspecialchars($file) . "</li>";
+                }
+                $message .= "</ul></details><br>";
+            }
         }
 
         if ($updateCount > 0) {
             $message .= "Aggiornate $updateCount fatture esistenti.<br>";
+            if (!empty($updatedFiles)) {
+                $message .= "<details><summary>File aggiornati (clicca per espandere)</summary><ul>";
+                foreach ($updatedFiles as $file) {
+                    $message .= "<li>" . htmlspecialchars($file) . "</li>";
+                }
+                $message .= "</ul></details><br>";
+            }
         }
 
         if ($errorsCount > 0) {
             $message .= "$errorsCount fatture non sono state importate a causa di errori.<br>";
 
             // Aggiungi i dettagli degli errori se disponibili
-            if (!empty($errorMessages)) {
-                $message .= "<details><summary>Dettagli errori (clicca per espandere)</summary><ul>";
-                foreach ($errorMessages as $errorMsg) {
-                    $message .= "<li>" . htmlspecialchars($errorMsg) . "</li>";
+            if (!empty($errorFiles)) {
+                $message .= "<details><summary>File con errori (clicca per espandere)</summary><ul>";
+                foreach ($errorFiles as $index => $file) {
+                    $errorMessage = isset($errorMessages[$index]) ? ': ' . preg_replace('/^Errore durante l\'importazione della fattura \([^)]+\):/', '', $errorMessages[$index]) : '';
+                    $message .= "<li>" . htmlspecialchars($file) . $errorMessage . "</li>";
                 }
-                $message .= "</ul></details>";
+                $message .= "</ul></details><br>";
             }
 
             if ($importCount == 0 && $updateCount == 0) {
@@ -1389,7 +1408,7 @@ class RecordOUT extends Component
             }
         }
 
-        if ($importCount > 0 || $updateCount > 0) {
+        if ($importCount > 0 || $updateCount > 0 || $errorsCount > 0) {
             $this->emit('show-import-result', [
                 'message' => $message,
                 'type' => $messageType

+ 1 - 14
resources/views/livewire/records_out.blade.php

@@ -587,7 +587,7 @@
         <div class="modal-dialog">
             <div class="modal-content">
                 <div class="modal-header">
-                    <h5 class="modal-title" id="importResultModalLabel">Risultato Importazione</h5>
+                    <h5 class="modal-title" id="importResultModalLabel">Importazione Completata</h5>
                     <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                 </div>
                 <div class="modal-body">
@@ -1275,19 +1275,6 @@
         }
     });
 
-    // When import result modal is closed, reload the page to refresh the data
-    document.getElementById('importResultModal').addEventListener('hidden.bs.modal', function () {
-        window.location.reload();
-    });
-
-    document.getElementById('importModal').addEventListener('hidden.bs.modal', function () {
-        // Reload the page to refresh the data
-        setTimeout(function() {
-            window.location.reload();
-        }, 1500);
-    });
-
-
     </script>
 
 @endpush