You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: plugins/importFE/actions.php
+1-14Lines changed: 1 addition & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -428,20 +428,7 @@
428
428
}
429
429
430
430
if (empty($id_articolo)) {
431
-
$id_articolo = $database->fetchOne('SELECT `id` FROM `mg_articoli` WHERE `codice` = '.prepare($codice['CodiceValore']).' AND `deleted_at` IS NULL')['id'];
432
-
433
-
if (empty($id_articolo)) {
434
-
$id_articolo = $database->fetchOne('SELECT `id` FROM `mg_articoli` WHERE REPLACE(`codice`, " ", "") = '.prepare($codice['CodiceValore']).' AND `deleted_at` IS NULL')['id'];
435
-
}
436
-
437
-
// Controllo se esistono articoli con barcode corrispondente al codice
438
-
if (empty($id_articolo)) {
439
-
$id_articolo = $database->fetchOne('SELECT `mg_articoli_barcode`.`idarticolo` FROM `mg_articoli_barcode` INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `mg_articoli_barcode`.`idarticolo` WHERE `mg_articoli_barcode`.`barcode` = '.prepare($codice['CodiceValore']).' AND `mg_articoli`.`deleted_at` IS NULL')['idarticolo'];
440
-
}
441
-
442
-
if (empty($id_articolo)) {
443
-
$id_articolo = $database->fetchOne('SELECT `mg_articoli_barcode`.`idarticolo` FROM `mg_articoli_barcode` INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `mg_articoli_barcode`.`idarticolo` WHERE REPLACE(`mg_articoli_barcode`.`barcode`, " ", "") = '.prepare($codice['CodiceValore']).' AND `mg_articoli`.`deleted_at` IS NULL')['idarticolo'];
444
-
}
431
+
$id_articolo = $database->fetchOne('SELECT `mg_articoli_barcode`.`idarticolo` FROM `mg_articoli_barcode` INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `mg_articoli_barcode`.`idarticolo` WHERE REPLACE(`mg_articoli_barcode`.`barcode`, " ", "") = '.prepare($codice['CodiceValore']).' AND `mg_articoli`.`deleted_at` IS NULL')['idarticolo'];
if (str_contains((string) $codice['CodiceTipo'], 'serial') || str_contains((string) $codice['CodiceTipo'], 'Serial')) {
514
+
$tipo = strtolower($codice['CodiceTipo']);
515
+
if (str_starts_with($tipo, 'cod')) {
516
+
$codice_principale = $codice['CodiceValore'];
517
+
}
518
+
519
+
if (str_starts_with($tipo, 'serial')) {
515
520
$serial[] = $codice['CodiceValore'];
516
521
}
517
-
++$i;
522
+
523
+
if (str_starts_with($tipo, 'barcode') || str_starts_with($tipo, 'ean') || str_starts_with($tipo, 'en')) {
524
+
$barcode = $codice['CodiceValore'];
525
+
}
518
526
}
519
527
520
-
// Individuazione articolo con codice relativo
521
-
$id_articolo = null;
522
-
// Prendo il codice articolo dal primo nodo CodiceValore che trovo
523
-
$codice_principale = $codici[0]['CodiceValore'];
528
+
// Fallback al primo codice se non trovato
529
+
if ($codice_principale === null && !empty($codici[0])) {
530
+
$codice_principale = $codici[0]['CodiceValore'];
531
+
}
532
+
524
533
if (!empty($codice_principale)) {
525
534
if (!empty($anagrafica) && empty($id_articolo)) {
526
-
$result = $database->fetchOne('SELECT `id_articolo` AS id FROM `mg_fornitore_articolo` WHERE `codice_fornitore` = '.prepare($codice_principale).' AND id_fornitore = '.prepare($anagrafica->id));
527
-
$id_articolo = $result['id'] ?? null;
528
-
if (empty($id_articolo)) {
529
-
$result = $database->fetchOne('SELECT `id_articolo` AS id FROM `mg_fornitore_articolo` WHERE REPLACE(`codice_fornitore`, " ", "") = '.prepare($codice_principale).' AND `id_fornitore` = '.prepare($anagrafica->id));
530
-
$id_articolo = $result['id'] ?? null;
531
-
}
532
-
}
533
-
534
-
if (empty($id_articolo)) {
535
-
$result = $database->fetchOne('SELECT `id` FROM `mg_articoli` WHERE `codice` = '.prepare($codice_principale));
535
+
$result = $database->fetchOne('SELECT `id_articolo` AS id FROM `mg_fornitore_articolo` WHERE ((`codice_fornitore` = '.prepare($codice_principale).' OR `barcode_fornitore` = '.prepare($barcode).') AND id_fornitore = '.prepare($anagrafica->id).' AND DELETED_AT IS NULL)');
536
536
$id_articolo = $result['id'] ?? null;
537
537
if (empty($id_articolo)) {
538
-
$result = $database->fetchOne('SELECT `id` FROM `mg_articoli` WHERE REPLACE(`codice`, " ", "") = '.prepare($codice_principale));
538
+
$result = $database->fetchOne('SELECT `id_articolo` AS id FROM `mg_fornitore_articolo` WHERE ((REPLACE(`codice_fornitore`, " ", "") = '.prepare($codice_principale).' OR `barcode_fornitore` = '.prepare($barcode).') AND id_fornitore = '.prepare($anagrafica->id).' AND DELETED_AT IS NULL)');
0 commit comments