Browse Source

* First release of OM-Link Engine
* ADD: template demo module 'Blank'

Giancarlo Voci 8 years ago
parent
commit
3a1b39fe5c
48 changed files with 148 additions and 2110 deletions
  1. 0 2
      .gitignore
  2. 11 8
      build.js
  3. 1 1
      cfg/config.bin
  4. 3 15
      cfg/config.ini
  5. 0 112
      import/Codici TKT05 e TKT06_rev_1604.csv_imported
  6. 0 331
      import/nuove liste_01.csv_imported
  7. 5 5
      package.json
  8. 36 0
      src/Modules/Blank/Blank.php
  9. 21 0
      src/Modules/Blank/Pages.php
  10. 0 45
      src/Modules/Dimatec/Dimatec.php
  11. 0 215
      src/Modules/Dimatec/Distinta.php
  12. 0 445
      src/Modules/Dimatec/MigrationData.php
  13. 0 363
      src/Modules/Dimatec/Pages.php
  14. 0 1
      src/OpenMind/System/System.php
  15. 31 4
      src/OpenMind/System/User.php
  16. 7 0
      src/OpenMind/System/UserRoles.php
  17. 0 75
      test/conn_odbc_ibm.php
  18. 0 33
      test/omlinkimporter.php
  19. 0 42
      test/test.xml
  20. 0 28
      test/verticalstorageimporter.php
  21. 3 10
      ui/css/omlink.css
  22. 13 10
      ui/css/omlink.scss
  23. 0 7
      ui/customizations/dimatec.js
  24. 0 29
      ui/customizations/dimatec.scss
  25. 0 36
      ui/distinta.tpl
  26. 0 31
      ui/icamcontrol.tpl
  27. BIN
      ui/images/DimatecLogo.png
  28. BIN
      ui/images/LamborghiniLogo.png
  29. BIN
      ui/images/bind.png
  30. BIN
      ui/images/import.png
  31. BIN
      ui/images/lamborghini/bind.png
  32. BIN
      ui/images/lamborghini/bindcarrello.png
  33. BIN
      ui/images/lamborghini/elenco_distinta.png
  34. BIN
      ui/images/lamborghini/logo.png
  35. BIN
      ui/images/lamborghini/logout.png
  36. BIN
      ui/images/lamborghini/pick2light.png
  37. BIN
      ui/images/lamborghini/unbind.png
  38. BIN
      ui/images/lamborghini/utente.png
  39. BIN
      ui/images/logo.png
  40. BIN
      ui/images/magazzinoverticale.png
  41. BIN
      ui/images/mav2as400.png
  42. BIN
      ui/images/staging.png
  43. 15 16
      ui/images/svg/disegno.svg
  44. 2 2
      ui/js/omlink.js
  45. 0 87
      ui/pick2light.tpl
  46. 0 100
      ui/pick2light_picks.tpl
  47. 0 47
      ui/printlabel.tpl
  48. 0 10
      watcher.js

+ 0 - 2
.gitignore

@@ -7,7 +7,6 @@
 .Trashes
 thumbs.db
 Thumbs.db
-.idea
 composer.phar
 
 # Logs and archives  #\
@@ -47,7 +46,6 @@ cache
 vendor
 node_modules
 tmp
-import
 
 # Custom for current project
 /bundle.js

+ 11 - 8
build.js

@@ -1,4 +1,6 @@
 const compressor = require('node-minify');
