diff --git a/public/languages/en/general.php b/public/languages/en/general.php index 82a67da..c0ad6c6 100644 --- a/public/languages/en/general.php +++ b/public/languages/en/general.php @@ -32,3 +32,4 @@ $langdatatables = [ "paginate_next" => "Next", "paginate_previous" => "Previous" ]; +$quotationstitle = "Quotations"; diff --git a/public/userarea/customfield_values_response.json b/public/userarea/customfield_values_response.json index fd32d05..c7f504e 100644 --- a/public/userarea/customfield_values_response.json +++ b/public/userarea/customfield_values_response.json @@ -1 +1 @@ -{"146":[{"IdCustomFieldsValue":235,"Valore":"Pigmentato"},{"IdCustomFieldsValue":236,"Valore":"Anilina"},{"IdCustomFieldsValue":237,"Valore":"Verniciato"},{"IdCustomFieldsValue":238,"Valore":"Laminato"},{"IdCustomFieldsValue":259,"Valore":"Semi-Anilina"},{"IdCustomFieldsValue":274,"Valore":"Scamosciato"},{"IdCustomFieldsValue":305,"Valore":"Pigmented"},{"IdCustomFieldsValue":306,"Valore":"Aniline"},{"IdCustomFieldsValue":307,"Valore":"Patent"},{"IdCustomFieldsValue":308,"Valore":"Metallic"},{"IdCustomFieldsValue":309,"Valore":"Semi-Aniline"},{"IdCustomFieldsValue":310,"Valore":"Suede"},{"IdCustomFieldsValue":311,"Valore":"Nubuck"},{"IdCustomFieldsValue":336,"Valore":"Cavallino"},{"IdCustomFieldsValue":344,"Valore":"Abrasivato"},{"IdCustomFieldsValue":500,"Valore":"Gommato"},{"IdCustomFieldsValue":528,"Valore":"Paillettes"},{"IdCustomFieldsValue":538,"Valore":"PU"},{"IdCustomFieldsValue":559,"Valore":"Tintura di Botte"},{"IdCustomFieldsValue":570,"Valore":"Crosta"},{"IdCustomFieldsValue":572,"Valore":"Semianilina\/Stampato"},{"IdCustomFieldsValue":644,"Valore":"Accoppiato"},{"IdCustomFieldsValue":657,"Valore":"Serigrafato"},{"IdCustomFieldsValue":661,"Valore":"Stampato"},{"IdCustomFieldsValue":691,"Valore":"Brush-Off"},{"IdCustomFieldsValue":697,"Valore":"Crust"},{"IdCustomFieldsValue":707,"Valore":"Lucido Lissato"},{"IdCustomFieldsValue":729,"Valore":"Shearling"},{"IdCustomFieldsValue":733,"Valore":"Printed"},{"IdCustomFieldsValue":750,"Valore":"Ink-Jet"},{"IdCustomFieldsValue":804,"Valore":"Fur"},{"IdCustomFieldsValue":874,"Valore":"Esotico"},{"IdCustomFieldsValue":896,"Valore":"Shearling con lato carne scamosciato"},{"IdCustomFieldsValue":959,"Valore":"Ink-jet\/ Con film PU \"By-Cast\""},{"IdCustomFieldsValue":970,"Valore":"Anilina\/Ink-jet"},{"IdCustomFieldsValue":1020,"Valore":"Coated"},{"IdCustomFieldsValue":1021,"Valore":"By-Cast"},{"IdCustomFieldsValue":1024,"Valore":"Perlato"},{"IdCustomFieldsValue":1025,"Valore":"Pearled"},{"IdCustomFieldsValue":1030,"Valore":"Pelo"},{"IdCustomFieldsValue":1035,"Valore":"Glitterato"},{"IdCustomFieldsValue":1099,"Valore":"Transfer"},{"IdCustomFieldsValue":1111,"Valore":"Coupled"},{"IdCustomFieldsValue":1153,"Valore":"Saffiano"},{"IdCustomFieldsValue":1186,"Valore":"Pigmentato\/Accoppiato"},{"IdCustomFieldsValue":1238,"Valore":"Aniline\/Fixed"},{"IdCustomFieldsValue":1240,"Valore":"Laminated Foil Finish"},{"IdCustomFieldsValue":1348,"Valore":"Con applicazioni"},{"IdCustomFieldsValue":1349,"Valore":"Pony calf"},{"IdCustomFieldsValue":1415,"Valore":"Glittered"},{"IdCustomFieldsValue":1437,"Valore":"Scraped"},{"IdCustomFieldsValue":1445,"Valore":"Resinato"},{"IdCustomFieldsValue":1620,"Valore":"Stampa digitale"},{"IdCustomFieldsValue":1661,"Valore":"Laminato parziale"},{"IdCustomFieldsValue":1734,"Valore":"Hair"},{"IdCustomFieldsValue":1787,"Valore":"Smerigliato Rifinito"},{"IdCustomFieldsValue":1827,"Valore":"Uncoated"},{"IdCustomFieldsValue":1828,"Valore":"Nappa"},{"IdCustomFieldsValue":1942,"Valore":"M\u00e9tallique "},{"IdCustomFieldsValue":1943,"Valore":"Camoscina"},{"IdCustomFieldsValue":1974,"Valore":"Pigment\u00e9"},{"IdCustomFieldsValue":2002,"Valore":"Partial metallic finish"},{"IdCustomFieldsValue":2551,"Valore":"Coated con glitter"},{"IdCustomFieldsValue":3107,"Valore":"Metallic Suede"},{"IdCustomFieldsValue":3208,"Valore":"Plotter"},{"IdCustomFieldsValue":3216,"Valore":"Serigrafia con fissativo"},{"IdCustomFieldsValue":3236,"Valore":"Super Natural"},{"IdCustomFieldsValue":3239,"Valore":"Velour"},{"IdCustomFieldsValue":3251,"Valore":"Canvas"},{"IdCustomFieldsValue":3328,"Valore":"Resina stirata"},{"IdCustomFieldsValue":3335,"Valore":"Lucido"},{"IdCustomFieldsValue":3364,"Valore":"Palmellato"},{"IdCustomFieldsValue":3365,"Valore":"Volanato naturale"},{"IdCustomFieldsValue":3366,"Valore":"Trattamento Scotchgard"},{"IdCustomFieldsValue":3367,"Valore":"Passante in botte"},{"IdCustomFieldsValue":3370,"Valore":"Embroidery"},{"IdCustomFieldsValue":3371,"Valore":"Patchwork lettering"},{"IdCustomFieldsValue":3409,"Valore":"Tinto Pezza"},{"IdCustomFieldsValue":3410,"Valore":"Pronto per Tinta"},{"IdCustomFieldsValue":3411,"Valore":"Tinto Filo"},{"IdCustomFieldsValue":3412,"Valore":"Greggio"},{"IdCustomFieldsValue":3413,"Valore":"Vacchetta"},{"IdCustomFieldsValue":3424,"Valore":"Naturale"},{"IdCustomFieldsValue":3442,"Valore":"Barrel dyeing"},{"IdCustomFieldsValue":3454,"Valore":"Split leather with film"},{"IdCustomFieldsValue":3455,"Valore":"Printed Suede"},{"IdCustomFieldsValue":3460,"Valore":"Pigmented\/Patent"},{"IdCustomFieldsValue":3468,"Valore":"Non rifinito"},{"IdCustomFieldsValue":3482,"Valore":"Cruck"},{"IdCustomFieldsValue":3491,"Valore":"Stampa serigrafica"},{"IdCustomFieldsValue":3494,"Valore":"Fissativo all'acqua"},{"IdCustomFieldsValue":3498,"Valore":"Tintura"},{"IdCustomFieldsValue":3506,"Valore":"Rovesciato"},{"IdCustomFieldsValue":3511,"Valore":"Spalmato"},{"IdCustomFieldsValue":3514,"Valore":"Serigraphy"},{"IdCustomFieldsValue":3867,"Valore":"None"},{"IdCustomFieldsValue":4052,"Valore":"Pigmentato Abrasivato"},{"IdCustomFieldsValue":4082,"Valore":"Full Grain"},{"IdCustomFieldsValue":4109,"Valore":"Opaco"},{"IdCustomFieldsValue":4124,"Valore":"Embossed"},{"IdCustomFieldsValue":4135,"Valore":"Mat"},{"IdCustomFieldsValue":4136,"Valore":"Lisse"},{"IdCustomFieldsValue":4137,"Valore":"Coton"},{"IdCustomFieldsValue":4143,"Valore":"Alo\u00e9"},{"IdCustomFieldsValue":4144,"Valore":"Torino"},{"IdCustomFieldsValue":4145,"Valore":"Microsuede"},{"IdCustomFieldsValue":4151,"Valore":"Miroir"},{"IdCustomFieldsValue":4166,"Valore":"Stampa UV"},{"IdCustomFieldsValue":4185,"Valore":"Lavable"},{"IdCustomFieldsValue":4219,"Valore":"Radika"},{"IdCustomFieldsValue":4220,"Valore":"Natural"},{"IdCustomFieldsValue":4222,"Valore":"Abilo N\u00e9on"},{"IdCustomFieldsValue":4250,"Valore":"Canyon"},{"IdCustomFieldsValue":4257,"Valore":"Alo\u00e9 Shiny"},{"IdCustomFieldsValue":4258,"Valore":"Lisse\/Recoupe"},{"IdCustomFieldsValue":4280,"Valore":"Water-repellent"},{"IdCustomFieldsValue":4283,"Valore":"Lisse\/Entrepeaux"},{"IdCustomFieldsValue":4286,"Valore":"Metallo liquido spray + Stampa"},{"IdCustomFieldsValue":4288,"Valore":"Tinto"},{"IdCustomFieldsValue":4388,"Valore":"Cerato"},{"IdCustomFieldsValue":4389,"Valore":"Mat\/Recoupe"},{"IdCustomFieldsValue":4392,"Valore":"Pigmentato\/Poliuretanico finale"},{"IdCustomFieldsValue":4393,"Valore":"Semianilina Laminato"},{"IdCustomFieldsValue":4394,"Valore":"Semianilina Pigmentato"},{"IdCustomFieldsValue":4399,"Valore":"Primitivo"},{"IdCustomFieldsValue":4400,"Valore":"Ombre"},{"IdCustomFieldsValue":4401,"Valore":"Anilina Pigmentato"},{"IdCustomFieldsValue":4405,"Valore":"Caresse"},{"IdCustomFieldsValue":4429,"Valore":"Ultras\/Recoupe"},{"IdCustomFieldsValue":4552,"Valore":"Semi-Anilina + Stampa ink jet"},{"IdCustomFieldsValue":4563,"Valore":"Torino Ultra Brillante"},{"IdCustomFieldsValue":4573,"Valore":"Supernatural\/aniline"},{"IdCustomFieldsValue":5054,"Valore":"Peau d'ange"},{"IdCustomFieldsValue":5128,"Valore":"Mirage"},{"IdCustomFieldsValue":5129,"Valore":"Mirage\/Relance"},{"IdCustomFieldsValue":5130,"Valore":"Croute Chrome"},{"IdCustomFieldsValue":5309,"Valore":"PU Coated"},{"IdCustomFieldsValue":5315,"Valore":"Pigmentato stampato"},{"IdCustomFieldsValue":5498,"Valore":"Rubberized"},{"IdCustomFieldsValue":5610,"Valore":"By-Cast PU"},{"IdCustomFieldsValue":5615,"Valore":"Lamina liquida"},{"IdCustomFieldsValue":6193,"Valore":"Nubuck\/Rubber coated"},{"IdCustomFieldsValue":8523,"Valore":"Total print"},{"IdCustomFieldsValue":12774,"Valore":"Etoffe"},{"IdCustomFieldsValue":12775,"Valore":"Croute"},{"IdCustomFieldsValue":12776,"Valore":"Miroir Light"},{"IdCustomFieldsValue":12777,"Valore":"Etriviere"},{"IdCustomFieldsValue":12949,"Valore":"Vernice (Vernice\/Semianilina)"},{"IdCustomFieldsValue":13501,"Valore":"Seta Lux"},{"IdCustomFieldsValue":13733,"Valore":"Aniline Pigmented"},{"IdCustomFieldsValue":13807,"Valore":"Naturale\/Semilucido"},{"IdCustomFieldsValue":14047,"Valore":"Fissativo"},{"IdCustomFieldsValue":14140,"Valore":"Nubuk"},{"IdCustomFieldsValue":14141,"Valore":"Satin Soft"},{"IdCustomFieldsValue":14142,"Valore":"Priene\/ Millenium "},{"IdCustomFieldsValue":14887,"Valore":"Pigmented\/Metal"}],"147":[{"IdCustomFieldsValue":239,"Valore":"Cromo"},{"IdCustomFieldsValue":240,"Valore":"Vegetale"},{"IdCustomFieldsValue":272,"Valore":"\/"},{"IdCustomFieldsValue":273,"Valore":"Mista"},{"IdCustomFieldsValue":301,"Valore":"Chrome"},{"IdCustomFieldsValue":302,"Valore":"Vegetal"},{"IdCustomFieldsValue":303,"Valore":"Mixed"},{"IdCustomFieldsValue":519,"Valore":"White"},{"IdCustomFieldsValue":520,"Valore":"Bianca"},{"IdCustomFieldsValue":566,"Valore":"Chrome \/ Synthetic"},{"IdCustomFieldsValue":682,"Valore":"Sintetica"},{"IdCustomFieldsValue":1001,"Valore":"Vegetallizzato"},{"IdCustomFieldsValue":1054,"Valore":"Synthetic"},{"IdCustomFieldsValue":1208,"Valore":"Allume"},{"IdCustomFieldsValue":1264,"Valore":"Minerale"},{"IdCustomFieldsValue":1535,"Valore":"Blanche"},{"IdCustomFieldsValue":2447,"Valore":"Mineral"},{"IdCustomFieldsValue":2590,"Valore":"Semi-Vegetal"},{"IdCustomFieldsValue":2712,"Valore":"Metal free"},{"IdCustomFieldsValue":2737,"Valore":"Semi-Chrome"},{"IdCustomFieldsValue":2777,"Valore":"Wet Blue"},{"IdCustomFieldsValue":3090,"Valore":"Non conciata"},{"IdCustomFieldsValue":3199,"Valore":"Chrome free"},{"IdCustomFieldsValue":3469,"Valore":"Slow vegetal"},{"IdCustomFieldsValue":3527,"Valore":"Wet White"},{"IdCustomFieldsValue":3821,"Valore":"Sintetica + Cromo"},{"IdCustomFieldsValue":3888,"Valore":"Non metallica"},{"IdCustomFieldsValue":4568,"Valore":"Mineral"},{"IdCustomFieldsValue":5390,"Valore":"Cromo \/ Sintetico"},{"IdCustomFieldsValue":5398,"Valore":"Synthetique"},{"IdCustomFieldsValue":5647,"Valore":"Pickel"},{"IdCustomFieldsValue":6192,"Valore":"Chrome\/Mixed"},{"IdCustomFieldsValue":8709,"Valore":"Mixte"},{"IdCustomFieldsValue":11356,"Valore":"Mista Cromo"},{"IdCustomFieldsValue":13713,"Valore":"Bio"},{"IdCustomFieldsValue":13714,"Valore":"Bio\/Metal free"}],"150":[{"IdCustomFieldsValue":261,"Valore":"Pelletteria"},{"IdCustomFieldsValue":262,"Valore":"Calzatura (Tomaio)"},{"IdCustomFieldsValue":263,"Valore":"Calzatura (Fodera)"},{"IdCustomFieldsValue":264,"Valore":"Abbigliamento"},{"IdCustomFieldsValue":265,"Valore":"Arredamento"},{"IdCustomFieldsValue":266,"Valore":"Calzatura\/Pelletteria"},{"IdCustomFieldsValue":267,"Valore":"Cinture"},{"IdCustomFieldsValue":269,"Valore":"Piccola Pelletteria (Portafogli)"},{"IdCustomFieldsValue":270,"Valore":"Valigeria"},{"IdCustomFieldsValue":271,"Valore":"\/"},{"IdCustomFieldsValue":285,"Valore":"Leathergoods"},{"IdCustomFieldsValue":286,"Valore":"Footwear (Upper)"},{"IdCustomFieldsValue":287,"Valore":"Footwear (Lining)"},{"IdCustomFieldsValue":288,"Valore":"Apparel"},{"IdCustomFieldsValue":289,"Valore":"Furnishing"},{"IdCustomFieldsValue":290,"Valore":"Footwear\/Leathergoods"},{"IdCustomFieldsValue":291,"Valore":"Belts"},{"IdCustomFieldsValue":292,"Valore":"Watchstrap"},{"IdCustomFieldsValue":293,"Valore":"Small Leathergood"},{"IdCustomFieldsValue":338,"Valore":"Calzatura"},{"IdCustomFieldsValue":440,"Valore":"Footwear"},{"IdCustomFieldsValue":474,"Valore":"Apparel Trim"},{"IdCustomFieldsValue":495,"Valore":"Pelletteria (Fodera)"},{"IdCustomFieldsValue":582,"Valore":"Leathergoods (Bag)"},{"IdCustomFieldsValue":598,"Valore":"Pelletteria (Borsa)"},{"IdCustomFieldsValue":637,"Valore":"Shoes - Leathergoods"},{"IdCustomFieldsValue":676,"Valore":"Footwear (Insole)"},{"IdCustomFieldsValue":687,"Valore":"Piccola Pelletteria (Cinture)"},{"IdCustomFieldsValue":688,"Valore":"Cinturini da orologio"},{"IdCustomFieldsValue":692,"Valore":"Apparel (Outer)"},{"IdCustomFieldsValue":693,"Valore":"Apparel (Inner)"},{"IdCustomFieldsValue":695,"Valore":"Calzatura (Sottopiedi)"},{"IdCustomFieldsValue":742,"Valore":"Packaging"},{"IdCustomFieldsValue":756,"Valore":"Maroquinerie"},{"IdCustomFieldsValue":757,"Valore":"Maroquinerie (Sac a main)"},{"IdCustomFieldsValue":758,"Valore":"Maroquinerie (Petite maroquinerie)"},{"IdCustomFieldsValue":759,"Valore":"Maroquinerie (Ceintures)"},{"IdCustomFieldsValue":760,"Valore":"Maroquinerie (Bracelets de montres)"},{"IdCustomFieldsValue":761,"Valore":"Maroquinerie (Doublure)"},{"IdCustomFieldsValue":767,"Valore":"Bracelets de montres"},{"IdCustomFieldsValue":775,"Valore":"Pelletteria (Borsa) \/ Piccola Pelletteria (Portafogli)"},{"IdCustomFieldsValue":779,"Valore":"Leathergoods \/Finishedgoods"},{"IdCustomFieldsValue":807,"Valore":"Leathergoods (Lining)"},{"IdCustomFieldsValue":821,"Valore":"Accessori da Abbigliamento"},{"IdCustomFieldsValue":823,"Valore":"Gioielleria"},{"IdCustomFieldsValue":840,"Valore":"Jewellery"},{"IdCustomFieldsValue":855,"Valore":"Piccola Pelletteria"},{"IdCustomFieldsValue":889,"Valore":"Small Leathergood (Belt)"},{"IdCustomFieldsValue":898,"Valore":"Pelletteria (Borsa) \/ Gioielleria"},{"IdCustomFieldsValue":902,"Valore":"V\u00eatements"},{"IdCustomFieldsValue":912,"Valore":"Abbigliamento (Guanti)"},{"IdCustomFieldsValue":986,"Valore":"Leathergoods (Wallet)"},{"IdCustomFieldsValue":1009,"Valore":"Gioielleria \/ Bigiotteria"},{"IdCustomFieldsValue":1010,"Valore":"Bigiotteria"},{"IdCustomFieldsValue":1027,"Valore":"Abbigliamento esterno"},{"IdCustomFieldsValue":1028,"Valore":"Abbigliamento interno"},{"IdCustomFieldsValue":1032,"Valore":"Calzatura sfoderata"},{"IdCustomFieldsValue":1055,"Valore":"Leathergoods (Body of the bag)"},{"IdCustomFieldsValue":1082,"Valore":"Leathergoods (Belt)"},{"IdCustomFieldsValue":1104,"Valore":"Calzatura (Soletto)"},{"IdCustomFieldsValue":1204,"Valore":"Calzatura (fodera\/soletto)"},{"IdCustomFieldsValue":1205,"Valore":"Shoes"},{"IdCustomFieldsValue":1207,"Valore":"Pelletteria \/ Abbigliamento"},{"IdCustomFieldsValue":1236,"Valore":"Ombrelli"},{"IdCustomFieldsValue":1383,"Valore":"Abbigliamento\/Calzatura"},{"IdCustomFieldsValue":1421,"Valore":"Calzatura (Tacco)"},{"IdCustomFieldsValue":1467,"Valore":"Furniture"},{"IdCustomFieldsValue":1514,"Valore":"Footwear (Upper\/Lining)"},{"IdCustomFieldsValue":1662,"Valore":"Leathergoods (Exterior)"},{"IdCustomFieldsValue":1670,"Valore":"Chaussures"},{"IdCustomFieldsValue":1780,"Valore":"Abbigliamento\/Calzatura\/Pelletteria"},{"IdCustomFieldsValue":1970,"Valore":"Accessories"},{"IdCustomFieldsValue":1971,"Valore":"Carta da parati"},{"IdCustomFieldsValue":2087,"Valore":"Glasses case"},{"IdCustomFieldsValue":2190,"Valore":"Calzatura (Tomaio\/Fodera)"},{"IdCustomFieldsValue":2240,"Valore":"Pelletteria \/ Calzatura"},{"IdCustomFieldsValue":2530,"Valore":"Calzatura (Suola)"},{"IdCustomFieldsValue":2570,"Valore":"Occhiali"},{"IdCustomFieldsValue":2635,"Valore":"Footwear (Sandal)"},{"IdCustomFieldsValue":2639,"Valore":"Lining"},{"IdCustomFieldsValue":2671,"Valore":"Portachiavi"},{"IdCustomFieldsValue":3098,"Valore":"Pellicceria"},{"IdCustomFieldsValue":3200,"Valore":"Car seat upholstery"},{"IdCustomFieldsValue":3209,"Valore":"Fodera"},{"IdCustomFieldsValue":3243,"Valore":"Accessoristica"},{"IdCustomFieldsValue":3253,"Valore":"Cuscini da Viaggio"},{"IdCustomFieldsValue":3357,"Valore":"Coulisse"},{"IdCustomFieldsValue":3361,"Valore":"Leathergoods (Handbag)"},{"IdCustomFieldsValue":3369,"Valore":"Leathergoods (Knapsack)"},{"IdCustomFieldsValue":3445,"Valore":"Footwear (Lake shoe)"},{"IdCustomFieldsValue":3453,"Valore":"Apparel (Hat)"},{"IdCustomFieldsValue":3470,"Valore":"Bike saddle"},{"IdCustomFieldsValue":3476,"Valore":"Apparel (Shirts)"},{"IdCustomFieldsValue":3477,"Valore":"Apparel (Jackets)"},{"IdCustomFieldsValue":3478,"Valore":"Leathergoods (Flap)"},{"IdCustomFieldsValue":3484,"Valore":"Upholstery"},{"IdCustomFieldsValue":3485,"Valore":"Saddlery"},{"IdCustomFieldsValue":3519,"Valore":"Apparel (Lining)"},{"IdCustomFieldsValue":3837,"Valore":"Swimwear"},{"IdCustomFieldsValue":3847,"Valore":"Accoppiatura tessuti"},{"IdCustomFieldsValue":3876,"Valore":"Luggage"},{"IdCustomFieldsValue":3891,"Valore":"Pelletteria (Rinforzo)"},{"IdCustomFieldsValue":4041,"Valore":"Bijoux (Lining)"},{"IdCustomFieldsValue":4081,"Valore":"Label"},{"IdCustomFieldsValue":4189,"Valore":"Case"},{"IdCustomFieldsValue":4268,"Valore":"Abbigliamento (Camicia)"},{"IdCustomFieldsValue":4390,"Valore":"Bijoux"},{"IdCustomFieldsValue":4421,"Valore":"Apparel (tights)"},{"IdCustomFieldsValue":4424,"Valore":"Maglieria"},{"IdCustomFieldsValue":4425,"Valore":"Abbigliamento (Sciarpe)"},{"IdCustomFieldsValue":4588,"Valore":"Forniture"},{"IdCustomFieldsValue":4642,"Valore":"Calzatura (Tomaio\/Soletto)"},{"IdCustomFieldsValue":4746,"Valore":"Leathergoods\/Footwear"},{"IdCustomFieldsValue":4749,"Valore":"Orthopedic \/ comfort Shoes"},{"IdCustomFieldsValue":5308,"Valore":"Swimsuit"},{"IdCustomFieldsValue":5394,"Valore":"Pelletteria \/ Accessori"},{"IdCustomFieldsValue":5435,"Valore":"Accessoire"},{"IdCustomFieldsValue":6265,"Valore":"V\u00eatements\/Maroquinerie"},{"IdCustomFieldsValue":12514,"Valore":"\u00c9quitation"},{"IdCustomFieldsValue":12714,"Valore":"Montre"},{"IdCustomFieldsValue":13149,"Valore":"Calzatura (Tomaio\/Sottopiede)"},{"IdCustomFieldsValue":13486,"Valore":"Glasses"},{"IdCustomFieldsValue":13487,"Valore":"Sunglasses"},{"IdCustomFieldsValue":13897,"Valore":"Bagage"},{"IdCustomFieldsValue":13977,"Valore":"Apparel\/Leathergoods\/Footwear"},{"IdCustomFieldsValue":14000,"Valore":"Garment"},{"IdCustomFieldsValue":14023,"Valore":"Leathergoods (Waist bag)"},{"IdCustomFieldsValue":14681,"Valore":"Chaussures\/Maroquinerie"},{"IdCustomFieldsValue":14698,"Valore":"Small Leathergood (Key ring)"},{"IdCustomFieldsValue":14836,"Valore":"Abbigliamento (Costume da bagno)"},{"IdCustomFieldsValue":14991,"Valore":"Footwear\/Leathergoods\/Apparel"}],"156":[{"IdCustomFieldsValue":243,"Valore":"Bottone"},{"IdCustomFieldsValue":244,"Valore":"Cerniera"},{"IdCustomFieldsValue":245,"Valore":"Accessorio Metallico"},{"IdCustomFieldsValue":246,"Valore":"Accessorio Plastico"},{"IdCustomFieldsValue":247,"Valore":"Sottotacco"},{"IdCustomFieldsValue":304,"Valore":"Suola"},{"IdCustomFieldsValue":313,"Valore":"Tacco"},{"IdCustomFieldsValue":314,"Valore":"Composite"},{"IdCustomFieldsValue":315,"Valore":"Cuoio\/Pelle (1\/2 Vitello)"},{"IdCustomFieldsValue":316,"Valore":"Cuoio\/Pelle (Bovino)"},{"IdCustomFieldsValue":317,"Valore":"Cuoio\/Pelle (Capra)"},{"IdCustomFieldsValue":318,"Valore":"Cuoio\/Pelle (Coccodrillo)"},{"IdCustomFieldsValue":319,"Valore":"Cuoio\/Pelle (Crosta)"},{"IdCustomFieldsValue":320,"Valore":"Cuoio\/Pelle (Nabuck)"},{"IdCustomFieldsValue":321,"Valore":"Cuoio\/Pelle (Ovocaprino)"},{"IdCustomFieldsValue":322,"Valore":"Cuoio\/Pelle (Rettile)"},{"IdCustomFieldsValue":323,"Valore":"Cuoio\/Pelle (Vitello)"},{"IdCustomFieldsValue":324,"Valore":"Borsa"},{"IdCustomFieldsValue":325,"Valore":"Calzatura"},{"IdCustomFieldsValue":326,"Valore":"Cintura"},{"IdCustomFieldsValue":327,"Valore":"Portafoglio"},{"IdCustomFieldsValue":328,"Valore":"Tessile (Sintetico)"},{"IdCustomFieldsValue":329,"Valore":"Tessile (Ortogonale\/A maglia)"},{"IdCustomFieldsValue":330,"Valore":"Tessile (PVC)"},{"IdCustomFieldsValue":331,"Valore":"Tessile (Spalmato)"},{"IdCustomFieldsValue":332,"Valore":"Tessile (Stampato)"},{"IdCustomFieldsValue":333,"Valore":"Tessile (Accoppiato)"},{"IdCustomFieldsValue":335,"Valore":"Cuoio\/Pelle (Cavallino)"},{"IdCustomFieldsValue":342,"Valore":"Cuoio\/Pelle"},{"IdCustomFieldsValue":343,"Valore":"Tessile"},{"IdCustomFieldsValue":404,"Valore":"Leather (1\/2 Calf)"},{"IdCustomFieldsValue":405,"Valore":"Leather (Calf)"},{"IdCustomFieldsValue":406,"Valore":"Leather (Buffalo)"},{"IdCustomFieldsValue":407,"Valore":"Leather (Goat)"},{"IdCustomFieldsValue":408,"Valore":"Leather (Lamb)"},{"IdCustomFieldsValue":409,"Valore":"Leather (Exotic)"},{"IdCustomFieldsValue":410,"Valore":"Textile"},{"IdCustomFieldsValue":411,"Valore":"Final product"},{"IdCustomFieldsValue":412,"Valore":"Button"},{"IdCustomFieldsValue":413,"Valore":"Handbag"},{"IdCustomFieldsValue":414,"Valore":"Belt"},{"IdCustomFieldsValue":415,"Valore":"Heel"},{"IdCustomFieldsValue":416,"Valore":"Metallic accessories"},{"IdCustomFieldsValue":420,"Valore":"Leather"},{"IdCustomFieldsValue":446,"Valore":"Leather (Ram)"},{"IdCustomFieldsValue":480,"Valore":"Cuoio\/Pelle (Cervo)"},{"IdCustomFieldsValue":481,"Valore":"Cuoio\/Pelle (Vitellino)"},{"IdCustomFieldsValue":483,"Valore":"Wallet"},{"IdCustomFieldsValue":529,"Valore":"Cuoio\/Pelle (Nappa)"},{"IdCustomFieldsValue":533,"Valore":"Leather (Shearling)"},{"IdCustomFieldsValue":534,"Valore":"Leather (Cow)"},{"IdCustomFieldsValue":536,"Valore":"Cuoio\/Pelle (Agnello)"},{"IdCustomFieldsValue":537,"Valore":"Sottopiede"},{"IdCustomFieldsValue":547,"Valore":"Porta I-Pad"},{"IdCustomFieldsValue":558,"Valore":"Cuoio\/Pelle (Daino)"},{"IdCustomFieldsValue":571,"Valore":"Cuoio\/Pelle (Bufalo)"},{"IdCustomFieldsValue":597,"Valore":"Composito"},{"IdCustomFieldsValue":616,"Valore":"Leather (front calf)"},{"IdCustomFieldsValue":643,"Valore":"Cuoio\/Pelle (Canguro)"},{"IdCustomFieldsValue":653,"Valore":"Sole"},{"IdCustomFieldsValue":654,"Valore":"Cuoio\/Pelle (Montone)"},{"IdCustomFieldsValue":655,"Valore":"Cuoio\/Pelle (Volpe)"},{"IdCustomFieldsValue":660,"Valore":"Accessorio \/ Pitone"},{"IdCustomFieldsValue":666,"Valore":"Guanti"},{"IdCustomFieldsValue":667,"Valore":"Prodotto finito"},{"IdCustomFieldsValue":678,"Valore":"Colorante"},{"IdCustomFieldsValue":684,"Valore":"Elaphe Radiata"},{"IdCustomFieldsValue":689,"Valore":"Cuoio\/Pelle (Toro)"},{"IdCustomFieldsValue":690,"Valore":"Semilavorato"},{"IdCustomFieldsValue":696,"Valore":"Cuoio\/Pelle (Spalle)"},{"IdCustomFieldsValue":699,"Valore":"Leathergoods\/Footwear"},{"IdCustomFieldsValue":701,"Valore":"Cuoio\/Pelle (Visone)"},{"IdCustomFieldsValue":702,"Valore":"Wire"},{"IdCustomFieldsValue":705,"Valore":"Tessile (con Applicazioni)"},{"IdCustomFieldsValue":708,"Valore":"Cuoio\/Pelle (Incrociati)"},{"IdCustomFieldsValue":714,"Valore":"Cuoio\/Pelle (Cammello)"},{"IdCustomFieldsValue":717,"Valore":"Shoulder"},{"IdCustomFieldsValue":718,"Valore":"Handle"},{"IdCustomFieldsValue":719,"Valore":"Backpack"},{"IdCustomFieldsValue":731,"Valore":"Panel"},{"IdCustomFieldsValue":734,"Valore":"Textile (Coupled)"},{"IdCustomFieldsValue":736,"Valore":"Accessories"},{"IdCustomFieldsValue":738,"Valore":"Buckle"},{"IdCustomFieldsValue":740,"Valore":"Cuoio\/Pelle (Gropponi)"},{"IdCustomFieldsValue":743,"Valore":"Glittered Textile"},{"IdCustomFieldsValue":748,"Valore":"Leather (Deer)"},{"IdCustomFieldsValue":762,"Valore":"Cuir"},{"IdCustomFieldsValue":763,"Valore":"Doublure (Cro\u00fbte bovin P.U. Newcalf gris F\/32 F1.5\/1.7mm, T1.5\/2.0m2)"},{"IdCustomFieldsValue":764,"Valore":"Pieces Metallique"},{"IdCustomFieldsValue":765,"Valore":"Bracelets de montres"},{"IdCustomFieldsValue":768,"Valore":"Leather vs Textile"},{"IdCustomFieldsValue":770,"Valore":"Cuoio\/Pelle (Coniglio)"},{"IdCustomFieldsValue":792,"Valore":"Leather (Goat) vs Leather (Calf)"},{"IdCustomFieldsValue":797,"Valore":"Insock"},{"IdCustomFieldsValue":809,"Valore":"Leather (Shoulder)"},{"IdCustomFieldsValue":810,"Valore":"Cuoio\/Pelle (Fianchi)"},{"IdCustomFieldsValue":812,"Valore":"Zaino"},{"IdCustomFieldsValue":824,"Valore":"Shoe"},{"IdCustomFieldsValue":834,"Valore":"Glittered Textile"},{"IdCustomFieldsValue":835,"Valore":"Cuoio\/Pelle (Alligatore)"},{"IdCustomFieldsValue":838,"Valore":"Pannello"},{"IdCustomFieldsValue":841,"Valore":"Bracelet"},{"IdCustomFieldsValue":842,"Valore":"Chain"},{"IdCustomFieldsValue":843,"Valore":"Necklace"},{"IdCustomFieldsValue":847,"Valore":"Componente per calzatura"},{"IdCustomFieldsValue":849,"Valore":"Bracciale"},{"IdCustomFieldsValue":852,"Valore":"Cuoio\/Pelle (Cavallo)"},{"IdCustomFieldsValue":854,"Valore":"Nappa"},{"IdCustomFieldsValue":856,"Valore":"Cuoio\/Pelle (Suino)"},{"IdCustomFieldsValue":857,"Valore":"Bag"},{"IdCustomFieldsValue":862,"Valore":"PVC"},{"IdCustomFieldsValue":865,"Valore":"Cuoio\/Pelle Esotico (Ayers)"},{"IdCustomFieldsValue":877,"Valore":"Cuir (Veau)"},{"IdCustomFieldsValue":884,"Valore":"Leather (Pig)"},{"IdCustomFieldsValue":886,"Valore":"Leather (Baby Calf)"},{"IdCustomFieldsValue":888,"Valore":"Small Leathergood (Belt)"},{"IdCustomFieldsValue":899,"Valore":"Accoppiato (Tessile\/Pelle)"},{"IdCustomFieldsValue":900,"Valore":"Accoppiato (Pelle\/Pelle)"},{"IdCustomFieldsValue":901,"Valore":"Cuoio\/Pelle (Pitone)"},{"IdCustomFieldsValue":911,"Valore":"Culatte"},{"IdCustomFieldsValue":919,"Valore":"Leather (Kangaroo)"},{"IdCustomFieldsValue":934,"Valore":"Accessorio"},{"IdCustomFieldsValue":937,"Valore":"Leather (Bovine)"},{"IdCustomFieldsValue":938,"Valore":"Leather (Coupled)"},{"IdCustomFieldsValue":943,"Valore":"Textile (Glittered)"},{"IdCustomFieldsValue":945,"Valore":"Textile (Woven\/Knitted)"},{"IdCustomFieldsValue":946,"Valore":"Textile (Lining)"},{"IdCustomFieldsValue":949,"Valore":"Cuoio\/Pelle (Caribu')"},{"IdCustomFieldsValue":952,"Valore":"Tessile (Fodera)"},{"IdCustomFieldsValue":954,"Valore":"Metallic logo"},{"IdCustomFieldsValue":957,"Valore":"Plastic accessories"},{"IdCustomFieldsValue":961,"Valore":"Tessile (Paglia)"},{"IdCustomFieldsValue":962,"Valore":"Cuir (1\/2 Veau)"},{"IdCustomFieldsValue":965,"Valore":"Metallic \/ Plastic trims"},{"IdCustomFieldsValue":966,"Valore":"Prodotto chimico"},{"IdCustomFieldsValue":967,"Valore":"Cuoio\/Pelle (Culatta)"},{"IdCustomFieldsValue":974,"Valore":"I-Pad Holder"},{"IdCustomFieldsValue":979,"Valore":"Tessue"},{"IdCustomFieldsValue":984,"Valore":"Cuoio\/Pelle (Bovina)"},{"IdCustomFieldsValue":987,"Valore":"Footwear"},{"IdCustomFieldsValue":988,"Valore":"Textile (PVC)"},{"IdCustomFieldsValue":994,"Valore":"AYERS F.C. MAC."},{"IdCustomFieldsValue":995,"Valore":"Quadrante di borsa completo di maniglia"},{"IdCustomFieldsValue":1005,"Valore":"Leather (Baby calf with hair on printed)"},{"IdCustomFieldsValue":1007,"Valore":"Metallic Trims"},{"IdCustomFieldsValue":1012,"Valore":"Accessoire metallique"},{"IdCustomFieldsValue":1019,"Valore":"Fibbia"},{"IdCustomFieldsValue":1033,"Valore":"Component for Footwear"},{"IdCustomFieldsValue":1037,"Valore":"Cuoio\/Pelle (Capretto)"},{"IdCustomFieldsValue":1038,"Valore":"Leather (Crust)"},{"IdCustomFieldsValue":1040,"Valore":"Cuoio\/Pelle (Esotico)"},{"IdCustomFieldsValue":1045,"Valore":"Componente di pelletteria (tintura costola)"},{"IdCustomFieldsValue":1046,"Valore":"Tessile (Accoppiato con pelle)"},{"IdCustomFieldsValue":1049,"Valore":"Tessile (Accopiato con PU)"},{"IdCustomFieldsValue":1077,"Valore":"Sintetici"},{"IdCustomFieldsValue":1107,"Valore":"Textile (Synthetic)"},{"IdCustomFieldsValue":1126,"Valore":"Sughero"},{"IdCustomFieldsValue":1158,"Valore":"Accoppiato"},{"IdCustomFieldsValue":1159,"Valore":"Zip"},{"IdCustomFieldsValue":1178,"Valore":"Cellulosa"},{"IdCustomFieldsValue":1179,"Valore":"Pochette"},{"IdCustomFieldsValue":1218,"Valore":"Cuir (Chevre)"},{"IdCustomFieldsValue":1260,"Valore":"Watch strap"},{"IdCustomFieldsValue":1261,"Valore":"Lamina"},{"IdCustomFieldsValue":1356,"Valore":"Pietra verniciata"},{"IdCustomFieldsValue":1362,"Valore":"Cartone"},{"IdCustomFieldsValue":1369,"Valore":"Upper"},{"IdCustomFieldsValue":1373,"Valore":"Cuoio\/Pelle (Struzzo)"},{"IdCustomFieldsValue":1375,"Valore":"Prodotto liquido"},{"IdCustomFieldsValue":1376,"Valore":"Cuoio\/Pelle (Lapin Rex)"},{"IdCustomFieldsValue":1378,"Valore":"Wood Button"},{"IdCustomFieldsValue":1381,"Valore":"Lattice"},{"IdCustomFieldsValue":1419,"Valore":"Coupled"},{"IdCustomFieldsValue":1428,"Valore":"Tessile (Lana)"},{"IdCustomFieldsValue":1430,"Valore":"Tomaia"},{"IdCustomFieldsValue":1435,"Valore":"Tessile (PU)"},{"IdCustomFieldsValue":1446,"Valore":"Filo"},{"IdCustomFieldsValue":1447,"Valore":"Polvere"},{"IdCustomFieldsValue":1452,"Valore":"Leather (Sheep)"},{"IdCustomFieldsValue":1465,"Valore":"Textile (Printed)"},{"IdCustomFieldsValue":1487,"Valore":"Plastic sample"},{"IdCustomFieldsValue":1495,"Valore":"Pigmento"},{"IdCustomFieldsValue":1502,"Valore":"Shanks"},{"IdCustomFieldsValue":1506,"Valore":"Button (Urea)"},{"IdCustomFieldsValue":1521,"Valore":"Pietra"},{"IdCustomFieldsValue":1523,"Valore":"Fabric sample"},{"IdCustomFieldsValue":1525,"Valore":"Cuoio\/Pelle (Pesce)"},{"IdCustomFieldsValue":1526,"Valore":"Button (Sydney)"},{"IdCustomFieldsValue":1563,"Valore":"Metal Powder"},{"IdCustomFieldsValue":1569,"Valore":"Liquid product"},{"IdCustomFieldsValue":1582,"Valore":"Paint"},{"IdCustomFieldsValue":1588,"Valore":"Laminated paper"},{"IdCustomFieldsValue":1589,"Valore":"Accessoire"},{"IdCustomFieldsValue":1597,"Valore":"Lucido"},{"IdCustomFieldsValue":1623,"Valore":"Cuoio\/Pelle (Anguilla)"},{"IdCustomFieldsValue":1626,"Valore":"Tessile (Cotone)"},{"IdCustomFieldsValue":1663,"Valore":"ABS"},{"IdCustomFieldsValue":1664,"Valore":"Leather (Bos Taurus)"},{"IdCustomFieldsValue":1731,"Valore":"Leather (Ayers)"},{"IdCustomFieldsValue":1732,"Valore":"Leather (Colubro)"},{"IdCustomFieldsValue":1733,"Valore":"Leather (Python)"},{"IdCustomFieldsValue":1736,"Valore":"Heel with Insole"},{"IdCustomFieldsValue":1737,"Valore":"Cuoio\/Pelle (Lapin)"},{"IdCustomFieldsValue":1739,"Valore":"Cuoio\/Pelle (Caimano)"},{"IdCustomFieldsValue":1743,"Valore":"Cuir (Agneau)"},{"IdCustomFieldsValue":1760,"Valore":"Leather (Kid)"},{"IdCustomFieldsValue":1781,"Valore":"Packaging Box"},{"IdCustomFieldsValue":1782,"Valore":"Packaging Cloth"},{"IdCustomFieldsValue":1803,"Valore":"Textile (Coated)"},{"IdCustomFieldsValue":1811,"Valore":"Leather (Reclaimed) "},{"IdCustomFieldsValue":1882,"Valore":"Accoppiato (Tessile\/Tessile)"},{"IdCustomFieldsValue":1913,"Valore":"Lycra"},{"IdCustomFieldsValue":1930,"Valore":"Cuoio\/Pelle (Lucertola)"},{"IdCustomFieldsValue":1981,"Valore":"Leather (Baby Goat)"},{"IdCustomFieldsValue":1987,"Valore":"Cover"},{"IdCustomFieldsValue":2003,"Valore":"Tracolla"},{"IdCustomFieldsValue":2079,"Valore":"Leather (Bull)"},{"IdCustomFieldsValue":2080,"Valore":"Leather (Ovine)"},{"IdCustomFieldsValue":2176,"Valore":"Tessile (Poliestere)"},{"IdCustomFieldsValue":2184,"Valore":"Cuoio\/Pelle (Lama)"},{"IdCustomFieldsValue":2203,"Valore":"Accessorio in pelle"},{"IdCustomFieldsValue":2259,"Valore":"Leather (Eel)"},{"IdCustomFieldsValue":2273,"Valore":"Accoppiato (Accessorio\/Pelle)"},{"IdCustomFieldsValue":2274,"Valore":"Accoppiato (Accessorio\/Tessile)"},{"IdCustomFieldsValue":2276,"Valore":"Accessorio in tessuto"},{"IdCustomFieldsValue":2376,"Valore":"Cuoio rigenerato"},{"IdCustomFieldsValue":2460,"Valore":"Regenerated Leather"},{"IdCustomFieldsValue":2465,"Valore":"Resina acrilica"},{"IdCustomFieldsValue":2467,"Valore":"Bonded Leather"},{"IdCustomFieldsValue":2515,"Valore":"Tessile (Seta)"},{"IdCustomFieldsValue":2528,"Valore":"Cuoio"},{"IdCustomFieldsValue":2540,"Valore":"Paper packaging"},{"IdCustomFieldsValue":2541,"Valore":"Plastic packaging"},{"IdCustomFieldsValue":2576,"Valore":"Zip in Nylon"},{"IdCustomFieldsValue":2577,"Valore":"Nylon Zip"},{"IdCustomFieldsValue":2634,"Valore":"Footwear (Sandal)"},{"IdCustomFieldsValue":2644,"Valore":"Leather (Alligator)"},{"IdCustomFieldsValue":2716,"Valore":"Powder"},{"IdCustomFieldsValue":2770,"Valore":"Tissu"},{"IdCustomFieldsValue":2773,"Valore":"TBC"},{"IdCustomFieldsValue":2781,"Valore":"Leather (Nappa)"},{"IdCustomFieldsValue":3048,"Valore":"Leather (Bovine Split)"},{"IdCustomFieldsValue":3086,"Valore":"Valigia"},{"IdCustomFieldsValue":3087,"Valore":"Leather (Fox)"},{"IdCustomFieldsValue":3089,"Valore":"Cuoio\/Pelle (Mucca)"},{"IdCustomFieldsValue":3204,"Valore":"Tessile (Raso)"},{"IdCustomFieldsValue":3205,"Valore":"Ecopelle"},{"IdCustomFieldsValue":3212,"Valore":"Tessile (Termosaldatura)"},{"IdCustomFieldsValue":3215,"Valore":"Watch case"},{"IdCustomFieldsValue":3226,"Valore":"Shoulder strap"},{"IdCustomFieldsValue":3244,"Valore":"Tessile (Microfibra)"},{"IdCustomFieldsValue":3252,"Valore":"Spandex"},{"IdCustomFieldsValue":3259,"Valore":"Glue"},{"IdCustomFieldsValue":3264,"Valore":"EVA"},{"IdCustomFieldsValue":3284,"Valore":"Leather (Horse)"},{"IdCustomFieldsValue":3308,"Valore":"Soletto"},{"IdCustomFieldsValue":3312,"Valore":"Textile (PU)"},{"IdCustomFieldsValue":3316,"Valore":"Cufflinks"},{"IdCustomFieldsValue":3348,"Valore":"Synthetic Fur"},{"IdCustomFieldsValue":3355,"Valore":"Resina poliuretanica ad acqua"},{"IdCustomFieldsValue":3356,"Valore":"Resina siliconica"},{"IdCustomFieldsValue":3437,"Valore":"Leather (Whips)"},{"IdCustomFieldsValue":3438,"Valore":"Leather (Karung)"},{"IdCustomFieldsValue":3448,"Valore":"Swimming cap"},{"IdCustomFieldsValue":3458,"Valore":"Leather (Crocodile)"},{"IdCustomFieldsValue":3459,"Valore":"Leather (Crocodile Niloticus)"},{"IdCustomFieldsValue":3464,"Valore":"Leather (Cayman)"},{"IdCustomFieldsValue":3466,"Valore":"Leather (Ostrich)"},{"IdCustomFieldsValue":3471,"Valore":"Accessorio Metallico (Ottone)"},{"IdCustomFieldsValue":3486,"Valore":"Leather (Fish)"},{"IdCustomFieldsValue":3495,"Valore":"Textile (Woven)"},{"IdCustomFieldsValue":3510,"Valore":"Tessile (Ortogonale)"},{"IdCustomFieldsValue":3512,"Valore":"Lacquer"},{"IdCustomFieldsValue":3513,"Valore":"Textile (Cotton)"},{"IdCustomFieldsValue":3522,"Valore":"Cuoio\/Pelle (Coccodrillo Porosus)"},{"IdCustomFieldsValue":3737,"Valore":"Cuir (Alligator)"},{"IdCustomFieldsValue":3752,"Valore":"Canvas"},{"IdCustomFieldsValue":3834,"Valore":"Leather (Lizard)"},{"IdCustomFieldsValue":3844,"Valore":"LV"},{"IdCustomFieldsValue":3850,"Valore":"Textile (Synthetic & blend)"},{"IdCustomFieldsValue":3854,"Valore":"Pelliccia ecologica"},{"IdCustomFieldsValue":3856,"Valore":"Insole"},{"IdCustomFieldsValue":3861,"Valore":"Textile (Natural) + Prints\/Coating"},{"IdCustomFieldsValue":3875,"Valore":"Trolley"},{"IdCustomFieldsValue":3877,"Valore":"Rubber"},{"IdCustomFieldsValue":3878,"Valore":"Rubber + Plastic"},{"IdCustomFieldsValue":4032,"Valore":"Fake leather"},{"IdCustomFieldsValue":4097,"Valore":"Produit fini"},{"IdCustomFieldsValue":4121,"Valore":"Materiali adesivi in Nylon"},{"IdCustomFieldsValue":4138,"Valore":"Cuir (Porosus)"},{"IdCustomFieldsValue":4139,"Valore":"Cuir (Niloticus)"},{"IdCustomFieldsValue":4141,"Valore":"Gloves"},{"IdCustomFieldsValue":4146,"Valore":"Tessile (Rafia)"},{"IdCustomFieldsValue":4159,"Valore":"Raw material"},{"IdCustomFieldsValue":4165,"Valore":"Textile (Lace)"},{"IdCustomFieldsValue":4169,"Valore":"Tessile (Tulle)"},{"IdCustomFieldsValue":4188,"Valore":"Polycarbonate"},{"IdCustomFieldsValue":4190,"Valore":"Wax"},{"IdCustomFieldsValue":4202,"Valore":"Tessile (Rete)"},{"IdCustomFieldsValue":4203,"Valore":"Tessile (Neoprene)"},{"IdCustomFieldsValue":4232,"Valore":"Sludge"},{"IdCustomFieldsValue":4249,"Valore":"Feather"},{"IdCustomFieldsValue":4264,"Valore":"Legno"},{"IdCustomFieldsValue":4281,"Valore":"Textile (Nylon)"},{"IdCustomFieldsValue":4285,"Valore":"Textile (Knitted)"},{"IdCustomFieldsValue":4402,"Valore":"Cuoio\/Pelle (Porosus)"},{"IdCustomFieldsValue":4422,"Valore":"Tights"},{"IdCustomFieldsValue":4564,"Valore":"Sock"},{"IdCustomFieldsValue":4698,"Valore":"Wood"},{"IdCustomFieldsValue":4720,"Valore":"Cuoio\/Pelle (Ovinocaprino)"},{"IdCustomFieldsValue":5063,"Valore":"Synth\u00e9tique"},{"IdCustomFieldsValue":5089,"Valore":"Solid Product"},{"IdCustomFieldsValue":5106,"Valore":"Cuoio\/Pelle (Cocco)"},{"IdCustomFieldsValue":5314,"Valore":"Cuoio\/Pelle (\u00bd bovina)"},{"IdCustomFieldsValue":5372,"Valore":"Plastique accessoires"},{"IdCustomFieldsValue":5484,"Valore":"Hat"},{"IdCustomFieldsValue":5689,"Valore":"Produit liquide"},{"IdCustomFieldsValue":6528,"Valore":"Textile accessories"},{"IdCustomFieldsValue":8580,"Valore":"Poussi\u00e8re"},{"IdCustomFieldsValue":8778,"Valore":"Eco-Leather"},{"IdCustomFieldsValue":9269,"Valore":"Polietilene"},{"IdCustomFieldsValue":9602,"Valore":"Silk"},{"IdCustomFieldsValue":11227,"Valore":"Bois"},{"IdCustomFieldsValue":11228,"Valore":"Produit solide"},{"IdCustomFieldsValue":12432,"Valore":"Polyester"},{"IdCustomFieldsValue":12597,"Valore":"Mousse"},{"IdCustomFieldsValue":12612,"Valore":"Papier"},{"IdCustomFieldsValue":12689,"Valore":"Accessoires en plastique"},{"IdCustomFieldsValue":13244,"Valore":"Cuir (Autreches)"},{"IdCustomFieldsValue":13256,"Valore":"TPU"},{"IdCustomFieldsValue":13257,"Valore":"Gomma"},{"IdCustomFieldsValue":13726,"Valore":"Micro"},{"IdCustomFieldsValue":14025,"Valore":"Tessile (Nylon)"},{"IdCustomFieldsValue":14173,"Valore":"Poliuretano"},{"IdCustomFieldsValue":14238,"Valore":"Accessorio plastico"},{"IdCustomFieldsValue":14239,"Valore":"Plastica"},{"IdCustomFieldsValue":14633,"Valore":"Cuir (Bovin)"},{"IdCustomFieldsValue":14927,"Valore":"Cuoio\/Pelle (Varano)"}],"163":[{"IdCustomFieldsValue":248,"Valore":"a cura del laboratorio secondo la UNI EN ISO 2418:2006 "},{"IdCustomFieldsValue":251,"Valore":"a cura del committente "},{"IdCustomFieldsValue":278,"Valore":"done by the laboratory according to the UNI EN ISO 2418:2006 "},{"IdCustomFieldsValue":281,"Valore":"done by the client "},{"IdCustomFieldsValue":649,"Valore":"the specimen has been sampled from the footwear supplied by the client"},{"IdCustomFieldsValue":677,"Valore":"materiale campionato da borsa fornita dal cliente"},{"IdCustomFieldsValue":727,"Valore":"the specimen has been sampled from the bag supplied by the client"},{"IdCustomFieldsValue":755,"Valore":"par le client"},{"IdCustomFieldsValue":878,"Valore":"effectu\u00e9e par le laboratoire selon la norme UNI EN ISO 2418:2006"},{"IdCustomFieldsValue":1029,"Valore":"the specimen has been sampled from the wallet supplied by the client"},{"IdCustomFieldsValue":1627,"Valore":"materiale campionato da calzatura fornita dal cliente"},{"IdCustomFieldsValue":1628,"Valore":"materiale campionato da portafogli fornito dal cliente"},{"IdCustomFieldsValue":4716,"Valore":"Grab, sampled by the Lab"},{"IdCustomFieldsValue":5355,"Valore":"Material sampled by the Lab."},{"IdCustomFieldsValue":9142,"Valore":"materiale campionato da cappello fornito dal cliente"}],"165":[{"IdCustomFieldsValue":825,"Valore":"Nessuno, come da accordi con il cliente"},{"IdCustomFieldsValue":826,"Valore":"None, as agreed with the client"},{"IdCustomFieldsValue":1632,"Valore":"Aucun, selon accords avec le client"},{"IdCustomFieldsValue":2088,"Valore":"24\u00b12h; 21\u00b11\u00b0C; 65\u00b12%U.R. (Se richiesto dal Metodo di Prova, analisi eseguita in atmosfera standard)"},{"IdCustomFieldsValue":2089,"Valore":"24\u00b12h; 21\u00b11\u00b0C; 65\u00b12% R.H. (If required by the test method, analysis carried out in standard atmosphere)"},{"IdCustomFieldsValue":2450,"Valore":"(According to UNI EN ISO 2419:2012) 23\u00b0+\/-2\u00b0C; 50+\/-5% R.H. (If required by the test method, trial carried out in standard atmosphere)"},{"IdCustomFieldsValue":2552,"Valore":"Atmosfera di condizionamento e di prova: 20\u00b12\u00b0, 65\u00b15% UR"},{"IdCustomFieldsValue":3187,"Valore":"Il campione \u00e8 conservato a temperatura <4\u00b0C"},{"IdCustomFieldsValue":3188,"Valore":"the sample is stored at temperature <4\u00b0C"},{"IdCustomFieldsValue":6133,"Valore":"24\u00b12h; 21\u00b11\u00b0C; 65\u00b12%U.R. (Si prevu par le m\u00e9thode du test, analyse execut\u00e9e en atmosph\u00e8re standardis\u00e9e)"}],"169":[{"IdCustomFieldsValue":672,"Valore":"Si"},{"IdCustomFieldsValue":673,"Valore":"No"},{"IdCustomFieldsValue":778,"Valore":"Si se FAIL"},{"IdCustomFieldsValue":4408,"Valore":"Procedura Standard"}],"170":[{"IdCustomFieldsValue":674,"Valore":"No"},{"IdCustomFieldsValue":675,"Valore":"Si"},{"IdCustomFieldsValue":777,"Valore":"Si se FAIL"},{"IdCustomFieldsValue":4409,"Valore":"Procedura Standard"}],"171":[{"IdCustomFieldsValue":668,"Valore":"Si"},{"IdCustomFieldsValue":669,"Valore":"No"},{"IdCustomFieldsValue":670,"Valore":"Si se FAIL"},{"IdCustomFieldsValue":671,"Valore":"Si FINE MESE"},{"IdCustomFieldsValue":1013,"Valore":"SI OGNI GIOVED\u00ec"},{"IdCustomFieldsValue":1185,"Valore":"SI due volte alla settimana"},{"IdCustomFieldsValue":2216,"Valore":"SI una volta alla settimana"},{"IdCustomFieldsValue":4410,"Valore":"Procedura Standard"},{"IdCustomFieldsValue":5722,"Valore":"SI stesso giorno"}],"181":[{"IdCustomFieldsValue":744,"Valore":"il campione \u00e8 stato molito in accordo con la UNI EN ISO 4044:2017 (qualora richiesto nel metodo)."},{"IdCustomFieldsValue":745,"Valore":"the leather sample is ground as requested in method UNI EN ISO 4044:2017 (when required in the test method)."},{"IdCustomFieldsValue":753,"Valore":"la quantit\u00e9 n\u00e9cessaire d'\u00e9chantillon est moulin\u00e9e selon la norme UNI EN ISO 4044:2017 (quand est requise par la methode)"}],"236":[{"IdCustomFieldsValue":1468,"Valore":"Consegnato a mano"},{"IdCustomFieldsValue":1469,"Valore":"Inviato tramite corriere"},{"IdCustomFieldsValue":4945,"Valore":"Navetta Scandicci"}],"241":[{"IdCustomFieldsValue":1603,"Valore":"a Pacchetto"},{"IdCustomFieldsValue":1604,"Valore":">3"},{"IdCustomFieldsValue":1605,"Valore":"<=3"}],"246":[{"IdCustomFieldsValue":1753,"Valore":"BV Shangai"},{"IdCustomFieldsValue":1755,"Valore":"BV Hamburg- Eva Maria Benkhoff"},{"IdCustomFieldsValue":1756,"Valore":"BV Turkey"},{"IdCustomFieldsValue":1757,"Valore":"BV UK"},{"IdCustomFieldsValue":1937,"Valore":"BV Vietnam"},{"IdCustomFieldsValue":1938,"Valore":"BV Schwerin"},{"IdCustomFieldsValue":1939,"Valore":"BV Guangzhou"},{"IdCustomFieldsValue":1940,"Valore":"BV France"},{"IdCustomFieldsValue":1941,"Valore":"No outsourcing"},{"IdCustomFieldsValue":1944,"Valore":"Coventya"},{"IdCustomFieldsValue":1945,"Valore":"Cimac- P.Biglia"},{"IdCustomFieldsValue":2290,"Valore":"Ricotest"},{"IdCustomFieldsValue":2403,"Valore":"LBS"},{"IdCustomFieldsValue":2696,"Valore":"BV Korea"},{"IdCustomFieldsValue":2998,"Valore":"BV Hong Kong"},{"IdCustomFieldsValue":3058,"Valore":"J.S. Hamilton Poland S.A."},{"IdCustomFieldsValue":3191,"Valore":"BV Schwerin - BV Turkey"},{"IdCustomFieldsValue":3341,"Valore":"BV Guangzhou, BV Shangai"},{"IdCustomFieldsValue":3350,"Valore":"BV Guangzhou, BV Honk Kong"},{"IdCustomFieldsValue":3406,"Valore":"BV Putian - Lily Li"},{"IdCustomFieldsValue":4239,"Valore":"BV India"},{"IdCustomFieldsValue":4282,"Valore":"Laboraitore Eric Beucher"},{"IdCustomFieldsValue":4420,"Valore":"HerAmbiente "},{"IdCustomFieldsValue":4679,"Valore":"Chemi-Lab"},{"IdCustomFieldsValue":5745,"Valore":"BV USA, Buffalo - NY "},{"IdCustomFieldsValue":6450,"Valore":"BV Turkey- Ahmet Korkut + BV Hong Kong- Jimmy Wong\/Tasman Tai\r\n"},{"IdCustomFieldsValue":8098,"Valore":"BV Vietnam- Joy Nguyen + BV Turkey- Ahmet Korkut"},{"IdCustomFieldsValue":8755,"Valore":"Appliance Engineering Technology France SAS"},{"IdCustomFieldsValue":9316,"Valore":"BV Vietnam- Joy Nguyen + BV Guangzhou"},{"IdCustomFieldsValue":9483,"Valore":"Neosis s.r.l"},{"IdCustomFieldsValue":9645,"Valore":"Environ Lab"},{"IdCustomFieldsValue":11325,"Valore":"Neosis s.r.l + BV Honk Kong"},{"IdCustomFieldsValue":11342,"Valore":"Beta analythics"},{"IdCustomFieldsValue":12678,"Valore":"BV Honk Kong + BV Shangai"},{"IdCustomFieldsValue":13717,"Valore":"BV Thailand"},{"IdCustomFieldsValue":13917,"Valore":"BV France, BV Shangai"},{"IdCustomFieldsValue":14877,"Valore":"BV Shangai - BV Hong Kong"}],"252":[{"IdCustomFieldsValue":1887,"Valore":"Regular"},{"IdCustomFieldsValue":1888,"Valore":"Express (1-2 Working Days)"},{"IdCustomFieldsValue":1889,"Valore":"Urgent (3 Working Days)"}],"253":[{"IdCustomFieldsValue":1891,"Valore":"Yes"},{"IdCustomFieldsValue":1892,"Valore":"No"}],"261":[{"IdCustomFieldsValue":1978,"Valore":"2C Cina"},{"IdCustomFieldsValue":2442,"Valore":"N\/A"}],"771":[{"IdCustomFieldsValue":8595,"Valore":"PASS"},{"IdCustomFieldsValue":8596,"Valore":"FAIL"},{"IdCustomFieldsValue":8598,"Valore":"N\/A"}],"772":[{"IdCustomFieldsValue":8599,"Valore":"PASS"},{"IdCustomFieldsValue":8600,"Valore":"FAIL"},{"IdCustomFieldsValue":8601,"Valore":"N\/A"}],"773":[{"IdCustomFieldsValue":8602,"Valore":"PASS"},{"IdCustomFieldsValue":8603,"Valore":"FAIL"},{"IdCustomFieldsValue":8604,"Valore":"N\/A"},{"IdCustomFieldsValue":8605,"Valore":"DATA"}],"1083":[{"IdCustomFieldsValue":13482,"Valore":"Moncler Compliance_GT"},{"IdCustomFieldsValue":13488,"Valore":"Moncler Ufficio tecnico_MC"},{"IdCustomFieldsValue":13495,"Valore":"Moncler Compliance_EM"},{"IdCustomFieldsValue":13496,"Valore":"Moncler Compliance_MB"},{"IdCustomFieldsValue":13497,"Valore":"Moncler Compliance_CB"},{"IdCustomFieldsValue":13526,"Valore":"Moncler Compliance_CS"},{"IdCustomFieldsValue":13530,"Valore":"Moncler Compliance_FZ"},{"IdCustomFieldsValue":13554,"Valore":"Moncler Ufficio tecnico_AZ"},{"IdCustomFieldsValue":13662,"Valore":"Moncler Ufficio tecnico_LL"},{"IdCustomFieldsValue":13727,"Valore":"Moncler Ufficio tecnico_AU"},{"IdCustomFieldsValue":13786,"Valore":"Moncler Compliance_AC"},{"IdCustomFieldsValue":13945,"Valore":"Moncler Compliance_BZ"},{"IdCustomFieldsValue":14006,"Valore":"Moncler Compliance_GR"},{"IdCustomFieldsValue":14818,"Valore":"Moncler Ufficio tecnico_LC"},{"IdCustomFieldsValue":14910,"Valore":"Moncler Ufficio tecnico_FV"}]} \ No newline at end of file +{"146":[{"IdCustomFieldsValue":235,"Valore":"Pigmentato"},{"IdCustomFieldsValue":236,"Valore":"Anilina"},{"IdCustomFieldsValue":237,"Valore":"Verniciato"},{"IdCustomFieldsValue":238,"Valore":"Laminato"},{"IdCustomFieldsValue":259,"Valore":"Semi-Anilina"},{"IdCustomFieldsValue":274,"Valore":"Scamosciato"},{"IdCustomFieldsValue":305,"Valore":"Pigmented"},{"IdCustomFieldsValue":306,"Valore":"Aniline"},{"IdCustomFieldsValue":307,"Valore":"Patent"},{"IdCustomFieldsValue":308,"Valore":"Metallic"},{"IdCustomFieldsValue":309,"Valore":"Semi-Aniline"},{"IdCustomFieldsValue":310,"Valore":"Suede"},{"IdCustomFieldsValue":311,"Valore":"Nubuck"},{"IdCustomFieldsValue":336,"Valore":"Cavallino"},{"IdCustomFieldsValue":344,"Valore":"Abrasivato"},{"IdCustomFieldsValue":500,"Valore":"Gommato"},{"IdCustomFieldsValue":528,"Valore":"Paillettes"},{"IdCustomFieldsValue":538,"Valore":"PU"},{"IdCustomFieldsValue":559,"Valore":"Tintura di Botte"},{"IdCustomFieldsValue":570,"Valore":"Crosta"},{"IdCustomFieldsValue":572,"Valore":"Semianilina\/Stampato"},{"IdCustomFieldsValue":644,"Valore":"Accoppiato"},{"IdCustomFieldsValue":657,"Valore":"Serigrafato"},{"IdCustomFieldsValue":661,"Valore":"Stampato"},{"IdCustomFieldsValue":691,"Valore":"Brush-Off"},{"IdCustomFieldsValue":697,"Valore":"Crust"},{"IdCustomFieldsValue":707,"Valore":"Lucido Lissato"},{"IdCustomFieldsValue":729,"Valore":"Shearling"},{"IdCustomFieldsValue":733,"Valore":"Printed"},{"IdCustomFieldsValue":750,"Valore":"Ink-Jet"},{"IdCustomFieldsValue":804,"Valore":"Fur"},{"IdCustomFieldsValue":874,"Valore":"Esotico"},{"IdCustomFieldsValue":896,"Valore":"Shearling con lato carne scamosciato"},{"IdCustomFieldsValue":959,"Valore":"Ink-jet\/ Con film PU \"By-Cast\""},{"IdCustomFieldsValue":970,"Valore":"Anilina\/Ink-jet"},{"IdCustomFieldsValue":1020,"Valore":"Coated"},{"IdCustomFieldsValue":1021,"Valore":"By-Cast"},{"IdCustomFieldsValue":1024,"Valore":"Perlato"},{"IdCustomFieldsValue":1025,"Valore":"Pearled"},{"IdCustomFieldsValue":1030,"Valore":"Pelo"},{"IdCustomFieldsValue":1035,"Valore":"Glitterato"},{"IdCustomFieldsValue":1099,"Valore":"Transfer"},{"IdCustomFieldsValue":1111,"Valore":"Coupled"},{"IdCustomFieldsValue":1153,"Valore":"Saffiano"},{"IdCustomFieldsValue":1186,"Valore":"Pigmentato\/Accoppiato"},{"IdCustomFieldsValue":1238,"Valore":"Aniline\/Fixed"},{"IdCustomFieldsValue":1240,"Valore":"Laminated Foil Finish"},{"IdCustomFieldsValue":1348,"Valore":"Con applicazioni"},{"IdCustomFieldsValue":1349,"Valore":"Pony calf"},{"IdCustomFieldsValue":1415,"Valore":"Glittered"},{"IdCustomFieldsValue":1437,"Valore":"Scraped"},{"IdCustomFieldsValue":1445,"Valore":"Resinato"},{"IdCustomFieldsValue":1620,"Valore":"Stampa digitale"},{"IdCustomFieldsValue":1661,"Valore":"Laminato parziale"},{"IdCustomFieldsValue":1734,"Valore":"Hair"},{"IdCustomFieldsValue":1787,"Valore":"Smerigliato Rifinito"},{"IdCustomFieldsValue":1827,"Valore":"Uncoated"},{"IdCustomFieldsValue":1828,"Valore":"Nappa"},{"IdCustomFieldsValue":1942,"Valore":"M\u00e9tallique "},{"IdCustomFieldsValue":1943,"Valore":"Camoscina"},{"IdCustomFieldsValue":1974,"Valore":"Pigment\u00e9"},{"IdCustomFieldsValue":2002,"Valore":"Partial metallic finish"},{"IdCustomFieldsValue":2551,"Valore":"Coated con glitter"},{"IdCustomFieldsValue":3107,"Valore":"Metallic Suede"},{"IdCustomFieldsValue":3208,"Valore":"Plotter"},{"IdCustomFieldsValue":3216,"Valore":"Serigrafia con fissativo"},{"IdCustomFieldsValue":3236,"Valore":"Super Natural"},{"IdCustomFieldsValue":3239,"Valore":"Velour"},{"IdCustomFieldsValue":3251,"Valore":"Canvas"},{"IdCustomFieldsValue":3328,"Valore":"Resina stirata"},{"IdCustomFieldsValue":3335,"Valore":"Lucido"},{"IdCustomFieldsValue":3364,"Valore":"Palmellato"},{"IdCustomFieldsValue":3365,"Valore":"Volanato naturale"},{"IdCustomFieldsValue":3366,"Valore":"Trattamento Scotchgard"},{"IdCustomFieldsValue":3367,"Valore":"Passante in botte"},{"IdCustomFieldsValue":3370,"Valore":"Embroidery"},{"IdCustomFieldsValue":3371,"Valore":"Patchwork lettering"},{"IdCustomFieldsValue":3409,"Valore":"Tinto Pezza"},{"IdCustomFieldsValue":3410,"Valore":"Pronto per Tinta"},{"IdCustomFieldsValue":3411,"Valore":"Tinto Filo"},{"IdCustomFieldsValue":3412,"Valore":"Greggio"},{"IdCustomFieldsValue":3413,"Valore":"Vacchetta"},{"IdCustomFieldsValue":3424,"Valore":"Naturale"},{"IdCustomFieldsValue":3442,"Valore":"Barrel dyeing"},{"IdCustomFieldsValue":3454,"Valore":"Split leather with film"},{"IdCustomFieldsValue":3455,"Valore":"Printed Suede"},{"IdCustomFieldsValue":3460,"Valore":"Pigmented\/Patent"},{"IdCustomFieldsValue":3468,"Valore":"Non rifinito"},{"IdCustomFieldsValue":3482,"Valore":"Cruck"},{"IdCustomFieldsValue":3491,"Valore":"Stampa serigrafica"},{"IdCustomFieldsValue":3494,"Valore":"Fissativo all'acqua"},{"IdCustomFieldsValue":3498,"Valore":"Tintura"},{"IdCustomFieldsValue":3506,"Valore":"Rovesciato"},{"IdCustomFieldsValue":3511,"Valore":"Spalmato"},{"IdCustomFieldsValue":3514,"Valore":"Serigraphy"},{"IdCustomFieldsValue":3867,"Valore":"None"},{"IdCustomFieldsValue":4052,"Valore":"Pigmentato Abrasivato"},{"IdCustomFieldsValue":4082,"Valore":"Full Grain"},{"IdCustomFieldsValue":4109,"Valore":"Opaco"},{"IdCustomFieldsValue":4124,"Valore":"Embossed"},{"IdCustomFieldsValue":4135,"Valore":"Mat"},{"IdCustomFieldsValue":4136,"Valore":"Lisse"},{"IdCustomFieldsValue":4137,"Valore":"Coton"},{"IdCustomFieldsValue":4143,"Valore":"Alo\u00e9"},{"IdCustomFieldsValue":4144,"Valore":"Torino"},{"IdCustomFieldsValue":4145,"Valore":"Microsuede"},{"IdCustomFieldsValue":4151,"Valore":"Miroir"},{"IdCustomFieldsValue":4166,"Valore":"Stampa UV"},{"IdCustomFieldsValue":4185,"Valore":"Lavable"},{"IdCustomFieldsValue":4219,"Valore":"Radika"},{"IdCustomFieldsValue":4220,"Valore":"Natural"},{"IdCustomFieldsValue":4222,"Valore":"Abilo N\u00e9on"},{"IdCustomFieldsValue":4250,"Valore":"Canyon"},{"IdCustomFieldsValue":4257,"Valore":"Alo\u00e9 Shiny"},{"IdCustomFieldsValue":4258,"Valore":"Lisse\/Recoupe"},{"IdCustomFieldsValue":4280,"Valore":"Water-repellent"},{"IdCustomFieldsValue":4283,"Valore":"Lisse\/Entrepeaux"},{"IdCustomFieldsValue":4286,"Valore":"Metallo liquido spray + Stampa"},{"IdCustomFieldsValue":4288,"Valore":"Tinto"},{"IdCustomFieldsValue":4388,"Valore":"Cerato"},{"IdCustomFieldsValue":4389,"Valore":"Mat\/Recoupe"},{"IdCustomFieldsValue":4392,"Valore":"Pigmentato\/Poliuretanico finale"},{"IdCustomFieldsValue":4393,"Valore":"Semianilina Laminato"},{"IdCustomFieldsValue":4394,"Valore":"Semianilina Pigmentato"},{"IdCustomFieldsValue":4399,"Valore":"Primitivo"},{"IdCustomFieldsValue":4400,"Valore":"Ombre"},{"IdCustomFieldsValue":4401,"Valore":"Anilina Pigmentato"},{"IdCustomFieldsValue":4405,"Valore":"Caresse"},{"IdCustomFieldsValue":4429,"Valore":"Ultras\/Recoupe"},{"IdCustomFieldsValue":4552,"Valore":"Semi-Anilina + Stampa ink jet"},{"IdCustomFieldsValue":4563,"Valore":"Torino Ultra Brillante"},{"IdCustomFieldsValue":4573,"Valore":"Supernatural\/aniline"},{"IdCustomFieldsValue":5054,"Valore":"Peau d'ange"},{"IdCustomFieldsValue":5128,"Valore":"Mirage"},{"IdCustomFieldsValue":5129,"Valore":"Mirage\/Relance"},{"IdCustomFieldsValue":5130,"Valore":"Croute Chrome"},{"IdCustomFieldsValue":5309,"Valore":"PU Coated"},{"IdCustomFieldsValue":5315,"Valore":"Pigmentato stampato"},{"IdCustomFieldsValue":5498,"Valore":"Rubberized"},{"IdCustomFieldsValue":5610,"Valore":"By-Cast PU"},{"IdCustomFieldsValue":5615,"Valore":"Lamina liquida"},{"IdCustomFieldsValue":6193,"Valore":"Nubuck\/Rubber coated"},{"IdCustomFieldsValue":8523,"Valore":"Total print"},{"IdCustomFieldsValue":12774,"Valore":"Etoffe"},{"IdCustomFieldsValue":12775,"Valore":"Croute"},{"IdCustomFieldsValue":12776,"Valore":"Miroir Light"},{"IdCustomFieldsValue":12777,"Valore":"Etriviere"},{"IdCustomFieldsValue":12949,"Valore":"Vernice (Vernice\/Semianilina)"},{"IdCustomFieldsValue":13501,"Valore":"Seta Lux"},{"IdCustomFieldsValue":13733,"Valore":"Aniline Pigmented"},{"IdCustomFieldsValue":13807,"Valore":"Naturale\/Semilucido"},{"IdCustomFieldsValue":14047,"Valore":"Fissativo"},{"IdCustomFieldsValue":14140,"Valore":"Nubuk"},{"IdCustomFieldsValue":14141,"Valore":"Satin Soft"},{"IdCustomFieldsValue":14142,"Valore":"Priene\/ Millenium "},{"IdCustomFieldsValue":14887,"Valore":"Pigmented\/Metal"}],"147":[{"IdCustomFieldsValue":239,"Valore":"Cromo"},{"IdCustomFieldsValue":240,"Valore":"Vegetale"},{"IdCustomFieldsValue":272,"Valore":"\/"},{"IdCustomFieldsValue":273,"Valore":"Mista"},{"IdCustomFieldsValue":301,"Valore":"Chrome"},{"IdCustomFieldsValue":302,"Valore":"Vegetal"},{"IdCustomFieldsValue":303,"Valore":"Mixed"},{"IdCustomFieldsValue":519,"Valore":"White"},{"IdCustomFieldsValue":520,"Valore":"Bianca"},{"IdCustomFieldsValue":566,"Valore":"Chrome \/ Synthetic"},{"IdCustomFieldsValue":682,"Valore":"Sintetica"},{"IdCustomFieldsValue":1001,"Valore":"Vegetallizzato"},{"IdCustomFieldsValue":1054,"Valore":"Synthetic"},{"IdCustomFieldsValue":1208,"Valore":"Allume"},{"IdCustomFieldsValue":1264,"Valore":"Minerale"},{"IdCustomFieldsValue":1535,"Valore":"Blanche"},{"IdCustomFieldsValue":2447,"Valore":"Mineral"},{"IdCustomFieldsValue":2590,"Valore":"Semi-Vegetal"},{"IdCustomFieldsValue":2712,"Valore":"Metal free"},{"IdCustomFieldsValue":2737,"Valore":"Semi-Chrome"},{"IdCustomFieldsValue":2777,"Valore":"Wet Blue"},{"IdCustomFieldsValue":3090,"Valore":"Non conciata"},{"IdCustomFieldsValue":3199,"Valore":"Chrome free"},{"IdCustomFieldsValue":3469,"Valore":"Slow vegetal"},{"IdCustomFieldsValue":3527,"Valore":"Wet White"},{"IdCustomFieldsValue":3821,"Valore":"Sintetica + Cromo"},{"IdCustomFieldsValue":3888,"Valore":"Non metallica"},{"IdCustomFieldsValue":4568,"Valore":"Mineral"},{"IdCustomFieldsValue":5390,"Valore":"Cromo \/ Sintetico"},{"IdCustomFieldsValue":5398,"Valore":"Synthetique"},{"IdCustomFieldsValue":5647,"Valore":"Pickel"},{"IdCustomFieldsValue":6192,"Valore":"Chrome\/Mixed"},{"IdCustomFieldsValue":8709,"Valore":"Mixte"},{"IdCustomFieldsValue":11356,"Valore":"Mista Cromo"},{"IdCustomFieldsValue":13713,"Valore":"Bio"},{"IdCustomFieldsValue":13714,"Valore":"Bio\/Metal free"}],"150":[{"IdCustomFieldsValue":261,"Valore":"Pelletteria"},{"IdCustomFieldsValue":262,"Valore":"Calzatura (Tomaio)"},{"IdCustomFieldsValue":263,"Valore":"Calzatura (Fodera)"},{"IdCustomFieldsValue":264,"Valore":"Abbigliamento"},{"IdCustomFieldsValue":265,"Valore":"Arredamento"},{"IdCustomFieldsValue":266,"Valore":"Calzatura\/Pelletteria"},{"IdCustomFieldsValue":267,"Valore":"Cinture"},{"IdCustomFieldsValue":269,"Valore":"Piccola Pelletteria (Portafogli)"},{"IdCustomFieldsValue":270,"Valore":"Valigeria"},{"IdCustomFieldsValue":271,"Valore":"\/"},{"IdCustomFieldsValue":285,"Valore":"Leathergoods"},{"IdCustomFieldsValue":286,"Valore":"Footwear (Upper)"},{"IdCustomFieldsValue":287,"Valore":"Footwear (Lining)"},{"IdCustomFieldsValue":288,"Valore":"Apparel"},{"IdCustomFieldsValue":289,"Valore":"Furnishing"},{"IdCustomFieldsValue":290,"Valore":"Footwear\/Leathergoods"},{"IdCustomFieldsValue":291,"Valore":"Belts"},{"IdCustomFieldsValue":292,"Valore":"Watchstrap"},{"IdCustomFieldsValue":293,"Valore":"Small Leathergood"},{"IdCustomFieldsValue":338,"Valore":"Calzatura"},{"IdCustomFieldsValue":440,"Valore":"Footwear"},{"IdCustomFieldsValue":474,"Valore":"Apparel Trim"},{"IdCustomFieldsValue":495,"Valore":"Pelletteria (Fodera)"},{"IdCustomFieldsValue":582,"Valore":"Leathergoods (Bag)"},{"IdCustomFieldsValue":598,"Valore":"Pelletteria (Borsa)"},{"IdCustomFieldsValue":637,"Valore":"Shoes - Leathergoods"},{"IdCustomFieldsValue":676,"Valore":"Footwear (Insole)"},{"IdCustomFieldsValue":687,"Valore":"Piccola Pelletteria (Cinture)"},{"IdCustomFieldsValue":688,"Valore":"Cinturini da orologio"},{"IdCustomFieldsValue":692,"Valore":"Apparel (Outer)"},{"IdCustomFieldsValue":693,"Valore":"Apparel (Inner)"},{"IdCustomFieldsValue":695,"Valore":"Calzatura (Sottopiedi)"},{"IdCustomFieldsValue":742,"Valore":"Packaging"},{"IdCustomFieldsValue":756,"Valore":"Maroquinerie"},{"IdCustomFieldsValue":757,"Valore":"Maroquinerie (Sac a main)"},{"IdCustomFieldsValue":758,"Valore":"Maroquinerie (Petite maroquinerie)"},{"IdCustomFieldsValue":759,"Valore":"Maroquinerie (Ceintures)"},{"IdCustomFieldsValue":760,"Valore":"Maroquinerie (Bracelets de montres)"},{"IdCustomFieldsValue":761,"Valore":"Maroquinerie (Doublure)"},{"IdCustomFieldsValue":767,"Valore":"Bracelets de montres"},{"IdCustomFieldsValue":775,"Valore":"Pelletteria (Borsa) \/ Piccola Pelletteria (Portafogli)"},{"IdCustomFieldsValue":779,"Valore":"Leathergoods \/Finishedgoods"},{"IdCustomFieldsValue":807,"Valore":"Leathergoods (Lining)"},{"IdCustomFieldsValue":821,"Valore":"Accessori da Abbigliamento"},{"IdCustomFieldsValue":823,"Valore":"Gioielleria"},{"IdCustomFieldsValue":840,"Valore":"Jewellery"},{"IdCustomFieldsValue":855,"Valore":"Piccola Pelletteria"},{"IdCustomFieldsValue":889,"Valore":"Small Leathergood (Belt)"},{"IdCustomFieldsValue":898,"Valore":"Pelletteria (Borsa) \/ Gioielleria"},{"IdCustomFieldsValue":902,"Valore":"V\u00eatements"},{"IdCustomFieldsValue":912,"Valore":"Abbigliamento (Guanti)"},{"IdCustomFieldsValue":986,"Valore":"Leathergoods (Wallet)"},{"IdCustomFieldsValue":1009,"Valore":"Gioielleria \/ Bigiotteria"},{"IdCustomFieldsValue":1010,"Valore":"Bigiotteria"},{"IdCustomFieldsValue":1027,"Valore":"Abbigliamento esterno"},{"IdCustomFieldsValue":1028,"Valore":"Abbigliamento interno"},{"IdCustomFieldsValue":1032,"Valore":"Calzatura sfoderata"},{"IdCustomFieldsValue":1055,"Valore":"Leathergoods (Body of the bag)"},{"IdCustomFieldsValue":1082,"Valore":"Leathergoods (Belt)"},{"IdCustomFieldsValue":1104,"Valore":"Calzatura (Soletto)"},{"IdCustomFieldsValue":1204,"Valore":"Calzatura (fodera\/soletto)"},{"IdCustomFieldsValue":1205,"Valore":"Shoes"},{"IdCustomFieldsValue":1207,"Valore":"Pelletteria \/ Abbigliamento"},{"IdCustomFieldsValue":1236,"Valore":"Ombrelli"},{"IdCustomFieldsValue":1383,"Valore":"Abbigliamento\/Calzatura"},{"IdCustomFieldsValue":1421,"Valore":"Calzatura (Tacco)"},{"IdCustomFieldsValue":1467,"Valore":"Furniture"},{"IdCustomFieldsValue":1514,"Valore":"Footwear (Upper\/Lining)"},{"IdCustomFieldsValue":1662,"Valore":"Leathergoods (Exterior)"},{"IdCustomFieldsValue":1670,"Valore":"Chaussures"},{"IdCustomFieldsValue":1780,"Valore":"Abbigliamento\/Calzatura\/Pelletteria"},{"IdCustomFieldsValue":1970,"Valore":"Accessories"},{"IdCustomFieldsValue":1971,"Valore":"Carta da parati"},{"IdCustomFieldsValue":2087,"Valore":"Glasses case"},{"IdCustomFieldsValue":2190,"Valore":"Calzatura (Tomaio\/Fodera)"},{"IdCustomFieldsValue":2240,"Valore":"Pelletteria \/ Calzatura"},{"IdCustomFieldsValue":2530,"Valore":"Calzatura (Suola)"},{"IdCustomFieldsValue":2570,"Valore":"Occhiali"},{"IdCustomFieldsValue":2635,"Valore":"Footwear (Sandal)"},{"IdCustomFieldsValue":2639,"Valore":"Lining"},{"IdCustomFieldsValue":2671,"Valore":"Portachiavi"},{"IdCustomFieldsValue":3098,"Valore":"Pellicceria"},{"IdCustomFieldsValue":3200,"Valore":"Car seat upholstery"},{"IdCustomFieldsValue":3209,"Valore":"Fodera"},{"IdCustomFieldsValue":3243,"Valore":"Accessoristica"},{"IdCustomFieldsValue":3253,"Valore":"Cuscini da Viaggio"},{"IdCustomFieldsValue":3357,"Valore":"Coulisse"},{"IdCustomFieldsValue":3361,"Valore":"Leathergoods (Handbag)"},{"IdCustomFieldsValue":3369,"Valore":"Leathergoods (Knapsack)"},{"IdCustomFieldsValue":3445,"Valore":"Footwear (Lake shoe)"},{"IdCustomFieldsValue":3453,"Valore":"Apparel (Hat)"},{"IdCustomFieldsValue":3470,"Valore":"Bike saddle"},{"IdCustomFieldsValue":3476,"Valore":"Apparel (Shirts)"},{"IdCustomFieldsValue":3477,"Valore":"Apparel (Jackets)"},{"IdCustomFieldsValue":3478,"Valore":"Leathergoods (Flap)"},{"IdCustomFieldsValue":3484,"Valore":"Upholstery"},{"IdCustomFieldsValue":3485,"Valore":"Saddlery"},{"IdCustomFieldsValue":3519,"Valore":"Apparel (Lining)"},{"IdCustomFieldsValue":3837,"Valore":"Swimwear"},{"IdCustomFieldsValue":3847,"Valore":"Accoppiatura tessuti"},{"IdCustomFieldsValue":3876,"Valore":"Luggage"},{"IdCustomFieldsValue":3891,"Valore":"Pelletteria (Rinforzo)"},{"IdCustomFieldsValue":4041,"Valore":"Bijoux (Lining)"},{"IdCustomFieldsValue":4081,"Valore":"Label"},{"IdCustomFieldsValue":4189,"Valore":"Case"},{"IdCustomFieldsValue":4268,"Valore":"Abbigliamento (Camicia)"},{"IdCustomFieldsValue":4390,"Valore":"Bijoux"},{"IdCustomFieldsValue":4421,"Valore":"Apparel (tights)"},{"IdCustomFieldsValue":4424,"Valore":"Maglieria"},{"IdCustomFieldsValue":4425,"Valore":"Abbigliamento (Sciarpe)"},{"IdCustomFieldsValue":4588,"Valore":"Forniture"},{"IdCustomFieldsValue":4642,"Valore":"Calzatura (Tomaio\/Soletto)"},{"IdCustomFieldsValue":4746,"Valore":"Leathergoods\/Footwear"},{"IdCustomFieldsValue":4749,"Valore":"Orthopedic \/ comfort Shoes"},{"IdCustomFieldsValue":5308,"Valore":"Swimsuit"},{"IdCustomFieldsValue":5394,"Valore":"Pelletteria \/ Accessori"},{"IdCustomFieldsValue":5435,"Valore":"Accessoire"},{"IdCustomFieldsValue":6265,"Valore":"V\u00eatements\/Maroquinerie"},{"IdCustomFieldsValue":12514,"Valore":"\u00c9quitation"},{"IdCustomFieldsValue":12714,"Valore":"Montre"},{"IdCustomFieldsValue":13149,"Valore":"Calzatura (Tomaio\/Sottopiede)"},{"IdCustomFieldsValue":13486,"Valore":"Glasses"},{"IdCustomFieldsValue":13487,"Valore":"Sunglasses"},{"IdCustomFieldsValue":13897,"Valore":"Bagage"},{"IdCustomFieldsValue":13977,"Valore":"Apparel\/Leathergoods\/Footwear"},{"IdCustomFieldsValue":14000,"Valore":"Garment"},{"IdCustomFieldsValue":14023,"Valore":"Leathergoods (Waist bag)"},{"IdCustomFieldsValue":14681,"Valore":"Chaussures\/Maroquinerie"},{"IdCustomFieldsValue":14698,"Valore":"Small Leathergood (Key ring)"},{"IdCustomFieldsValue":14836,"Valore":"Abbigliamento (Costume da bagno)"},{"IdCustomFieldsValue":14991,"Valore":"Footwear\/Leathergoods\/Apparel"}],"156":[{"IdCustomFieldsValue":243,"Valore":"Bottone"},{"IdCustomFieldsValue":244,"Valore":"Cerniera"},{"IdCustomFieldsValue":245,"Valore":"Accessorio Metallico"},{"IdCustomFieldsValue":246,"Valore":"Accessorio Plastico"},{"IdCustomFieldsValue":247,"Valore":"Sottotacco"},{"IdCustomFieldsValue":304,"Valore":"Suola"},{"IdCustomFieldsValue":313,"Valore":"Tacco"},{"IdCustomFieldsValue":314,"Valore":"Composite"},{"IdCustomFieldsValue":315,"Valore":"Cuoio\/Pelle (1\/2 Vitello)"},{"IdCustomFieldsValue":316,"Valore":"Cuoio\/Pelle (Bovino)"},{"IdCustomFieldsValue":317,"Valore":"Cuoio\/Pelle (Capra)"},{"IdCustomFieldsValue":318,"Valore":"Cuoio\/Pelle (Coccodrillo)"},{"IdCustomFieldsValue":319,"Valore":"Cuoio\/Pelle (Crosta)"},{"IdCustomFieldsValue":320,"Valore":"Cuoio\/Pelle (Nabuck)"},{"IdCustomFieldsValue":321,"Valore":"Cuoio\/Pelle (Ovocaprino)"},{"IdCustomFieldsValue":322,"Valore":"Cuoio\/Pelle (Rettile)"},{"IdCustomFieldsValue":323,"Valore":"Cuoio\/Pelle (Vitello)"},{"IdCustomFieldsValue":324,"Valore":"Borsa"},{"IdCustomFieldsValue":325,"Valore":"Calzatura"},{"IdCustomFieldsValue":326,"Valore":"Cintura"},{"IdCustomFieldsValue":327,"Valore":"Portafoglio"},{"IdCustomFieldsValue":328,"Valore":"Tessile (Sintetico)"},{"IdCustomFieldsValue":329,"Valore":"Tessile (Ortogonale\/A maglia)"},{"IdCustomFieldsValue":330,"Valore":"Tessile (PVC)"},{"IdCustomFieldsValue":331,"Valore":"Tessile (Spalmato)"},{"IdCustomFieldsValue":332,"Valore":"Tessile (Stampato)"},{"IdCustomFieldsValue":333,"Valore":"Tessile (Accoppiato)"},{"IdCustomFieldsValue":335,"Valore":"Cuoio\/Pelle (Cavallino)"},{"IdCustomFieldsValue":342,"Valore":"Cuoio\/Pelle"},{"IdCustomFieldsValue":343,"Valore":"Tessile"},{"IdCustomFieldsValue":404,"Valore":"Leather (1\/2 Calf)"},{"IdCustomFieldsValue":405,"Valore":"Leather (Calf)"},{"IdCustomFieldsValue":406,"Valore":"Leather (Buffalo)"},{"IdCustomFieldsValue":407,"Valore":"Leather (Goat)"},{"IdCustomFieldsValue":408,"Valore":"Leather (Lamb)"},{"IdCustomFieldsValue":409,"Valore":"Leather (Exotic)"},{"IdCustomFieldsValue":410,"Valore":"Textile"},{"IdCustomFieldsValue":411,"Valore":"Final product"},{"IdCustomFieldsValue":412,"Valore":"Button"},{"IdCustomFieldsValue":413,"Valore":"Handbag"},{"IdCustomFieldsValue":414,"Valore":"Belt"},{"IdCustomFieldsValue":415,"Valore":"Heel"},{"IdCustomFieldsValue":416,"Valore":"Metallic accessories"},{"IdCustomFieldsValue":420,"Valore":"Leather"},{"IdCustomFieldsValue":446,"Valore":"Leather (Ram)"},{"IdCustomFieldsValue":480,"Valore":"Cuoio\/Pelle (Cervo)"},{"IdCustomFieldsValue":481,"Valore":"Cuoio\/Pelle (Vitellino)"},{"IdCustomFieldsValue":483,"Valore":"Wallet"},{"IdCustomFieldsValue":529,"Valore":"Cuoio\/Pelle (Nappa)"},{"IdCustomFieldsValue":533,"Valore":"Leather (Shearling)"},{"IdCustomFieldsValue":534,"Valore":"Leather (Cow)"},{"IdCustomFieldsValue":536,"Valore":"Cuoio\/Pelle (Agnello)"},{"IdCustomFieldsValue":537,"Valore":"Sottopiede"},{"IdCustomFieldsValue":547,"Valore":"Porta I-Pad"},{"IdCustomFieldsValue":558,"Valore":"Cuoio\/Pelle (Daino)"},{"IdCustomFieldsValue":571,"Valore":"Cuoio\/Pelle (Bufalo)"},{"IdCustomFieldsValue":597,"Valore":"Composito"},{"IdCustomFieldsValue":616,"Valore":"Leather (front calf)"},{"IdCustomFieldsValue":643,"Valore":"Cuoio\/Pelle (Canguro)"},{"IdCustomFieldsValue":653,"Valore":"Sole"},{"IdCustomFieldsValue":654,"Valore":"Cuoio\/Pelle (Montone)"},{"IdCustomFieldsValue":655,"Valore":"Cuoio\/Pelle (Volpe)"},{"IdCustomFieldsValue":660,"Valore":"Accessorio \/ Pitone"},{"IdCustomFieldsValue":666,"Valore":"Guanti"},{"IdCustomFieldsValue":667,"Valore":"Prodotto finito"},{"IdCustomFieldsValue":678,"Valore":"Colorante"},{"IdCustomFieldsValue":684,"Valore":"Elaphe Radiata"},{"IdCustomFieldsValue":689,"Valore":"Cuoio\/Pelle (Toro)"},{"IdCustomFieldsValue":690,"Valore":"Semilavorato"},{"IdCustomFieldsValue":696,"Valore":"Cuoio\/Pelle (Spalle)"},{"IdCustomFieldsValue":699,"Valore":"Leathergoods\/Footwear"},{"IdCustomFieldsValue":701,"Valore":"Cuoio\/Pelle (Visone)"},{"IdCustomFieldsValue":702,"Valore":"Wire"},{"IdCustomFieldsValue":705,"Valore":"Tessile (con Applicazioni)"},{"IdCustomFieldsValue":708,"Valore":"Cuoio\/Pelle (Incrociati)"},{"IdCustomFieldsValue":714,"Valore":"Cuoio\/Pelle (Cammello)"},{"IdCustomFieldsValue":717,"Valore":"Shoulder"},{"IdCustomFieldsValue":718,"Valore":"Handle"},{"IdCustomFieldsValue":719,"Valore":"Backpack"},{"IdCustomFieldsValue":731,"Valore":"Panel"},{"IdCustomFieldsValue":734,"Valore":"Textile (Coupled)"},{"IdCustomFieldsValue":736,"Valore":"Accessories"},{"IdCustomFieldsValue":738,"Valore":"Buckle"},{"IdCustomFieldsValue":740,"Valore":"Cuoio\/Pelle (Gropponi)"},{"IdCustomFieldsValue":743,"Valore":"Glittered Textile"},{"IdCustomFieldsValue":748,"Valore":"Leather (Deer)"},{"IdCustomFieldsValue":762,"Valore":"Cuir"},{"IdCustomFieldsValue":763,"Valore":"Doublure (Cro\u00fbte bovin P.U. Newcalf gris F\/32 F1.5\/1.7mm, T1.5\/2.0m2)"},{"IdCustomFieldsValue":764,"Valore":"Pieces Metallique"},{"IdCustomFieldsValue":765,"Valore":"Bracelets de montres"},{"IdCustomFieldsValue":768,"Valore":"Leather vs Textile"},{"IdCustomFieldsValue":770,"Valore":"Cuoio\/Pelle (Coniglio)"},{"IdCustomFieldsValue":792,"Valore":"Leather (Goat) vs Leather (Calf)"},{"IdCustomFieldsValue":797,"Valore":"Insock"},{"IdCustomFieldsValue":809,"Valore":"Leather (Shoulder)"},{"IdCustomFieldsValue":810,"Valore":"Cuoio\/Pelle (Fianchi)"},{"IdCustomFieldsValue":812,"Valore":"Zaino"},{"IdCustomFieldsValue":824,"Valore":"Shoe"},{"IdCustomFieldsValue":834,"Valore":"Glittered Textile"},{"IdCustomFieldsValue":835,"Valore":"Cuoio\/Pelle (Alligatore)"},{"IdCustomFieldsValue":838,"Valore":"Pannello"},{"IdCustomFieldsValue":841,"Valore":"Bracelet"},{"IdCustomFieldsValue":842,"Valore":"Chain"},{"IdCustomFieldsValue":843,"Valore":"Necklace"},{"IdCustomFieldsValue":847,"Valore":"Componente per calzatura"},{"IdCustomFieldsValue":849,"Valore":"Bracciale"},{"IdCustomFieldsValue":852,"Valore":"Cuoio\/Pelle (Cavallo)"},{"IdCustomFieldsValue":854,"Valore":"Nappa"},{"IdCustomFieldsValue":856,"Valore":"Cuoio\/Pelle (Suino)"},{"IdCustomFieldsValue":857,"Valore":"Bag"},{"IdCustomFieldsValue":862,"Valore":"PVC"},{"IdCustomFieldsValue":865,"Valore":"Cuoio\/Pelle Esotico (Ayers)"},{"IdCustomFieldsValue":877,"Valore":"Cuir (Veau)"},{"IdCustomFieldsValue":884,"Valore":"Leather (Pig)"},{"IdCustomFieldsValue":886,"Valore":"Leather (Baby Calf)"},{"IdCustomFieldsValue":888,"Valore":"Small Leathergood (Belt)"},{"IdCustomFieldsValue":899,"Valore":"Accoppiato (Tessile\/Pelle)"},{"IdCustomFieldsValue":900,"Valore":"Accoppiato (Pelle\/Pelle)"},{"IdCustomFieldsValue":901,"Valore":"Cuoio\/Pelle (Pitone)"},{"IdCustomFieldsValue":911,"Valore":"Culatte"},{"IdCustomFieldsValue":919,"Valore":"Leather (Kangaroo)"},{"IdCustomFieldsValue":934,"Valore":"Accessorio"},{"IdCustomFieldsValue":937,"Valore":"Leather (Bovine)"},{"IdCustomFieldsValue":938,"Valore":"Leather (Coupled)"},{"IdCustomFieldsValue":943,"Valore":"Textile (Glittered)"},{"IdCustomFieldsValue":945,"Valore":"Textile (Woven\/Knitted)"},{"IdCustomFieldsValue":946,"Valore":"Textile (Lining)"},{"IdCustomFieldsValue":949,"Valore":"Cuoio\/Pelle (Caribu')"},{"IdCustomFieldsValue":952,"Valore":"Tessile (Fodera)"},{"IdCustomFieldsValue":954,"Valore":"Metallic logo"},{"IdCustomFieldsValue":957,"Valore":"Plastic accessories"},{"IdCustomFieldsValue":961,"Valore":"Tessile (Paglia)"},{"IdCustomFieldsValue":962,"Valore":"Cuir (1\/2 Veau)"},{"IdCustomFieldsValue":965,"Valore":"Metallic \/ Plastic trims"},{"IdCustomFieldsValue":966,"Valore":"Prodotto chimico"},{"IdCustomFieldsValue":967,"Valore":"Cuoio\/Pelle (Culatta)"},{"IdCustomFieldsValue":974,"Valore":"I-Pad Holder"},{"IdCustomFieldsValue":979,"Valore":"Tessue"},{"IdCustomFieldsValue":984,"Valore":"Cuoio\/Pelle (Bovina)"},{"IdCustomFieldsValue":987,"Valore":"Footwear"},{"IdCustomFieldsValue":988,"Valore":"Textile (PVC)"},{"IdCustomFieldsValue":994,"Valore":"AYERS F.C. MAC."},{"IdCustomFieldsValue":995,"Valore":"Quadrante di borsa completo di maniglia"},{"IdCustomFieldsValue":1005,"Valore":"Leather (Baby calf with hair on printed)"},{"IdCustomFieldsValue":1007,"Valore":"Metallic Trims"},{"IdCustomFieldsValue":1012,"Valore":"Accessoire metallique"},{"IdCustomFieldsValue":1019,"Valore":"Fibbia"},{"IdCustomFieldsValue":1033,"Valore":"Component for Footwear"},{"IdCustomFieldsValue":1037,"Valore":"Cuoio\/Pelle (Capretto)"},{"IdCustomFieldsValue":1038,"Valore":"Leather (Crust)"},{"IdCustomFieldsValue":1040,"Valore":"Cuoio\/Pelle (Esotico)"},{"IdCustomFieldsValue":1045,"Valore":"Componente di pelletteria (tintura costola)"},{"IdCustomFieldsValue":1046,"Valore":"Tessile (Accoppiato con pelle)"},{"IdCustomFieldsValue":1049,"Valore":"Tessile (Accopiato con PU)"},{"IdCustomFieldsValue":1077,"Valore":"Sintetici"},{"IdCustomFieldsValue":1107,"Valore":"Textile (Synthetic)"},{"IdCustomFieldsValue":1126,"Valore":"Sughero"},{"IdCustomFieldsValue":1158,"Valore":"Accoppiato"},{"IdCustomFieldsValue":1159,"Valore":"Zip"},{"IdCustomFieldsValue":1178,"Valore":"Cellulosa"},{"IdCustomFieldsValue":1179,"Valore":"Pochette"},{"IdCustomFieldsValue":1218,"Valore":"Cuir (Chevre)"},{"IdCustomFieldsValue":1260,"Valore":"Watch strap"},{"IdCustomFieldsValue":1261,"Valore":"Lamina"},{"IdCustomFieldsValue":1356,"Valore":"Pietra verniciata"},{"IdCustomFieldsValue":1362,"Valore":"Cartone"},{"IdCustomFieldsValue":1369,"Valore":"Upper"},{"IdCustomFieldsValue":1373,"Valore":"Cuoio\/Pelle (Struzzo)"},{"IdCustomFieldsValue":1375,"Valore":"Prodotto liquido"},{"IdCustomFieldsValue":1376,"Valore":"Cuoio\/Pelle (Lapin Rex)"},{"IdCustomFieldsValue":1378,"Valore":"Wood Button"},{"IdCustomFieldsValue":1381,"Valore":"Lattice"},{"IdCustomFieldsValue":1419,"Valore":"Coupled"},{"IdCustomFieldsValue":1428,"Valore":"Tessile (Lana)"},{"IdCustomFieldsValue":1430,"Valore":"Tomaia"},{"IdCustomFieldsValue":1435,"Valore":"Tessile (PU)"},{"IdCustomFieldsValue":1446,"Valore":"Filo"},{"IdCustomFieldsValue":1447,"Valore":"Polvere"},{"IdCustomFieldsValue":1452,"Valore":"Leather (Sheep)"},{"IdCustomFieldsValue":1465,"Valore":"Textile (Printed)"},{"IdCustomFieldsValue":1487,"Valore":"Plastic sample"},{"IdCustomFieldsValue":1495,"Valore":"Pigmento"},{"IdCustomFieldsValue":1502,"Valore":"Shanks"},{"IdCustomFieldsValue":1506,"Valore":"Button (Urea)"},{"IdCustomFieldsValue":1521,"Valore":"Pietra"},{"IdCustomFieldsValue":1523,"Valore":"Fabric sample"},{"IdCustomFieldsValue":1525,"Valore":"Cuoio\/Pelle (Pesce)"},{"IdCustomFieldsValue":1526,"Valore":"Button (Sydney)"},{"IdCustomFieldsValue":1563,"Valore":"Metal Powder"},{"IdCustomFieldsValue":1569,"Valore":"Liquid product"},{"IdCustomFieldsValue":1582,"Valore":"Paint"},{"IdCustomFieldsValue":1588,"Valore":"Laminated paper"},{"IdCustomFieldsValue":1589,"Valore":"Accessoire"},{"IdCustomFieldsValue":1597,"Valore":"Lucido"},{"IdCustomFieldsValue":1623,"Valore":"Cuoio\/Pelle (Anguilla)"},{"IdCustomFieldsValue":1626,"Valore":"Tessile (Cotone)"},{"IdCustomFieldsValue":1663,"Valore":"ABS"},{"IdCustomFieldsValue":1664,"Valore":"Leather (Bos Taurus)"},{"IdCustomFieldsValue":1731,"Valore":"Leather (Ayers)"},{"IdCustomFieldsValue":1732,"Valore":"Leather (Colubro)"},{"IdCustomFieldsValue":1733,"Valore":"Leather (Python)"},{"IdCustomFieldsValue":1736,"Valore":"Heel with Insole"},{"IdCustomFieldsValue":1737,"Valore":"Cuoio\/Pelle (Lapin)"},{"IdCustomFieldsValue":1739,"Valore":"Cuoio\/Pelle (Caimano)"},{"IdCustomFieldsValue":1743,"Valore":"Cuir (Agneau)"},{"IdCustomFieldsValue":1760,"Valore":"Leather (Kid)"},{"IdCustomFieldsValue":1781,"Valore":"Packaging Box"},{"IdCustomFieldsValue":1782,"Valore":"Packaging Cloth"},{"IdCustomFieldsValue":1803,"Valore":"Textile (Coated)"},{"IdCustomFieldsValue":1811,"Valore":"Leather (Reclaimed) "},{"IdCustomFieldsValue":1882,"Valore":"Accoppiato (Tessile\/Tessile)"},{"IdCustomFieldsValue":1913,"Valore":"Lycra"},{"IdCustomFieldsValue":1930,"Valore":"Cuoio\/Pelle (Lucertola)"},{"IdCustomFieldsValue":1981,"Valore":"Leather (Baby Goat)"},{"IdCustomFieldsValue":1987,"Valore":"Cover"},{"IdCustomFieldsValue":2003,"Valore":"Tracolla"},{"IdCustomFieldsValue":2079,"Valore":"Leather (Bull)"},{"IdCustomFieldsValue":2080,"Valore":"Leather (Ovine)"},{"IdCustomFieldsValue":2176,"Valore":"Tessile (Poliestere)"},{"IdCustomFieldsValue":2184,"Valore":"Cuoio\/Pelle (Lama)"},{"IdCustomFieldsValue":2203,"Valore":"Accessorio in pelle"},{"IdCustomFieldsValue":2259,"Valore":"Leather (Eel)"},{"IdCustomFieldsValue":2273,"Valore":"Accoppiato (Accessorio\/Pelle)"},{"IdCustomFieldsValue":2274,"Valore":"Accoppiato (Accessorio\/Tessile)"},{"IdCustomFieldsValue":2276,"Valore":"Accessorio in tessuto"},{"IdCustomFieldsValue":2376,"Valore":"Cuoio rigenerato"},{"IdCustomFieldsValue":2460,"Valore":"Regenerated Leather"},{"IdCustomFieldsValue":2465,"Valore":"Resina acrilica"},{"IdCustomFieldsValue":2467,"Valore":"Bonded Leather"},{"IdCustomFieldsValue":2515,"Valore":"Tessile (Seta)"},{"IdCustomFieldsValue":2528,"Valore":"Cuoio"},{"IdCustomFieldsValue":2540,"Valore":"Paper packaging"},{"IdCustomFieldsValue":2541,"Valore":"Plastic packaging"},{"IdCustomFieldsValue":2576,"Valore":"Zip in Nylon"},{"IdCustomFieldsValue":2577,"Valore":"Nylon Zip"},{"IdCustomFieldsValue":2634,"Valore":"Footwear (Sandal)"},{"IdCustomFieldsValue":2644,"Valore":"Leather (Alligator)"},{"IdCustomFieldsValue":2716,"Valore":"Powder"},{"IdCustomFieldsValue":2770,"Valore":"Tissu"},{"IdCustomFieldsValue":2773,"Valore":"TBC"},{"IdCustomFieldsValue":2781,"Valore":"Leather (Nappa)"},{"IdCustomFieldsValue":3048,"Valore":"Leather (Bovine Split)"},{"IdCustomFieldsValue":3086,"Valore":"Valigia"},{"IdCustomFieldsValue":3087,"Valore":"Leather (Fox)"},{"IdCustomFieldsValue":3089,"Valore":"Cuoio\/Pelle (Mucca)"},{"IdCustomFieldsValue":3204,"Valore":"Tessile (Raso)"},{"IdCustomFieldsValue":3205,"Valore":"Ecopelle"},{"IdCustomFieldsValue":3212,"Valore":"Tessile (Termosaldatura)"},{"IdCustomFieldsValue":3215,"Valore":"Watch case"},{"IdCustomFieldsValue":3226,"Valore":"Shoulder strap"},{"IdCustomFieldsValue":3244,"Valore":"Tessile (Microfibra)"},{"IdCustomFieldsValue":3252,"Valore":"Spandex"},{"IdCustomFieldsValue":3259,"Valore":"Glue"},{"IdCustomFieldsValue":3264,"Valore":"EVA"},{"IdCustomFieldsValue":3284,"Valore":"Leather (Horse)"},{"IdCustomFieldsValue":3308,"Valore":"Soletto"},{"IdCustomFieldsValue":3312,"Valore":"Textile (PU)"},{"IdCustomFieldsValue":3316,"Valore":"Cufflinks"},{"IdCustomFieldsValue":3348,"Valore":"Synthetic Fur"},{"IdCustomFieldsValue":3355,"Valore":"Resina poliuretanica ad acqua"},{"IdCustomFieldsValue":3356,"Valore":"Resina siliconica"},{"IdCustomFieldsValue":3437,"Valore":"Leather (Whips)"},{"IdCustomFieldsValue":3438,"Valore":"Leather (Karung)"},{"IdCustomFieldsValue":3448,"Valore":"Swimming cap"},{"IdCustomFieldsValue":3458,"Valore":"Leather (Crocodile)"},{"IdCustomFieldsValue":3459,"Valore":"Leather (Crocodile Niloticus)"},{"IdCustomFieldsValue":3464,"Valore":"Leather (Cayman)"},{"IdCustomFieldsValue":3466,"Valore":"Leather (Ostrich)"},{"IdCustomFieldsValue":3471,"Valore":"Accessorio Metallico (Ottone)"},{"IdCustomFieldsValue":3486,"Valore":"Leather (Fish)"},{"IdCustomFieldsValue":3495,"Valore":"Textile (Woven)"},{"IdCustomFieldsValue":3510,"Valore":"Tessile (Ortogonale)"},{"IdCustomFieldsValue":3512,"Valore":"Lacquer"},{"IdCustomFieldsValue":3513,"Valore":"Textile (Cotton)"},{"IdCustomFieldsValue":3522,"Valore":"Cuoio\/Pelle (Coccodrillo Porosus)"},{"IdCustomFieldsValue":3737,"Valore":"Cuir (Alligator)"},{"IdCustomFieldsValue":3752,"Valore":"Canvas"},{"IdCustomFieldsValue":3834,"Valore":"Leather (Lizard)"},{"IdCustomFieldsValue":3844,"Valore":"LV"},{"IdCustomFieldsValue":3850,"Valore":"Textile (Synthetic & blend)"},{"IdCustomFieldsValue":3854,"Valore":"Pelliccia ecologica"},{"IdCustomFieldsValue":3856,"Valore":"Insole"},{"IdCustomFieldsValue":3861,"Valore":"Textile (Natural) + Prints\/Coating"},{"IdCustomFieldsValue":3875,"Valore":"Trolley"},{"IdCustomFieldsValue":3877,"Valore":"Rubber"},{"IdCustomFieldsValue":3878,"Valore":"Rubber + Plastic"},{"IdCustomFieldsValue":4032,"Valore":"Fake leather"},{"IdCustomFieldsValue":4097,"Valore":"Produit fini"},{"IdCustomFieldsValue":4121,"Valore":"Materiali adesivi in Nylon"},{"IdCustomFieldsValue":4138,"Valore":"Cuir (Porosus)"},{"IdCustomFieldsValue":4139,"Valore":"Cuir (Niloticus)"},{"IdCustomFieldsValue":4141,"Valore":"Gloves"},{"IdCustomFieldsValue":4146,"Valore":"Tessile (Rafia)"},{"IdCustomFieldsValue":4159,"Valore":"Raw material"},{"IdCustomFieldsValue":4165,"Valore":"Textile (Lace)"},{"IdCustomFieldsValue":4169,"Valore":"Tessile (Tulle)"},{"IdCustomFieldsValue":4188,"Valore":"Polycarbonate"},{"IdCustomFieldsValue":4190,"Valore":"Wax"},{"IdCustomFieldsValue":4202,"Valore":"Tessile (Rete)"},{"IdCustomFieldsValue":4203,"Valore":"Tessile (Neoprene)"},{"IdCustomFieldsValue":4232,"Valore":"Sludge"},{"IdCustomFieldsValue":4249,"Valore":"Feather"},{"IdCustomFieldsValue":4264,"Valore":"Legno"},{"IdCustomFieldsValue":4281,"Valore":"Textile (Nylon)"},{"IdCustomFieldsValue":4285,"Valore":"Textile (Knitted)"},{"IdCustomFieldsValue":4402,"Valore":"Cuoio\/Pelle (Porosus)"},{"IdCustomFieldsValue":4422,"Valore":"Tights"},{"IdCustomFieldsValue":4564,"Valore":"Sock"},{"IdCustomFieldsValue":4698,"Valore":"Wood"},{"IdCustomFieldsValue":4720,"Valore":"Cuoio\/Pelle (Ovinocaprino)"},{"IdCustomFieldsValue":5063,"Valore":"Synth\u00e9tique"},{"IdCustomFieldsValue":5089,"Valore":"Solid Product"},{"IdCustomFieldsValue":5106,"Valore":"Cuoio\/Pelle (Cocco)"},{"IdCustomFieldsValue":5314,"Valore":"Cuoio\/Pelle (\u00bd bovina)"},{"IdCustomFieldsValue":5372,"Valore":"Plastique accessoires"},{"IdCustomFieldsValue":5484,"Valore":"Hat"},{"IdCustomFieldsValue":5689,"Valore":"Produit liquide"},{"IdCustomFieldsValue":6528,"Valore":"Textile accessories"},{"IdCustomFieldsValue":8580,"Valore":"Poussi\u00e8re"},{"IdCustomFieldsValue":8778,"Valore":"Eco-Leather"},{"IdCustomFieldsValue":9269,"Valore":"Polietilene"},{"IdCustomFieldsValue":9602,"Valore":"Silk"},{"IdCustomFieldsValue":11227,"Valore":"Bois"},{"IdCustomFieldsValue":11228,"Valore":"Produit solide"},{"IdCustomFieldsValue":12432,"Valore":"Polyester"},{"IdCustomFieldsValue":12597,"Valore":"Mousse"},{"IdCustomFieldsValue":12612,"Valore":"Papier"},{"IdCustomFieldsValue":12689,"Valore":"Accessoires en plastique"},{"IdCustomFieldsValue":13244,"Valore":"Cuir (Autreches)"},{"IdCustomFieldsValue":13256,"Valore":"TPU"},{"IdCustomFieldsValue":13257,"Valore":"Gomma"},{"IdCustomFieldsValue":13726,"Valore":"Micro"},{"IdCustomFieldsValue":14025,"Valore":"Tessile (Nylon)"},{"IdCustomFieldsValue":14173,"Valore":"Poliuretano"},{"IdCustomFieldsValue":14238,"Valore":"Accessorio plastico"},{"IdCustomFieldsValue":14239,"Valore":"Plastica"},{"IdCustomFieldsValue":14633,"Valore":"Cuir (Bovin)"},{"IdCustomFieldsValue":14927,"Valore":"Cuoio\/Pelle (Varano)"}],"163":[{"IdCustomFieldsValue":248,"Valore":"a cura del laboratorio secondo la UNI EN ISO 2418:2006 "},{"IdCustomFieldsValue":251,"Valore":"a cura del committente "},{"IdCustomFieldsValue":278,"Valore":"done by the laboratory according to the UNI EN ISO 2418:2006 "},{"IdCustomFieldsValue":281,"Valore":"done by the client "},{"IdCustomFieldsValue":649,"Valore":"the specimen has been sampled from the footwear supplied by the client"},{"IdCustomFieldsValue":677,"Valore":"materiale campionato da borsa fornita dal cliente"},{"IdCustomFieldsValue":727,"Valore":"the specimen has been sampled from the bag supplied by the client"},{"IdCustomFieldsValue":755,"Valore":"par le client"},{"IdCustomFieldsValue":878,"Valore":"effectu\u00e9e par le laboratoire selon la norme UNI EN ISO 2418:2006"},{"IdCustomFieldsValue":1029,"Valore":"the specimen has been sampled from the wallet supplied by the client"},{"IdCustomFieldsValue":1627,"Valore":"materiale campionato da calzatura fornita dal cliente"},{"IdCustomFieldsValue":1628,"Valore":"materiale campionato da portafogli fornito dal cliente"},{"IdCustomFieldsValue":4716,"Valore":"Grab, sampled by the Lab"},{"IdCustomFieldsValue":5355,"Valore":"Material sampled by the Lab."},{"IdCustomFieldsValue":9142,"Valore":"materiale campionato da cappello fornito dal cliente"}],"165":[{"IdCustomFieldsValue":825,"Valore":"Nessuno, come da accordi con il cliente"},{"IdCustomFieldsValue":826,"Valore":"None, as agreed with the client"},{"IdCustomFieldsValue":1632,"Valore":"Aucun, selon accords avec le client"},{"IdCustomFieldsValue":2088,"Valore":"24\u00b12h; 21\u00b11\u00b0C; 65\u00b12%U.R. (Se richiesto dal Metodo di Prova, analisi eseguita in atmosfera standard)"},{"IdCustomFieldsValue":2089,"Valore":"24\u00b12h; 21\u00b11\u00b0C; 65\u00b12% R.H. (If required by the test method, analysis carried out in standard atmosphere)"},{"IdCustomFieldsValue":2450,"Valore":"(According to UNI EN ISO 2419:2012) 23\u00b0+\/-2\u00b0C; 50+\/-5% R.H. (If required by the test method, trial carried out in standard atmosphere)"},{"IdCustomFieldsValue":2552,"Valore":"Atmosfera di condizionamento e di prova: 20\u00b12\u00b0, 65\u00b15% UR"},{"IdCustomFieldsValue":3187,"Valore":"Il campione \u00e8 conservato a temperatura <4\u00b0C"},{"IdCustomFieldsValue":3188,"Valore":"the sample is stored at temperature <4\u00b0C"},{"IdCustomFieldsValue":6133,"Valore":"24\u00b12h; 21\u00b11\u00b0C; 65\u00b12%U.R. (Si prevu par le m\u00e9thode du test, analyse execut\u00e9e en atmosph\u00e8re standardis\u00e9e)"},{"IdCustomFieldsValue":15005,"Valore":"24\u00b12h; 23\u00b12\u00b0C; 50\u00b15%U.R. (Se richiesto dal Metodo di Prova, analisi eseguita in atmosfera standard)"},{"IdCustomFieldsValue":15006,"Valore":"24\u00b12h; 23\u00b12\u00b0C; 50\u00b15% R.H. (If required by the test method, analysis carried out in standard atmosphere)"},{"IdCustomFieldsValue":15007,"Valore":"24\u00b12h; 23\u00b12\u00b0C; 50\u00b15%U.R. (Si prevu par le m\u00e9thode du test, analyse execut\u00e9e en atmosph\u00e8re standardis\u00e9e)"}],"169":[{"IdCustomFieldsValue":672,"Valore":"Si"},{"IdCustomFieldsValue":673,"Valore":"No"},{"IdCustomFieldsValue":778,"Valore":"Si se FAIL"},{"IdCustomFieldsValue":4408,"Valore":"Procedura Standard"}],"170":[{"IdCustomFieldsValue":674,"Valore":"No"},{"IdCustomFieldsValue":675,"Valore":"Si"},{"IdCustomFieldsValue":777,"Valore":"Si se FAIL"},{"IdCustomFieldsValue":4409,"Valore":"Procedura Standard"}],"171":[{"IdCustomFieldsValue":668,"Valore":"Si"},{"IdCustomFieldsValue":669,"Valore":"No"},{"IdCustomFieldsValue":670,"Valore":"Si se FAIL"},{"IdCustomFieldsValue":671,"Valore":"Si FINE MESE"},{"IdCustomFieldsValue":1013,"Valore":"SI OGNI GIOVED\u00ec"},{"IdCustomFieldsValue":1185,"Valore":"SI due volte alla settimana"},{"IdCustomFieldsValue":2216,"Valore":"SI una volta alla settimana"},{"IdCustomFieldsValue":4410,"Valore":"Procedura Standard"},{"IdCustomFieldsValue":5722,"Valore":"SI stesso giorno"}],"181":[{"IdCustomFieldsValue":744,"Valore":"il campione \u00e8 stato molito in accordo con la UNI EN ISO 4044:2017 (qualora richiesto nel metodo)."},{"IdCustomFieldsValue":745,"Valore":"the leather sample is ground as requested in method UNI EN ISO 4044:2017 (when required in the test method)."},{"IdCustomFieldsValue":753,"Valore":"la quantit\u00e9 n\u00e9cessaire d'\u00e9chantillon est moulin\u00e9e selon la norme UNI EN ISO 4044:2017 (quand est requise par la methode)"}],"236":[{"IdCustomFieldsValue":1468,"Valore":"Consegnato a mano"},{"IdCustomFieldsValue":1469,"Valore":"Inviato tramite corriere"},{"IdCustomFieldsValue":4945,"Valore":"Navetta Scandicci"}],"241":[{"IdCustomFieldsValue":1603,"Valore":"a Pacchetto"},{"IdCustomFieldsValue":1604,"Valore":">3"},{"IdCustomFieldsValue":1605,"Valore":"<=3"}],"246":[{"IdCustomFieldsValue":1753,"Valore":"BV Shangai"},{"IdCustomFieldsValue":1755,"Valore":"BV Hamburg- Eva Maria Benkhoff"},{"IdCustomFieldsValue":1756,"Valore":"BV Turkey"},{"IdCustomFieldsValue":1757,"Valore":"BV UK"},{"IdCustomFieldsValue":1937,"Valore":"BV Vietnam"},{"IdCustomFieldsValue":1938,"Valore":"BV Schwerin"},{"IdCustomFieldsValue":1939,"Valore":"BV Guangzhou"},{"IdCustomFieldsValue":1940,"Valore":"BV France"},{"IdCustomFieldsValue":1941,"Valore":"No outsourcing"},{"IdCustomFieldsValue":1944,"Valore":"Coventya"},{"IdCustomFieldsValue":1945,"Valore":"Cimac- P.Biglia"},{"IdCustomFieldsValue":2290,"Valore":"Ricotest"},{"IdCustomFieldsValue":2403,"Valore":"LBS"},{"IdCustomFieldsValue":2696,"Valore":"BV Korea"},{"IdCustomFieldsValue":2998,"Valore":"BV Hong Kong"},{"IdCustomFieldsValue":3058,"Valore":"J.S. Hamilton Poland S.A."},{"IdCustomFieldsValue":3191,"Valore":"BV Schwerin - BV Turkey"},{"IdCustomFieldsValue":3341,"Valore":"BV Guangzhou, BV Shangai"},{"IdCustomFieldsValue":3350,"Valore":"BV Guangzhou, BV Honk Kong"},{"IdCustomFieldsValue":3406,"Valore":"BV Putian - Lily Li"},{"IdCustomFieldsValue":4239,"Valore":"BV India"},{"IdCustomFieldsValue":4282,"Valore":"Laboraitore Eric Beucher"},{"IdCustomFieldsValue":4420,"Valore":"HerAmbiente "},{"IdCustomFieldsValue":4679,"Valore":"Chemi-Lab"},{"IdCustomFieldsValue":5745,"Valore":"BV USA, Buffalo - NY "},{"IdCustomFieldsValue":6450,"Valore":"BV Turkey- Ahmet Korkut + BV Hong Kong- Jimmy Wong\/Tasman Tai\r\n"},{"IdCustomFieldsValue":8098,"Valore":"BV Vietnam- Joy Nguyen + BV Turkey- Ahmet Korkut"},{"IdCustomFieldsValue":8755,"Valore":"Appliance Engineering Technology France SAS"},{"IdCustomFieldsValue":9316,"Valore":"BV Vietnam- Joy Nguyen + BV Guangzhou"},{"IdCustomFieldsValue":9483,"Valore":"Neosis s.r.l"},{"IdCustomFieldsValue":9645,"Valore":"Environ Lab"},{"IdCustomFieldsValue":11325,"Valore":"Neosis s.r.l + BV Honk Kong"},{"IdCustomFieldsValue":11342,"Valore":"Beta analythics"},{"IdCustomFieldsValue":12678,"Valore":"BV Honk Kong + BV Shangai"},{"IdCustomFieldsValue":13717,"Valore":"BV Thailand"},{"IdCustomFieldsValue":13917,"Valore":"BV France, BV Shangai"},{"IdCustomFieldsValue":14877,"Valore":"BV Shangai - BV Hong Kong"}],"252":[{"IdCustomFieldsValue":1887,"Valore":"Regular"},{"IdCustomFieldsValue":1888,"Valore":"Express (1-2 Working Days)"},{"IdCustomFieldsValue":1889,"Valore":"Urgent (3 Working Days)"}],"253":[{"IdCustomFieldsValue":1891,"Valore":"Yes"},{"IdCustomFieldsValue":1892,"Valore":"No"}],"261":[{"IdCustomFieldsValue":1978,"Valore":"2C Cina"},{"IdCustomFieldsValue":2442,"Valore":"N\/A"}],"771":[{"IdCustomFieldsValue":8595,"Valore":"PASS"},{"IdCustomFieldsValue":8596,"Valore":"FAIL"},{"IdCustomFieldsValue":8598,"Valore":"N\/A"}],"772":[{"IdCustomFieldsValue":8599,"Valore":"PASS"},{"IdCustomFieldsValue":8600,"Valore":"FAIL"},{"IdCustomFieldsValue":8601,"Valore":"N\/A"}],"773":[{"IdCustomFieldsValue":8602,"Valore":"PASS"},{"IdCustomFieldsValue":8603,"Valore":"FAIL"},{"IdCustomFieldsValue":8604,"Valore":"N\/A"},{"IdCustomFieldsValue":8605,"Valore":"DATA"}],"1083":[{"IdCustomFieldsValue":13482,"Valore":"Moncler Compliance_GT"},{"IdCustomFieldsValue":13488,"Valore":"Moncler Ufficio tecnico_MC"},{"IdCustomFieldsValue":13495,"Valore":"Moncler Compliance_EM"},{"IdCustomFieldsValue":13496,"Valore":"Moncler Compliance_MB"},{"IdCustomFieldsValue":13497,"Valore":"Moncler Compliance_CB"},{"IdCustomFieldsValue":13526,"Valore":"Moncler Compliance_CS"},{"IdCustomFieldsValue":13530,"Valore":"Moncler Compliance_FZ"},{"IdCustomFieldsValue":13554,"Valore":"Moncler Ufficio tecnico_AZ"},{"IdCustomFieldsValue":13662,"Valore":"Moncler Ufficio tecnico_LL"},{"IdCustomFieldsValue":13727,"Valore":"Moncler Ufficio tecnico_AU"},{"IdCustomFieldsValue":13786,"Valore":"Moncler Compliance_AC"},{"IdCustomFieldsValue":13945,"Valore":"Moncler Compliance_BZ"},{"IdCustomFieldsValue":14006,"Valore":"Moncler Compliance_GR"},{"IdCustomFieldsValue":14818,"Valore":"Moncler Ufficio tecnico_LC"},{"IdCustomFieldsValue":14910,"Valore":"Moncler Ufficio tecnico_FV"}]} \ No newline at end of file diff --git a/public/userarea/delete_part_quotation.php b/public/userarea/delete_part_quotation.php new file mode 100644 index 0000000..ace1700 --- /dev/null +++ b/public/userarea/delete_part_quotation.php @@ -0,0 +1,28 @@ +getConnection(); + +$data = json_decode(file_get_contents('php://input'), true); + +$partId = $data['part_id'] ?? null; + +if (!$partId) { + echo json_encode(['success' => false, 'message' => 'ID parte mancante']); + exit; +} + +try { + $stmt = $pdo->prepare("DELETE FROM identification_parts WHERE id = :part_id"); + $stmt->execute([':part_id' => $partId]); + $rowCount = $stmt->rowCount(); + if ($rowCount > 0) { + echo json_encode(['success' => true, 'message' => 'Parte eliminata con successo']); + } else { + echo json_encode(['success' => false, 'message' => 'Nessuna parte trovata con ID ' . $partId]); + } +} catch (PDOException $e) { + echo json_encode(['success' => false, 'message' => 'Errore nell\'eliminazione: ' . $e->getMessage()]); +} diff --git a/public/userarea/include/navbar.php b/public/userarea/include/navbar.php index a99b4db..5df1b53 100644 --- a/public/userarea/include/navbar.php +++ b/public/userarea/include/navbar.php @@ -41,7 +41,21 @@ - --> + +
  • + +
    +
    + +
    + +
  • + diff --git a/public/userarea/load_parts_quotation.php b/public/userarea/load_parts_quotation.php new file mode 100644 index 0000000..a88782d --- /dev/null +++ b/public/userarea/load_parts_quotation.php @@ -0,0 +1,23 @@ +getConnection(); + +$idquotations = $_GET['idquotations'] ?? null; + +if (!$idquotations) { + echo json_encode(['success' => false, 'message' => 'ID quotations mancante']); + exit; +} + +try { + $stmt = $pdo->prepare("SELECT id, idquotations, part_number, part_description FROM identification_parts WHERE idquotations = :idquotations ORDER BY part_number ASC"); + $stmt->execute([':idquotations' => $idquotations]); + $parts = $stmt->fetchAll(); + + echo json_encode(['success' => true, 'parts' => $parts]); +} catch (PDOException $e) { + echo json_encode(['success' => false, 'message' => 'Errore nel caricamento: ' . $e->getMessage()]); +} diff --git a/public/userarea/load_photo_quotation.php b/public/userarea/load_photo_quotation.php new file mode 100644 index 0000000..2eab4cc --- /dev/null +++ b/public/userarea/load_photo_quotation.php @@ -0,0 +1,33 @@ +getConnection(); + +$idquotations = isset($_GET['idquotations']) ? intval($_GET['idquotations']) : null; + +if (!$idquotations) { + echo json_encode(['success' => false, 'message' => 'ID quotation mancante']); + exit; +} + +try { + // Seleziona le foto per il dato idquotations dalla tabella datadb_photos + $stmt = $pdo->prepare("SELECT id, file_path FROM datadb_photos WHERE idquotations = ?"); + $stmt->execute([$idquotations]); + $photos = $stmt->fetchAll(PDO::FETCH_ASSOC); + + if ($photos && count($photos) > 0) { + $photoPaths = array_map(function ($photo) { + return '../photostrf/' . $photo['file_path']; + }, $photos); + echo json_encode(['success' => true, 'photos' => $photoPaths]); + } else { + echo json_encode(['success' => false, 'message' => 'Nessuna foto trovata']); + } +} catch (PDOException $e) { + echo json_encode(['success' => false, 'message' => 'Errore nel caricamento: ' . $e->getMessage()]); +} diff --git a/public/userarea/modal_parts.php b/public/userarea/modal_parts.php index 0d92d2a..1d5cbaf 100644 --- a/public/userarea/modal_parts.php +++ b/public/userarea/modal_parts.php @@ -97,6 +97,11 @@ font-size: 0.6rem !important; } + #partsModal { + z-index: 1060 !important; + /* Aumentato per superare il modale foto (z-index: 1050) */ + } + #partsModal .modal-content { width: 100% !important; max-width: 100% !important; diff --git a/public/userarea/parts.js b/public/userarea/parts.js index c77ec00..24bea23 100644 --- a/public/userarea/parts.js +++ b/public/userarea/parts.js @@ -12,13 +12,10 @@ $(document).ready(function () { scale: 1, }; - // annotations keyed by photo src - let photoAnnotations = {}; - // colors keyed by part number - let partColors = {}; - - // selection - let selectedPartNumber = null; + let photoAnnotations = {}; // Annotazioni per ogni foto + let partColors = {}; // Colori associati ai numeri delle parti + let selectedPartNumber = null; // Numero della parte selezionata + let unsavedChanges = false; // Flag per modifiche non salvate // =================== // VOICE RECOGNITION SETUP @@ -27,13 +24,13 @@ $(document).ready(function () { window.SpeechRecognition || window.webkitSpeechRecognition; let recognition = null; let isVoiceActive = false; - const magicWord = "salva"; // Parola magica scelta: "prossima" (fa andare alla riga successiva) + const magicWord = "salva"; // Parola magica per aggiungere nuova riga if (SpeechRecognition) { recognition = new SpeechRecognition(); - recognition.lang = "it-IT"; // Lingua italiana - recognition.continuous = true; // Ascolto continuo - recognition.interimResults = false; // Solo risultati finali per semplicità + recognition.lang = "it-IT"; + recognition.continuous = true; + recognition.interimResults = false; recognition.onresult = function (event) { const transcript = event.results[ @@ -43,11 +40,10 @@ $(document).ready(function () { .toLowerCase(); console.log("Transcript vocale:", transcript); - const $currentRow = $("#partsTableBody tr:last"); // Ultima riga corrente + const $currentRow = $("#partsTableBody tr:last"); const $descriptionInput = $currentRow.find(".part-description"); if (transcript.includes(magicWord)) { - // Rimuovi la parola magica e aggiungi il resto alla descrizione corrente const cleanedTranscript = transcript .replace(magicWord, "") .trim(); @@ -59,9 +55,8 @@ $(document).ready(function () { cleanedTranscript ).trim(), ); - $descriptionInput.trigger("blur"); // Salva se necessario + $descriptionInput.trigger("blur"); } - // Aggiungi nuova riga (simile a click su +) const maxPartNumber = Math.max( ...$("#partsTableBody tr") .map(function () { @@ -73,22 +68,19 @@ $(document).ready(function () { .get(), ); addNewRow(maxPartNumber + 1); - // Focus sulla nuova descrizione const $newRow = $("#partsTableBody tr:last"); $newRow.find(".part-description").focus(); } else { - // Aggiungi il transcript alla descrizione corrente $descriptionInput.val( ($descriptionInput.val() + " " + transcript).trim(), ); - $descriptionInput.trigger("blur"); // Salva se necessario + $descriptionInput.trigger("blur"); } }; recognition.onerror = function (event) { console.error("Errore riconoscimento vocale:", event.error); if (event.error === "no-speech" || event.error === "aborted") { - // Riavvia se necessario if (isVoiceActive) recognition.start(); } else { alert("Errore nel riconoscimento vocale: " + event.error); @@ -97,18 +89,15 @@ $(document).ready(function () { }; recognition.onend = function () { - if (isVoiceActive) { - recognition.start(); // Riavvia per ascolto continuo - } + if (isVoiceActive) recognition.start(); }; } else { console.warn("Riconoscimento vocale non supportato dal browser."); - $("#toggleVoiceBtn").hide(); // Nascondi pulsante se non supportato + $("#toggleVoiceBtn").hide(); } function toggleVoiceRecognition() { if (!recognition) return; - isVoiceActive = !isVoiceActive; const $btn = $("#toggleVoiceBtn"); if (isVoiceActive) { @@ -116,9 +105,7 @@ $(document).ready(function () { ' Stop Voce', ); recognition.start(); - // Focus iniziale sull'ultima descrizione - const $currentRow = $("#partsTableBody tr:last"); - $currentRow.find(".part-description").focus(); + $("#partsTableBody tr:last").find(".part-description").focus(); } else { $btn.removeClass("btn-danger") .addClass("btn-secondary") @@ -130,68 +117,69 @@ $(document).ready(function () { $("#toggleVoiceBtn").on("click", toggleVoiceRecognition); // =================== - // POPUP HANDLING + // MODAL HANDLING // =================== - const partsButtons = document.querySelectorAll(".parts-btn"); - const partsModal = document.getElementById("partsModal"); - const closeBtn = document.querySelector("#partsModal .close-btn"); - const overlay = document.querySelector(".overlay"); + $(".parts-btn").on("click", function () { + const iddatadb = $(this).data("iddatadb"); + const idquotations = $(this).data("idquotations"); + const rowIndex = $(this).data("row"); + const importRef = $("table tbody tr") + .eq(rowIndex) + .find("td") + .eq(1) + .text(); + const description = + $("table tbody tr").eq(rowIndex).find("td").eq(2).text() || + "Sconosciuto"; - partsButtons.forEach((button) => { - button.addEventListener("click", function () { - console.log("Pulsante Parts cliccato"); - const iddatadb = $(this).data("iddatadb"); - const rowIndex = $(this).data("row"); - const importRef = $("table tbody tr") - .eq(rowIndex) - .find("td") - .eq(1) - .text(); - const description = - $("table tbody tr").eq(rowIndex).find("td").eq(2).text() || - "Sconosciuto"; + $("#trfHeader").text( + `${iddatadb || idquotations} - ${importRef} - ${description}`, + ); + $("#partsModal") + .data("iddatadb", iddatadb) + .data("idquotations", idquotations); - $("#trfHeader").text(`${iddatadb} - ${importRef} - ${description}`); - $("#partsModal").data("iddatadb", iddatadb); + loadPhoto(iddatadb, idquotations); + loadExistingParts(iddatadb, idquotations); - loadPhoto(iddatadb); - loadExistingParts(iddatadb); - - if (partsModal) { - const modal = new bootstrap.Modal(partsModal); - modal.show(); - } else { - console.error("Modal Parts non trovato"); - } - }); + const modal = new bootstrap.Modal( + document.getElementById("partsModal"), + ); + modal.show(); }); - if (closeBtn) { - closeBtn.addEventListener("click", function () { - partsModal.style.display = "none"; - overlay.style.display = "none"; - document.body.style.pointerEvents = "auto"; - }); - } + $("#partsModal .close-btn, #partsModal").on("click", function (event) { + if (event.target === this) { + const modal = bootstrap.Modal.getInstance( + document.getElementById("partsModal"), + ); + modal.hide(); + } + }); - if (partsModal) { - window.addEventListener("click", function (event) { - if (event.target === partsModal) { - partsModal.style.display = "none"; - overlay.style.display = "none"; - document.body.style.pointerEvents = "auto"; - } - }); - } + $("#partsModal").on("hide.bs.modal", function (e) { + if ( + unsavedChanges && + !confirm("Hai modifiche non salvate. Vuoi davvero uscire?") + ) { + e.preventDefault(); + } + }); // =================== // PHOTO LOADERS // =================== - function loadPhoto(iddatadb) { + function loadPhoto(iddatadb, idquotations) { + const endpoint = idquotations + ? "load_photo_quotation.php" + : "load_photo.php"; + const data = idquotations + ? { idquotations: idquotations } + : { iddatadb: iddatadb }; $.ajax({ - url: "load_photo.php", + url: endpoint, method: "GET", - data: { iddatadb: iddatadb }, + data: data, success: function (response) { if (response.success) { if (response.photos && response.photos.length > 1) { @@ -203,7 +191,7 @@ $(document).ready(function () { loadSinglePhoto(response.photos[0]); } else { $("#samplePhoto").attr("src", ""); - alert("Nessuna foto trovata per questo TRF."); + alert("Nessuna foto trovata per questo elemento."); } } else { alert( @@ -213,35 +201,30 @@ $(document).ready(function () { } }, error: function (xhr, status, error) { - alert("Errore nel caricamento della foto: " + error); + alert( + `Errore nel caricamento della foto: ${error} (${xhr.status})`, + ); }, }); } function showPhotoSelector(photos) { const selectorContainer = $("#photoSelectorContainer"); - selectorContainer.empty(); - - const selector = $(''); + selectorContainer.empty().show(); + const selector = $( + '', + ); photos.forEach((photo, index) => { + const photoName = photo.split("/").pop(); const option = $("") .val(photo) - .text(`Photo ${index + 1}`); - if (photo.includes("/")) { - const photoName = photo.split("/").pop(); - option.text(`Photo ${index + 1} - ${photoName}`); - } + .text(`Photo ${index + 1} - ${photoName}`); selector.append(option); }); - selector.on("change", function () { - const selectedPhoto = $(this).val(); - loadSinglePhoto(selectedPhoto); + loadSinglePhoto($(this).val()); }); - selectorContainer.append(selector); - selectorContainer.show(); - if (photos.length > 0) { selector.val(photos[0]); loadSinglePhoto(photos[0]); @@ -250,52 +233,40 @@ $(document).ready(function () { function loadSinglePhoto(photoPath) { const img = $("#samplePhoto"); - img.off("load"); // avoid stacking multiple handlers - img.attr("src", photoPath); - + img.off("load").attr("src", photoPath); img.on("load", function () { const canvas = document.getElementById("photoCanvas"); const ctx = canvas.getContext("2d"); - const naturalWidth = img[0].naturalWidth; const naturalHeight = img[0].naturalHeight; - const parent = $(canvas).parent(); const maxW = parent.width(); const maxH = parent.height(); const scale = Math.min(maxW / naturalWidth, maxH / naturalHeight); - const displayWidth = Math.max(1, Math.round(naturalWidth * scale)); - const displayHeight = Math.max( - 1, - Math.round(naturalHeight * scale), - ); - photoData = { naturalWidth, naturalHeight, - displayWidth, - displayHeight, + displayWidth: Math.max(1, Math.round(naturalWidth * scale)), + displayHeight: Math.max(1, Math.round(naturalHeight * scale)), scale, }; canvas.width = naturalWidth; canvas.height = naturalHeight; - - canvas.style.width = `${displayWidth}px`; - canvas.style.height = `${displayHeight}px`; + canvas.style.width = `${photoData.displayWidth}px`; + canvas.style.height = `${photoData.displayHeight}px`; $("#markerContainer").css({ - width: `${displayWidth}px`, - height: `${displayHeight}px`, + width: `${photoData.displayWidth}px`, + height: `${photoData.displayHeight}px`, }); $("#descriptionList").css({ - maxWidth: `${Math.max(200, Math.round(displayWidth * 0.35))}px`, + maxWidth: `${Math.max(200, Math.round(photoData.displayWidth * 0.35))}px`, }); ctx.clearRect(0, 0, naturalWidth, naturalHeight); - ctx.drawImage(img.get(0), 0, 0, naturalWidth, naturalHeight); - + ctx.drawImage(img[0], 0, 0, naturalWidth, naturalHeight); updateMarkers(); updateDescriptions(); }); @@ -321,17 +292,16 @@ $(document).ready(function () { `; $("#partsTableBody").append(newRow); updateRowButtons(); - // Initialize color for the new part - const partNumber = nextPartNumber || 1; - partColors[partNumber] = defaultColor; + partColors[nextPartNumber || 1] = defaultColor; + markUnsaved(); } function updateRowButtons() { const rowCount = $("#partsTableBody tr").length; $("#partsTableBody tr").each(function () { - const $removeBtn = $(this).find(".remove-row"); - if (rowCount > 1) $removeBtn.show(); - else $removeBtn.hide(); + $(this) + .find(".remove-row") + .toggle(rowCount > 1); }); } @@ -366,10 +336,15 @@ $(document).ready(function () { const $row = $(this).closest("tr"); const partId = $row.data("part-id"); const partNumber = $row.find(".part-number").val(); + const iddatadb = $("#partsModal").data("iddatadb"); + const idquotations = $("#partsModal").data("idquotations"); + const endpoint = idquotations + ? "delete_part_quotation.php" + : "delete_part.php"; - if (partId !== "new" && partId !== undefined && partId !== null) { + if (partId && partId !== "new") { $.ajax({ - url: "delete_part.php", + url: endpoint, method: "POST", data: JSON.stringify({ part_id: partId }), contentType: "application/json", @@ -379,20 +354,14 @@ $(document).ready(function () { delete partColors[partNumber]; updateRowButtons(); updatePartsList(); - clearCanvasMarkers(false); // Preserve descriptions + clearCanvasMarkers(false); + markUnsaved(); } else { - alert("Errore nell'eliminazione: " + response.message); + alert(`Errore nell'eliminazione: ${response.message}`); } }, error: function (xhr, status, error) { - alert( - "Errore nell'eliminazione: " + - error + - ". Stato: " + - xhr.status + - " - " + - xhr.responseText, - ); + alert(`Errore nell'eliminazione: ${error} (${xhr.status})`); }, }); } else { @@ -400,6 +369,7 @@ $(document).ready(function () { delete partColors[partNumber]; updateRowButtons(); updatePartsList(); + markUnsaved(); } }); @@ -411,19 +381,24 @@ $(document).ready(function () { const $saveStatus = $row.find(".save-status"); const $saveLoading = $row.find(".save-loading"); const iddatadb = $("#partsModal").data("iddatadb"); + const idquotations = $("#partsModal").data("idquotations"); const isMix = partDescription.startsWith("Mix") ? "Y" : "N"; - const partId = $row.data("part-id") || null; + const endpoint = idquotations + ? "save_parts_quotation.php" + : "save_parts.php"; + const data = idquotations + ? { idquotations: idquotations } + : { iddatadb: iddatadb }; - if (partDescription && iddatadb) { + if (partDescription && (iddatadb || idquotations)) { $saveLoading.show(); $saveStatus.hide(); - $.ajax({ - url: "save_parts.php", + url: endpoint, method: "POST", data: JSON.stringify({ - iddatadb: iddatadb, + ...data, parts: [ { id: partId, @@ -435,23 +410,26 @@ $(document).ready(function () { }), contentType: "application/json", success: function (response) { + $saveLoading.hide(); if (response.success) { - $saveLoading.hide(); $saveStatus.show(); - updatePartsList(); if (response.part_id) { - $row.attr("data-part-id", response.part_id); - $row.data("part-id", response.part_id); + $row.attr("data-part-id", response.part_id).data( + "part-id", + response.part_id, + ); } setTimeout(() => $saveStatus.hide(), 2000); + updatePartsList(); } else { - alert("Errore nel salvataggio: " + response.message); - $saveLoading.hide(); + alert(`Errore nel salvataggio: ${response.message}`); } }, error: function (xhr, status, error) { - alert("Errore nel salvataggio delle parti: " + error); $saveLoading.hide(); + alert( + `Errore nel salvataggio delle parti: ${error} (${xhr.status})`, + ); }, }); } @@ -459,56 +437,56 @@ $(document).ready(function () { $(document).on("change", ".part-color", function () { const partNumber = $(this).closest("li").data("part-number"); - const partColor = $(this).val(); - partColors[partNumber] = partColor; + partColors[partNumber] = $(this).val(); updateMarkers(); markUnsaved(); }); - function loadExistingParts(iddatadb) { + function loadExistingParts(iddatadb, idquotations) { + const endpoint = idquotations + ? "load_parts_quotation.php" + : "load_parts.php"; + const data = idquotations + ? { idquotations: idquotations } + : { iddatadb: iddatadb }; $.ajax({ - url: "load_parts.php", + url: endpoint, method: "GET", - data: { iddatadb: iddatadb }, + data: data, success: function (response) { - if (response.success) { - $("#partsTableBody").empty(); - if (response.parts.length > 0) { - response.parts.forEach((part) => { - const defaultColor = - part.part_description.startsWith("Mix") - ? "#0000ff" - : "#ff0000"; - const newRow = ` - - - - - - - - - - - `; - $("#partsTableBody").append(newRow); - partColors[part.part_number] = defaultColor; - }); - } else { - addNewRow(1); - } - updateRowButtons(); - updatePartsList(); + $("#partsTableBody").empty(); + if (response.success && response.parts.length > 0) { + response.parts.forEach((part) => { + const defaultColor = part.part_description.startsWith( + "Mix", + ) + ? "#0000ff" + : "#ff0000"; + const newRow = ` + + + + + + + + + + + `; + $("#partsTableBody").append(newRow); + partColors[part.part_number] = defaultColor; + }); } else { - alert( - "Errore nel caricamento delle parti: " + - response.message, - ); addNewRow(1); } + updateRowButtons(); + updatePartsList(); }, error: function (xhr, status, error) { - alert("Errore nel caricamento delle parti: " + error); + alert( + `Errore nel caricamento delle parti: ${error} (${xhr.status})`, + ); addNewRow(1); }, }); @@ -545,42 +523,45 @@ $(document).ready(function () { function renumberParts() { const $rows = $("#partsTableBody tr"); const iddatadb = $("#partsModal").data("iddatadb"); + const idquotations = $("#partsModal").data("idquotations"); + const endpoint = idquotations + ? "renumber_parts_quotation.php" + : "renumber_parts.php"; + const data = idquotations + ? { idquotations: idquotations } + : { iddatadb: iddatadb }; let newPartColors = {}; - // Raccogli tutte le righe con i loro dati attuali let partsData = $rows .map(function (index) { const $row = $(this); - const partNumber = $row.find(".part-number").val(); - const partDescription = $row.find(".part-description").val(); - const partId = $row.data("part-id"); - return { partNumber, partDescription, partId }; + return { + partNumber: $row.find(".part-number").val(), + partDescription: $row.find(".part-description").val(), + partId: $row.data("part-id"), + }; }) .get(); - // Rinumera in modo sequenziale partsData.forEach((part, index) => { const newNumber = index + 1; newPartColors[newNumber] = partColors[part.partNumber] || "#ff0000"; part.partNumber = newNumber; }); - // Aggiorna i valori nella tabella $rows.each(function (index) { - const $row = $(this); - $row.find(".part-number").val(index + 1); + $(this) + .find(".part-number") + .val(index + 1); }); - // Aggiorna partColors partColors = newPartColors; - // Aggiorna i marker nelle annotazioni const currentPhoto = $("#samplePhoto").attr("src"); if (photoAnnotations[currentPhoto]) { photoAnnotations[currentPhoto].markers.forEach((marker) => { - const oldPartNumber = marker.partNumber; const newPartNumber = partsData.find( - (p) => p.partNumber == oldPartNumber, + (p) => p.partNumber == marker.partNumber, )?.partNumber; if (newPartNumber) { marker.partNumber = newPartNumber; @@ -589,7 +570,6 @@ $(document).ready(function () { }); } - // Salva le modifiche nel database const partsToSave = partsData.map((part) => ({ id: part.partId || null, part_number: part.partNumber, @@ -597,21 +577,12 @@ $(document).ready(function () { mix: part.partDescription.startsWith("Mix") ? "Y" : "N", })); - console.log( - "Dati inviati a renumber_parts.php:", - JSON.stringify({ iddatadb: iddatadb, parts: partsToSave }), - ); - $.ajax({ - url: "renumber_parts.php", + url: endpoint, method: "POST", - data: JSON.stringify({ - iddatadb: iddatadb, - parts: partsToSave, - }), + data: JSON.stringify({ ...data, parts: partsToSave }), contentType: "application/json", success: function (response) { - console.log("Risposta da renumber_parts.php:", response); if (response.success) { $rows.each(function (index) { const $row = $(this); @@ -620,8 +591,10 @@ $(document).ready(function () { ? response.part_ids[index] : $row.data("part-id"); if (newPartId) { - $row.attr("data-part-id", newPartId); - $row.data("part-id", newPartId); + $row.attr("data-part-id", newPartId).data( + "part-id", + newPartId, + ); } const $saveStatus = $row.find(".save-status"); const $saveLoading = $row.find(".save-loading"); @@ -634,20 +607,14 @@ $(document).ready(function () { updateDescriptions(); markUnsaved(); } else { - console.error("Errore dal server:", response.message); alert( - "Errore nella rinumerazione delle parti: " + - response.message, + `Errore nella rinumerazione delle parti: ${response.message}`, ); } }, error: function (xhr, status, error) { - console.error("Errore AJAX:", status, error, xhr.responseText); alert( - "Errore nella rinumerazione delle parti: " + - error + - " - " + - xhr.responseText, + `Errore nella rinumerazione delle parti: ${error} (${xhr.status})`, ); }, }); @@ -672,7 +639,6 @@ $(document).ready(function () { const $descriptionInput = $mixRow.find(".part-description"); let currentDescription = $descriptionInput.val().trim(); - if (currentDescription === "Mix") { currentDescription = `Mix ${partDescription}`; } else if (!currentDescription.includes(partDescription)) { @@ -696,13 +662,9 @@ $(document).ready(function () { $(this).addClass("active").siblings().removeClass("active"); }); - $("#showMixParts").on("change", function () { - updatePartsList(); - }); + $("#showMixParts").on("change", updatePartsList); + $("#renumberPartsBtn").on("click", renumberParts); - $("#renumberPartsBtn").on("click", function () { - renumberParts(); - }); // =================== // MARKERS & DESCRIPTIONS // =================== @@ -711,15 +673,11 @@ $(document).ready(function () { $("#markerContainer").on("click", function (e) { if (selectedPartNumber === null) return; - const rect = canvas.getBoundingClientRect(); - const clickX = e.clientX - rect.left; - const clickY = e.clientY - rect.top; - - const x = clickX / photoData.scale; // convert to NATURAL coords - const y = clickY / photoData.scale; - + const x = (e.clientX - rect.left) / photoData.scale; + const y = (e.clientY - rect.top) / photoData.scale; const currentPhoto = $("#samplePhoto").attr("src"); + if (!photoAnnotations[currentPhoto]) { photoAnnotations[currentPhoto] = { markers: [], @@ -729,10 +687,10 @@ $(document).ready(function () { } const partColor = partColors[selectedPartNumber] || "#ff0000"; - const existingMarker = photoAnnotations[currentPhoto].markers.find( (m) => m.partNumber == selectedPartNumber, ); + if (existingMarker) { existingMarker.x = x; existingMarker.y = y; @@ -749,16 +707,13 @@ $(document).ready(function () { updateMarkers(); updateDescriptions(); markUnsaved(); - selectedPartNumber = null; $("#partsList li").removeClass("active"); }); function updateMarkers() { const markerContainer = $("#markerContainer"); - markerContainer.empty(); - - markerContainer.css({ + markerContainer.empty().css({ width: `${photoData.displayWidth}px`, height: `${photoData.displayHeight}px`, }); @@ -769,10 +724,9 @@ $(document).ready(function () { hasDescriptions: false, descriptionPosition: { x: 10, y: 10 }, }; - const markers = annotations.markers; const showMixParts = $("#showMixParts").is(":checked"); - markers.forEach((marker) => { + annotations.markers.forEach((marker) => { const partRow = $("#partsTableBody tr").filter(function () { return $(this).find(".part-number").val() == marker.partNumber; }); @@ -781,15 +735,13 @@ $(document).ready(function () { !showMixParts && partDescription && partDescription.startsWith("Mix") - ) { + ) return; - } const scaledX = marker.x * photoData.scale; const scaledY = marker.y * photoData.scale; const markerColor = marker.color || partColors[marker.partNumber] || "#ff0000"; - const $marker = $( `
    ${marker.partNumber}
    `, ).css({ @@ -822,19 +774,15 @@ $(document).ready(function () { if (!isDragging) return; let currentX = e.clientX - initialX; let currentY = e.clientY - initialY; - const maxX = photoData.displayWidth - $element.width(); const maxY = photoData.displayHeight - $element.height(); - currentX = Math.max(0, Math.min(currentX, maxX)); currentY = Math.max(0, Math.min(currentY, maxY)); - $element.css({ left: currentX + "px", top: currentY + "px" }); if (item && item.partNumber) { item.x = (currentX + 8) / photoData.scale; item.y = (currentY + 8) / photoData.scale; - markUnsaved(); } else { const currentPhoto = $("#samplePhoto").attr("src"); if (photoAnnotations[currentPhoto]) { @@ -842,9 +790,9 @@ $(document).ready(function () { (currentX + 5) / photoData.scale; photoAnnotations[currentPhoto].descriptionPosition.y = (currentY + 5) / photoData.scale; - markUnsaved(); } } + markUnsaved(); }); $(document).on("mouseup.dragMarker", function () { @@ -863,12 +811,11 @@ $(document).ready(function () { descriptionPosition: { x: 10, y: 10 }, }; const showMixParts = $("#showMixParts").is(":checked"); - const descriptionList = $("#descriptionList"); descriptionList.empty(); if (!annotations.hasDescriptions) { - descriptionList.css("display", "none"); + descriptionList.hide(); return; } @@ -893,39 +840,37 @@ $(document).ready(function () { partsList.forEach((part) => descriptionList.append(`
    ${part}
    `), ); - - updateMarkers(); + makeDraggable(descriptionList); } function clearCanvasMarkers(clearDescriptions = true) { const currentPhoto = $("#samplePhoto").attr("src"); - if (clearDescriptions) { - if (photoAnnotations[currentPhoto]) { - photoAnnotations[currentPhoto].hasDescriptions = false; - photoAnnotations[currentPhoto].descriptionPosition = { - x: 10, - y: 10, - }; - } - $("#descriptionList").css("display", "none"); + if (clearDescriptions && photoAnnotations[currentPhoto]) { + photoAnnotations[currentPhoto].hasDescriptions = false; + photoAnnotations[currentPhoto].descriptionPosition = { + x: 10, + y: 10, + }; } $("#markerContainer").empty(); - const canvas = document.getElementById("photoCanvas"); const ctx = canvas.getContext("2d"); - canvas.width = photoData.naturalWidth; canvas.height = photoData.naturalHeight; canvas.style.width = `${photoData.displayWidth}px`; canvas.style.height = `${photoData.displayHeight}px`; - - const img = $("#samplePhoto"); ctx.clearRect(0, 0, canvas.width, canvas.height); - if (img[0].naturalWidth) { - ctx.drawImage(img.get(0), 0, 0, canvas.width, canvas.height); + if ($("#samplePhoto")[0].naturalWidth) { + ctx.drawImage( + $("#samplePhoto")[0], + 0, + 0, + canvas.width, + canvas.height, + ); } - markUnsaved(); updateMarkers(); + markUnsaved(); } function undoLastMarker() { @@ -952,59 +897,27 @@ $(document).ready(function () { } photoAnnotations[currentPhoto].hasDescriptions = true; updateDescriptions(); - makeDraggable($("#descriptionList")); markUnsaved(); }); $("#removeAnnotationsBtn").on("click", function () { - clearCanvasMarkers(true); // Remove only descriptions + clearCanvasMarkers(true); }); - $("#undoMarkerBtn").on("click", function () { - undoLastMarker(); - }); + $("#undoMarkerBtn").on("click", undoLastMarker); - let unsavedChanges = false; - - // --- helper functions --- - function markUnsaved() { - if (!unsavedChanges) { - unsavedChanges = true; - $("#savePhotoBtn").addClass("unsaved").text("⚠️ Salva Modifiche"); - } - } - - function clearUnsaved() { - unsavedChanges = false; - $("#savePhotoBtn").removeClass("unsaved").text("Salva Foto con Nome"); - } - - // --- event listeners --- - $(document).on("input change", "#partsTableBody input", markUnsaved); - $(document).on("click", ".add-row, .add-mix-row, .remove-row", markUnsaved); - $(document).on("markerChanged descriptionChanged", markUnsaved); - - // --- modal close protection --- - $("#partsModal").on("hide.bs.modal", function (e) { - if (unsavedChanges) { - if (!confirm("Hai modifiche non salvate. Vuoi davvero uscire?")) { - e.preventDefault(); - } - } - }); - - // --- SAVE BUTTON --- + // =================== + // SAVE PHOTO + // =================== $("#savePhotoBtn").on("click", function () { const canvas = document.getElementById("photoCanvas"); const ctx = canvas.getContext("2d"); const img = $("#samplePhoto"); - - const naturalWidth = img.get(0).naturalWidth; - const naturalHeight = img.get(0).naturalHeight; + const naturalWidth = img[0].naturalWidth; + const naturalHeight = img[0].naturalHeight; canvas.width = naturalWidth; canvas.height = naturalHeight; - - ctx.drawImage(img.get(0), 0, 0, naturalWidth, naturalHeight); + ctx.drawImage(img[0], 0, 0, naturalWidth, naturalHeight); const currentPhoto = $("#samplePhoto").attr("src"); const annotations = photoAnnotations[currentPhoto] || { @@ -1034,7 +947,6 @@ $(document).ready(function () { const textHeight = fontSize + 8; const boxWidth = Math.round(naturalWidth * 0.28); const boxHeight = partsList.length * textHeight + 25; - const x = annotations.descriptionPosition.x; const y = annotations.descriptionPosition.y; @@ -1043,12 +955,10 @@ $(document).ready(function () { ctx.shadowBlur = 8; ctx.shadowOffsetX = 3; ctx.shadowOffsetY = 3; - ctx.fillStyle = "rgba(255, 255, 255, 0.9)"; ctx.beginPath(); ctx.roundRect(x, y, boxWidth, boxHeight, 12); ctx.fill(); - ctx.restore(); ctx.fillStyle = "#111111"; @@ -1058,8 +968,7 @@ $(document).ready(function () { } } - const markers = annotations.markers; - markers.forEach((marker) => { + annotations.markers.forEach((marker) => { const partRow = $("#partsTableBody tr").filter(function () { return $(this).find(".part-number").val() == marker.partNumber; }); @@ -1068,9 +977,8 @@ $(document).ready(function () { !showMixParts && partDescription && partDescription.startsWith("Mix") - ) { + ) return; - } const x = marker.x; const y = marker.y; @@ -1081,13 +989,11 @@ $(document).ready(function () { ctx.beginPath(); ctx.arc(x, y, radius, 0, 2 * Math.PI); - ctx.fillStyle = markerColor; // Use the stored color + ctx.fillStyle = markerColor; ctx.fill(); - ctx.lineWidth = 3; - ctx.strokeStyle = markerColor; // Use the same color for the border + ctx.strokeStyle = markerColor; ctx.stroke(); - ctx.fillStyle = "#ffffff"; ctx.font = `bold ${fontSize}px Arial`; ctx.textAlign = "center"; @@ -1098,51 +1004,63 @@ $(document).ready(function () { const dataURL = canvas.toDataURL("image/png"); const timestamp = new Date().toISOString().replace(/[:.]/g, "-"); const iddatadb = $("#partsModal").data("iddatadb"); - const defaultName = `photo_${iddatadb}_${timestamp}.png`; + const idquotations = $("#partsModal").data("idquotations"); + const id = iddatadb || idquotations; + const endpoint = idquotations + ? "save_annotated_photo_quotation.php" + : "save_annotated_photo.php"; + const dataParam = idquotations + ? { idquotations: id } + : { iddatadb: id }; + const defaultName = `photo_${id}_${timestamp}.png`; const newName = prompt( "Inserisci il nome del file (senza estensione):", defaultName.split(".png")[0], ); - if (newName) { - const finalName = newName + "_" + timestamp + ".png"; + const finalName = `${newName}_${timestamp}.png`; $.ajax({ - url: "save_annotated_photo.php", + url: endpoint, method: "POST", - data: { - dataURL: dataURL, - filename: finalName, - iddatadb: iddatadb, - }, + data: { dataURL: dataURL, filename: finalName, ...dataParam }, success: function (response) { if (response.success) { alert( - "Foto salvata con successo: " + response.file_path, + `Foto salvata con successo: ${response.file_path}`, ); $("#samplePhoto").attr("src", response.file_path); - loadPhoto(iddatadb); - clearCanvasMarkers(false); // Preserve descriptions + loadPhoto(iddatadb, idquotations); + clearCanvasMarkers(false); clearUnsaved(); } else { - alert("Errore: " + response.message); + alert(`Errore: ${response.message}`); } }, error: function (xhr, status, error) { - alert("Errore Ajax: " + error); + alert( + `Errore nel salvataggio della foto: ${error} (${xhr.status})`, + ); }, }); } }); // =================== - // DEBUG HOVER LOGS + // HELPER FUNCTIONS // =================== - $(document).on("mouseenter", "tr", function () { - // console.log("Mouse entrato su riga"); - }); + function markUnsaved() { + if (!unsavedChanges) { + unsavedChanges = true; + $("#savePhotoBtn").addClass("unsaved").text("⚠️ Salva Modifiche"); + } + } - $(document).on("mouseleave", "tr", function () { - // console.log("Mouse uscito da riga"); - }); + function clearUnsaved() { + unsavedChanges = false; + $("#savePhotoBtn").removeClass("unsaved").text("Salva Foto con Nome"); + } + + $(document).on("input change", "#partsTableBody input", markUnsaved); + $(document).on("click", ".add-row, .add-mix-row, .remove-row", markUnsaved); }); diff --git a/public/userarea/photos.js b/public/userarea/photos.js index c499ac3..bf22028 100644 --- a/public/userarea/photos.js +++ b/public/userarea/photos.js @@ -1,19 +1,21 @@ document.addEventListener("DOMContentLoaded", function () { // Funzione per caricare il contenuto del popup - async function loadPopupContent(iddatadb) { + async function loadPopupContent(iddatadb, idquotations) { const popupContent = document.getElementById("popupContent"); if (!popupContent) { console.error("Elemento popupContent non trovato"); return; } try { - const response = await fetch( - `photos_popup.php?iddatadb=${iddatadb}`, - ); + const endpoint = idquotations + ? `photos_popup.php?idquotations=${idquotations}` + : `photos_popup.php?iddatadb=${iddatadb}`; + console.log("Caricamento popup da:", endpoint); + const response = await fetch(endpoint); if (!response.ok) throw new Error("Errore nella risposta del server"); popupContent.innerHTML = await response.text(); - attachPhotoEventListeners(iddatadb); + attachPhotoEventListeners(iddatadb, idquotations); } catch (error) { popupContent.innerHTML = `

    Errore durante il caricamento: ${error.message}

    `; console.error("Errore in loadPopupContent:", error); @@ -21,7 +23,7 @@ document.addEventListener("DOMContentLoaded", function () { } // Funzione per gestire la webcam - function setupWebcam(iddatadb) { + function setupWebcam(iddatadb, idquotations) { const openWebcamBtn = document.getElementById("openWebcamBtn"); const webcamArea = document.getElementById("webcamArea"); const webcamVideo = document.getElementById("webcamVideo"); @@ -158,7 +160,7 @@ document.addEventListener("DOMContentLoaded", function () { if (loader) { loader.style.display = "flex"; } - await handleFiles([file], iddatadb); + await handleFiles([file], iddatadb, idquotations); if (stream) { stream.getTracks().forEach((track) => track.stop()); stream = null; @@ -171,7 +173,7 @@ document.addEventListener("DOMContentLoaded", function () { }); } - async function handleFiles(files, iddatadb) { + async function handleFiles(files, iddatadb, idquotations) { const loader = document.getElementById("loader"); if (!loader) { console.error("Elemento loader non trovato"); @@ -193,7 +195,12 @@ document.addEventListener("DOMContentLoaded", function () { const formData = new FormData(); formData.append("photo", file); - formData.append("iddatadb", iddatadb); + if (idquotations) { + formData.append("idquotations", idquotations); + } else { + formData.append("iddatadb", iddatadb); + } + try { const response = await fetch("upload_photo.php", { method: "POST", @@ -201,7 +208,7 @@ document.addEventListener("DOMContentLoaded", function () { }); const result = await response.json(); if (result.success) { - loadPopupContent(iddatadb); + loadPopupContent(iddatadb, idquotations); } else { alert("Errore durante il caricamento: " + result.message); } @@ -213,7 +220,7 @@ document.addEventListener("DOMContentLoaded", function () { } } - function attachPhotoEventListeners(iddatadb) { + function attachPhotoEventListeners(iddatadb, idquotations) { const dropArea = document.getElementById("dropArea"); const photoInput = document.getElementById("photoInput"); const photosModal = document.getElementById("photosModal"); @@ -257,7 +264,7 @@ document.addEventListener("DOMContentLoaded", function () { (e) => { const files = e.dataTransfer.files; if (files.length > 0) { - handleFiles(files, iddatadb); + handleFiles(files, iddatadb, idquotations); } }, false, @@ -276,7 +283,7 @@ document.addEventListener("DOMContentLoaded", function () { (e) => { const files = e.target.files; if (files.length > 0) { - handleFiles(files, iddatadb); + handleFiles(files, iddatadb, idquotations); } e.target.value = ""; }, @@ -298,7 +305,7 @@ document.addEventListener("DOMContentLoaded", function () { }); const result = await response.json(); if (result.success) { - loadPopupContent(iddatadb); + loadPopupContent(iddatadb, idquotations); } else { alert( "Errore durante l'eliminazione: " + @@ -336,7 +343,7 @@ document.addEventListener("DOMContentLoaded", function () { } }); - setupWebcam(iddatadb); + setupWebcam(iddatadb, idquotations); const createCollageBtn = document.getElementById("createCollageBtn"); if (createCollageBtn) { @@ -869,9 +876,9 @@ document.addEventListener("DOMContentLoaded", function () { type: "image/jpeg", }); - await handleFiles([file], iddatadb); + await handleFiles([file], iddatadb, idquotations); document.getElementById("collageModal").style.display = "none"; - loadPopupContent(iddatadb); + loadPopupContent(iddatadb, idquotations); }); } @@ -992,8 +999,14 @@ document.addEventListener("DOMContentLoaded", function () { if (photosButtons.length && photosModal && closeBtn) { photosButtons.forEach((button) => { button.addEventListener("click", function () { - const iddatadb = this.getAttribute("data-iddatadb"); - loadPopupContent(iddatadb); + const iddatadb = this.getAttribute("data-iddatadb") || null; + const idquotations = + this.getAttribute("data-idquotations") || null; + console.log("Apertura modale foto con:", { + iddatadb, + idquotations, + }); + loadPopupContent(iddatadb, idquotations); photosModal.style.display = "block"; document.querySelector(".overlay").style.display = "none"; }); diff --git a/public/userarea/photos_popup.php b/public/userarea/photos_popup.php index 1121e41..e7330b0 100644 --- a/public/userarea/photos_popup.php +++ b/public/userarea/photos_popup.php @@ -17,69 +17,131 @@ use Endroid\QrCode\QrCode; use Endroid\QrCode\RoundBlockSizeMode; use Endroid\QrCode\Writer\PngWriter; +// Abilita logging per debug +ini_set('display_errors', 1); +ini_set('display_startup_errors', 1); +error_reporting(E_ALL); +ini_set('log_errors', 1); +ini_set('error_log', __DIR__ . '/photos_popup_debug.log'); + +// Log iniziale +error_log("Richiesta a photos_popup.php: " . print_r($_GET, true)); + // Carica le variabili d'ambiente try { $dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../../'); $dotenv->load(); } catch (Exception $e) { error_log("Errore nel caricamento del file .env: " . $e->getMessage()); - echo json_encode(['error' => 'Errore nel caricamento del file di configurazione']); +?> + + 'Variabile BASE_URL non definita']); +?> + +getConnection(); -// Verifica che l'iddatadb sia stato passato -if (!isset($_GET['iddatadb']) || empty($_GET['iddatadb'])) { - echo json_encode(['error' => 'ID riga non fornito']); +// Verifica che almeno uno degli ID sia passato +$iddatadb = isset($_GET['iddatadb']) && !empty($_GET['iddatadb']) ? intval($_GET['iddatadb']) : null; +$idquotations = isset($_GET['idquotations']) && !empty($_GET['idquotations']) ? intval($_GET['idquotations']) : null; + +if (!$iddatadb && !$idquotations) { + error_log("Errore: ID riga o ID quotations non fornito"); +?> + +prepare("SELECT iddatadb, sample_code FROM datadb WHERE iddatadb = ?"); -$stmt->execute([$iddatadb]); -$row = $stmt->fetch(PDO::FETCH_ASSOC); - -if (!$row) { - echo json_encode(['error' => 'Riga non trovata']); +if ($iddatadb && $idquotations) { + error_log("Errore: Non è possibile specificare sia iddatadb che idquotations"); +?> + + prepare("SELECT {$paramName}, {$field} FROM {$table} WHERE {$paramName} = ?"); + $stmt->execute([$paramValue]); + $row = $stmt->fetch(PDO::FETCH_ASSOC); + + if (!$row) { + error_log("Errore: Riga non trovata per {$paramName} = {$paramValue}"); + ?> + + getMessage()); + ?> + +prepare("SELECT id, file_path, file_name, description, uploaded_at FROM datadb_photos WHERE iddatadb = ? ORDER BY uploaded_at DESC"); -$stmt->execute([$iddatadb]); -$photos = $stmt->fetchAll(PDO::FETCH_ASSOC); +try { + $stmt = $pdo->prepare("SELECT id, file_path, file_name, description, uploaded_at FROM {$photoTable} WHERE {$photoParamName} = ? ORDER BY uploaded_at DESC"); + $stmt->execute([$paramValue]); + $photos = $stmt->fetchAll(PDO::FETCH_ASSOC); +} catch (Exception $e) { + error_log("Errore query foto: " . $e->getMessage()); + $photos = []; // Imposta array vuoto in caso di errore +} // Definisci il percorso base per le foto $photoBasePath = '../photostrf/'; // Usa la variabile d'ambiente BASE_URL -$baseUrl = rtrim($_ENV['BASE_URL'], '/'); // Rimuove eventuali slash finali -$uploadUrl = $baseUrl . "/upload_photos_mobile.php?iddatadb=" . $iddatadb; +$baseUrl = rtrim($_ENV['BASE_URL'], '/'); +$uploadUrl = $iddatadb + ? $baseUrl . "/upload_photos_mobile.php?iddatadb=" . $iddatadb + : $baseUrl . "/upload_photos_mobile.php?idquotations=" . $idquotations; // Genera il QR code con endroid/qr-code 6.0.6 $qrCodeDir = '../photostrf/qrcodes/'; if (!is_dir($qrCodeDir)) { mkdir($qrCodeDir, 0755, true); } -$qrCodeFile = $qrCodeDir . "qrcode_{$iddatadb}.png"; +$qrCodeFile = $qrCodeDir . "qrcode_{$id}.png"; $writer = new PngWriter(); - -// Crea il QR code usando il costruttore $qrCode = new QrCode( data: $uploadUrl, encoding: new Encoding('UTF-8'), @@ -103,13 +165,13 @@ $result->saveToFile($qrCodeFile);

    Manage Photos

    -

    ID Row:

    -

    Sample Code:

    +

    ID:

    +

    Code:

    Scan the QR Code with the mobile to take photo with camera:

    - QR Code + QR Code

    @@ -136,7 +198,7 @@ $result->saveToFile($qrCodeFile);
    -

    No Photos present.

    +

    Nessuna foto presente.

    + Gestione Quotations - <?= htmlspecialchars($titlewebsite, ENT_QUOTES, 'UTF-8'); ?> @@ -212,8 +250,8 @@ if (isset($_GET['edit_id'])) {
    Azioni
    - - + +
    @@ -377,6 +415,15 @@ if (isset($_GET['edit_id'])) { // I bottoni photos e parts usano gli script esistenti (photos.js, parts.js), passando data-idquotations }); + + + + \ No newline at end of file diff --git a/public/userarea/renumber_parts_quotation.php b/public/userarea/renumber_parts_quotation.php new file mode 100644 index 0000000..3c455cb --- /dev/null +++ b/public/userarea/renumber_parts_quotation.php @@ -0,0 +1,63 @@ +getConnection(); + +$data = json_decode(file_get_contents('php://input'), true); + +$idquotations = $data['idquotations'] ?? null; +$parts = $data['parts'] ?? []; + +if (!$idquotations || empty($parts)) { + echo json_encode(['success' => false, 'message' => 'Dati mancanti']); + exit; +} + +try { + $pdo->beginTransaction(); + + // Elimina tutte le parti esistenti per idquotations + $stmt = $pdo->prepare("DELETE FROM identification_parts WHERE idquotations = :idquotations"); + $stmt->execute([':idquotations' => $idquotations]); + + // Prepara l'inserimento delle nuove parti + $stmt = $pdo->prepare(" + INSERT INTO identification_parts + (idquotations, part_number, part_description, mix, created_at, updated_at) + VALUES (:idquotations, :part_number, :part_description, :mix, NOW(), NOW()) + "); + + $part_ids = []; + foreach ($parts as $part) { + $partNumber = $part['part_number'] ?? null; + $partDescription = $part['part_description'] ?? ''; + $mix = $part['mix'] ?? 'N'; + + if (!$partNumber || !$partDescription) { + throw new PDOException("Numero parte o descrizione mancante per parte: " . json_encode($part)); + } + + $stmt->execute([ + ':idquotations' => $idquotations, + ':part_number' => $partNumber, + ':part_description' => $partDescription, + ':mix' => $mix + ]); + $part_ids[] = $pdo->lastInsertId(); + } + + $pdo->commit(); + echo json_encode([ + 'success' => true, + 'part_ids' => $part_ids, + 'message' => 'Parti rinumerate con successo' + ]); +} catch (PDOException $e) { + $pdo->rollBack(); + echo json_encode([ + 'success' => false, + 'message' => 'Errore nel salvataggio: ' . $e->getMessage() + ]); +} diff --git a/public/userarea/save_annotated_photo_quotation.php b/public/userarea/save_annotated_photo_quotation.php new file mode 100644 index 0000000..fff1d05 --- /dev/null +++ b/public/userarea/save_annotated_photo_quotation.php @@ -0,0 +1,59 @@ + false, 'message' => 'Dati mancanti']); + exit; +} + +try { + // Verifica che idquotations esista nella tabella quotations + $dbHandler = DBHandlerSelect::getInstance(); + $pdo = $dbHandler->getConnection(); + $stmt = $pdo->prepare("SELECT idquotations FROM quotations WHERE idquotations = :idquotations"); + $stmt->execute([':idquotations' => $idquotations]); + if (!$stmt->fetch()) { + echo json_encode(['success' => false, 'message' => 'idquotations non valido']); + exit; + } + + // Salva l'immagine + $data = explode(',', $dataURL)[1]; + $decodedData = base64_decode($data); + + $dirPath = '../photostrf/annotated'; + if (!file_exists($dirPath)) { + mkdir($dirPath, 0777, true); + } + + $filePath = $dirPath . '/' . $filename; + file_put_contents($filePath, $decodedData); + + // Registra nel database + $stmt = $pdo->prepare(" + INSERT INTO datadb_photos (idquotations, file_path, file_name, uploaded_at, uploaded_by) + VALUES (:idquotations, :file_path, :file_name, NOW(), :uploaded_by) + "); + $stmt->execute([ + ':idquotations' => $idquotations, + ':file_path' => $filePath, + ':file_name' => $filename, + ':uploaded_by' => $iduserlogin + ]); + + echo json_encode([ + 'success' => true, + 'file_path' => $filePath, + 'message' => 'Foto salvata con successo e registrata nel DB' + ]); +} catch (Exception $e) { + echo json_encode(['success' => false, 'message' => 'Errore: ' . $e->getMessage()]); +} diff --git a/public/userarea/save_parts_quotation.php b/public/userarea/save_parts_quotation.php new file mode 100644 index 0000000..2445f70 --- /dev/null +++ b/public/userarea/save_parts_quotation.php @@ -0,0 +1,60 @@ +getConnection(); + +$data = json_decode(file_get_contents('php://input'), true); + +$idquotations = $data['idquotations'] ?? null; +$parts = $data['parts'] ?? []; + +if (!$idquotations || empty($parts)) { + echo json_encode(['success' => false, 'message' => 'Dati mancanti']); + exit; +} + +$part = $parts[0]; +$partId = $part['id'] ?? null; +$partNumber = $part['part_number'] ?? null; +$partDescription = $part['part_description'] ?? ''; +$mix = $part['mix'] ?? 'N'; + +if ($partDescription) { + try { + if ($partId) { + // UPDATE se esiste già la parte + $stmt = $pdo->prepare("UPDATE identification_parts + SET part_number = :part_number, + part_description = :part_description, + mix = :mix, + updated_at = NOW() + WHERE id = :id"); + $stmt->execute([ + ':id' => $partId, + ':part_number' => $partNumber, + ':part_description' => $partDescription, + ':mix' => $mix + ]); + echo json_encode(['success' => true, 'part_id' => $partId, 'part_number' => $partNumber, 'message' => 'Parte aggiornata con successo']); + } else { + // INSERT se è nuova + $stmt = $pdo->prepare("INSERT INTO identification_parts + (idquotations, part_number, part_description, mix, created_at, updated_at) + VALUES (:idquotations, :part_number, :part_description, :mix, NOW(), NOW())"); + $stmt->execute([ + ':idquotations' => $idquotations, + ':part_number' => $partNumber, + ':part_description' => $partDescription, + ':mix' => $mix + ]); + $newId = $pdo->lastInsertId(); + echo json_encode(['success' => true, 'part_id' => $newId, 'part_number' => $partNumber, 'message' => 'Parte salvata con successo']); + } + } catch (PDOException $e) { + echo json_encode(['success' => false, 'message' => 'Errore nel salvataggio: ' . $e->getMessage()]); + } +} else { + echo json_encode(['success' => false, 'message' => 'Descrizione mancante']); +} diff --git a/public/userarea/upload_photo.php b/public/userarea/upload_photo.php index 64cb8dc..9db0284 100644 --- a/public/userarea/upload_photo.php +++ b/public/userarea/upload_photo.php @@ -4,13 +4,23 @@ include('include/headscript.php'); header('Content-Type: application/json'); -if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !isset($_FILES['photo']) || !isset($_POST['iddatadb'])) { +if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !isset($_FILES['photo']) || (!isset($_POST['iddatadb']) && !isset($_POST['idquotations']))) { echo json_encode(['success' => false, 'message' => 'Richiesta non valida']); exit; } -$iddatadb = intval($_POST['iddatadb']); -$photo = $_FILES['photo']; +$iddatadb = isset($_POST['iddatadb']) ? intval($_POST['iddatadb']) : null; +$idquotations = isset($_POST['idquotations']) ? intval($_POST['idquotations']) : null; + +if ($iddatadb && $idquotations) { + echo json_encode(['success' => false, 'message' => 'Non è possibile specificare sia iddatadb che idquotations']); + exit; +} + +if (!$iddatadb && !$idquotations) { + echo json_encode(['success' => false, 'message' => 'ID TRF o ID quotations mancante']); + exit; +} // Verifica che l'utente loggato esista in auth_users $db = DBHandlerSelect::getInstance(); @@ -25,6 +35,28 @@ if (!$userExists) { exit; } +// Verifica l'esistenza dell'ID nella tabella corrispondente +try { + if ($iddatadb) { + $stmt = $pdo->prepare("SELECT iddatadb FROM datadb WHERE iddatadb = ?"); + $stmt->execute([$iddatadb]); + if (!$stmt->fetch()) { + echo json_encode(['success' => false, 'message' => 'iddatadb non valido']); + exit; + } + } else { + $stmt = $pdo->prepare("SELECT id FROM quotations WHERE id = ?"); + $stmt->execute([$idquotations]); + if (!$stmt->fetch()) { + echo json_encode(['success' => false, 'message' => 'idquotations non valido']); + exit; + } + } +} catch (PDOException $e) { + echo json_encode(['success' => false, 'message' => 'Errore nella validazione: ' . $e->getMessage()]); + exit; +} + // Usa un percorso assoluto per la cartella photostrf $uploadDir = realpath(__DIR__ . '/../photostrf') . '/'; if (!is_dir($uploadDir)) { @@ -41,6 +73,7 @@ if (!is_writable($uploadDir)) { } // Verifica che il file sia un'immagine (inclusi HEIC/HEIF) +$photo = $_FILES['photo']; $allowedTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/heic', 'image/heif']; if (!in_array($photo['type'], $allowedTypes)) { echo json_encode(['success' => false, 'message' => 'Il file deve essere un\'immagine (JPEG, PNG, GIF, HEIC)']); @@ -53,10 +86,11 @@ if (!file_exists($photo['tmp_name']) || !is_uploaded_file($photo['tmp_name'])) { exit; } -// Rinomina il file: idriga-timestamp-nomeoriginale.estensione +// Rinomina il file: id-timestamp-nomeoriginale.estensione $timestamp = date('YmdHis'); $originalName = pathinfo($photo['name'], PATHINFO_FILENAME); $extension = strtolower(pathinfo($photo['name'], PATHINFO_EXTENSION)); +$id = $iddatadb ?: $idquotations; // Se il file è HEIC/HEIF, convertilo in JPEG if (in_array($photo['type'], ['image/heic', 'image/heif'])) { @@ -74,11 +108,11 @@ if (in_array($photo['type'], ['image/heic', 'image/heif'])) { } // Crea un nuovo nome per il file JPEG - $newFileName = "{$iddatadb}-{$timestamp}-{$originalName}.jpg"; + $newFileName = "{$id}-{$timestamp}-{$originalName}.jpg"; $destination = $uploadDir . $newFileName; // Salva l'immagine come JPEG - if (!imagejpeg($image, $destination, 90)) { // 90 è la qualità JPEG + if (!imagejpeg($image, $destination, 90)) { imagedestroy($image); echo json_encode(['success' => false, 'message' => 'Errore durante la conversione del file HEIC in JPEG']); exit; @@ -88,7 +122,7 @@ if (in_array($photo['type'], ['image/heic', 'image/heif'])) { imagedestroy($image); } else { // Per i formati non HEIC, usa il nome e l'estensione originali - $newFileName = "{$iddatadb}-{$timestamp}-{$originalName}.{$extension}"; + $newFileName = "{$id}-{$timestamp}-{$originalName}.{$extension}"; $destination = $uploadDir . $newFileName; // Salva il file @@ -105,7 +139,12 @@ error_log("Destination: $destination"); error_log("Temp file: " . $photo['tmp_name']); // Salva il riferimento nel database -$stmt = $pdo->prepare("INSERT INTO datadb_photos (iddatadb, file_path, file_name, uploaded_by) VALUES (?, ?, ?, ?)"); -$stmt->execute([$iddatadb, $newFileName, $newFileName, $iduserlogin]); +try { + $stmt = $pdo->prepare("INSERT INTO datadb_photos (iddatadb, idquotations, file_path, file_name, uploaded_by) VALUES (?, ?, ?, ?, ?)"); + $stmt->execute([$iddatadb, $idquotations, $newFileName, $newFileName, $iduserlogin]); +} catch (PDOException $e) { + echo json_encode(['success' => false, 'message' => 'Errore durante il salvataggio nel database: ' . $e->getMessage()]); + exit; +} echo json_encode(['success' => true, 'message' => 'Foto caricata con successo']); diff --git a/public/userarea/upload_photos_mobile.php b/public/userarea/upload_photos_mobile.php index e16d421..d4abaea 100644 --- a/public/userarea/upload_photos_mobile.php +++ b/public/userarea/upload_photos_mobile.php @@ -5,24 +5,41 @@ include('include/headscript.php'); $db = DBHandlerSelect::getInstance(); $pdo = $db->getConnection(); -// Verifica che l'iddatadb sia stato passato -if (!isset($_GET['iddatadb']) || empty($_GET['iddatadb'])) { - die('ID riga non fornito'); +// Verifica che almeno uno degli ID sia passato +$iddatadb = isset($_GET['iddatadb']) && !empty($_GET['iddatadb']) ? intval($_GET['iddatadb']) : null; +$idquotations = isset($_GET['idquotations']) && !empty($_GET['idquotations']) ? intval($_GET['idquotations']) : null; + +if (!$iddatadb && !$idquotations) { + die('ID riga o ID quotations non fornito'); } -$iddatadb = intval($_GET['iddatadb']); +if ($iddatadb && $idquotations) { + die('Non è possibile specificare sia iddatadb che idquotations'); +} -// Recupera i dettagli della riga (idriga e sample_code) -$stmt = $pdo->prepare("SELECT iddatadb, sample_code FROM datadb WHERE iddatadb = ?"); -$stmt->execute([$iddatadb]); +// Verifica che l'utente loggato esista +$stmt = $pdo->prepare("SELECT id FROM auth_users WHERE id = ?"); +$stmt->execute([$iduserlogin]); +if (!$stmt->fetch(PDO::FETCH_ASSOC)) { + die('Utente non valido'); +} + +// Determina quale ID usare e verifica l'esistenza +$paramName = $iddatadb ? 'iddatadb' : 'idquotations'; +$paramValue = $iddatadb ?: $idquotations; +$table = $iddatadb ? 'datadb' : 'quotations'; +$field = $iddatadb ? 'sample_code' : 'quotation_code'; + +$stmt = $pdo->prepare("SELECT {$paramName}, {$field} FROM {$table} WHERE {$paramName} = ?"); +$stmt->execute([$paramValue]); $row = $stmt->fetch(PDO::FETCH_ASSOC); if (!$row) { die('Riga non trovata'); } -$idriga = $row['iddatadb']; -$sampleCode = $row['sample_code'] ?? 'Non disponibile'; +$id = $row[$paramName]; +$code = $row[$field] ?? 'Non disponibile'; ?> @@ -32,17 +49,23 @@ $sampleCode = $row['sample_code'] ?? 'Non disponibile'; Carica Foto da Mobile + -

    Carica Foto per ID Riga:

    -

    Sample Code:

    - +

    Carica Foto per ID:

    +

    Codice:

    +
    +
    + +

    Caricamento in corso...

    +
    +
    +
    -

    Scatta una foto o seleziona un'immagine

    - -
    - -
    - +

    Scatta una foto o seleziona immagini

    +
    +
    - + \ No newline at end of file