|
|
@@ -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
|