From 9bed740223ef76489c31c3eaa8dffbe97c325185 Mon Sep 17 00:00:00 2001 From: solocla Date: Tue, 22 Sep 2026 12:13:02 +0200 Subject: [PATCH] added log step 9 --- public/userarea/error_log.txt | 2 + public/userarea/export_to_lims.php | 20 ++- public/userarea/revert_status.php | 38 ++++++ public/userarea/schemi_base_response.json | 157 +--------------------- public/userarea/tolims.php | 79 ++++++++++- 5 files changed, 141 insertions(+), 155 deletions(-) create mode 100644 public/userarea/revert_status.php diff --git a/public/userarea/error_log.txt b/public/userarea/error_log.txt index 76bec6bd..80265ffd 100644 --- a/public/userarea/error_log.txt +++ b/public/userarea/error_log.txt @@ -374,3 +374,5 @@ 2026-07-09 08:06:41 - Autenticazione fallita: HTTP 0, Errore cURL: Could not resolve host: bvcpsitaly-elims.com, Risposta: 2026-07-09 08:06:41 - Autenticazione fallita: HTTP 0, Errore cURL: Could not resolve host: bvcpsitaly-elims.com, Risposta: 2026-07-10 08:12:24 - Errore nella richiesta: SSL connection timeout +2026-09-18 16:20:04 - Autenticazione fallita: HTTP 500, Errore cURL: , Risposta: {"title":"Internal Server Error","status":500,"detail":"Si \u00E8 verificato il seguente errore: \r\n- Messaggio: La transazione (ID di processo 946) \u00E8 stata interrotta a causa di un deadlock delle risorse blocco con un altro processo. Ripetere la transazione.\r\n- Procedura: dbo.spXafRefreshUsersClientiAuthorizations\r\n- Numero: 1205\r\n- Linea: 18\r\n- Stato: 51","instance":"POST /api/authentication/authenticate","errorCode":"f03b6d6777"} +2026-09-20 08:36:44 [AnagraficaCertestObject] Autenticazione fallita: HTTP 500, Errore cURL: , Risposta: {"title":"Internal Server Error","status":500,"detail":"Si \u00E8 verificato il seguente errore: \r\n- Messaggio: La transazione (ID di processo 62) \u00E8 stata interrotta a causa di un deadlock delle risorse blocco con un altro processo. Ripetere la transazione.\r\n- Procedura: dbo.spXafRefreshUsersClientiAuthorizations\r\n- Numero: 1205\r\n- Linea: 95\r\n- Stato: 52","instance":"POST /api/authentication/authenticate","errorCode":"18761acc38"} diff --git a/public/userarea/export_to_lims.php b/public/userarea/export_to_lims.php index 2cf5026a..fc189ae2 100644 --- a/public/userarea/export_to_lims.php +++ b/public/userarea/export_to_lims.php @@ -808,11 +808,27 @@ try { ] ]); } catch (Exception $e) { + // --- LOG ERRORE DEDICATO (accanto agli altri log in logs/api/) --- + $errIddatadb = $iddatadb ?? 'unknown'; + $errCommessaId = $commessaId ?? null; + + $errContent = "TIMESTAMP: " . date('Y-m-d H:i:s') . "\n"; + $errContent .= "iddatadb: {$errIddatadb}\n"; + $errContent .= "IdCommessa: " . ($errCommessaId ?? 'non ancora creata') . "\n"; + $errContent .= "MESSAGE: " . $e->getMessage() . "\n\n"; + $errContent .= "TRACE:\n" . $e->getTraceAsString() . "\n"; + + $errName = $errCommessaId + ? "commessa_{$errCommessaId}_ERROR_{$errIddatadb}_" . time() . ".txt" + : "commessa_ERROR_{$errIddatadb}_" . time() . ".txt"; + @file_put_contents($logDir . $errName, $errContent); + error_log("LIMS Export Error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString()); echo json_encode([ - "success" => false, - "message" => "Export failed: " . $e->getMessage(), + "success" => false, + "message" => "Export failed: " . $e->getMessage(), + "errorLog" => $logDir . $errName, "logFiles" => [ "step5_create" => $logFileStep5 ?? null, "step5_2_photos" => $logFilePhotos ?? null, diff --git a/public/userarea/revert_status.php b/public/userarea/revert_status.php new file mode 100644 index 00000000..157b5b5c --- /dev/null +++ b/public/userarea/revert_status.php @@ -0,0 +1,38 @@ + false, 'message' => 'ID record mancante']); + exit; +} + +// Da questa azione consentiamo solo il ritorno a 'i' +if ($newStatus !== 'i') { + echo json_encode(['success' => false, 'message' => 'Stato non consentito']); + exit; +} + +try { + $db = DBHandlerSelect::getInstance(); + $pdo = $db->getConnection(); + + // Aggiorna solo se attualmente è in stato 'l' (To LIMS) + $stmt = $pdo->prepare("UPDATE datadb SET status = ? WHERE iddatadb = ? AND status = 'l'"); + $stmt->execute([$newStatus, $iddatadb]); + + if ($stmt->rowCount() > 0) { + echo json_encode(['success' => true]); + } else { + echo json_encode(['success' => false, 'message' => 'Record non trovato o già modificato']); + } +} catch (Throwable $e) { + echo json_encode(['success' => false, 'message' => $e->getMessage()]); +} diff --git a/public/userarea/schemi_base_response.json b/public/userarea/schemi_base_response.json index bcbfd8dd..7db73608 100644 --- a/public/userarea/schemi_base_response.json +++ b/public/userarea/schemi_base_response.json @@ -3,915 +3,768 @@ "value": [ { "IdSchemaCustomFields": 41, - "ConteggioClienti": 0, "Nome": "Labostudio", "Descrizione": null }, { "IdSchemaCustomFields": 42, - "ConteggioClienti": 0, "Nome": "Schema 1", "Descrizione": null }, { "IdSchemaCustomFields": 43, - "ConteggioClienti": 0, "Nome": "Schema1", "Descrizione": null }, { "IdSchemaCustomFields": 44, - "ConteggioClienti": 0, "Nome": "Cuoio\/Pelle Standard \/ Leather", "Descrizione": "Schema per tutti i campioni in cuoio\/pelle per i quali non \u00e8 specificato un destinatario.\r\n" }, { "IdSchemaCustomFields": 45, - "ConteggioClienti": 0, "Nome": "Borse", "Descrizione": null }, { "IdSchemaCustomFields": 46, - "ConteggioClienti": 0, "Nome": "Borse Burberry", "Descrizione": null }, { "IdSchemaCustomFields": 47, - "ConteggioClienti": 0, "Nome": "pelle calzatura", "Descrizione": null }, { "IdSchemaCustomFields": 48, - "ConteggioClienti": 0, "Nome": "Standard \/ Generico", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 49, - "ConteggioClienti": 0, "Nome": "Accessori Metallici \/ Metallic Accessories", "Descrizione": "Schema per tutti gli Accessori Metallici\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 50, - "ConteggioClienti": 0, "Nome": "Tessile \/ Textiles", "Descrizione": "Schema per tutti i Tessuti\r\n" }, { "IdSchemaCustomFields": 52, - "ConteggioClienti": 0, "Nome": "Brasport", "Descrizione": null }, { "IdSchemaCustomFields": 54, - "ConteggioClienti": 0, "Nome": "Chanel Calzatura", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 55, - "ConteggioClienti": 0, "Nome": "Burberry", "Descrizione": null }, { "IdSchemaCustomFields": 57, - "ConteggioClienti": 0, "Nome": "Z_Ralph Lauren - Tessile", "Descrizione": "Schema per tutti i campioni in tessuto per Ralph Lauren.\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 58, - "ConteggioClienti": 0, "Nome": "LIU JO", "Descrizione": null }, { "IdSchemaCustomFields": 59, - "ConteggioClienti": 0, "Nome": "Migrazione tra Componenti", "Descrizione": null }, { "IdSchemaCustomFields": 60, - "ConteggioClienti": 0, "Nome": "Prova Outsourcing", "Descrizione": null }, { "IdSchemaCustomFields": 61, - "ConteggioClienti": 0, "Nome": "Marc Jacobs", "Descrizione": null }, { "IdSchemaCustomFields": 62, - "ConteggioClienti": 0, "Nome": "A. TESTONI", "Descrizione": null }, { "IdSchemaCustomFields": 63, - "ConteggioClienti": 0, "Nome": "Chanel CHINA PROJECT", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 66, - "ConteggioClienti": 0, "Nome": "GUESS", "Descrizione": null }, { "IdSchemaCustomFields": 68, - "ConteggioClienti": 0, "Nome": "Valentino", "Descrizione": null }, { "IdSchemaCustomFields": 69, - "ConteggioClienti": 0, "Nome": "DESIGUAL", "Descrizione": null }, { "IdSchemaCustomFields": 70, - "ConteggioClienti": 0, "Nome": "FENDI PELLETTERIA", "Descrizione": "Solo per FENDI Pelletteria_INGLESE\r\n" }, { "IdSchemaCustomFields": 71, - "ConteggioClienti": 0, "Nome": "Z_Cuoio\/Pelle Standard ACCREDIA", "Descrizione": "Schema per tutti i campioni in cuoio\/pelle per i quali non \u00e8 specificato un destinatario.\r\n" }, { "IdSchemaCustomFields": 72, - "ConteggioClienti": 0, "Nome": "Z_BALLY", "Descrizione": "sia per calzatura che pelletteria. Aggiunto campo TEST DESCRIPTION, compreso nella fatturazione per le divisioni pelletteria.\r\n\r\n" }, { "IdSchemaCustomFields": 73, - "ConteggioClienti": 0, "Nome": "Z_Ralph Lauren - Leather", "Descrizione": null }, { "IdSchemaCustomFields": 74, - "ConteggioClienti": 0, "Nome": "Z_Ralph Lauren - Fabric", "Descrizione": null }, { "IdSchemaCustomFields": 76, - "ConteggioClienti": 0, "Nome": "NORDSTROM", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 77, - "ConteggioClienti": 0, "Nome": "ONWARD LUXURY GROUP", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 78, - "ConteggioClienti": 0, "Nome": "P&G SRL_Progetto Durability", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 79, - "ConteggioClienti": 0, "Nome": "Bally qualsiasi divisione", "Descrizione": null }, { "IdSchemaCustomFields": 80, - "ConteggioClienti": 0, "Nome": "FENDI CALZATURA", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 81, - "ConteggioClienti": 0, "Nome": "LouBoutin", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 82, - "ConteggioClienti": 0, "Nome": "MONCLER Brand", "Descrizione": "Da utilizzare solo per il Brand Diretto\r\nGR 19\/03\/2024" }, { "IdSchemaCustomFields": 83, - "ConteggioClienti": 0, "Nome": "JIMMY CHOO", "Descrizione": null }, { "IdSchemaCustomFields": 84, - "ConteggioClienti": 0, "Nome": "Yves Saint Laurent", "Descrizione": null }, { "IdSchemaCustomFields": 85, - "ConteggioClienti": 0, "Nome": "BENETTON", "Descrizione": null }, { "IdSchemaCustomFields": 86, - "ConteggioClienti": 0, "Nome": "UPLOAD REPORT", "Descrizione": null }, { "IdSchemaCustomFields": 87, - "ConteggioClienti": 0, "Nome": "Hermes Calzatura", "Descrizione": "\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 88, - "ConteggioClienti": 0, "Nome": "C&A", "Descrizione": "Schema per fornitori e C&A diretto\r\n" }, { "IdSchemaCustomFields": 89, - "ConteggioClienti": 0, "Nome": "AMERICAN EAGLE", "Descrizione": "Schema per American Eagle\/Todd snyder\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 91, - "ConteggioClienti": 0, "Nome": "Ferragamo", "Descrizione": "\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 93, - "ConteggioClienti": 0, "Nome": "Z_Alexander McQueen", "Descrizione": "\r\n\r\n" }, { "IdSchemaCustomFields": 95, - "ConteggioClienti": 0, "Nome": "Balenciaga Pelletteria", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 96, - "ConteggioClienti": 0, "Nome": "DUNHILL", "Descrizione": "SCHEMA DUNHILL tutti i tipi di campioni\r\n" }, { "IdSchemaCustomFields": 97, - "ConteggioClienti": 0, "Nome": "PRELIEVI ACQUE", "Descrizione": null }, { "IdSchemaCustomFields": 98, - "ConteggioClienti": 0, "Nome": "LouBoutin_Tossicologico", "Descrizione": null }, { "IdSchemaCustomFields": 99, - "ConteggioClienti": 0, "Nome": "ROBAN'S ", "Descrizione": "tutte le divisioni\r\n\r\n" }, { "IdSchemaCustomFields": 100, - "ConteggioClienti": 0, "Nome": "PROGETTO LUGGAGE", "Descrizione": "Progetto Luggage Hermes\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 102, - "ConteggioClienti": 0, "Nome": "Balmain", "Descrizione": "Schema per tutti i campioni Balmain" }, { "IdSchemaCustomFields": 103, - "ConteggioClienti": 0, "Nome": "ZDHC", "Descrizione": "Schema di Riferimento ZDHC Wastewaters" }, { "IdSchemaCustomFields": 104, - "ConteggioClienti": 0, "Nome": "GUCCI CDC 4172", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 105, - "ConteggioClienti": 0, "Nome": "Z_ASOS", "Descrizione": null }, { "IdSchemaCustomFields": 106, - "ConteggioClienti": 0, "Nome": "Z_BOUX AVENUE", "Descrizione": "28\/09 no indicazioni su esigenze di fatturazione (detto da Frosini)\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 107, - "ConteggioClienti": 0, "Nome": "BONPOINT", "Descrizione": "05\/10 creazione\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 108, - "ConteggioClienti": 0, "Nome": "Canada Goose", "Descrizione": null }, { "IdSchemaCustomFields": 109, - "ConteggioClienti": 0, "Nome": "DIESEL", "Descrizione": null }, { "IdSchemaCustomFields": 110, - "ConteggioClienti": 0, "Nome": "AQC_Leather", "Descrizione": null }, { "IdSchemaCustomFields": 111, - "ConteggioClienti": 0, "Nome": "BEAUMANOIR (CC-Mor-Bon-Breal)", "Descrizione": "04\/02\/21_ AGGIORNATO 05\/08\r\n" }, { "IdSchemaCustomFields": 112, - "ConteggioClienti": 0, "Nome": "BooHoo", "Descrizione": null }, { "IdSchemaCustomFields": 114, - "ConteggioClienti": 0, "Nome": "Golden Goose", "Descrizione": "Golden goose\r\n" }, { "IdSchemaCustomFields": 115, - "ConteggioClienti": 0, "Nome": "Z_ZLABEL", "Descrizione": "Schema per ZLABEL" }, { "IdSchemaCustomFields": 116, - "ConteggioClienti": 0, "Nome": "Zadig & Voltaire", "Descrizione": "Schema per Zadig & Voltaire" }, { "IdSchemaCustomFields": 117, - "ConteggioClienti": 0, "Nome": "Gemo", "Descrizione": "Schema solo per Gemo\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 118, - "ConteggioClienti": 0, "Nome": "PROMOD", "Descrizione": "CHF 06\/08\r\n\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 119, - "ConteggioClienti": 0, "Nome": "LA HALLE (BEAUMANOIR)", "Descrizione": "13\/08\/2021 CHF\r\n\r\n" }, { "IdSchemaCustomFields": 120, - "ConteggioClienti": 0, "Nome": "LA REDOUTE", "Descrizione": "14\/09\/2021 AD\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 121, - "ConteggioClienti": 0, "Nome": "TOD'S", "Descrizione": "Schema per materiale gb18401 e GB20400\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 122, - "ConteggioClienti": 0, "Nome": "ASOS rev 1", "Descrizione": null }, { "IdSchemaCustomFields": 123, - "ConteggioClienti": 0, "Nome": "Monoprix", "Descrizione": "Schema per Monoprix\r\n\r\n" }, { "IdSchemaCustomFields": 124, - "ConteggioClienti": 0, "Nome": "DIOR Ita", "Descrizione": "CHF 21\/03\r\n" }, { "IdSchemaCustomFields": 125, - "ConteggioClienti": 0, "Nome": "GEOX - Raw Material", "Descrizione": "SCHEMA DA USARE SOLO PER GEOX - SOLO PER LE SUOLE E MATERIALI DENOMINATI RPU \/ RAW MATERIAL" }, { "IdSchemaCustomFields": 126, - "ConteggioClienti": 0, "Nome": "CAMAIEU", "Descrizione": "SCHEMA DA USARE SOLO PER CAMAIEU\r\n" }, { "IdSchemaCustomFields": 127, - "ConteggioClienti": 0, "Nome": "Z_Golden Goose FTW", "Descrizione": "Golden goose\r\n" }, { "IdSchemaCustomFields": 128, - "ConteggioClienti": 0, "Nome": "STEVE MADDEN - FOOTWEAR", "Descrizione": "DA UTILIZZARE SOLO PER DESTINAZIONE D'USO CALZATURA\r\n" }, { "IdSchemaCustomFields": 129, - "ConteggioClienti": 0, "Nome": "Z_Carhartt", "Descrizione": "SCHEMA DA UTILIZZARE SOLO PER RICHIESTE UFFICIALI CARHARTT\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 131, - "ConteggioClienti": 0, "Nome": "DAMART", "Descrizione": "\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 132, - "ConteggioClienti": 0, "Nome": "Gruppo OTB", "Descrizione": "Schema per Staff International, Diesel e Brave kid\r\n\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 133, - "ConteggioClienti": 0, "Nome": "FERRARI", "Descrizione": "Schema da usare per Ferrari e fornitori\r\n\r\n" }, { "IdSchemaCustomFields": 134, - "ConteggioClienti": 0, "Nome": "GAP - ABBIGLIAMENTO", "Descrizione": "Schema GAP da utilizzare solo per destinazione abbigliamento\r\n" }, { "IdSchemaCustomFields": 135, - "ConteggioClienti": 0, "Nome": "GAP - CALZATURA", "Descrizione": "Schema GAP da utilizzare solo per destinazione calzatura\r\n\r\n" }, { "IdSchemaCustomFields": 136, - "ConteggioClienti": 0, "Nome": "SALLING GROUP", "Descrizione": "Schema per Salling Group\r\n\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 137, - "ConteggioClienti": 0, "Nome": "SOFT SURROUNDINGS", "Descrizione": "Schema da utilizzare per Soft Surroundings\r\n\r\n" }, { "IdSchemaCustomFields": 138, - "ConteggioClienti": 0, "Nome": "E-LIMS - Cuoio\/Pelle Standard \/ Leather", "Descrizione": "Schema da utilizzare solo per accettazioni online\r\n" }, { "IdSchemaCustomFields": 139, - "ConteggioClienti": 0, "Nome": "Z_ZALANDO", "Descrizione": "Schema per ZALANDO ------ (NON per ZLABEL che ha il suo)\r\n" }, { "IdSchemaCustomFields": 140, - "ConteggioClienti": 0, "Nome": "LVMH", "Descrizione": "gennaio 2023\r\n" }, { "IdSchemaCustomFields": 141, - "ConteggioClienti": 0, "Nome": "Valentino - eLims", "Descrizione": "SCHEMA DA UTILIZZARE SOLO PER L'ACCETTAZIONE ONLINE DI VALENTINO" }, { "IdSchemaCustomFields": 142, - "ConteggioClienti": 0, "Nome": "FENDI PELLETTERIA COMPLIANCE", "Descrizione": "Solo per FENDI Pelletteria_INGLESE 04\/05\/2023\r\n" }, { "IdSchemaCustomFields": 143, - "ConteggioClienti": 0, "Nome": "TAPESTRY", "Descrizione": "04\/05\/2023, agg secondo procedura 08\/11\/23\r\n" }, { "IdSchemaCustomFields": 144, - "ConteggioClienti": 0, "Nome": "ALEXANDER MC QUEEN", "Descrizione": "ALEXANDER MC QUEEN 15\/05\/2023\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 145, - "ConteggioClienti": 0, "Nome": "Hermes_Chimici_Parigi", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 146, - "ConteggioClienti": 0, "Nome": "CELINE ABBIGLIAMENTO_Progetto Speciale", "Descrizione": "IO 202 CELINE ABBIGLIAMENTO_06\/06\/203_CHF\r\n\r\n" }, { "IdSchemaCustomFields": 147, - "ConteggioClienti": 0, "Nome": "GEOX - Prodotto Finito", "Descrizione": "SCHEMA DA USARE SOLO PER GEOX - SOLO PER PRODOTTO FINITO" }, { "IdSchemaCustomFields": 149, - "ConteggioClienti": 0, "Nome": "Hermes\/IDO", "Descrizione": "creato il 05\/07\/2023 CHF\r\n" }, { "IdSchemaCustomFields": 150, - "ConteggioClienti": 0, "Nome": "Tessile \/ Textiles PER CLIENTI CON OBLO", "Descrizione": "Schema per tutti i Tessuti QUANDO IL CLIENTE NECESSITA DI NR OBLO\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 151, - "ConteggioClienti": 0, "Nome": "J JIll", "Descrizione": "Schema per cliente J JIll, necessario riportare la recommended fiber content in schema verde\r\n\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 152, - "ConteggioClienti": 0, "Nome": "AUCHAN - TAPE A L'OEIL", "Descrizione": "Schema AUCHAN da utilizzare solo per la divisione TAPE A L'OEIL SA, successivamente se uguale da usare anche per le altre divisioni ed uniformarlo come generico" }, { "IdSchemaCustomFields": 153, - "ConteggioClienti": 0, "Nome": "ALL SAINTS - BUSCEMI", "Descrizione": "SCHE DA USARE SOLO PER ALL SAINTS E BUSCEMI\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 154, - "ConteggioClienti": 0, "Nome": "CELINE - LVMH", "Descrizione": "Schema con aggiunta campi LVMH per estrazioni\r\nAD-29\/03\/2024" }, { "IdSchemaCustomFields": 155, - "ConteggioClienti": 0, "Nome": "SeyMeChamLou", "Descrizione": "DA USARE SOLO PER SEYMECHAMLOU (LOUBOUTIN)\r\n" }, { "IdSchemaCustomFields": 156, - "ConteggioClienti": 0, "Nome": "PRADA", "Descrizione": "PER ADESSO DA USARE PER ABBIGLIAMENTO E CALZATURA\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 157, - "ConteggioClienti": 0, "Nome": "Hermes_HCP", "Descrizione": "Schema per unicamente HCP" }, { "IdSchemaCustomFields": 158, - "ConteggioClienti": 0, "Nome": "STONE ISLAND", "Descrizione": "Schema per tutti i campioni in cuoio\/pelle per i quali non \u00e8 specificato un destinatario.\r\n" }, { "IdSchemaCustomFields": 159, - "ConteggioClienti": 0, "Nome": "Chanel_Pierre Damien", "Descrizione": "Schema da usare per Campioni ricevuti da Pierre-Damien Verine e suo staff CHANEL.\r\n" }, { "IdSchemaCustomFields": 160, - "ConteggioClienti": 0, "Nome": "Z_ACNE", "Descrizione": "\r\n.\r\n" }, { "IdSchemaCustomFields": 161, - "ConteggioClienti": 0, "Nome": "OBERALP GROUP", "Descrizione": "Schema da usare solo per Oberalp Group\r\n" }, { "IdSchemaCustomFields": 162, - "ConteggioClienti": 0, "Nome": "Club Monaco", "Descrizione": "da usare solo per Club Monaco GR 20\/02\/2024" }, { "IdSchemaCustomFields": 163, - "ConteggioClienti": 0, "Nome": "Devred", "Descrizione": "Schema creato per cliente DEVRED\r\nGR 18\/03\/2024 aggiornato il 23\/04\/2026\r\n\r\n" }, { "IdSchemaCustomFields": 164, - "ConteggioClienti": 0, "Nome": "MONCLER Supplier", "Descrizione": "Da utilizzare per fornitori Moncler \r\nGR 19\/03\/2024" }, { "IdSchemaCustomFields": 165, - "ConteggioClienti": 0, "Nome": "Kering Sunglasses", "Descrizione": "Schema per tutti i campioni di qualsiasi matrice escluso cuoio\/pelle\r\n\r\n" }, { "IdSchemaCustomFields": 166, - "ConteggioClienti": 0, "Nome": "Giorgio Armani", "Descrizione": "\r\n\r\n" }, { "IdSchemaCustomFields": 167, - "ConteggioClienti": 0, "Nome": "Chanel USA", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 168, - "ConteggioClienti": 0, "Nome": "Staff Calzatura", "Descrizione": "Schema per tutti i campioni di qualsiasi matrice escluso cuoio\/pelle\r\n\r\n" }, { "IdSchemaCustomFields": 169, - "ConteggioClienti": 0, "Nome": "P&G SRL", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 170, - "ConteggioClienti": 0, "Nome": "INCOM", "Descrizione": "Schema da utilizzare per INCOM" }, { "IdSchemaCustomFields": 171, - "ConteggioClienti": 0, "Nome": "RIVER ISLAND", "Descrizione": "SCHEDA DA USARE SOLO PER RIVER ISLAND - NO CALZATURA\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 172, - "ConteggioClienti": 0, "Nome": "Longchamp", "Descrizione": "Schema per tutti i campioni con RIchiesta Longchamp ufficiale\r\n" }, { "IdSchemaCustomFields": 173, - "ConteggioClienti": 0, "Nome": "Bottega Veneta", "Descrizione": "Schema per tutti i campioni di Bottega Veneta di Stella" }, { "IdSchemaCustomFields": 174, - "ConteggioClienti": 0, "Nome": "Mint Velvet", "Descrizione": "Schema per tutti i campioni di Mint Velvel con richiesta ufficiale.\r\n\r\n" }, { "IdSchemaCustomFields": 176, - "ConteggioClienti": 0, "Nome": "RIVER ISLAND FOOTWEAR", "Descrizione": "SCHEDA DA USARE SOLO PER RIVER ISLAND - USARE SOLO PER\r\n CALZATURA\r\n" }, { "IdSchemaCustomFields": 177, - "ConteggioClienti": 0, "Nome": "Phoebe Philo ", "Descrizione": "\r\n\r\n" }, { "IdSchemaCustomFields": 178, - "ConteggioClienti": 0, "Nome": "New Guards Group", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 179, - "ConteggioClienti": 0, "Nome": "Giorgio Armani Operation", "Descrizione": "\r\n\r\n" }, { "IdSchemaCustomFields": 180, - "ConteggioClienti": 0, "Nome": "Chlo\u00e9_Leathergoods", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 181, - "ConteggioClienti": 0, "Nome": "LVMH non diretti", "Descrizione": "utilizzato ogni qualvolta siano caricati pacchetti \/ prove singole che non rientrano nel programma LVMH \r\n" }, { "IdSchemaCustomFields": 182, - "ConteggioClienti": 0, "Nome": "Ralph Lauren - All testing V.10", "Descrizione": "AGGIORNAMENTO AL 16\/03\/2026 per estrazione fatturazione" }, { "IdSchemaCustomFields": 183, - "ConteggioClienti": 0, "Nome": "TWINSET", "Descrizione": "Schema da usare per Twinset - come da mail di EP del 20\/05\/2025\r\n\r\n" }, { "IdSchemaCustomFields": 184, - "ConteggioClienti": 0, "Nome": "ACNE STUDIOS rev 01", "Descrizione": null }, { "IdSchemaCustomFields": 185, - "ConteggioClienti": 0, "Nome": "Brunello cucinelli", "Descrizione": null }, { "IdSchemaCustomFields": 186, - "ConteggioClienti": 0, "Nome": "TWINSET", "Descrizione": "Schema per tutti i campioni di qualsiasi matrice escluso cuoio\/pelle\r\n\r\n" }, { "IdSchemaCustomFields": 187, - "ConteggioClienti": 0, "Nome": "LORO PIANA", "Descrizione": "Schema per tutti i campioni Loro Piana\r\n" }, { "IdSchemaCustomFields": 188, - "ConteggioClienti": 0, "Nome": "LEMAIRE", "Descrizione": "Schema per tutti i campioni in cuoio\/pelle per i quali non \u00e8 specificato un destinatario.\r\n" }, { "IdSchemaCustomFields": 189, - "ConteggioClienti": 0, "Nome": "TEST_IT_SCHEMA", "Descrizione": "Test per IT" }, { "IdSchemaCustomFields": 190, - "ConteggioClienti": 0, "Nome": "LBS Interscambio", "Descrizione": "Schema per tutti i campioni interscambio LBS\r\n" }, { "IdSchemaCustomFields": 191, - "ConteggioClienti": 0, "Nome": "KIABI", "Descrizione": "Schema per il cliente Kiabi\r\n\r\n" }, { "IdSchemaCustomFields": 192, - "ConteggioClienti": 0, "Nome": "INDITEX", "Descrizione": "Schema da usare solo per richieste INDITEX" }, { "IdSchemaCustomFields": 193, - "ConteggioClienti": 0, "Nome": "AQC_Other materials", "Descrizione": null }, { "IdSchemaCustomFields": 194, - "ConteggioClienti": 0, "Nome": "Hermes ADM & Silk", "Descrizione": "SCHEMA DA USARE SOLO PER LA DIVISIONE ADM & SILK\r\n\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 195, - "ConteggioClienti": 0, "Nome": "Chlo\u00e9_Apparel", "Descrizione": "Schema aggiornato il 18\/12\/25 secondo modulo excel x codifica Elims\r\nGR" }, { "IdSchemaCustomFields": 196, - "ConteggioClienti": 0, "Nome": "DUNHILL_DRAFT NON USARE", "Descrizione": "SCHEMA DUNHILL NON USARE STUDIO NUOVA PROCEDURA NOVEMBRE 2025\r\n\r\n" }, { "IdSchemaCustomFields": 197, - "ConteggioClienti": 0, "Nome": "BERLUTI - LVMH", "Descrizione": "Creato per accettazione Elims\r\n" }, { "IdSchemaCustomFields": 198, - "ConteggioClienti": 0, "Nome": "PIAGET (gruppo Cartier)", "Descrizione": "Schema per tutti i campioni PIAGET (gruppo Cartier)\r\n\r\n" }, { "IdSchemaCustomFields": 199, - "ConteggioClienti": 0, "Nome": "HERMES PAP FEMME", "Descrizione": "Schema per tutti i campioni di HERMES PAP FEMME \r\n15\/01\/2025\r\n\r\n\r\n" }, { "IdSchemaCustomFields": 200, - "ConteggioClienti": 0, "Nome": "CARHARTT ( provvisiorio in revisione)", "Descrizione": "Schema per tutti i campioni CARHARTT provvissorio\r\n\r\n" }, { "IdSchemaCustomFields": 201, - "ConteggioClienti": 0, "Nome": "ROSSIMODA", "Descrizione": "Per tutti i campioni di ROSSIMODA\r\n\r\n" }, { "IdSchemaCustomFields": 202, - "ConteggioClienti": 0, "Nome": "LIMS-CIM - MAX MARA", "Descrizione": "Schema per MAX MARA scambio dati Database" }, { "IdSchemaCustomFields": 203, - "ConteggioClienti": 0, "Nome": "Vince", "Descrizione": "Schema per tutti i campioni di VINCE\r\n\r\n" }, { "IdSchemaCustomFields": 204, - "ConteggioClienti": 0, "Nome": "Max Mara", "Descrizione": "Schema da usare per Max Mara\r\n" }, { "IdSchemaCustomFields": 205, - "ConteggioClienti": 0, "Nome": "Chanel Flammability", "Descrizione": "Schema per Chanel Flammability\r\n" }, { "IdSchemaCustomFields": 206, - "ConteggioClienti": 0, "Nome": "COLDWATER CREEK", "Descrizione": "\r\n" }, { "IdSchemaCustomFields": 208, - "ConteggioClienti": 0, "Nome": "ETON", "Descrizione": "Schema da usare per ETON\r\n" + }, + { + "IdSchemaCustomFields": 209, + "Nome": "LBS Flammability", + "Descrizione": "Schema per tutti i campioni di LBS con Flammability\r\n" } ] } \ No newline at end of file diff --git a/public/userarea/tolims.php b/public/userarea/tolims.php index 236f3243..780ab425 100644 --- a/public/userarea/tolims.php +++ b/public/userarea/tolims.php @@ -975,7 +975,8 @@ function resolveFixedValue(string $key, $val, array $fixedLookup): string /* View modals — ensure they sit above backdrop */ #partsViewModal, - #photosViewModal { + #photosViewModal, + #revertStatusModal { z-index: 1060 !important; } @@ -1715,6 +1716,7 @@ function resolveFixedValue(string $key, $val, array $fixedLookup): string
+
$d['mapping_id'] == $mainFieldMapping['id'] && $d['datadb_id'] == $row['iddatadb']); @@ -1851,6 +1853,25 @@ function resolveFixedValue(string $key, $val, array $fixedLookup): string + + @@ -2091,6 +2112,62 @@ function resolveFixedValue(string $key, $val, array $fixedLookup): string $('#photosViewContent').html('

Error loading photos.

'); }); }); + + // ── Revert status to Imported (i) ── + let revertIddatadb = null; + + $(document).on('click', '.revert-btn', function() { + revertIddatadb = $(this).data('iddatadb'); + const cw = $(this).data('commessaweb') || ''; + $('#revertRecordInfo').text(cw ? ('Commessa: ' + cw) : ('ID: ' + revertIddatadb)); + new bootstrap.Modal(document.getElementById('revertStatusModal')).show(); + }); + + $(document).on('click', '.close-revert-modal', function() { + const modal = bootstrap.Modal.getInstance(document.getElementById('revertStatusModal')); + if (modal) modal.hide(); + }); + + $(document).on('hidden.bs.modal', '#revertStatusModal', function() { + $('.modal-backdrop').remove(); + $('body').removeClass('modal-open').css('padding-right', ''); + }); + + $(document).on('click', '#confirmRevertBtn', function() { + if (!revertIddatadb) return; + const $btn = $(this); + $btn.prop('disabled', true).html(' Attendere...'); + $.ajax({ + url: 'revert_status.php', + method: 'POST', + dataType: 'json', + data: { + iddatadb: revertIddatadb, + status: 'i' + }, + success: function(res) { + if (res && res.success) { + const modal = bootstrap.Modal.getInstance(document.getElementById('revertStatusModal')); + if (modal) modal.hide(); + const $row = $('.grid-row[data-id="' + revertIddatadb + '"]'); + $row.addClass('flash-success'); + setTimeout(function() { + $row.fadeOut(300, function() { + $row.remove(); + }); + }, 400); + } else { + alert('Errore: ' + ((res && res.message) ? res.message : 'operazione non riuscita')); + } + }, + error: function() { + alert('Errore di rete durante l\'operazione.'); + }, + complete: function() { + $btn.prop('disabled', false).html(' Conferma'); + } + }); + }); }); // ── Column filters ──