+const {execSync} = require('child_process');
+
 
 // The Libraries to join in minified files
 const libList = [
@@ -14,20 +16,21 @@ const cssList = [
 
 // The javascript files to minify
 const jsList = [
-  "ui/js/omlink.js",
-  `ui/customizations/${process.argv[2]}.js`
+  "ui/js/omlink.js"
 ];
 
 /**
  * MAIN
  */
 
-if (process.argv.length != 3) {
-  console.log('\nMissing <customization> parameter:\n');
-  console.log('npm run build <customization>');
-  console.log(`  (customization is name of customer present in ui/customizations/lamborghini.js for example, in this case you must pass 'lamborghini'`);
-  return;
-}
+
+execSync('npx sass ui/css/omlink.scss:ui/css/omlink.css', (error, out, err) => {
+  console.log('------------------------------ CSS built ------------------------------');
+  if (error) {
+    console.log(error);
+    return;
+  }
+});
 
 compressor.minify({
     compressor: 'clean-css',

+ 1 - 1
cfg/config.bin

@@ -1 +1 @@
-eJx1UutvmzAc/G7J/wOK9mHTNAIB8mhkaQRcQssj4pF1raqIEIewEpzyyNJU+d9naKo92iGBsHV3vjv/7pKMLqOsvIdADQPXclUddcoi7nYg0FRtijnEBV6IIQhNVKddCHQ8CQ3UgwA7mqubjoE6YXD5ZcgIU9OYWuwN0JpJEgiuVI8nh11aEPT8XKVb8vHTZ0lUpL4gCKcT0/Id1Nk+lY/ZxYaWFcpoHGXN33hHiwpJktAfr5Z5tCWIbrM0f2CHrJZ1SQpUUFo1i11UlihJozyOioxCMD5vubYxGg7pevgBgtl0tpipwRRpF908SfNDd7fZDZoPc8ds2urNYmKZzvUiMG288LGGxJ4AAVPjZlG1gWCi+jj0LNR9sQGBbwbYUW2M9HQbVSSGwHINd6GFfuDa2GNxv545p1OX9cZQCSm7Z7RFE8rv8gQCU3OdRUMNg/9xMgauqxd448gnGYkr7ucmjTdcXJcV3ZKCizOWmiN5tMxYolcfrcXVq0UI7jTXw/x6ed9GK+iqjquU5mzV9i+OerzYH/ICP5Ag+GtL5EWZVdLeiyLIsvRipdizswPsBxA8kCekCb8fUZQHstCTBGXAeM2d3BbJ8WF/VbjXueNr+Sw3jlL9rPbJ1Hdu5vvyjam3koo0lIWBMmJWxq3mxFQ05fvlSpqU8mafzaZGfVCu6Lfe7boOV4cfbeo59gJTUy1WiqcauE1vR0l0PKY55ViEKmWDRziGsdk4zBeqrnvY9/8oRBo1pLl9Djt+B9RTJF6UhH9T6JPeO3qi0A7Y3aXp6BP3xsfe3NQaZ76F8ayZQyRC8Ath6wyF
+eJx9kGtvmzAUhr9b8n9A+bRpKpeQS9fI0ojjBlpuwlBFqypEiEtQADMuWdso/30mWbVvs2TLts57zvO+z1nBt0nRvkBgRKFne8YKjdomVUYQYAObREJSGEQEgshCfa5AsCLLaI3GEBAXeyvLXaNRFN7f3AqBaa1NW+wQvYqWDIIHI5DZW503DJ1OXV6yL1+/6dpUn6mqej6LXtRFo/K9/VXc7XnboYKnSTHcFjVvOqTr6myx21ZJyRAvi7w6iCG7bd+yBjWcd8OjTtoWZXlSpUlTcAh80499IzQRvlOqLK/elHpfz4dDkAgkx9jES9tyH+PQckhMCUbaWIUAgoXkJ90egqVBSRTYSLmOhIBaIXENhyDPubEvP7a39mIc0dBzSCCs/firOZ8VkVFeJhlrlYJnXK6rDAILe248aKLwf8V9dy0fUCgrWNpJv/d5upfSvu14yRopLYRbiVXJthBWPgEubJ+wEDxjLyDy6/blYqnhuz7tcl5BcIlY+z6WtdmtrMnaRNi+5DxVJxP9OrU5ijEhoSEEB/aOsPpvadpkPlHHujqdC90Q+88m+zgcHxrvsXIprvxq/aH3J2PGTOpuno7tQCN47i13tfQ2lARPFiYCi9qE+EP8SIPgD0ONvv8=

+ 3 - 15
cfg/config.ini

@@ -9,38 +9,26 @@ JAR.expire={{time()+31536000}}
 DSN="mysql:host=localhost;port=3306;dbname=omlink"
 dbuser=root
 dbpass=giancarlo
-;dbpass=OMG988of8$
 PHP_PATH=C:/nginx/php7/php.exe
 MAX_BLINK_TIME_SEC=120
 
 ; Path
 BASEURL=/omlink
-SITENAME=Dimatec
-LOGO_CUSTOMER={{@BASEURL}}/ui/images/DimatecLogo.png
+SITENAME=OM-Link
+LOGO_CUSTOMER={{@BASEURL}}/ui/images/logo.png
 ICON_LOGOUT={{@BASEURL}}/ui/images/logout.png
 
 ; Select which customer class enable
-CUSTOMERNAME=dimatec
+CUSTOMERNAME=omlink
 
 [CORE.fb]
 ; Production
-;host=192.168.0.73
 host=192.168.1.140
 port=50443
 ; Server TEST
 key=C0000000000011474023057
 pass=ZrgzkvJrOKnNSCnPnGz3u{A6eHSNXVvs
-; Production
-;key=C0000000000011538407590
-;pass=BI5C5YFd3Bs4hvlPHGux5JoW2ZfuUdxj
 
-[VERTICALSTORAGE]
-; Magazzino verticale ICAM
-MV_ADDRESS=192.168.0.39
-; VM TEST
-;MV_ADDRESS=192.168.253.130
-; Production
-DB2_ADDRESS=192.168.0.100
 
 [FINDBOXSERVICE]
 SLEEPTIME=1

+ 0 - 112
import/Codici TKT05 e TKT06_rev_1604.csv_imported

@@ -1,112 +0,0 @@
-TAKT 5;8800;AL11;SMK;LU;S13T05S013;4H0035570A;CIRCUITO          SOPRESSORE,BANDA;INTR;K02;KLT;NO;NO;000010;
-TAKT 5;8800;AL11;SMK;LU;S13T05S013;4N0919805;SCANNER;INTR;K04;KLT;NO;NO;000010;
-TAKT 5;8800;AL11;SMK;LU;S13T05G02S;4ML885669;TELAIO SEDILE;INTR;G92;GLT;13;4;000010;
-TAKT 5;8800;AL11;SMK;LU;S13T05S012;4M0907176;SUPPORTO;INTR;K04;KLT;NO;NO;000020;
-TAKT 5;8800;AL11;SMK;LU;S13T05S012;4M0907247;ANTENNA;INTR;K02;KLT;NO;NO;000020;
-TAKT 5;8800;AL11;SMK;LU;S13T05S012;9Y0971235;CAVO MASSA BATTER.;INTR;K02;KLT;NO;NO;000020;
-TAKT 5;8800;AL11;SMK;LU;S13T05G01S;4ML881677;TELAIO SEDILE;INTR;A92;GLT;80;4;000020;
-TAKT 5;8800;AL11;SMK;LU;S13T05S011;4M0941828;SUPP.PORTA-FUSIB.;INTR;K05;KLT;NO;NO;000030;
-TAKT 5;8800;AL11;SMK;LU;S13T05S011;4M0959663G;TRASFORMAT.D TENS.;INTR;K03;KLT;NO;NO;000030;
-TAKT 5;8800;AL11;SMK;LU;S13T05S011;8V0919130D;TV TUNER          SUEDAMERIKA;INTR;K03;KLT;NO;NO;000030;
-TAKT 5;8800;AL11;SMK;LU;S13T05S010;4M0804815;STAFFA;INTR;K05;KLT;NO;NO;000040;
-TAKT 5;8800;AL11;SMK;LU;S13T05S010;4M0804815B;STAFFA;INTR;K05;KLT;NO;NO;000040;
-TAKT 5;8800;AL11;SMK;LU;S13T05S010;4M8907815;SUPPORTO;INTR;K05;KLT;NO;NO;000040;
-TAKT 5;8800;AL11;SMK;LU;S13T05S023;4M6907349;SUPPORTO;INTR;K05;KLT;NO;NO;000060;
-TAKT 5;8800;AL11;SMK;LU;S13T05S023;9Y0915500;DEGASSAMENTO      BATTERIA;INTR;K02;KLT;NO;NO;000060;
-TAKT 5;8800;AL11;SMK;LU;S13T05S053;4ML947405;LUCE DI INGRESSO;INTR;B73;KLT;NO;NO;000070;
-TAKT 5;8800;AL11;SMK;LU;S13T05S053;4ML947417;LUCE DI INGRESSO;INTR;B74;KLT;NO;NO;000070;
-TAKT 5;8800;AL11;SMK;LU;S13T05S021;4ML853374;BATTICALCAGNO;INTR;K04;KLT;NO;NO;000080;
-TAKT 5;8800;AL11;SMK;LU;S13T05S021;4ML853375;BATTICALCAGNO;INTR;K04;KLT;NO;NO;000080;
-TAKT 5;8800;AL11;SMK;LU;S13T05S041;4M0907239A;SUPPORTO;INTR;K04;KLT;NO;NO;000130;
-TAKT 5;8800;AL11;SMK;LU;S13T05S040;4M0907347;SUPPORTO;INTR;K05;KLT;NO;NO;000140;
-TAKT 5;8800;AL11;SMK;LU;S13T05S040;4M8035821;SUPPORTO;INTR;K05;KLT;NO;NO;000140;
-TAKT 5;8800;AL11;SMK;LU;S14T05S013;4M0802419D;SUPPORTO;INTR;K01;KLT;NO;NO;000140;
-TAKT 5;8800;AL11;SMK;LU;S14T05S013;4ML867738;SUPPORTO;INTR;K02;KLT;NO;NO;000140;
-TAKT 5;8800;AL11;SMK;LU;S13T05S033;4ML867737;SUPPORTO;INTR;K02;KLT;NO;NO;000150;
-TAKT 5;8800;AL11;SMK;LU;S13T05S033;4ML867735;ANGOLARE;INTR;K01;KLT;NO;NO;000150;
-TAKT 5;8800;AL11;SMK;LU;S14T05S012;4ML947418;LUCE DI INGRESSO;INTR;B74;KLT;NO;NO;000150;
-TAKT 5;8800;AL11;SMK;LU;S14T05S012;4ML947406;LUCE DI INGRESSO;INTR;B73;KLT;NO;NO;000150;
-TAKT 5;8800;AL11;SMK;LU;S13T05S032;8W0907064EH;BODY COMPUTER;INTR;K04;KLT;NO;NO;000160;
-TAKT 5;8800;AL11;SMK;LU;S12T05S020;4K0907468C;CENTRALINA;INTR;E05;KLT;NO;NO;000260;
-TAKT 5;8800;AL11;SMK;LU;S14T05S011;4M6971227R;CABLAGGIO BATTERIA;INTR;K04;KLT;NO;NO;000160;
-TAKT 5;8800;AL11;SMK;LU;S14T05S011;4N0919191B;TV-TUNER;INTR;;KLT;NO;NO;000160;
-TAKT 6;8800;AL11;SMK;LU;S12T06S010;4M0907285A;SUPP.CENTRALINA;INTR;K05;KLT;NO;NO;000130;
-TAKT 5;8800;AL11;SMK;LU;S13T05S031;4ML863253;SUPPORTO;INTR;K05;KLT;NO;NO;000170;
-TAKT 5;8800;AL11;SMK;LU;S13T05S031;4ML885967;SUPPORTO;INTR;K05;KLT;NO;NO;000170;
-TAKT 5;8800;AL11;SMK;LU;S14T05S010;4M0915500H;DEGASSAMENTO      BATTERIA;INTR;K05;KLT;NO;NO;000170;
-TAKT 5;8800;AL11;SMK;LU;S14T05S010;4ML863254;SUPPORTO;INTR;K05;KLT;NO;NO;000170;
-TAKT 5;8800;AL11;SMK;LU;S14T05S010;4ML885968;SUPPORTO;INTR;K05;KLT;NO;NO;000170;
-TAKT 5;8800;AL11;SMK;LU;S13T05S030;4M0907341;SUPPORTO;INTR;K05;KLT;NO;NO;000180;
-TAKT 5;8800;AL11;SMK;LU;S13T05S030;4M0937517K;DISTRIB.POTENZIALE;INTR;K05;KLT;NO;NO;000180;
-TAKT 5;8800;AL11;SMK;LU;S13T05S030;4K1035283;BOX DI            COMUNICAZIONE;INTR;E05;KLT;NO;NO;000180;
-TAKT 5;8800;AL11;SMK;LU;S14T05G01S;9Y0915105G;BATTERIA C-HW H10;INTR;;GLT;1;1;000180;
-TAKT 5;8800;AL11;SMK;LU;S12T05S013;4M1713035C;SBLOCCAGGIO DI    EMERGENZA;INTR;K05;KLT;NO;NO;000190;
-TAKT 5;8800;AL11;SMK;LU;S12T05S020;4M4907368A;SUPP.CENTRALINA;INTR;K05;KLT;NO;NO;000260;
-TAKT 5;8800;AL11;SMK;LU;S12T05S012;4ML853373;BATTICALCAGNO;INTR;K04;KLT;NO;NO;000200;
-TAKT 5;8800;AL11;SMK;LU;S12T05S012;4ML853376;BATTICALCAGNO;INTR;K04;KLT;NO;NO;000200;
-TAKT 5;8800;AL11;SMK;LU;S12T05S012;8W0907064FH;BODY COMPUTER;INTR;K04;KLT;NO;NO;000200;
-TAKT 5;8800;AL11;SMK;LU;S12T05S021;4M4907392A;SUPP.CENTRALINA;INTR;K05;KLT;NO;NO;000250;
-TAKT 5;8800;AL11;SMK;LU;S12T05S011;4M8907742;SUPPORTO;INTR;K05;KLT;NO;NO;000210;
-TAKT 5;8800;AL11;SMK;LU;S12T05S011;4N0035466A;AMPLIFICATORE;INTR;K03;KLT;NO;NO;000210;
-TAKT 5;8800;AL11;SMK;LU;S12T05S010;4M0947417A;LUCE DI INGRESSO;INTR;;KLT;NO;NO;000220;
-TAKT 5;8800;AL11;SMK;LU;S12T05S010;4M2713035B;SBLOCCAGGIO DI    EMERGENZA;INTR;K05;KLT;NO;NO;000220;
-TAKT 5;8800;AL11;SMK;LU;S12T05S022;4M0907682B;SUPPORTO;INTR;K04;KLT;NO;NO;000240;
-TAKT 5;8800;AL11;SMK;LU;S12T05S022;8W0907064ER;BODY COMPUTER;INTR;K04;KLT;NO;NO;000240;
-TAKT 5;8800;AL11;SMK;LU;S12T05S021;4M0863859;INSERTO;INTR;K05;KLT;NO;NO;000250;
-TAKT 5;8800;AL11;SMK;LU;S12T05S021;4M0907682;SUPPORTO;INTR;K05;KLT;NO;NO;000250;
-TAKT 5;8800;AL11;SMK;LU;S12T05S011;4M8907713;SUPP.CENTRALINA;INTR;K05;KLT;NO;NO;000210;
-TAKT 5;8800;AL11;SMK;LU;S13T05S031;4M8907777N;CENTRALINA;INTR;K03;KLT;NO;NO;000170;
-TAKT 5;8800;AL11;SMK;LU;S13T05S032;4N0907107AC;CENTRALINA;INTR;E04;KLT;NO;NO;000160;
-TAKT 5;8800;AL11;SMK;LU;S12T05S013;4N1907468L;CENTRALINA;INTR;E03;KLT;NO;NO;000190;
-TAKT 5;8800;AL11;SMK;LU;S12T05S031;4N2907468K;CENTRALINA;INTR;E03;KLT;NO;NO;000290;
-TAKT 5;8800;AL11;SMK;LU;S12T05G01D;4M1419753C;ALBERO BRACC STERZ;INTR;;GLT;36;4;000350;
-TAKT 5;8800;AL11;SMK;LU;S12T05G02D;4M2419753B;ALBERO BRACC STERZ;INTR;;GLT;25;4;000360;
-TAKT 5;8800;AL11;SMK;LU;S12T05G03D;4M8881677;TELAIO SEDILE;INTR;A92;GLT;80;4;000370;
-TAKT 5;8800;AL11;SMK;LU;S12T05G04D;4ML886119A;TELAIO SEDILE;INTR;G92;GLT;15;4;000380;
-TAKT 5;8800;AL11;SMK;LU;S12T05G05D;4ML886120A;TELAIO SEDILE;INTR;G92;GLT;15;4;000390;
-TAKT 5;8800;AL11;SMK;LU;S12T05G06D;4ML863741;INSONORIZZAZIONE, PAVIMENTO;INTR;G01;GLT;51;4;000400;
-TAKT 5;8800;AL11;SMK;LU;S12T05G07D;9Y0801543;PARTE AGGIUNT.;INTR;;GLT;20;4;000410;
-TAKT 5;8800;AL11;SMK;LU;S13T05S041;4M0959107B;CENTRALINA, COFANO POST.;INTR;K04;KLT;NO;NO;000130;
-TAKT 5;8800;AL11;SMK;LU;S13T05S041;4N0959655H;CENTRALINA AIRBAG;INTR;K04;KLT;NO;NO;000130;
-TAKT 5;8800;AL11;SMK;LU;S13T05S040;8W0907163;CENTRALINA;INTR;K04;KLT;NO;NO;000140;
-TAKT 5;8800;AL11;SMK;LU;S12T05S033;4ML8533739B9;BATTICALCAGNO;INTR;K04;KLT;NO;NO;;
-TAKT 5;8800;AL11;SMK;LU;S12T05S033;4ML8533769B9;BATTICALCAGNO;INTR;K04;KLT;NO;NO;;
-TAKT 5;8800;AL11;SMK;LU;S12T05S033;4N4907468S;CENTRALINA;INTR;K04;KLT;NO;NO;;
-TAKT 6;8800;AL11;SMK;LU;S11T06G05D;4M2816740;TUBAZ.LIQUID.REFRI;INTR;G02;GLT;200;4;000010;
-TAKT 6;8800;AL11;SMK;LU;S12T06G08S;4M0915524H;SUPPORTO;INTR;G04;GLT;10;4;000010;
-TAKT 6;8800;AL11;SMK;LU;S11T06G04D;4M2816720M;TUBAZ.LIQUID.REFRI;INTR;G02;GLT;200;4;000020;
-TAKT 6;8800;AL11;SMK;LU;S11T06G03D;4M1820740K;TUBO RIGID.LIQ.REF;INTR;G02;GLT;200;4;000030;
-TAKT 6;8800;AL11;SMK;LU;S11T06G02D;4M1820720K;TUBAZ.LIQUID.REFRI;INTR;G02;GLT;200;4;000040;
-TAKT 6;8800;AL11;SMK;LU;S11T06S021;4M0915169F;BATTERIA;INTR;E05;KLT;NO;NO;000040;
-TAKT 6;8800;AL11;SMK;LU;S11T06S021;4M0915400C;COPERTURA BATTERIA;INTR;K05;KLT;NO;NO;000040;
-TAKT 6;8800;AL11;SMK;LU;S11T06S021;4M6971534;CAVO DI MASSA;INTR;K05;KLT;NO;NO;000040;
-TAKT 6;8800;AL11;SMK;LU;S11T06G01D;4M0819351A;CASSETTA,DISTRIB.;INTR;B77;GLT;12;4;000050;
-TAKT 6;8800;AL11;SMK;LU;S11T06S013;4M1819408A;GRIGLIA,ANTIFOGLIE;INTR;K05;KLT;NO;NO;000060;
-TAKT 6;8800;AL11;SMK;LU;S11T06S012;4H0907658A;SENSORE;INTR;K01;KLT;NO;NO;000070;
-TAKT 6;8800;AL11;SMK;LU;S11T06S012;4M0260113A;GOCCIOLATOIO;INTR;K01;KLT;NO;NO;000070;
-TAKT 6;8800;AL11;SMK;LU;S11T06S012;8K0611797B;SUPPORTO;INTR;K01;KLT;NO;NO;000070;
-TAKT 6;8800;AL11;SMK;LU;S11T06S011;4M6971534C;CAVO DI MASSA;INTR;K05;KLT;NO;NO;000080;
-TAKT 6;8800;AL11;SMK;LU;S11T06S010;4M1971565A;CABLAGG, CLIMATIZZ;INTR;K05;KLT;NO;NO;000090;
-TAKT 6;8800;AL11;SMK;LU;S11T06S010;8W0819699;DOPPIA BUSSOLA;INTR;K05;KLT;NO;NO;000090;
-TAKT 6;8800;AL11;SMK;LU;S11T06S010;4M1819904B;ASPIRAZIONE ARIA;INTR;K05;KLT;NO;NO;000090;
-TAKT 6;8800;AL11;SMK;LU;S12T06S013;4M0815215A;ADDUZIONE ARIA;INTR;K05;KLT;NO;NO;000100;
-TAKT 6;8800;AL11;SMK;LU;S12T06S013;4M0857042A;PARTE DI COLLEG., BOCCHETT.ARIA,POST;INTR;K05;KLT;NO;NO;000100;
-TAKT 6;8800;AL11;SMK;LU;S12T06S013;4M1971565;CABLAGG, CLIMATIZZ;INTR;K05;KLT;NO;NO;000100;
-TAKT 6;8800;AL11;SMK;LU;S12T06S012;4M0915426;COOPERTURA POLO;INTR;K03;KLT;NO;NO;000110;
-TAKT 6;8800;AL11;SMK;LU;S12T06S012;4M0863345;SUPPORTO;INTR;K04;KLT;NO;NO;000110;
-TAKT 6;8800;AL11;SMK;LU;S12T06S011;4M0863028B;PEZZO DI RIEMP.,  TAPPETO;INTR;K05;KLT;NO;NO;000120;
-TAKT 6;8800;AL11;SMK;LU;S12T06S011;4M0915400B;COPERTURA BATTERIA;INTR;K05;KLT;NO;NO;000120;
-TAKT 6;8800;AL11;SMK;LU;S12T06S011;4M0864472A;SUPP.RIVESTIMENTO;INTR;K05;KLT;NO;NO;000120;
-TAKT 6;8800;AL11;SMK;LU;S12T06S010;4M0863028;PEZZO DI RIEMP.,  TAPPETO;INTR;K05;KLT;NO;NO;000130;
-TAKT 5;8800;AL11;SMK;LU;S12T05S020;4N2907468L;CENTRALINA;INTR;E03;KLT;NO;NO;000260;
-TAKT 6;8800;AL11;SMK;LU;S12T06S010;4M0864471A;SUPP.RIVESTIMENTO;INTR;K05;KLT;NO;NO;000130;
-TAKT 6;8800;AL11;SMK;LU;S12T06G02S;9Y0612103;SERVOFRENO;INTR;B72;GLT;36;4;000140;
-TAKT 6;8800;AL11;SMK;LU;S12T06G03S;4M1816740N;TUBAZ.LIQUID.REFRI;INTR;G02;GLT;100;4;000150;
-TAKT 6;8800;AL11;SMK;LU;S12T06G04S;4M0863869A;INSONORIZZ.TUNNEL;INTR;G02;GLT;100;4;000160;
-TAKT 6;8800;AL11;SMK;LU;S12T06G05S;4M1816720R;TUBAZ.LIQUID.REFRI;INTR;G02;GLT;200;4;000170;
-TAKT 6;8800;AL11;SMK;LU;S12T06G06S;4M2820720K;TUBAZ.LIQUID.REFRI;INTR;G02;GLT;150;4;000180;
-TAKT 6;8800;AL11;SMK;LU;S12T06G07S;4M2820740K;TUBO RIGID.LIQ.REF;INTR;G02;GLT;150;4;000190;
-TAKT 6;8800;AL11;SMK;LU;S11T06S013;4M2819904B;ASPIRAZIONE ARIA;INTR;K05;KLT;NO;NO;000060;
-TAKT 6;8800;AL11;SMK;LU;S11T06S013;4M0915169D;BATTERIA;INTR;K05;KLT;NO;NO;000130;
-TAKT 6;8800;AL11;SMK;LU;S11T06S011;4ML863080QA5;FLAP;INTR;K05;KLT;NO;NO;000130;
-TAKT 6;8800;AL11;SMK;LU;S11T06S01 1;4ML863080JS1;FLAP;INTR;K05;KLT;NO;NO;000130;

+ 0 - 331
import/nuove liste_01.csv_imported

@@ -1,331 +0,0 @@
-81890715;11215;72495803;008000022537;AL;17/04/2018;18/04/2018;11:07:35;130;4M1819904B;ASPIRAZIONE ARIA;1;PZ;105;;TKT06 B;LMB;B;B;AL11
-81890729;11215;72495803;008000022537;AL;17/04/2018;18/04/2018;11:07:36;10;4M0260113A;GOCCIOLATOIO;2;PZ;105;;TKT06 A;LMB;A;A;AL11
-81890729;11215;72495803;008000022537;AL;17/04/2018;18/04/2018;11:07:36;20;4M0863345;SUPPORTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81890729;11215;72495803;008000022537;AL;17/04/2018;18/04/2018;11:07:36;30;4M0864471A;SUPP.RIVESTIMENTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81890729;11215;72495803;008000022537;AL;17/04/2018;18/04/2018;11:07:36;40;4M0915169F;BATTERIA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81890729;11215;72495803;008000022537;AL;17/04/2018;18/04/2018;11:07:36;50;4M0915400D;COPERTURA BATTERIA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81890729;11215;72495803;008000022537;AL;17/04/2018;18/04/2018;11:07:36;60;4M0915426;COOPERTURA POLO;2;PZ;105;;TKT06 A;LMB;A;A;AL11
-81890729;11215;72495803;008000022537;AL;17/04/2018;18/04/2018;11:07:36;70;4M0915524H;SUPPORTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81890729;11215;72495803;008000022537;AL;17/04/2018;18/04/2018;11:07:36;80;4M6971534;CAVO DI MASSA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81890729;11215;72495803;008000022537;AL;17/04/2018;18/04/2018;11:07:36;90;4M6971534C;CAVO DI MASSA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;10;4M1820720K;TUBAZ.LIQUID.REFRI;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;20;4M1820740K;TUBO RIGID.LIQ.REF;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;30;8W0819699;DOPPIA BUSSOLA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;40;4M0863028B;PEZZO DI RIEMP.,  TAPPETO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;50;4M0907285A;SUPP.CENTRALINA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;60;4M0863869A;INSONORIZZ.TUNNEL;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;70;4M0819351A;CASSETTA,DISTRIB.;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;80;4M1819904B;ASPIRAZIONE ARIA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;90;4M1819408A;GRIGLIA,ANTIFOGLIE;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;100;4H0907658A;SENSORE;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;110;4M0857042A;PARTE DI COLLEG., BOCCHETT.ARIA,POST;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;120;4M0815215A;ADDUZIONE ARIA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;130;4M0863028;PEZZO DI RIEMP.,  TAPPETO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;140;4M0864472A;SUPP.RIVESTIMENTO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;150;9Y0612103;SERVOFRENO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;160;4M1971565A;CABLAGG, CLIMATIZZ;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891099;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:43;170;4ML863080QA5;FLAP;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891109;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:44;10;4M0260113A;GOCCIOLATOIO;2;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891109;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:44;20;4M0863345;SUPPORTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891109;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:44;30;4M6971534;CAVO DI MASSA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891109;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:44;40;4M6971534C;CAVO DI MASSA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891109;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:44;50;4M0864471A;SUPP.RIVESTIMENTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891109;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:44;60;4M0915426;COOPERTURA POLO;2;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891109;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:44;70;4M0915524H;SUPPORTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891109;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:44;80;4M0915169F;BATTERIA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891109;11216;72274902;008000022538;AL;18/04/2018;18/04/2018;11:07:44;90;4M0915400D;COPERTURA BATTERIA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;10;4M1820720K;TUBAZ.LIQUID.REFRI;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;20;4M1820740K;TUBO RIGID.LIQ.REF;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;30;8W0819699;DOPPIA BUSSOLA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;40;4M0863028B;PEZZO DI RIEMP.,  TAPPETO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;50;4M0907285A;SUPP.CENTRALINA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;60;4M0863869A;INSONORIZZ.TUNNEL;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;70;4M0819351A;CASSETTA,DISTRIB.;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;80;4M1819904B;ASPIRAZIONE ARIA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;90;4M1819408A;GRIGLIA,ANTIFOGLIE;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;100;4H0907658A;SENSORE;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;110;4M0857042A;PARTE DI COLLEG., BOCCHETT.ARIA,POST;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;120;4M0815215A;ADDUZIONE ARIA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;130;4M0863028;PEZZO DI RIEMP.,  TAPPETO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;140;4M0864472A;SUPP.RIVESTIMENTO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;150;9Y0612103;SERVOFRENO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;160;4M1971565A;CABLAGG, CLIMATIZZ;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891243;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:53;170;4ML863080QA5;FLAP;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;10;8W0907163;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;20;4M1419753C;ALBERO BRACC STERZ;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;30;4ML863253;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;40;4ML867735;ANGOLARE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;50;4M8907713;SUPP.CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;60;4ML885967;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;70;4ML867737;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;80;4M1713035C;SBLOCCAGGIO DI    EMERGENZA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;90;4M8907742;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;100;4M0907341;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;110;4M0959107B;CENTRALINA, COFANO POST.;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;120;4ML881677;TELAIO SEDILE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;130;4M4907392A;SUPP.CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;140;4M4907368A;SUPP.CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;150;4N0035466A;AMPLIFICATORE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;160;4M0907682;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;170;4M0907682B;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;180;4ML853373;BATTICALCAGNO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;190;4ML853376;BATTICALCAGNO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;200;8W0907064EH;BODY COMPUTER;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;210;4M8907777N;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891252;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;220;4N0907107AC;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81891253;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;10;4M0260113A;GOCCIOLATOIO;2;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891253;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;20;4M0863345;SUPPORTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891253;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;30;4M6971534;CAVO DI MASSA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891253;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;40;4M6971534C;CAVO DI MASSA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891253;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;50;4M0864471A;SUPP.RIVESTIMENTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891253;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;60;4M0915426;COOPERTURA POLO;2;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891253;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;70;4M0915524H;SUPPORTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891253;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;80;4M0915169F;BATTERIA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891253;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:54;90;4M0915400D;COPERTURA BATTERIA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;10;4M0907247;ANTENNA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;20;4ML863254;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;30;4ML885968;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;40;4ML867738;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;50;4M0907176;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;60;4H0035570A;CIRCUITO          SOPRESSORE,BANDA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;70;4M6907349;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;80;9Y0971235;CAVO MASSA BATTER.;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;90;9Y0915500;DEGASSAMENTO      BATTERIA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;100;4M0804815B;STAFFA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;110;4M0802419D;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;120;4M0941828;SUPP.PORTA-FUSIB.;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;130;4ML881677;TELAIO SEDILE;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;140;4M0937517K;DISTRIB.POTENZIALE;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;150;4M0915500H;DEGASSAMENTO      BATTERIA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;160;4ML853374;BATTICALCAGNO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;170;4ML853375;BATTICALCAGNO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;180;4M6971227R;CABLAGGIO BATTERIA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;190;4ML863741;INSONORIZZAZIONE, PAVIMENTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81891275;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:56;200;9Y0915105G;BATTERIA C-HW H10;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;10;4H0035570A;CIRCUITO          SOPRESSORE,BANDA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;20;4M0802419D;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;30;4M0804815B;STAFFA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;40;4M0907176;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;50;4M0907247;ANTENNA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;60;4M0915500H;DEGASSAMENTO      BATTERIA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;70;4M0937517K;DISTRIB.POTENZIALE;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;80;4M0941828;SUPP.PORTA-FUSIB.;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;90;4M0959663G;TRASFORMAT.D TENS.;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;100;4M6907349;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;110;4M6971227R;CABLAGGIO BATTERIA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;120;4M8907815;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;130;4ML863254;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;140;4ML863741;INSONORIZZAZIONE, PAVIMENTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;150;4ML867738;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;160;4ML881677;TELAIO SEDILE;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;170;4ML885968;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;180;4ML947406;LUCE DI INGRESSO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;190;4ML947418;LUCE DI INGRESSO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;200;4N0919191B;TV-TUNER;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;210;9Y0915105G;BATTERIA C-HW H10;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;220;9Y0915500;DEGASSAMENTO      BATTERIA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893031;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;230;9Y0971235;CAVO MASSA BATTER.;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;10;4H0907658A;SENSORE;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;20;4M0815215A;ADDUZIONE ARIA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;30;4M0819351A;CASSETTA,DISTRIB.;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;40;4M0857042A;PARTE DI COLLEG., BOCCHETT.ARIA,POST;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;50;4M0863028;PEZZO DI RIEMP.,  TAPPETO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;60;4M0863028B;PEZZO DI RIEMP.,  TAPPETO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;70;4M0863869A;INSONORIZZ.TUNNEL;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;80;4M0864472A;SUPP.RIVESTIMENTO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;90;4M0907285A;SUPP.CENTRALINA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;100;4M1816720R;TUBAZ.LIQUID.REFRI;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;110;4M1816740N;TUBAZ.LIQUID.REFRI;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;120;4M1819408A;GRIGLIA,ANTIFOGLIE;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;130;4M1819904B;ASPIRAZIONE ARIA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;140;4M1971565A;CABLAGG, CLIMATIZZ;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;150;4ML863080QA5;FLAP;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;160;8W0819699;DOPPIA BUSSOLA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893035;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;170;9Y0612103;SERVOFRENO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893049;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;10;4M0260113A;GOCCIOLATOIO;2;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893049;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;20;4M0863345;SUPPORTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893049;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;30;4M0864471A;SUPP.RIVESTIMENTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893049;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;40;4M0915169F;BATTERIA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893049;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;50;4M0915400D;COPERTURA BATTERIA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893049;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;60;4M0915426;COOPERTURA POLO;2;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893049;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;70;4M0915524H;SUPPORTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893049;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;80;4M6971534;CAVO DI MASSA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893049;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;14:44:00;90;4M6971534C;CAVO DI MASSA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;10;4M0907341;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;20;4M0907682;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;30;4M0907682B;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;40;4M0959107B;CENTRALINA, COFANO POST.;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;50;4M1419753C;ALBERO BRACC STERZ;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;60;4M1713035C;SBLOCCAGGIO DI    EMERGENZA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;70;4M4907368A;SUPP.CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;80;4M4907392A;SUPP.CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;90;4M8907713;SUPP.CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;100;4M8907742;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;110;4M8907777N;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;120;4ML863253;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;130;4ML867735;ANGOLARE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;140;4ML867737;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;150;4ML881677;TELAIO SEDILE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;160;4ML885669;TELAIO SEDILE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;170;4ML885967;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;180;4ML886119A;TELAIO SEDILE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;190;4ML886120A;TELAIO SEDILE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;200;4ML947405;LUCE DI INGRESSO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;210;4ML947417;LUCE DI INGRESSO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;220;4N0035466A;AMPLIFICATORE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;230;4N0907107AC;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;240;4N0959655H;CENTRALINA AIRBAG;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;250;4N2907468L;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;260;8W0907064EH;BODY COMPUTER;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893068;11255;72495703;008000022576;AL;18/04/2018;18/04/2018;13:54:00;270;8W0907163;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;10;4H0035570A;CIRCUITO          SOPRESSORE,BANDA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;20;4M0802419D;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;30;4M0804815B;STAFFA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;40;4M0907176;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;50;4M0907247;ANTENNA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;60;4M0915500H;DEGASSAMENTO      BATTERIA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;70;4M0937517K;DISTRIB.POTENZIALE;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;80;4M0941828;SUPP.PORTA-FUSIB.;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;90;4M0959663G;TRASFORMAT.D TENS.;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;100;4M6907349;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;110;4M6971227R;CABLAGGIO BATTERIA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;120;4M8035821;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;130;4M8907815;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;140;4ML863254;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;150;4ML863741;INSONORIZZAZIONE, PAVIMENTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;160;4ML867738;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;170;4ML881677;TELAIO SEDILE;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;180;4ML885968;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;190;4ML947406;LUCE DI INGRESSO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;200;4ML947418;LUCE DI INGRESSO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;210;4N0919191B;TV-TUNER;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;220;4N0919805;SCANNER;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;230;9Y0915105G;BATTERIA C-HW H10;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;240;9Y0915500;DEGASSAMENTO      BATTERIA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893166;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;250;9Y0971235;CAVO MASSA BATTER.;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;10;4H0907658A;SENSORE;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;20;4M0815215A;ADDUZIONE ARIA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;30;4M0819351A;CASSETTA,DISTRIB.;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;40;4M0857042A;PARTE DI COLLEG., BOCCHETT.ARIA,POST;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;50;4M0863028;PEZZO DI RIEMP.,  TAPPETO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;60;4M0863028B;PEZZO DI RIEMP.,  TAPPETO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;70;4M0863869A;INSONORIZZ.TUNNEL;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;80;4M0864472A;SUPP.RIVESTIMENTO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;90;4M0907285A;SUPP.CENTRALINA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;100;4M1816720R;TUBAZ.LIQUID.REFRI;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;110;4M1816740N;TUBAZ.LIQUID.REFRI;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;120;4M1819408A;GRIGLIA,ANTIFOGLIE;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;130;4M1819904B;ASPIRAZIONE ARIA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;140;4M1971565A;CABLAGG, CLIMATIZZ;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;150;4ML863080QA5;FLAP;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;160;8W0819699;DOPPIA BUSSOLA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893170;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;170;9Y0612103;SERVOFRENO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893184;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;10;4M0260113A;GOCCIOLATOIO;2;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893184;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;20;4M0863345;SUPPORTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893184;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;30;4M0864471A;SUPP.RIVESTIMENTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893184;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;40;4M0915169F;BATTERIA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893184;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;50;4M0915400D;COPERTURA BATTERIA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893184;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;60;4M0915426;COOPERTURA POLO;2;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893184;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;70;4M0915524H;SUPPORTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893184;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;80;4M6971534;CAVO DI MASSA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893184;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;15:45:00;90;4M6971534C;CAVO DI MASSA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;10;4M0907341;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;20;4M0907682;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;30;4M0907682B;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;40;4M0959107B;CENTRALINA, COFANO POST.;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;50;4M1419753C;ALBERO BRACC STERZ;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;60;4M1713035C;SBLOCCAGGIO DI    EMERGENZA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;70;4M4907368A;SUPP.CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;80;4M4907392A;SUPP.CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;90;4M8907713;SUPP.CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;100;4M8907742;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;110;4M8907777N;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;120;4ML863253;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;130;4ML867735;ANGOLARE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;140;4ML867737;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;150;4ML881677;TELAIO SEDILE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;160;4ML885669;TELAIO SEDILE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;170;4ML885967;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;180;4ML886119A;TELAIO SEDILE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;190;4ML886120A;TELAIO SEDILE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;200;4ML947405;LUCE DI INGRESSO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;210;4ML947417;LUCE DI INGRESSO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;220;4N0035466A;AMPLIFICATORE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;230;4N0907107AC;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;240;4N0959655H;CENTRALINA AIRBAG;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;250;4N2907468L;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;260;8W0907064EH;BODY COMPUTER;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893203;11256;72494302;008000022577;AL;18/04/2018;18/04/2018;14:44:00;270;8W0907163;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;10;4H0035570A;CIRCUITO          SOPRESSORE,BANDA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;20;4M0802419D;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;30;4M0804815B;STAFFA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;40;4M0907176;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;50;4M0907247;ANTENNA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;60;4M0915500H;DEGASSAMENTO      BATTERIA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;70;4M0937517K;DISTRIB.POTENZIALE;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;80;4M0941828;SUPP.PORTA-FUSIB.;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;90;4M0959663G;TRASFORMAT.D TENS.;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;100;4M6907349;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;110;4M6971227R;CABLAGGIO BATTERIA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;120;4M8881677;TELAIO SEDILE;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;130;4ML863254;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;140;4ML863741;INSONORIZZAZIONE, PAVIMENTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;150;4ML867738;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;160;4ML885968;SUPPORTO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;170;4ML947406;LUCE DI INGRESSO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;180;4ML947418;LUCE DI INGRESSO;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;190;9Y0915105G;BATTERIA C-HW H10;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;200;9Y0915500;DEGASSAMENTO      BATTERIA;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893300;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;210;9Y0971235;CAVO MASSA BATTER.;1;PZ;105;;TKT05 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;10;4H0907658A;SENSORE;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;20;4M0815215A;ADDUZIONE ARIA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;30;4M0819351A;CASSETTA,DISTRIB.;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;40;4M0857042A;PARTE DI COLLEG., BOCCHETT.ARIA,POST;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;50;4M0863028;PEZZO DI RIEMP.,  TAPPETO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;60;4M0863028B;PEZZO DI RIEMP.,  TAPPETO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;70;4M0863869A;INSONORIZZ.TUNNEL;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;80;4M0864472A;SUPP.RIVESTIMENTO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;90;4M0907285A;SUPP.CENTRALINA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;100;4M1816720R;TUBAZ.LIQUID.REFRI;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;110;4M1816740N;TUBAZ.LIQUID.REFRI;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;120;4M1819408A;GRIGLIA,ANTIFOGLIE;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;130;4M1819904B;ASPIRAZIONE ARIA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;140;4M1971565A;CABLAGG, CLIMATIZZ;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;150;4ML863080QA5;FLAP;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;160;8W0819699;DOPPIA BUSSOLA;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893304;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;170;9Y0612103;SERVOFRENO;1;PZ;105;;TKT06 B;LMB;A;A;AL11
-81893318;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;10;4M0260113A;GOCCIOLATOIO;2;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893318;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;20;4M0863345;SUPPORTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893318;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;30;4M0864471A;SUPP.RIVESTIMENTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893318;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;40;4M0915169F;BATTERIA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893318;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;50;4M0915400D;COPERTURA BATTERIA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893318;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;60;4M0915426;COOPERTURA POLO;2;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893318;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;70;4M0915524H;SUPPORTO;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893318;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;80;4M6971534;CAVO DI MASSA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893318;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;16:35:00;90;4M6971534C;CAVO DI MASSA;1;PZ;105;;TKT06 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;10;4M0907341;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;20;4M0907682;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;30;4M0907682B;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;40;4M0959107B;CENTRALINA, COFANO POST.;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;50;4M1419753C;ALBERO BRACC STERZ;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;60;4M1713035C;SBLOCCAGGIO DI    EMERGENZA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;70;4M4907368A;SUPP.CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;80;4M4907392A;SUPP.CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;90;4M8881677;TELAIO SEDILE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;100;4M8907713;SUPP.CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;110;4M8907742;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;120;4M8907777N;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;130;4ML863253;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;140;4ML867735;ANGOLARE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;150;4ML867737;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;160;4ML885967;SUPPORTO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;170;4ML947405;LUCE DI INGRESSO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;180;4ML947417;LUCE DI INGRESSO;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;190;4N0035466A;AMPLIFICATORE;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;200;4N0907107AC;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;210;4N0959655H;CENTRALINA AIRBAG;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;220;4N2907468L;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;230;8W0907064EH;BODY COMPUTER;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893337;11257;72494202;008000022595;AL;18/04/2018;18/04/2018;15:45:00;240;8W0907163;CENTRALINA;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893777;11216;72274902;008000022538;AL;17/04/2018;18/04/2018;11:07:49;10;4N0959655H;CENTRALINA AIRBAG;1;PZ;105;;TKT05 A;LMB;A;A;AL11
-81893778;11217;72275002;008000022539;AL;18/04/2018;18/04/2018;11:07:59;10;4N0959655H;CENTRALINA AIRBAG;1;PZ;105;;TKT05 A;LMB;A;A;AL11

+ 5 - 5
package.json

@@ -1,11 +1,11 @@
 {
-  "name": "lamborghini",
-  "version": "1.5.0",
-  "description": "Lamborghini OM-Link version",
+  "name": "OM-Link",
+  "version": "1.6.0",
+  "description": "Default OM-Link version",
   "main": "",
   "scripts": {
-    "build": "node build.js dimatec",
-    "deploy": "zip -9 -r deploy.zip dbschema.sql lib cfg/config.bin cfg/labels.ini index.php bundle.* src ui -x ui/css/* ui/customizations/* ui/bundle.min.js ui/js/*"
+    "build": "node build.js",
+    "deploy": "zip -9 -r deploy.zip omlink.sql lib cfg/config.bin cfg/labels.ini index.php bundle.* src ui -x ui/css/* ui/js/*"
   },
   "author": "Open Mind",
   "license": "ISC",

+ 36 - 0
src/Modules/Blank/Blank.php

@@ -0,0 +1,36 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Giancarlo
+ * Date: 11/10/2018
+ * Time: 14:57
+ */
+
+namespace Modules\Blank;
+
+use DB\SQL;
+use DB\SQL\Mapper;
+use OpenMind\System\PluginStrategy;
+use OpenMind\System\User;
+use OpenMind\System\UserRoles;
+
+class Blank extends PluginStrategy
+{
+  public function __construct()
+  {
+    $this->AddRoute('GET /helloworld', __NAMESPACE__ . '\Pages->HelloWorld');
+
+    $this->AddMenuItem('Demo', [
+      'url' => 'helloworld',
+      'imgClass' => 'shadow p-3 rounded bg-white',
+      'image' => 'ui/images/demo.png',
+      'permissionName' => 'demo'
+    ]);
+
+    $roles = new UserRoles();
+    $roles->add('demo');
+  }
+}
+
+/** @var Blank $Blank */
+Global $Blank;

+ 21 - 0
src/Modules/Blank/Pages.php

@@ -0,0 +1,21 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Giancarlo
+ * Date: 11/10/2018
+ * Time: 15:25
+ */
+
+namespace Modules\Blank;
+
+use OpenMind\Web\Controller;
+
+class Pages extends Controller
+{
+  public function HelloWorld($f3)
+  {
+    $f3->set('MESSAGE', 'Hello World');
+    $f3->set('CONTENT', 'message.tpl');
+    echo \Template::instance()->render('masterpage.tpl');
+  }
+}

+ 0 - 45
src/Modules/Dimatec/Dimatec.php

@@ -1,45 +0,0 @@
-<?php
-/**
- * Created by PhpStorm.
- * User: Giancarlo
- * Date: 19/07/2018
- * Time: 09:07
- */
-
-namespace Modules\Dimatec;
-
-use OpenMind\System\PluginStrategy;
-
-class Dimatec extends PluginStrategy
-{
-  public function __construct()
-  {
-    global $f3;
-    if ($f3->get('CUSTOMERNAME') != 'dimatec')
-      return;
-
-    $f3->config('cfg/labels.ini', true);
-
-    $this->AddRoute('GET|POST /pick2light/@step', __NAMESPACE__ . '\Pages->Pick2Light');
-    $this->AddRoute("GET|POST /bind", __NAMESPACE__ . '\Pages->Bind');
-    $this->AddRoute("GET /dualframe", __NAMESPACE__ . '\Dimatec->IcamControlIFrame');
-    $this->AddRoute("GET /mav2as400/@step", __NAMESPACE__ . '\Pages->MAV2AS400');
-    $this->AddRoute('GET /importfromas400', __NAMESPACE__ . '\Pages->ImportFromAS400');
-    $this->AddRoute("GET /printlabel/@id/@qty", __NAMESPACE__ . '\Pages->PrintLabel');
-
-    $imgClass = 'shadow p-3 rounded bg-white';
-
-    $this->AddMenuItem('MAV -> AS400', ['order' => 1, 'url' => 'mav2as400/1', 'imgClass' => $imgClass, 'image' => 'ui/images/mav2as400.png', 'permissionName' => 'importdata']);
-    $this->AddMenuItem('Importa Missioni', ['order' => 2, 'url' => 'importfromas400', 'imgClass' => $imgClass, 'image' => 'ui/images/import.png', 'permissionName' => 'importdata']);
-    $this->AddMenuItem('Bind', ['url' => 'bind', 'imgClass' => $imgClass, 'image' => 'ui/images/bind.png']);
-    $this->AddMenuItem('Ventilazione', ['url' => 'pick2light/1', 'imgClass' => $imgClass, 'image' => 'ui/images/magazzinoverticale.png']);
-  }
-
-  public function IcamControlIFrame($f3)
-  {
-    echo \Template::instance()->render('icamcontrol.tpl');
-  }
-}
-
-/** @var \Modules\Dimatec\Dimatec $Dimatec */
-Global $Dimatec;

+ 0 - 215
src/Modules/Dimatec/Distinta.php

@@ -1,215 +0,0 @@
-<?php
-/**
- * @author Open Mind
- * @date 13/04/2018
- * @time 11:43
- */
-
-namespace Modules\Dimatec;
-
-use OpenMind\FindBox\QueueCommand;
-use OpenMind\System\QueueSystem;
-
-class Distinta
-{
-  /** @var \DB\SQL $dbHandle */
-  protected $dbHandle;
-
-  /** @var int $userId */
-  protected $userId;
-
-  public function __construct()
-  {
-    global $f3;
-    $this->dbHandle = $f3->get('DB');
-    $this->userId = $f3->get('USER')->id;
-  }
-
-  /**
-   * Delete from table all commesse present and unbind all Prebolle to ESL
-   */
-  public function TrashCommesse()
-  {
-    $this->dbHandle->exec("DELETE FROM `label_bindings` WHERE barcode IN (SELECT commessa FROM distinte WHERE idUtente={$this->userId} AND deleted=0)");
-    $this->dbHandle->exec("DELETE FROM `distinte` WHERE idUtente={$this->userId} AND deleted=0");
-  }
-
-  /**
-   * Virtual delete and article of a commessa by set deleted=1 in database field
-   *
-   * @param string $article
-   */
-  public function DeleteCommessaArticle(string $article, string $commessa)
-  {
-    $this->dbHandle->exec("UPDATE `distinte` SET deleted=1 WHERE commessa='{$commessa}' AND barcode='{$article}' AND idUtente={$this->userId} AND deleted=0");
-  }
-
-  /**
-   * Check if commessa isn't deleted and present
-   *
-   * @param string $barcode
-   * @return bool
-   */
-  public function commessaExists(string $barcode): bool
-  {
-    return (count($this->dbHandle->exec("SELECT * FROM `distinte` WHERE `commessa` = '{$barcode}' AND `idUtente` = '{$this->userId}' AND `deleted` = '0'")) > 0);
-  }
-
-  /**
-   * Ottiene il codice articolo da ogni tipo di campo 'utile'
-   *
-   * @param string $id
-   * @return null|string Codice Articolo
-   */
-  public function GetBarcode(string $id): ?string
-  {
-    $binding = $this->dbHandle->exec("SELECT barcode FROM `distinte` WHERE `barcode` = '{$id}' OR `codcliente` = '{$id}' OR `commessa` = '{$id}'");
-    if (count($binding) > 0)
-      return $binding[0]['barcode'];
-    return null;
-  }
-
-  /**
-   * Retrieve all commesse associated to a Product
-   *
-   * @param string $barcode
-   * @return array
-   */
-  public function getCommesseFromProduct(string $barcode): array
-  {
-    return $this->dbHandle->exec("SELECT * FROM `distinte` WHERE `barcode` = '{$barcode}' AND `idUtente` = '{$this->userId}' AND `deleted` = '0' ORDER BY `commessa`");
-  }
-
-  public function UnbindAll()
-  {
-    global $f3;
-
-    $labels = $this->getListeBinded();
-    foreach($labels as $label) {
-      $msgDisplay = new QueueCommand($label['label_id']);
-      $msgDisplay->setDisplay($f3->get("LABELS.TEMPLATES.DEFAULT"), $label['label_id']);
-
-      $msgReset = new QueueCommand($label['label_id']);
-      $msgReset->saveProducts('', [
-        'Q.ta' => '',
-        'Commessa' => $label['label_id']
-      ]);
-
-      $qm = new QueueSystem('FindBoxService');
-      $qm->send($msgReset);
-      $qm->send($msgDisplay);
-    }
-  }
-
-  /**
-   * Restituisce le commesse ancora da bindare
-   *
-   * @return array|FALSE|int
-   */
-  public function getListeBinded()
-  {
-    return $this->dbHandle->exec("SELECT label_id FROM label_bindings WHERE barcode IN (SELECT commessa FROM `distinte` WHERE deleted=0 AND idutente={$this->userId})");
-  }
-
-
-  /**
-   * Restituisce le commesse ancora da bindare
-   *
-   * @return array|FALSE|int
-   */
-  public function getListeToBind()
-  {
-    return $this->dbHandle->exec("SELECT DISTINCT commessa FROM `distinte` WHERE deleted=0 and idutente={$this->userId} AND commessa NOT IN (SELECT barcode FROM label_bindings) ORDER BY commessa");
-  }
-
-  public function getDistinta(string $maxRows = '3')
-  {
-    return $this->dbHandle->exec("SELECT * FROM distinta_esplosa WHERE idutente={$this->userId} AND qta_prelevare>0 and anomalie=0 ORDER BY sequenza LIMIT {$maxRows}");
-  }
-
-  /**
-   * @param string $barcode
-   * @return array
-   */
-  public function MarkBarcodeAsAnomalia(string $barcode): array
-  {
-    global $f3;
-    $CORE_SETTINGS = $f3->get('CORE.fb');
-    $findBoxCore = new FindBoxCoreSystem(...array_values($CORE_SETTINGS));
-    $lblId = $this->GetLabelIdFromBarcode($barcode);
-    $label = new SmartESL($findBoxCore, [$lblId]);
-    $label->BlinkSpecial(3, 1, 1000, 10);
-
-    $sql = "UPDATE distinta_esplosa d JOIN label_bindings b ON d.barcode = b.barcode SET anomalie=1 WHERE idutente={$this->userId} AND b.barcode='{$barcode}'";
-    return $this->dbHandle->exec($sql);
-  }
-
-  /**
-   * Get quantity for article binded to label
-   *
-   * @param string $barcode
-   * @return int
-   */
-  public function getArticleCount(string $barcode): int
-  {
-    $sql = "SELECT d.qta_prelevare from distinta d JOIN label_bindings b ON d.barcode = b.barcode WHERE idutente={$this->userId} AND b.barcode='{$barcode}'";
-    $record = $this->dbHandle->exec($sql);
-    if (count($record) > 0)
-      return $record[0]['qta_prelevare'];
-    return 0;
-  }
-
-  /**
-   * @param string $barcode
-   * @return null|string
-   */
-  public function GetLabelIdFromBarcode(string $barcode): ?string
-  {
-    $label = $this->dbHandle->exec("SELECT label_id FROM `label_bindings` WHERE barcode='{$barcode}'");
-    if (count($label) > 0)
-      return $label[0]['label_id'];
-    return null;
-  }
-
-  /**
-   * Checn if $label_id is already binded in OM-Link
-   *
-   * @param string $label_id
-   * @return bool true if is binded
-   */
-  public function isLabelBinded(string $label_id)
-  {
-    $bindings = $this->getListeBinded();
-    $bindingListByColumn = array_column($bindings, 'label_id');
-    $indexFind = array_search($label_id, $bindingListByColumn);
-    return $indexFind !== false;
-  }
-
-  /**
-   * Facility for getting printing data
-   *
-   * @param int $id
-   * @return array|FALSE|int
-   */
-  public function GetPrintingData(int $id)
-  {
-    return $this->dbHandle->exec("SELECT `commessa`, `barcode`, `codcliente`, `descrizione` FROM `distinte` WHERE id=$id");
-  }
-
-  /**
-   * Get Barcode from article code
-   *
-   * @param string $barcode
-   * @return array|null
-   */
-  public function getCodCliente(string $barcode): ?array
-  {
-    $arr = $this->dbHandle->exec("SELECT `barcode`, `codcliente`, `descrizione` FROM `distinte` WHERE `barcode`='$barcode'");
-
-    if(count($arr)>0)
-      return $arr;
-
-    return null;
-  }
-
-}

+ 0 - 445
src/Modules/Dimatec/MigrationData.php

@@ -1,445 +0,0 @@
-<?php
-/**
- * Created by PhpStorm.
- * User: Giancarlo
- * Date: 19/09/2018
- * Time: 12:10
- */
-
-namespace Modules\Dimatec;
-
-use DB\SQL;
-
-// DB2 Connection
-define('DB2DSN', "odbc:Driver={iSeries Access ODBC Driver};DefaultLibraries=SMEDAT_DIM;SYSTEM=");
-define('DB2UID', 'icam');
-define('DB2PWD', 'icam');
-
-// MAV DB Connection
-define('MAVDBDSN', "sqlsrv:Database=icamdbstore;Encrypt=false;TrustServerCertificate=false;Server=");
-define('MAVDBUID', 'sa');
-define('MAVDBPWD', 'sa');
-
-class MigrationData
-{
-
-  const STATUS_NEW = 0;
-  CONST STATUS_PENDING = 50;
-  CONST STATUS_DONE = 80;
-
-  /** @var SQL $dbHandle DB2 */
-  private $dbHandle;
-
-  /** @var SQL $dbHandle MSSQL Server */
-  private $dbMAVHandle;
-
-  /** @var \SoapClient $soapClient MAV client */
-  private $soapClient;
-
-  // SOAPACTION
-  private $soapAction = 'http://servizi_xchange.org/ImportLists';
-
-  // Internal variables
-  private $finalXml;
-  private $listXml;
-
-  // The ids of current articles to move from DB2 to MAV
-  private $db2RowsId = [];
-
-  public function ClearCachedIDs()
-  {
-    global $System;
-    $System->getCache()->clear('db2RowsId');
-  }
-
-  /**
-   * Create the connection client to a SOAP server
-   * @param string $serverAddress IP Address
-   * @throws \Exception
-   */
-  public function SoapConnector(string $serverAddress)
-  {
-    global $frameworkUtils;
-    if ($frameworkUtils->isServerAlive($serverAddress, 80, 2) > 0)
-      throw new \Exception('Magazzino Verticale non raggiungibile');
-
-    $this->soapClient = new \SoapClient("http://$serverAddress/servizi_xchange.asmx?wsdl", array(
-      'trace' => true,
-      'exceptions' => true,
-      'cache_wsdl' => false,
-    ));
-  }
-
-  /**
-   * Get all new missions from DB2 without status 0
-   * @param string $operationType
-   */
-  public function selectAvailableMissions(string $operationType)
-  {
-    $filter = $this->fixOperationTypeValue($operationType);
-
-    $this->db2RowsId = array_column($this->query("SELECT MXIDDM FROM SMEDAT_DIM.INTMAV0F WHERE $filter AND MXSTAT=0"), 'MXIDDM');
-  }
-
-  /**
-   * Set mission status on AS400
-   * @param $listaId
-   */
-  public function InitializeMissionsToPending($listaId)
-  {
-    $ids = join(", ", $this->db2RowsId);
-    $this->query("UPDATE SMEDAT_DIM.INTMAV0F SET MXSTAT=" . MigrationData::STATUS_PENDING . ", MXNOLS='$listaId' WHERE MXIDDM IN ($ids)");
-  }
-
-  /**
-   * Set all missions in STATUS_PENDING status as STATUS_DONE
-   */
-  public function RollbackPendingMissionsToNew()
-  {
-    // Stranamente se non facci oquesto count pdostatement genera un server error 500 intrappabile!!
-    $pendingCount = count($this->query('SELECT * FROM SMEDAT_DIM.INTMAV0F WHERE MXSTAT=' . MigrationData::STATUS_PENDING));
-    if ($pendingCount > 0) {
-      $this->query(
-        "UPDATE SMEDAT_DIM.INTMAV0F SET MXSTAT=" . MigrationData::STATUS_NEW . ", MXNCON='', MXNOLS='' WHERE MXSTAT=" . MigrationData::STATUS_PENDING
-      );
-    }
-  }
-
-  /**
-   * @param string $labelId
-   * @param string $articleCode
-   * @param string $commessa
-   */
-  public function MarkMissionDone(string $labelId, string $articleCode, string $commessa)
-  {
-    $this->query(
-      "UPDATE SMEDAT_DIM.INTMAV0F SET MXSTAT=" . MigrationData::STATUS_DONE . " WHERE MXNCON='$labelId' AND MXCORD='$commessa' AND MXARTI='$articleCode' AND MXSTAT=" . MigrationData::STATUS_PENDING
-    );
-  }
-
-  /**
-   * Set barcode on all missions cached by 'selectAvailableMissions'
-   * @param string $labelId
-   * @param string $commessa filter
-   */
-  public function SetMissionsBarcodes(string $labelId, string $commessa)
-  {
-    $this->query("UPDATE SMEDAT_DIM.INTMAV0F SET MXNCON='$labelId' WHERE MXCORD='$commessa'");
-  }
-
-  /**
-   * MAV DB constructor.
-   */
-  public function MAVDatabaseConnector()
-  {
-    global $f3;
-    $this->dbMAVHandle = new SQL(
-      MAVDBDSN . $f3->get('VERTICALSTORAGE.MV_ADDRESS'),
-      MAVDBUID, MAVDBPWD,
-      array(\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION));
-  }
-
-  /**
-   * PDO constructor.
-   */
-  public function DB2Connector()
-  {
-    global $f3;
-    $this->dbHandle = new SQL(
-      DB2DSN . $f3->get('VERTICALSTORAGE.DB2_ADDRESS'),
-      'icam', 'icam',
-      array(\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION));
-  }
-
-  /**
-   * @param $sql
-   * @return array
-   */
-  public function query($sql)
-  {
-    return $this->dbHandle->exec($sql);
-  }
-
-  /**
-   * @param $result
-   * @return int row count
-   */
-  public function toCSV($result): int
-  {
-    $count = 0;
-    foreach($result as $key => $value) {
-      $arr = [];
-      array_map(function ($v) use (&$arr) {
-        $arr[] = str_pad(ltrim(rtrim($v)), 5, ' ');
-      }, $value);
-
-      echo join('|', $arr);
-      echo PHP_EOL;
-      $count++;
-    }
-    return $count;
-  }
-
-  private function soapAddHead(string $extCode, string $operation, string $name, string $description)
-  {
-    $this->listXml .= <<<EOF
-        <ser:ListHead>
-          <ser:external_list_code>$extCode</ser:external_list_code>
-          <ser:operation_type>VISUALIZZAZIONE</ser:operation_type>
-          <ser:operation>$operation</ser:operation>
-          <ser:name>$name</ser:name>
-          <ser:description>$description</ser:description>
-          <ser:user_id>sa</ser:user_id>
-        </ser:ListHead>
-
-EOF;
-  }
-
-  private function soapAddArticle(string $id, int $quantity, $description, $color)
-  {
-    $this->listXml .= <<<EOF
-        <ser:ListDetail>
-          <ser:item_id>$id</ser:item_id>
-          <ser:quantity>$quantity</ser:quantity>
-          <ser:description>$description</ser:description>
-          <ser:color>$color</ser:color>
-        </ser:ListDetail>
-EOF;
-  }
-
-  /**
-   * Send to as400 a list of all articles contained into MAV
-   * @param $data
-   * @return bool
-   */
-  public function copyAllToAS400($data): bool
-  {
-    $this->dbHandle->exec("TRUNCATE TABLE SMEDAT_DIM.INTMUB0F");
-    foreach($data as $key => $value) {
-      $this->dbHandle->exec("INSERT INTO SMEDAT_DIM.INTMUB0F (UXSTAT, UXCOAP, UXQTGC, UXQTMA) VALUES (10, '${value['UXCOAP']}', ${value['UXQTGC']}, ${value['UXQTMA']})");
-    }
-  }
-
-  /**
-   *  Per comodità questa funzione serve per interpretare meglio il campo MXTIPM, indica solamente il valore 'C' come Carico, e scarico stringa vuota o spazio
-   *
-   * @param string $operation
-   * @return string
-   */
-  private function fixOperationTypeValue(string $operation)
-  {
-    return ($operation == 'CARICO') ? "MXTIPM = 'C'" : "MXTIPM = 'S'";
-  }
-
-  /**
-   * Ritorna la query di massificazione (raggruppamento delle quantità per codice articolo e prebolla) dalla tabella INTMAVOF
-   *
-   * @param string $operationType values: 'CARICO' or 'SCARICO'
-   * @return string
-   */
-  public function strQueryMassificata(string $operationType): string
-  {
-    $filter = $this->fixOperationTypeValue($operationType);
-
-    $status = MigrationData::STATUS_NEW;
-    return <<<EOF
-SELECT MXCORD, MXARTI, MXDESC, MXRIFC, MXBCOD, SUM(MXQTMI) AS QTY
-FROM SMEDAT_DIM.INTMAV0F
-WHERE $filter AND MXSTAT=$status
-GROUP BY MXARTI, MXCORD, MXDESC, MXRIFC, MXBCOD
-ORDER BY MXCORD, MXARTI
-EOF;
-  }
-
-  /**
-   * Ritorna la query di massificazione (raggruppamento delle quantità per codice articolo ignorando la prebolla) dalla tabella INTMAVOF
-   *
-   * @param string $operationType values: 'CARICO' or 'SCARICO'
-   * @return string
-   */
-  public function strQueryPerMAV(string $operationType): string
-  {
-    $filter = $this->fixOperationTypeValue($operationType);
-
-    $status = MigrationData::STATUS_NEW;
-    return <<<EOF
-SELECT MXARTI, MXDESC, SUM(MXQTMI) AS QTY
-FROM (SELECT * FROM SMEDAT_DIM.INTMAV0F ORDER BY MXCORD) AS tbl
-WHERE $filter AND MXSTAT={$status}
-GROUP BY MXARTI, MXDESC
-EOF;
-  }
-
-  /**
-   * Query da eseguire sul database di OM-Link, ottiene una lista massificata per quantità articolo, UDS e ordinata per esso
-   *
-   * @return string
-   */
-  public function strQueryMassificazioneByUDS(): string
-  {
-    return <<<EOF
-SELECT `uds`, `barcode`, `descrizione`, SUM(`qta_prelevare`) AS `qta`
-FROM `distinte`
-WHERE `deleted`=0
-GROUP BY `barcode`
-ORDER BY `uds`
-EOF;
-  }
-
-  /**
-   * Compile xml soap from $data
-   *
-   * @param string $operationType values: 'CARICO' or 'SCARICO'
-   * @param iterable $data
-   * @return string return id list
-   */
-  public function soapCompileFrom(iterable $data, string $operationType): string
-  {
-    $idList = 'ID-' . uniqid();
-    $dateTime = date("d/m/Y H:i:s");
-    $operationType = $operationType == 'CARICO' ? 'CARICO' : 'SCARICO';
-
-    foreach($data as $row) {
-
-      // List Head
-      $this->soapAddHead($idList, $operationType, "Lista di $operationType da as400 del $dateTime", '');
-      $descArti = trim($row['descrizione']); // trim($row['commessa']) . ' ' . trim(substr($row['desccliente'], 7)) . ' ' . trim($row['descrizione']);
-
-      // List Article
-      $this->soapAddArticle($row['barcode'], $row['qta_prelevare'], $descArti, $row['color']);
-    }
-
-    $this->finalXml = <<<EOF
-<?xml version="1.0" encoding="utf-8"?>
-<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servizi_xchange.org/">
-  <soapenv:Header/>
-  <soapenv:Body>
-    <ser:ImportLists>
-      <ser:InputLists>
-        <ser:ListToImport>
-$this->listXml
-        </ser:ListToImport>
-      </ser:InputLists>
-      <ser:Output_Type>1</ser:Output_Type>
-    </ser:ImportLists>
-  </soapenv:Body>
-</soapenv:Envelope>
-EOF;
-
-    return $idList;
-  }
-
-  /**
-   * Send xml to SoapService of ICAM
-   * @param $xmlSoap
-   * @return bool true if successful
-   */
-  public function sendToIcam(): bool
-  {
-    global $f3;
-
-    $ws_url = 'http://' . $f3->get('VERTICALSTORAGE.MV_ADDRESS') . '/servizi_xchange.asmx';
-
-    $ret = $this->soapClient->__doRequest($this->finalXml, $ws_url, $this->soapAction, SOAP_1_1);
-
-    return boolval($ret);
-  }
-
-  /**
-   * Prepara la distinta da importare sul database di OM-Link
-   *
-   * @param $dataRows
-   * @param array $uds
-   * @return array
-   */
-  public function prepareDistinta($dataRows, array $uds)
-  {
-    global $f3;
-
-    $colors = range(1, 10);
-
-    $ret = [];
-
-    $idUtente = $f3->get('USER')->id;
-
-    $cols = array_column($uds, 'item_id');
-
-    foreach($dataRows as $count => $data) {
-      $color = array_shift($colors);
-      array_push($colors, $color);
-      $container_id = '';
-      $colId = array_search(trim($data['MXARTI']), $cols);
-      if ($colId !== false)
-        $container_id = $uds[$colId]['container_id'];
-
-      $ret[] = [
-        'idUtente' => $idUtente,
-        'origine' => $data['MXUBIC'],
-        'consegna' => $data['MXIDDM'],
-        'commessa' => trim($data['MXCORD']),  // Codice prebolla
-        'desccliente' => trim(substr($data['MXRIFC'], 7)),
-        'barcode' => trim($data['MXARTI']),
-        'codcliente' => trim($data['MXBCOD']),
-        'descrizione' => trim($data['MXDESC']),
-        'qta_prelevare' => $data['QTY'],
-        'qta_mancante' => 0,
-        'color' => $color,
-        'uds' => $container_id // posizione UDS
-      ];
-    }
-    // Sort menus buy 'order' option
-    uasort($ret, function ($obj1, $obj2) {
-      return $obj1['uds'] <=> $obj2['uds'];
-    });
-    return $ret;
-  }
-
-  /**
-   * Importa la distinta sul database di OM-Link
-   *
-   * @param array $data
-   */
-  public function saveDistinta(array $data)
-  {
-    global $f3;
-
-    $distinta = new SQL\Mapper($f3->get('DB'), 'distinte');
-    foreach($data as $row) {
-      $distinta->reset();
-      $distinta->copyfrom($row);
-      $distinta->save();
-    }
-  }
-
-  /**
-   * Get all UDS positions of MAV articles
-   * @return array
-   */
-  public function getUDSs(): array
-  {
-    return $this->dbMAVHandle->exec('SELECT item_id, container_id, subcontainer_id from dbo.vw_item_positions');
-  }
-
-  /**
-   * Transfer product list from MAV to as400
-   *
-   * @return int count
-   */
-  public function transferFromMAV_as400(): int
-  {
-    $this->dbHandle->query("DELETE FROM SMEDAT_DIM.INTMUB0F");
-    $mavArticles = $this->dbMAVHandle->query('SELECT item_id AS UXCOAP, max_load_unit AS UXQTMA, position_quantity AS UXQTGC, container_id AS UXLOCN FROM vw_item_positions');
-    $count = 0;
-    foreach($mavArticles as $key => $value) {
-      $success = $this->dbHandle->query(
-        "INSERT INTO SMEDAT_DIM.INTMUB0F (UXSTAT, UXCOAP, UXQTGC, UXQTMA, UXLOCN) VALUES (10, '${value['UXCOAP']}', ${value['UXQTGC']}, ${value['UXQTMA']}, '${value['UXLOCN']}')"
-      );
-      if ($success === FALSE) {
-        return -1;
-      }
-      $count++;
-    }
-    return $count;
-  }
-
-}

+ 0 - 363
src/Modules/Dimatec/Pages.php

@@ -1,363 +0,0 @@
-<?php
-/**
- * @author Open Mind
- * @date 10/04/2018
- * @time 09:43
- */
-
-namespace Modules\Dimatec;
-
-use DB\SQL;
-use OpenMind\FindBox\FindBoxCoreSystem;
-use OpenMind\FindBox\QueueCommand;
-use OpenMind\FindBox\SmartESL;
-use OpenMind\System\QueueSystem;
-use OpenMind\Web\Controller;
-use Picqer\Barcode\BarcodeGeneratorPNG;
-
-class Pages extends Controller
-{
-  private $CORE_SETTINGS;
-  private $findBoxCore;
-
-  public function __construct($f3)
-  {
-    parent::__construct($f3);
-    $this->CORE_SETTINGS = $f3->get('CORE.fb');
-    $this->findBoxCore = new FindBoxCoreSystem(...array_values($this->CORE_SETTINGS));
-  }
-
-  /**
-   * Send QueueSystem command for all labels associated
-   *
-   * @param Distinta $distinta
-   * @param array $commesse
-   */
-  private function sendLabelMsg($distinta, array $commesse)
-  {
-    global $f3;
-    foreach($commesse as $commessa) {
-      $labelid = $distinta->GetLabelIdFromBarcode($commessa['commessa']);
-      if ($labelid == null) {
-        $f3->set('INFOTEXT', "Alcune etichette non accenderano il led in quanto non associate.");
-        continue;
-      }
-
-      $msgBlink = new QueueCommand($labelid);
-      $msgSaveP = new QueueCommand($labelid);
-
-      $msgBlink->setLeds(2, 1, 500, 10, 0);
-      $msgSaveP->saveProducts($commessa['descrizione'], [
-        'Q.ta' => $commessa['qta_prelevare'],
-        'Commessa' => $commessa['commessa']
-      ]);
-
-      $qm = new QueueSystem('FindBoxService');
-      $qm->send($msgBlink);
-      $qm->send($msgSaveP);
-    }
-  }
-
-  /**
-   * MAIN CORE OF PROJECT: VENTILAZIONE ARTICOLI NELLE CESTE
-   *
-   * @param object $f3
-   * @param array $args
-   */
-  public function Pick2Light(object $f3, array $args)
-  {
-    $stepValues = array_map('strtoupper', $this->getSanitizedPostRequest());
-
-    $distinta = new Distinta();
-
-    switch ($args['step']) {
-      case 1:
-        if (count($distinta->getListeToBind()) > 0) {
-          $f3->set('INFOTEXT', "ATTENZIONE: ci sono Prebolle non ancora Bindate con le Etichette Elettroniche!");
-          $f3->set('NEXTSTEP', 1);
-          $f3->set('NO_BIND', true);
-          break;
-        }
-
-        if (count($stepValues) == 0) {
-          $f3->clear('INFOTEXT');
-          $f3->clear('SESSION.barcode_mv');
-          $f3->set('NEXTSTEP', 1);
-          break;
-        }
-
-        $barcode = $distinta->GetBarcode($stepValues['barcode_mv']);
-        $commesse = $distinta->getCommesseFromProduct($barcode);
-        if (count($commesse) == 0) {
-          $f3->set('INFOTEXT', "Nessuna commessa associata al prodotto selezionato");
-          $f3->set('NEXTSTEP', 1);
-          break;
-        }
-
-        // Send blink to all labels associated to barcode
-        $this->sendLabelMsg($distinta, $commesse);
-
-        $f3->set('SESSION.barcode_mv', $barcode);
-        $f3->reroute("/pick2light/2");
-        return;
-        break;
-      case 2:
-        $f3->set('NEXTSTEP', 2);
-        if (isset($stepValues['commessa'])) {
-          if (!$distinta->commessaExists($stepValues['commessa'])) {
-            $f3->set('INFOTEXT', "Codice cesta non corretto");
-          } else {
-            $labelid = $distinta->GetLabelIdFromBarcode($stepValues['commessa']);
-            if ($labelid != null) {
-              // Send BlinkOFF
-              $obj = new QueueCommand($labelid);
-              $obj->setToBlinkOff();
-
-              // Send command to queue
-              $qm = new QueueSystem('FindBoxService');
-              $qm->send($obj);
-
-              $distinta->DeleteCommessaArticle($stepValues['barcode_mv'], $stepValues['commessa']);
-
-              // set status 80 on DB2 for this article
-              $md = new MigrationData();
-              $md->DB2Connector();
-              $md->MarkMissionDone($labelid, $stepValues['barcode_mv'], $stepValues['commessa']);
-
-            }
-          }
-        }
-        $commesse = $distinta->getCommesseFromProduct($f3->get('SESSION.barcode_mv'));
-        if (count($commesse) == 0) {
-          $f3->set('INFOTEXT', "Ventilazione terminata");
-          $this->setRedirect('pick2light/1', 5000);
-        }
-        /*        foreach($commesse as $commessa) {
-                  $labelid = $distinta->GetLabelIdFromBarcode($commessa['commessa']);
-                  if ($labelid == null) {
-                    $f3->set('INFOTEXT', "Alcune etichette non accenderano il led in quanto non associate.");
-                    continue;
-                  }
-                }*/
-        $f3->set('COMMESSE', $commesse);
-        break;
-      case 3: // empty list
-        $distinta->UnbindAll();
-        $distinta->TrashCommesse();
-        $md = new MigrationData();
-        $md->DB2Connector();
-        $md->RollbackPendingMissionsToNew();
-        $f3->reroute("/pick2light/1");
-        return;
-        break;
-    }
-
-    $migData = new MigrationData();
-    $sql = $migData->strQueryMassificazioneByUDS();
-    $listaProdotti = $this->dbHandle->exec($sql);
-
-    if (count($listaProdotti) == 0) {
-      $f3->set('MESSAGE', 'Non ci sono prodotti da ventilare.');
-      $f3->set('CONTENT', 'message.tpl');
-    } else {
-      $f3->set('PRODUCTS', $listaProdotti);
-      $f3->set('CONTENT', 'pick2light.tpl');
-    }
-    echo \Template::instance()->render('masterpage.tpl');
-  }
-
-  public function Bind($f3)
-  {
-    $params = $this->getSanitizedPostRequest();
-    $distinta = new Distinta();
-
-    if (count($params)) {
-      $bindData = array_map('strtoupper', $params);
-
-      if (strlen($bindData['labelid']) != 8) {
-        $f3->set('INFOTEXT', 'Codice etichetta non corretto. Ripetere la procedura.');
-      } else {
-
-        if ($distinta->isLabelBinded($bindData['labelid'])) {
-          $f3->set('INFOTEXT', 'Codice etichetta già bindato.');
-        } else {
-
-          //$err = $this->findBoxCore->Bind($bindData['labelid'], $bindData['labelid']);
-          $label = new SmartESL($this->findBoxCore, [$bindData['labelid']]);
-
-          $labelTemplateId = $f3->get("LABELS.TEMPLATES.DT31");
-
-          $err = $label->Display($labelTemplateId, $bindData['labelid']);
-
-          //
-          $msgReset = new QueueCommand($bindData['labelid']);
-
-          $j_eslData = [
-            'Q.ta' => 0,
-            'Commessa' => $bindData['commessa']
-          ];
-
-          $msgReset->saveProducts('', $j_eslData);
-
-          $qm = new QueueSystem('FindBoxService');
-          $qm->send($msgReset);
-
-          // Add or Update label
-          $label = new SQL\Mapper($f3->get('DB'), 'label_bindings');
-          $label->load(['label_id=?', $bindData['labelid']]);
-          $label->label_id = $bindData['labelid'];
-          $label->barcode = $bindData['commessa'];
-          $label->template_id = $labelTemplateId;
-          $label->esl_datafields = json_encode($j_eslData);
-          $label->descrizione = $bindData['desccliente'];
-          $label->save();
-
-          $md = new MigrationData();
-          $md->DB2Connector();
-          $md->SetMissionsBarcodes($bindData['labelid'], $bindData['commessa']);
-
-          /*      $this->dbHandle->exec("DELETE FROM label_bindings WHERE label_id='{$bindData['labelid']}'");
-                $this->dbHandle->exec(
-                  "INSERT INTO label_bindings (label_id, barcode, template_id, esl_datafields, descrizione) VALUES " .
-                  "('{$bindData['labelid']}', '{$bindData['commessa']}', '{$labelTemplateId}', '{$j_eslData}', '{$bindData['desccliente']}')"
-                );*/
-        }
-      }
-    }
-
-    $liste = $distinta->getListeToBind();
-    $f3->set('ORDINE', $liste[0]['commessa']);
-    $f3->set('LISTE', $liste);
-    $f3->set('CONTENT', 'bind.tpl');
-    echo \Template::instance()->render('masterpage.tpl');
-  }
-
-  /**
-   * @deprecated for now not used
-   * @param $f3
-   * @param array $args
-   */
-  public function UnBind($f3, array $args)
-  {
-    $stepValues = array_map('strtoupper', $this->getSanitizedPostRequest());
-    if ($args['step'] == 2) {
-      $success = $this->findBoxCore->UnBind($stepValues['labelid']);
-      if ($success['err'] <> 0) {
-        $f3->set('INFOTEXT', $success['value']);
-      }
-    }
-    $f3->set('STEP', $args['step']);
-    $f3->set('CONTENT', 'unbind.tpl');
-    echo \Template::instance()->render('masterpage.tpl');
-  }
-
-  /**
-   * @deprecated for now not used
-   * @param $f3
-   */
-  public function ElencoDistinta($f3)
-  {
-    $distinta = new Distinta();
-    $f3->set('PRODUCTS', $distinta->getDistinte());
-    $f3->set('CONTENT', 'distinta.tpl');
-    echo \Template::instance()->render('masterpage.tpl');
-  }
-
-
-  /**
-   * Import lists from as400
-   * @param $f3
-   * @throws \Exception
-   */
-  public function ImportFromAS400($f3)
-  {
-    $migData = new MigrationData();
-    $migData->ClearCachedIDs();
-
-    $migData->SoapConnector($f3->get('VERTICALSTORAGE.MV_ADDRESS'));
-    $migData->DB2Connector();
-    $migData->MAVDatabaseConnector();
-
-    // Get all articles UDS
-    $mavUDS = $migData->getUDSs();
-
-    // Sum by article quantity for MAV
-    $dataFullMaxed = $migData->query($migData->strQueryPerMAV('SCARICO'));
-    if (count($dataFullMaxed) == 0)
-      $f3->set('MESSAGE', "Non ci sono nuove missioni da elaborare.");
-    else {
-      // Clean all bind table
-      $d = new Distinta();
-      $d->UnbindAll();
-
-      $dataFullMaxed_Elaborata = $migData->prepareDistinta($dataFullMaxed, $mavUDS);
-
-      // Compile xml for SOAP
-      $idList = $migData->soapCompileFrom($dataFullMaxed_Elaborata, 'SCARICO');
-
-      if (!$migData->sendToIcam()) {
-        $f3->set('MESSAGE', "Errore durante l'invio della lista al Magazzino Verticale.<br/><br/>Controllare la console ICAM per gli errori.");
-      } else {
-        // Importo la lista nel database di OM-Link solamente se non ci sono stati errori nell'invio al Magazzino Verticale
-
-        // Get lists from as400
-        $dataOMLINK = $migData->query($migData->strQueryMassificata('SCARICO'));
-        $dataOMLINK_elaborata = $migData->prepareDistinta($dataOMLINK, $mavUDS);
-
-        $migData->saveDistinta($dataOMLINK_elaborata);
-        $count = count($dataFullMaxed_Elaborata);
-        $f3->set('MESSAGE', "Liste inviate correttamente al Magazzino Verticale<br/><br/>Righe con massimizzazione importate: $count");
-
-        $migData->selectAvailableMissions('SCARICO');
-        $migData->InitializeMissionsToPending($idList);
-      }
-    }
-
-    $f3->set('CONTENT', 'message.tpl');
-    echo \Template::instance()->render('masterpage.tpl');
-  }
-
-  /**
-   * Send list of all goods loaded into MAV to as400
-   * @param $f3
-   * @param $args page parameters
-   */
-  public function MAV2AS400($f3, $args)
-  {
-    switch ($args['step']) {
-      case 1:
-        $f3->set('MESSAGE', "Importazione in corso, attendere qualche secondo per la conferma.");
-        $url = ltrim(rtrim($args[0], '1'), '/') . '2';
-        $this->setRedirect($url, 0);
-        break;
-      case 2:
-        // Esegue il trasferimento dei dati
-        $migData = new MigrationData();
-        $migData->DB2Connector();
-        $migData->MAVDatabaseConnector();
-        $inserted = $migData->transferFromMAV_as400();
-        $f3->set('MESSAGE', "Sono stati inviati $inserted articoli dal MAV ad as400.");
-        break;
-    }
-    $f3->set('CONTENT', 'message.tpl');
-    echo \Template::instance()->render('masterpage.tpl');
-  }
-
-
-  public function PrintLabel($f3, $args)
-  {
-    $d = new Distinta();
-    if ($args['qty'] != -1) {
-      $data = $d->GetPrintingData($args['id']);
-    } else {
-      $data = $d->getCodCliente($args['id']);
-      $args['qty'] = '';
-    }
-    $generator = new BarcodeGeneratorPNG();
-    $imgSrcData = 'data:image/png;base64,' . base64_encode($generator->getBarcode($data[0]['codcliente'], $generator::TYPE_EAN_13));
-    $data[0]['srcdata'] = $imgSrcData;
-    $data[0]['qty'] = $args['qty'];
-    $f3->set('PRINT_DATA', $data);
-    echo \Template::instance()->render('printlabel.tpl');
-  }
-}

+ 0 - 1
src/OpenMind/System/System.php

@@ -51,7 +51,6 @@ class System extends PluginStrategy
   {
     $this->AddRoute('GET /api.system.getserverstatus', __NAMESPACE__ . '\System->getServerStatus');
     $this->AddRoute('POST /api.system.removenotification/@code', __NAMESPACE__ . '\System->NotificationDelete');
-    $this->AddRoute('POST /api.system.kbd.insert', __NAMESPACE__ . '\System->insertKbdCode');
   }
 
   /**

+ 31 - 4
src/OpenMind/System/User.php

@@ -32,9 +32,17 @@ class User extends Mapper
     global $f3;
     parent::__construct($f3->get('DB'), 'users', NULL, 3600);
 
-    $this->load($where);
-    if (!$d = $this->dry())
-      $this->userRoles = unserialize($this->roles);
+    if ($where !== NULL) {
+      $this->load($where);
+      if (!$d = $this->dry())
+        $this->userRoles = unserialize($this->roles);
+    } else
+      $this->userRoles = [];
+  }
+
+  public function generatePassword(string $clearPassword)
+  {
+    return password_hash($this->username . "|$clearPassword", PASSWORD_BCRYPT);
   }
 
   /**
@@ -66,9 +74,28 @@ class User extends Mapper
    */
   public function hasPermission(string $permissionName): bool
   {
-    if($this->userRoles)
+    if ($this->userRoles)
       return in_array($permissionName, $this->userRoles);
     else
       return false;
   }
+
+  public function grantPermission(string $permissionName)
+  {
+    if (!in_array($permissionName, $this->userRoles))
+      array_push($this->userRoles, $permissionName);
+  }
+
+  public function removePermission(string $permissionName)
+  {
+    $i = array_search($permissionName, $this->userRoles);
+    if ($i !== false)
+      unset($this->userRoles[$i]);
+  }
+
+  public function save()
+  {
+    $this->roles = serialize($this->userRoles);
+    return parent::save(); // TODO: Change the autogenerated stub
+  }
 }

+ 7 - 0
src/OpenMind/System/UserRoles.php

@@ -9,6 +9,13 @@
 namespace OpenMind\System;
 
 
+/**
+ * Global User Roles: it's a volatile list of user roles present in all application
+ * It's not linked to users.
+ *
+ * Class UserRoles
+ * @package OpenMind\System
+ */
 class UserRoles
 {
   public function __construct()

+ 0 - 75
test/conn_odbc_ibm.php

@@ -1,75 +0,0 @@
-<?
-
-class MigrationData
-{
-  private $hdb;
-
-  public function __construct($dsn, $user, $pass)
-  {
-    try {
-      $this->hdb = new PDO($dsn, $user, $pass);
-      $this->hdb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-    } catch (PDOException $exception) {
-      echo $exception->getMessage();
-      die;
-    }
-  }
-
-  public function query($sql, $mode = PDO::FETCH_ASSOC)
-  {
-    return $this->hdb->query($sql, $mode);
-  }
-
-  /**
-   * @param $result
-   * @return int row count
-   */
-  public function toCSV($result): int
-  {
-    $count = 0;
-    foreach($result as $key => $value) {
-      $arr = [];
-      array_map(function ($v) use (&$arr) {
-        $arr[] = str_pad(ltrim(rtrim($v)), 5, ' ');
-      }, $value);
-
-      echo join('|', $arr);
-      echo PHP_EOL;
-      $count++;
-    }
-    return $count;
-  }
-
-  public function transferData($pdoResult)
-  {
-    $this->query("TRUNCATE TABLE SMEDAT_DIM.INTMUB0F");
-    $count = 0;
-    foreach($pdoResult as $key => $value) {
-      echo "INSERT INTO SMEDAT_DIM.INTMUB0F (UXSTAT, UXCOAP, UXQTGC, UXQTMA) VALUES (10, '${value['UXCOAP']}', ${value['UXQTGC']}, ${value['UXQTMA']})" . PHP_EOL;
-      $success = $this->query("INSERT INTO SMEDAT_DIM.INTMUB0F (UXSTAT, UXCOAP, UXQTGC, UXQTMA) VALUES (10, '${value['UXCOAP']}', ${value['UXQTGC']}, ${value['UXQTMA']})");
-      if ($success === FALSE) {
-        die('Errore');
-      }
-      $count++;
-    }
-    echo "Inserimenti eseguiti: $count" . PHP_EOL;
-  }
-}
-
-try {
-  $mav = new MigrationData("sqlsrv:Server=192.168.0.39;Database=icamdbstore", 'sa', 'sa');
-  $res = $mav->query('SELECT item_id AS UXCOAP, max_load_unit AS UXQTMA, position_quantity AS UXQTGC FROM vw_item_positions');
-
-  $db2 = new MigrationData(
-    "odbc:Driver={iSeries Access ODBC Driver};DefaultLibraries=SMEDAT_DIM;SYSTEM=192.168.0.100",
-    'icam',
-    'icam'
-  );
-
-  $db2->transferData($res);
-
-} catch (PDOException $exception) {
-  echo $exception->getMessage();
-  exit;
-}
-

+ 0 - 33
test/omlinkimporter.php

@@ -1,33 +0,0 @@
-<?php
-/**
- * @author Open Mind
- * @date 11/04/2018
- * @time 09:48
- */
-
-// Init Framework
-require_once 'lib/f3/base.php';
-$f3 = \Base::instance();
-
-$f3->set('ONERROR', function ($f3) {
-  print_r($f3->get('ERROR'));
-});
-
-require_once "src\OpenMind\System\OMUtils.php";
-
-$frameworkUtils = new \OpenMind\System\OMUtils();
-$frameworkUtils->DieByOldPhpVersion();
-$frameworkUtils->LoadEncryptedConfig('config.bin');
-
-$System = new \OpenMind\System\System();
-
-try {
-  echo PHP_EOL . 'Scanning import folder for new CSV to import...' . PHP_EOL . PHP_EOL;
-
-  $importer = new \OpenMind\DataManager\CSVImporter('import');
-  $importer->ScanAndStoreData();
-
-  echo PHP_EOL . '... end import' . PHP_EOL;
-} catch (Exception $e) {
-  print_r($e);
-}

+ 0 - 42
test/test.xml

@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servizi_xchange.org/">
-  <soapenv:Header/>
-  <soapenv:Body>
-    <ser:ImportLists>
-      <!--Optional:-->
-      <ser:InputLists>
-        <!--Zero or more repetitions:-->
-        <ser:ListToImport>
-          <!--Optional:-->
-          <ser:ListHead>
-            <ser:external_list_code>test130</ser:external_list_code>
-            <ser:operation_type>SCARICO</ser:operation_type>
-            <ser:operation>SCARICO</ser:operation>
-            <ser:name>T100123A</ser:name>
-            <ser:description>Lista di esempio by OpenMind</ser:description>
-            <ser:user_id>sa</ser:user_id>
-          </ser:ListHead>
-          <ser:ListDetail>
-            <ser:item_id>00003092070</ser:item_id>
-            <ser:quantity>10</ser:quantity>
-            <ser:description>descrizione articolo 1</ser:description>
-          </ser:ListDetail>
-          <ser:ListHead>
-            <ser:external_list_code>test130</ser:external_list_code>
-            <ser:operation_type>SCARICO</ser:operation_type>
-            <ser:operation>SCARICO</ser:operation>
-            <ser:name>T100123A</ser:name>
-            <ser:description>Lista di esempio by OpenMind</ser:description>
-            <ser:user_id>sa</ser:user_id>
-          </ser:ListHead>
-          <ser:ListDetail>
-            <ser:item_id>000423326021</ser:item_id>
-            <ser:quantity>2</ser:quantity>
-            <ser:description>descrizione articolo 2</ser:description>
-          </ser:ListDetail>
-        </ser:ListToImport>
-      </ser:InputLists>
-      <ser:Output_Type>1</ser:Output_Type>
-    </ser:ImportLists>
-  </soapenv:Body>
-</soapenv:Envelope>

+ 0 - 28
test/verticalstorageimporter.php

@@ -1,28 +0,0 @@
-<?php
-/**
- * Created by PhpStorm.
- * User: Giancarlo
- * Date: 20/07/2018
- * Time: 16:07
- */
-
-$ws_url = 'http://192.168.253.130/servizi_xchange.asmx';
-$soapAction = 'http://servizi_xchange.org/ImportLists';
-
-$soapClient = new SoapClient("http://192.168.253.130/servizi_xchange.asmx?wsdl", array(
-  'trace' => true,
-  'exceptions' => true,
-  'cache_wsdl' => false,
-));
-
-try {
-  $xmlFile = file_get_contents('test.xml');
-  $r = $soapClient->__doRequest($xmlFile, $ws_url, $soapAction, SOAP_1_1);
-} catch (SoapFault $e) {
-  echo "Exception\n";
-  print_r($e);
-}
-
-print_r($r);
-print_r($soapClient->__getLastRequestHeaders());
-print_r($soapClient->__getLastResponse());

+ 3 - 10
ui/css/omlink.css

@@ -6,13 +6,6 @@
  * @time 17:42
  * @since 18/07/2018 in SCSS format
  */
-/**
- * Child SCSS file
- *
- * @author Open Mind
- * @date 16/07/2018
- * @time 16:00
- */
 .navbar.fixed-bottom {
   color: white;
 }
@@ -22,8 +15,8 @@ html, body {
 }
 
 body {
-  background-color: white;
-  color: black;
+  background-color: #eeeeee !important;
+  color: white !important;
   font-family: "Roboto";
 }
 
@@ -112,7 +105,7 @@ input::-ms-input-placeholder {
 }
 
 .navbar {
-  background-color: rgba(94, 103, 178, 0.95) !important;
+  background-color: rgba(94, 107, 116, 0.95) !important;
 }
 
 .rounded {

+ 13 - 10
ui/css/omlink.scss

@@ -9,31 +9,34 @@
 
 // DEFAULTS
 // Background color
-$mainColor: #eeeeee !important;
+$mainColor: #eeeeee;
 
 // Main text color
-$textColor: white !important;
+$textColor: white;
 
 // Upper and Lower navbar background color
-$navbarsColor: rgba(94, 107, 116, 0.95) !important;
+$navbarsColor: rgba(94, 107, 116, 0.95);
 
 // drop-shadow and box-shadow color
 $shadowColor: #444444;
 
 // All input tag colors
-$inputBgColor: rgb(77, 80, 153) !important;
-$inputColor: white !important;
+$inputBgColor: rgb(77, 80, 153);
+$inputColor: white;
 
-@import '../customizations/dimatec';
-//@import '../customizations/lamborghini';
+$placeholderColor: gray !important;
+
+.navbar.fixed-bottom {
+  color: white;
+}
 
 html, body {
   height: 100%;
 }
 
 body {
-  background-color: $mainColor;
-  color: $textColor;
+  background-color: $mainColor !important;
+  color: $textColor !important;
   font-family: 'Roboto';
 }
 
@@ -126,7 +129,7 @@ input::-ms-input-placeholder {
 }
 
 .navbar {
-  background-color: $navbarsColor;
+  background-color: $navbarsColor !important;
 }
 
 .rounded {

+ 0 - 7
ui/customizations/dimatec.js

@@ -1,7 +0,0 @@
-/**
- * Child JS file
- *
- * @author Open Mind
- * @date 16/07/2018
- * @time 16:00
- */

+ 0 - 29
ui/customizations/dimatec.scss

@@ -1,29 +0,0 @@
-/**
- * Child SCSS file
- *
- * @author Open Mind
- * @date 16/07/2018
- * @time 16:00
- */
-
-// Background color
-$mainColor: white;
-
-// Main text color
-$textColor: black;
-
-// Upper and Lower navbar background color
-$navbarsColor: rgba(94, 103, 178, 0.95) !important;
-
-// drop-shadow and box-shadow color
-$shadowColor: #444444;
-
-// All input tag colors
-$inputBgColor: rgb(77, 80, 153);
-$inputColor: white;
-
-$placeholderColor: gray !important;
-
-.navbar.fixed-bottom {
-  color: white;
-}

+ 0 - 36
ui/distinta.tpl

@@ -1,36 +0,0 @@
-<div class="row h-100 justify-content-center">
-    <div class="col-md-10 align-self-center">
-
-        <div class="table-responsive" style="max-height: 700px; overflow-y: auto">
-            <table class="table table-striped table-dark">
-                <thead>
-                <tr>
-                    <th class="text-center text-uppercase" colspan="6" scope="col">Articoli da prelevare</th>
-                </tr>
-                </thead>
-                <thead>
-                <tr>
-                    <th scope="col">Consegna</th>
-                    <th scope="col">Commessa</th>
-                    <th scope="col">Ordine produzione</th>
-                    <th scope="col">Data creazione</th>
-                    <th scope="col">Time creazione</th>
-                    <th scope="col">Destinazione merci</th>
-                </tr>
-                </thead>
-                <tbody>
-                <repeat group="{{ @PRODUCTS }}" value="{{ @PRODUCT }}">
-                    <tr>
-                        <th scope="row">{{@PRODUCT.consegna}}</th>
-                        <td>{{@PRODUCT.commessa}}</td>
-                        <td>{{@PRODUCT.ordine_produzione}}</td>
-                        <td>{{@PRODUCT.data_creazione}}</td>
-                        <td>{{@PRODUCT.time_creazione}}</td>
-                        <td>{{@PRODUCT.destinazione_merci}}</td>
-                    </tr>
-                </repeat>
-                </tbody>
-            </table>
-        </div>
-    </div>
-</div>

+ 0 - 31
ui/icamcontrol.tpl

@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html lang="it">
-<head>
-	<meta charset="UTF-8">
-	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
-	<title>{{@SITENAME}}</title>
-	<link type="text/css" rel="stylesheet" href="{{@BASEURL}}/bundle.css"/>
-	<link rel="shortcut icon" type="image/x-icon" href="{{@BASEURL}}/ui/favicon_{{@CUSTOMERNAME}}.ico">
-
-	<script type="text/javascript">
-    const BASEURL = '{{@BASEURL}}';
-	</script>
-</head>
-<body>
-
-<div class="container-fluid" style="position: absolute; top: 0; bottom: 0">
-	<div class="row h-100">
-		<div class="col h-100">
-			<iframe class="h-100 w-100" src="{{@BASEURL}}"></iframe>
-		</div>
-		<div class="col h-100">
-			<iframe class="h-100 w-100" src="http://{{@VERTICALSTORAGE.MV_ADDRESS}}/"></iframe>
-		</div>
-	</div>
-</div>
-
-<script src="{{@BASEURL}}/bundle.js"></script>
-
-</body>
-</html>
-

BIN
ui/images/DimatecLogo.png


BIN
ui/images/LamborghiniLogo.png


BIN
ui/images/bind.png


BIN
ui/images/import.png


BIN
ui/images/lamborghini/bind.png


BIN
ui/images/lamborghini/bindcarrello.png


BIN
ui/images/lamborghini/elenco_distinta.png


BIN
ui/images/lamborghini/logo.png


BIN
ui/images/lamborghini/logout.png


BIN
ui/images/lamborghini/pick2light.png


BIN
ui/images/lamborghini/unbind.png


BIN
ui/images/lamborghini/utente.png


BIN
ui/images/logo.png


BIN
ui/images/magazzinoverticale.png


BIN
ui/images/mav2as400.png


BIN
ui/images/staging.png


+ 15 - 16
ui/images/svg/disegno.svg

@@ -2,22 +2,21 @@
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
 
 <svg
-   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="600mm"
-   height="600mm"
-   viewBox="0 0 600 600"
-   version="1.1"
-   id="svg8"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   sodipodi:docname="disegno.svg">
+  xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+  xmlns:dc="http://purl.org/dc/elements/1.1/"
+  xmlns:cc="http://creativecommons.org/ns#"
+  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+  xmlns="http://www.w3.org/2000/svg"
+  xmlns:xlink="http://www.w3.org/1999/xlink"
+  xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+  xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+  width="600mm"
+  height="600mm"
+  viewBox="0 0 600 600"
+  version="1.1"
+  id="svg8"
+  inkscape:version="0.92.3 (2405546, 2018-03-11)"
+  sodipodi:docname="disegno.svg">
   <defs
      id="defs2">
     <linearGradient

+ 2 - 2
ui/js/omlink.js

@@ -30,7 +30,7 @@ ${tplNotify}
 }
 
 function refreshNotificationArea() {
-  fetch('/omlink/api.system.getserverstatus')
+  fetch(`${BASEURL}/api.system.getserverstatus`)
     .then(resp => {
       if (resp.status == 200)
         return resp.json();
@@ -46,7 +46,7 @@ function refreshNotificationArea() {
 }
 
 function NotificationDelete(link, code) {
-  fetch(`/omlink/api.system.removenotification/${code}`, {method: "POST"})
+  fetch(`${BASEURL}/api.system.removenotification/${code}`, {method: "POST"})
     .then(() => {
       if (link != '#')
         window.location.href = `${BASEURL}${link}`;

+ 0 - 87
ui/pick2light.tpl

@@ -1,87 +0,0 @@
-<div class="row h-100 justify-content-center w-100">
-	<div class="col-md-4 align-self-start pt-3">
-
-		<check if="{{ isset(@INFOTEXT) }}">
-			<div class="alert alert-danger" role="alert">
-				{{@INFOTEXT}}
-			</div>
-		</check>
-
-		<check if="{{ !@NO_BIND }}">
-
-			<form class="form" method="post" action="{{@BASEURL}}/pick2light/{{@NEXTSTEP}}">
-				<div class="alert alert-info" role="alert">
-					Inizio ventilazione
-				</div>
-				<input type="submit" hidden id="submitform"/>
-
-				{*Elenco commesse/ceste*}
-				<check if="{{@PARAMS['step'] == 2 }}">
-
-					<table class="table table-sm table-striped table-light">
-						<thead class="bg-secondary">
-						<tr>
-							<th colspan="3" class="text-center text-uppercase text-white" scope="col">In attesa del completamento delle seguenti ceste</th>
-						</tr>
-						</thead>
-						<tbody>
-						<repeat group="{{ @COMMESSE }}" key="{{@key}}" value="{{ @COMMESSA }}">
-							<tr>
-								<td>{{@COMMESSA.commessa}}</td>
-								<td><a target="_blank" href="{{@BASEURL}}/printlabel/{{@COMMESSA.id}}/{{@COMMESSA.qta_prelevare}}"><img src="{{@BASEURL}}/ui/images/printer.png"/></a></td>
-								<td align="right">Q.ta <b>{{@COMMESSA.qta_prelevare}}</b></td>
-							</tr>
-						</repeat>
-						</tbody>
-					</table>
-
-				</check>
-
-				{*Barcode prodotto*}
-				<input type="text" name="barcode_mv" {{@PARAMS['step']==2 ? 'disabled' : ''}} {{@PARAMS['step']==1 ? 'autofocus' : ''}} value="{{@SESSION.barcode_mv}}" class="form-control form-control-lg mb-3" placeholder="Cod.Art.MAV" required autocomplete="false"/>
-
-				{*Codice cesta per la quale mi aspetto che avvenga la ventilazione*}
-				<check if="{{ @PARAMS['step'] == 2 }}">
-					<input type="text" name="commessa" {{@PARAMS['step']==2 ? 'autofocus' : ''}} value="" class="form-control form-control-lg mb-3" placeholder="Codice Cesta" required autocomplete="false"/>
-				</check>
-
-			</form>
-
-		</check>
-	</div>
-	<div class="col-md-8" style="overflow-y: auto">
-		<div class="rounded table-responsive mt-3" style="background-color: #a0b1cc">
-			<table class="table rounded table-striped table-secondary mb-0" style="font-size: 11pt">
-				<thead style="background-color: #a0b1cc">
-				<tr style="font-size: 12pt">
-					<th class="text-center text-uppercase" colspan="6" scope="col">Articoli da ventilare
-						<a class="requestconfirm" data-confirmtext="Resettare la lista? Sarà comunque possibile reimportarla nuovamente dal menu principale." href="{{@BASEURL}}/pick2light/3"><img class="float-right" src="{{@BASEURL}}/ui/images/delete.png"/></a>
-					</th>
-				</tr>
-				<tr style="font-size: 12pt">
-					<th scope="col">UDS</th>
-					<th scope="col">Articoli</th>
-					<th colspan="2" scope="col">Q.ta</th>
-				</tr>
-				</thead>
-				<tbody>
-				<repeat group="{{ @PRODUCTS }}" value="{{ @PRODUCT }}">
-					<tr
-					<check if="{{trim(@SESSION.barcode_mv)==trim(@PRODUCT.barcode)}}">class="blink bg-primary"</check>
-					>
-					<th scope="row">{{@PRODUCT.uds}}</th>
-					<td>{{@PRODUCT.barcode}}</td>
-					<td>{{@PRODUCT.qta}}</td>
-					<td>
-						<check if="{{trim(@SESSION.barcode_mv)==trim(@PRODUCT.barcode)}}">
-							<a target="_blank" href="{{@BASEURL}}/printlabel/{{@PRODUCT.barcode}}/-1"><img src="{{@BASEURL}}/ui/images/printer.png"/></a>
-						</check>
-					</td>
-
-					</tr>
-				</repeat>
-				</tbody>
-			</table>
-		</div>
-	</div>
-</div>

+ 0 - 100
ui/pick2light_picks.tpl

@@ -1,100 +0,0 @@
-<div class="col-md-8 align-self-center">
-
-  <check if="{{ !isset(@LISTANOMALIE) }}">
-    <div class="alert alert-warning mt-3 text-center" role="alert">
-      PICKING ATTIVO!!
-    </div>
-
-    <form class="form" method="post" action="{{@BASEURL}}/pick2light/{{@STEP}}">
-      <input type="submit" hidden id="submitform"/>
-      <check if="{{ isset(@ANOMALIA) }}">
-        <input type="hidden" hidden name="anomalia" value="1"/>
-      </check>
-      <input type="text" name="pickedlabelid" autofocus class="form-control form-control mb-3" placeholder="Prodotto" required autocomplete="false"/>
-    </form>
-  </check>
-
-  <check if="{{ isset(@ANOMALIA) }}">
-    <div class="alert alert-light mt-3 text-center" role="alert">
-      {{@ANOMALIA}}
-    </div>
-  </check>
-
-  <check if="{{ isset(@INFOTEXT) }}">
-    <div class="alert alert-danger mt-3 text-center" role="alert">
-      {{@INFOTEXT}}
-    </div>
-  </check>
-
-  <check if="{{ count(@PRODUCTS) }}">
-    <true>
-      <div class="table-responsive" style="max-height: 400px; overflow-y: auto">
-        <table class="table table-striped table-dark">
-          <thead>
-          <tr>
-            <th class="text-center text-uppercase" colspan="6" scope="col">Articoli da prelevare</th>
-          </tr>
-          </thead>
-          <thead>
-          <tr>
-            <th scope="col">Barcode</th>
-            <th scope="col">Descrizione</th>
-            <th scope="col">Origine</th>
-            <th scope="col">Ubicazione</th>
-            <th scope="col">Quantità</th>
-            <th scope="col">Sequenza</th>
-          </tr>
-          </thead>
-          <tbody>
-          <repeat group="{{ @PRODUCTS }}" value="{{ @PRODUCT }}">
-            <tr>
-              <th scope="row">{{@PRODUCT.barcode}}</th>
-              <td>{{@PRODUCT.descrizione}}</td>
-              <td>{{@PRODUCT.origine}}</td>
-              <td>{{@PRODUCT.ubicazione}}</td>
-              <td>{{@PRODUCT.qta_prelevare}}</td>
-              <td>{{@PRODUCT.sequenza}}</td>
-            </tr>
-          </repeat>
-          </tbody>
-        </table>
-      </div>
-    </true>
-    <false>
-      <check if="{{ isset(@LISTANOMALIE) }}">
-        <false>
-          <div class="alert alert-success mt-3 text-center" role="alert">
-            Picking list terminata.
-          </div>
-        </false>
-        <true>
-          <div class="table-responsive" style="max-height: 400px; overflow-y: auto">
-            <table class="table table-striped table-dark">
-              <thead>
-              <tr>
-                <th style="color: red" class="text-center text-uppercase" colspan="6" scope="col">Anomalie presenti</th>
-              </tr>
-              </thead>
-              <thead>
-              <tr>
-                <th scope="col">Barcode</th>
-                <th scope="col">Descrizione</th>
-                <th scope="col">Quantità</th>
-              </tr>
-              </thead>
-              <tbody>
-              <repeat group="{{ @LISTANOMALIE }}" value="{{ @PRODUCT }}">
-                <tr>
-                  <th scope="row">{{@PRODUCT.barcode}}</th>
-                  <td>{{@PRODUCT.descrizione}}</td>
-                  <td>{{@PRODUCT.qta_prelevare}}</td>
-                </tr>
-              </repeat>
-              </tbody>
-            </table>
-          </div>
-        </true>
-      </check>
-    </false>
-  </check>
-</div>

+ 0 - 47
ui/printlabel.tpl

@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html lang="it">
-<head>
-	<meta charset="UTF-8">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<title>{{@SITENAME}} error page</title>
-	<link type="text/css" rel="stylesheet" href="{{@BASEURL}}/bundle.css"/>
-</head>
-<body>
-
-<div class="card m-2 p-3 rounded" style="font-size: 12pt; width: 50%;">
-
-	<div class="d-flex flex-row">
-		<div class="col-3 pl-0 align-self-center">Preb:</div>
-		<div id="commessa" class=" align-self-center flex-fill font-weight-bold">{{@PRINT_DATA[0].commessa}}</div>
-		<div class="align-self-center pr-2" style="font-size: 14pt">Q.ta</div>
-		<div id="qty" class=" align-self-center font-weight-bold" style="font-size: 14pt">{{@PRINT_DATA[0].qty}}</div>
-		<div class="align-self-center font-weight-bold pl-2" style="font-size: 14pt">pz</div>
-	</div>
-
-	<div class="d-flex flex-row mt-1">
-		<div class="col-3 pl-0 align-self-center">Articolo</div>
-		<div id="barcode" class=" flex-fill align-self-center font-weight-bold" style="font-size: 20pt">{{@PRINT_DATA[0].barcode}}</h4></div>
-	</div>
-
-	<div class="d-flex flex-row mt-1">
-		<div class=" align-self-center d-inline-block font-weight-bold text-truncate" style="font-size: 16pt">{{@PRINT_DATA[0].descrizione}}</div>
-	</div>
-
-	<div class="d-flex flex-row mt-1">
-		<div id="imgbarcode" class=" flex-fill font-weight-bold">
-			<img src="{{@PRINT_DATA[0].srcdata}}"/>
-		</div>
-		<div class="">
-			<b>DIMATEC Spa</b><br/>
-			<span style="font-size: 17pt">
-			Via G.Gallilei, 7<br/>
-			GUANZATE CO<br/>
-			I-22070<br/>
-			</span>
-		</div>
-	</div>
-
-	<script src="{{@BASEURL}}/bundle.js"></script>
-
-</body>
-</html>

+ 0 - 10
watcher.js

@@ -31,16 +31,6 @@ fs.watch('ui/css/omlink.scss', function (event, fname) {
   compileAll(event, fname);
 });
 
-console.log('Adding watcher for ui/customizations/dimatec.scss');
-fs.watch('ui/customizations/dimatec.scss', function (event, fname) {
-  compileAll(event, fname);
-});
-
-console.log('Adding watcher for ui/customizations/lamborghini.scss');
-fs.watch('ui/customizations/lamborghini.scss', function (event, fname) {
-  compileAll(event, fname);
-});
-
 console.log('Adding watcher for ui/js/onlink.js');
 fs.watch('ui/js/omlink.js', function (event, fname) {
   compileAll(event, fname);