Skip to content

Commit b1328c8

Browse files
committed
fix: importazione attività
1 parent 9075585 commit b1328c8

1 file changed

Lines changed: 15 additions & 29 deletions

File tree

  • modules/interventi/src/Import

modules/interventi/src/Import/CSV.php

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,17 @@ public function getAvailableFields()
5656
[
5757
'field' => 'partita_iva',
5858
'label' => 'Partita IVA cliente',
59-
'required' => false, // Se non trova corrispondenza, verrà creata una nuova anagrafica
59+
'required' => false,
6060
],
6161
[
6262
'field' => 'codice_fiscale',
6363
'label' => 'Codice Fiscale cliente',
64-
'required' => false, // Se non trova corrispondenza, verrà creata una nuova anagrafica
64+
'required' => false,
6565
],
6666
[
6767
'field' => 'ragione_sociale',
6868
'label' => 'Ragione Sociale cliente',
69-
'required' => false, // Se non trova corrispondenza, verrà creata una nuova anagrafica
69+
'required' => false,
7070
],
7171
[
7272
'field' => 'data',
@@ -132,17 +132,6 @@ public function getAvailableFields()
132132
];
133133
}
134134

135-
/**
136-
* Procedura di inizializzazione per l'importazione.
137-
* Può essere utilizzata per preparare il database prima dell'importazione.
138-
*
139-
* @return void
140-
*/
141-
public function init()
142-
{
143-
// Nessuna operazione di inizializzazione necessaria per gli interventi
144-
}
145-
146135
/**
147136
* Importa un record nel database.
148137
*
@@ -170,14 +159,12 @@ public function import($record, $update_record = true, $add_record = true)
170159
return false;
171160
}
172161

173-
// Nota: Non è più necessario verificare la presenza di partita IVA, codice fiscale o ragione sociale
174-
// perché se non vengono trovate corrispondenze, verrà creata automaticamente una nuova anagrafica
175162

176163
// Ricerca dell'anagrafica cliente
177164
$anagrafica = $this->trovaAnagrafica($record);
178165
if (empty($anagrafica)) {
179166
error_log('Impossibile trovare o creare anagrafica per il record: '.json_encode($record));
180-
return false; // Non è possibile procedere senza un'anagrafica cliente
167+
return false;
181168
}
182169

183170
// Ricerca dell'impianto se specificato
@@ -229,6 +216,9 @@ public function import($record, $update_record = true, $add_record = true)
229216
// Aggiorna i campi dell'intervento
230217
$this->aggiornaIntervento($intervento, $record);
231218

219+
// Imposta la sede di partenza a 0 (sede legale di default)
220+
$intervento->idsede_partenza = 0;
221+
232222
// Collega l'impianto all'intervento se specificato
233223
if (!empty($impianto)) {
234224
$this->collegaImpianto($intervento, $impianto);
@@ -261,9 +251,9 @@ public static function getExample()
261251
{
262252
return [
263253
['Codice', 'Partita IVA Cliente', 'Codice Fiscale Cliente', 'Ragione Sociale Cliente', 'Data', 'Data richiesta', 'Ora inizio', 'Ora fine', 'Tecnico', 'Tipo', 'Note', 'Impianto', 'Richiesta', 'Descrizione', 'Stato', 'Descrizione riga', 'Imponibile riga', 'Aliquota IVA (%)'],
264-
['00001/2024', '123456789', '123456789', 'Acme S.r.l.', '07/11/2024', '03/11/2025', '8:30', '9:30', 'Stefano Bianchi', '', '', '12345-85A22', 'Manutenzione ordinaria', 'eseguito intervento di manutenzione', 'Da programmare', 'Servizio di manutenzione', '100.00', '22'],
265-
['0002/2024', '', '', 'Beta Company S.p.A.', '08/11/2024', '04/11/2025', '11:20', '', 'Stefano Bianchi', '', '', '12345-85B23', 'Manutenzione ordinaria', 'eseguito intervento di manutenzione', '', 'Controllo impianto', '150.00', '22'],
266-
['0003/2024', '', '', '', '09/11/2024', '05/11/2025', '14:00', '15:00', 'Stefano Bianchi', '', '', '', 'Intervento urgente', 'riparazione guasto', 'Completato', 'Riparazione urgente', '200.00', '22'],
254+
['0001/2025', '12345678901', 'RSSMRA80A01H501Z', 'Acme S.r.l.', '15/01/2025', '10/01/2025', '08:30', '09:30', 'Mario Rossi', 'GEN', 'Intervento programmato', 'IMP001', 'Manutenzione ordinaria', 'Eseguito intervento di manutenzione programmata', 'Completato', 'Servizio di manutenzione', '100.00', '22'],
255+
['0002/2025', '98765432109', 'VRDLGU75B15F205X', 'Beta Company S.p.A.', '20/01/2025', '18/01/2025', '10:00', '12:00', 'Mario Rossi', 'GEN', 'Cliente molto soddisfatto', 'IMP002', 'Controllo impianto', 'Eseguito controllo periodico impianto', 'Completato', 'Controllo impianto', '150.00', '22'],
256+
['0003/2025', '11223344556', 'BNCNNA85C20G273Y', 'Gamma S.n.c.', '25/01/2025', '25/01/2025', '14:00', '15:30', 'Mario Rossi', 'GEN', 'Intervento urgente risolto', 'IMP003', 'Riparazione guasto', 'Riparato guasto elettrico', 'Completato', 'Riparazione urgente', '200.00', '22'],
267257
];
268258
}
269259

@@ -512,8 +502,10 @@ protected function creaAnagrafica($record)
512502
return null;
513503
}
514504

515-
// Crea la nuova anagrafica
516-
$anagrafica = Anagrafica::build($ragione_sociale);
505+
$tipo_cliente = TipoAnagrafica::where('name', 'Cliente')->first();
506+
$tipologie = !empty($tipo_cliente) ? [$tipo_cliente->id] : [];
507+
508+
$anagrafica = Anagrafica::build($ragione_sociale, '', '', $tipologie);
517509

518510
// Imposta partita IVA se presente
519511
if (!empty($record['partita_iva'])) {
@@ -530,14 +522,8 @@ protected function creaAnagrafica($record)
530522
$anagrafica->telefono = '000000000'; // Telefono fittizio per soddisfare i vincoli
531523
}
532524

533-
// Assegna il tipo "Cliente" all'anagrafica
534-
$tipo_cliente = TipoAnagrafica::where('name', 'Cliente')->first();
535-
if (!empty($tipo_cliente)) {
536-
$anagrafica->tipologie = [$tipo_cliente->id];
537-
}
538-
539-
// Salva l'anagrafica
540525
$anagrafica->save();
526+
$anagrafica->refresh();
541527

542528
error_log('Anagrafica creata con successo: ID '.$anagrafica->id.', Ragione sociale: '.$ragione_sociale);
543529

0 commit comments

Comments
 (0)