# ---------------------------------------------------------------------- #
# Script generated with: DeZign for Databases 11.1.0                     #
# Target DBMS:           MySQL 5                                         #
# Project file:          abliaDbComuni3.dez                              #
# Project name:          DB COMUNI - ABLIA                               #
# Author:                Andrea Colzi                                    #
# Script type:           Database creation script                        #
# Created on:            2023-07-06 21:29                                #
# ---------------------------------------------------------------------- #


# ---------------------------------------------------------------------- #
# Add tables                                                             #
# ---------------------------------------------------------------------- #

# ---------------------------------------------------------------------- #
# Add table "USER_PROFILE"                                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `USER_PROFILE` (
    `id_userProfile` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(30),
    `policy` VARCHAR(30),
    CONSTRAINT `PK_USER_PROFILE` PRIMARY KEY (`id_userProfile`)
);
insert into USER_PROFILE (id_userProfile,descrizione,policy)
values(1,'Amministratore','*');

insert into USER_PROFILE (id_userProfile,descrizione,policy)
values(10,'Web','*');

# ---------------------------------------------------------------------- #
# Add table "ACCESS"                                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `ACCESS` (
    `id_access` VARCHAR(60) NOT NULL,
    `descrizione` VARCHAR(60),
    `flgSafeUpdate` INTEGER,
    `attrMaiuscoli` VARCHAR(1000),
    `attrMinuscoli` VARCHAR(1000),
    `attr1Maiuscoli` VARCHAR(1000),
    `flgTabella` INTEGER,
    `flgDeleteCascade` INTEGER,
    `servletPath` VARCHAR(40),
    `flgMaskType` INTEGER,
    `id_accessHeader` VARCHAR(30),
    `nomeClasse` VARCHAR(80),
    `flgAutoPD` INTEGER,
    `flgCombo` INTEGER,
    `comboDescColumn` VARCHAR(60),
    `ajaxSearchServlet` VARCHAR(40),
    `ajstReturnFields` VARCHAR(200),
    `help` VARCHAR(10000),
    `flgAutoCR` INTEGER,
    `flgAutoAJST` INTEGER,
    `flgRicercaSearchTxt` INTEGER,
    `flgLogicDelete` INTEGER,
    `suffissoPD` VARCHAR(40),
    `suffissoCR` VARCHAR(40),
    `flgEncodeModalita` INTEGER,
    `attrEncoded` VARCHAR(1000),
    `flgEncodeAlgoritmo` INTEGER,
    `suffissoE` VARCHAR(40),
    CONSTRAINT `PK_ACCESS` PRIMARY KEY (`id_access`)
);

# ---------------------------------------------------------------------- #
# Add table "PARM"                                                       #
# ---------------------------------------------------------------------- #

CREATE TABLE `PARM` (
    `id_parm` INTEGER NOT NULL AUTO_INCREMENT,
    `codice` VARCHAR(254) NOT NULL,
    `nota` TEXT,
    `descrizione` VARCHAR(254),
    `testo` TEXT,
    `numero` DECIMAL(18,4),
    `dataParm` DATE,
    `ora` TIME,
    `tipoParm` VARCHAR(30),
    `flgTipo` INTEGER,
    `flgAdmin` INTEGER DEFAULT 0,
    `coloreHex` VARCHAR(7),
    CONSTRAINT `PK_PARM` PRIMARY KEY (`id_parm`)
);
insert into PARM (codice, descrizione,flgTipo, testo,numero) values('DEBUG','DEBUG',0,'true',1);
insert into PARM (codice, descrizione,flgTipo, testo,numero) values('DEBUG_LEVEL','DEBUG_LEVEL',0,'',1);
insert into PARM (codice, descrizione,flgTipo, testo,numero) values('LOG_USERS','LOG_USERS',0,'1',1);
insert into PARM (codice, descrizione,flgTipo, testo,numero) values('LOCALE','LOCALE',0,'it',1);

CREATE UNIQUE INDEX `codice` ON `PARM` (`codice`);

# ---------------------------------------------------------------------- #
# Add table "ACCESS_GROUP"                                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `ACCESS_GROUP` (
    `id_accessGroup` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `nota` VARCHAR(1000),
    CONSTRAINT `PK_ACCESS_GROUP` PRIMARY KEY (`id_accessGroup`)
);

# ---------------------------------------------------------------------- #
# Add table "ACCESS_GROUP_ACCESS"                                        #
# ---------------------------------------------------------------------- #

CREATE TABLE `ACCESS_GROUP_ACCESS` (
    `id_accessGroupAccess` INTEGER NOT NULL AUTO_INCREMENT,
    `flgRW` INTEGER DEFAULT 0,
    `id_access` VARCHAR(30) NOT NULL,
    `id_accessGroup` INTEGER NOT NULL,
    CONSTRAINT `PK_ACCESS_GROUP_ACCESS` PRIMARY KEY (`id_accessGroupAccess`)
);

CREATE UNIQUE INDEX `IDX_ACCESS_GROUP_ACCESS_1` ON `ACCESS_GROUP_ACCESS` (`id_access` ASC,`id_accessGroup` ASC);

# ---------------------------------------------------------------------- #
# Add table "MARCA"                                                      #
# ---------------------------------------------------------------------- #

CREATE TABLE `MARCA` (
    `id_marca` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `link` VARCHAR(60),
    `articoliTrattati` VARCHAR(60),
    `indiciTipo` VARCHAR(1000),
    `tag` VARCHAR(254),
    `imgTmst` VARCHAR(24),
    `descrizioniImport` VARCHAR(254),
    `tagOfferta` VARCHAR(40),
    `flgIcecatAuto` INTEGER,
    `flgIncludiMainSitemap` INTEGER,
    `nomeSeo` VARCHAR(60),
    `flgAmazon` INTEGER,
    CONSTRAINT `PK_MARCA` PRIMARY KEY (`id_marca`)
);

CREATE UNIQUE INDEX `IDX_MARCA_1` ON `MARCA` (`descrizione` ASC);

CREATE INDEX `IDX_MARCA_2` ON `MARCA` (`indiciTipo`);

CREATE INDEX `IDX_MARCA_3` ON `MARCA` (`tag`);

CREATE INDEX `IDX_MARCA_4` ON `MARCA` (`descrizioniImport`);

# ---------------------------------------------------------------------- #
# Add table "COLORE"                                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `COLORE` (
    `id_colore` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(1000),
    `codiceColore` VARCHAR(20),
    CONSTRAINT `PK_COLORE` PRIMARY KEY (`id_colore`)
);

CREATE INDEX `IDX_COLORE_1` ON `COLORE` (`descrizione` ASC);

CREATE UNIQUE INDEX `IDX_COLORE_2` ON `COLORE` (`codiceColore`);

# ---------------------------------------------------------------------- #
# Add table "CARATTERISTICA"                                             #
# ---------------------------------------------------------------------- #

CREATE TABLE `CARATTERISTICA` (
    `id_caratteristica` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione_it` VARCHAR(60),
    `descrizione_en` VARCHAR(60),
    `flgTipoVal` INTEGER,
    `flgCR` INTEGER DEFAULT 0,
    `ordine` INTEGER,
    `codiceAggiuntivo` VARCHAR(30),
    `flgRicercaWeb` INTEGER,
    `icecatDescs` VARCHAR(250),
    CONSTRAINT `PK_CARATTERISTICA` PRIMARY KEY (`id_caratteristica`)
);

CREATE INDEX `IDX_CARATTERISTICA_1` ON `CARATTERISTICA` (`codiceAggiuntivo` ASC);

CREATE INDEX `IDX_CARATTERISTICA_2` ON `CARATTERISTICA` (`icecatDescs`);

# ---------------------------------------------------------------------- #
# Add table "LISTA"                                                      #
# ---------------------------------------------------------------------- #

CREATE TABLE `LISTA` (
    `id_lista` INTEGER NOT NULL AUTO_INCREMENT,
    `id_caratteristica` INTEGER,
    `valore` VARCHAR(60),
    `icecatValues` VARCHAR(250),
    CONSTRAINT `PK_LISTA` PRIMARY KEY (`id_lista`)
);

CREATE INDEX `IDX_LISTA_1` ON `LISTA` (`id_caratteristica`);

CREATE INDEX `IDX_LISTA_2` ON `LISTA` (`icecatValues`);

# ---------------------------------------------------------------------- #
# Add table "TIPO_ACCESSORIO"                                            #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_ACCESSORIO` (
    `id_tipoAccessorio` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione_it` VARCHAR(60),
    `descrizione_en` VARCHAR(60),
    `flgDirezione` INTEGER,
    CONSTRAINT `PK_TIPO_ACCESSORIO` PRIMARY KEY (`id_tipoAccessorio`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_PAGAMENTO"                                             #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_PAGAMENTO` (
    `id_tipoPagamento` INTEGER NOT NULL AUTO_INCREMENT,
    `ordineWww` INTEGER,
    `periodicita` INTEGER,
    `descrizione_it` VARCHAR(60),
    `descrizione_en` VARCHAR(60),
    `flgTipoPagamento` INTEGER,
    `flgPrimaScadenza` INTEGER,
    `giornoFisso` INTEGER,
    `primaRata` INTEGER,
    `nRate` INTEGER,
    `codiceTenderCassa` CHAR(4),
    `flgWww` INTEGER,
    `flgAbilitatoNegozio` INTEGER,
    `flgAbilitatoCorriere` INTEGER,
    `codiceCassaEpson` INTEGER,
    `flgIncassoPagamento` INTEGER,
    `flgAbilitatoStranieri` INTEGER,
    `flgTipoPagamentoEcommerce` INTEGER,
    `imgTmst` VARCHAR(24),
    `tariffaAggiuntiva` DECIMAL(18,4),
    `percWwwSconto` DECIMAL(5,2),
    `percWwwCommissione` DECIMAL(5,2),
    `wwwCommissionePercDefault` DECIMAL(5,2),
    `wwwTariffaFissa` DECIMAL(18,4),
    `wwwValoreSoglia` DECIMAL(18,4),
    `wwwPercOltreSoglia` DECIMAL(5,2),
    CONSTRAINT `PK_TIPO_PAGAMENTO` PRIMARY KEY (`id_tipoPagamento`)
);

# ---------------------------------------------------------------------- #
# Add table "NEWSLETTER1"                                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `NEWSLETTER1` (
    `id_newsletter` INTEGER NOT NULL AUTO_INCREMENT,
    `dataNewsletter` DATE,
    `titolo_it` VARCHAR(60),
    `titolo_en` VARCHAR(60),
    `imgTmst` VARCHAR(24),
    `testo_it` TEXT,
    `testo_en` TEXT,
    CONSTRAINT `PK_NEWSLETTER1` PRIMARY KEY (`id_newsletter`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_TAGLIA"                                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_TAGLIA` (
    `id_tipoTaglia` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `codice` VARCHAR(16),
    CONSTRAINT `PK_TIPO_TAGLIA` PRIMARY KEY (`id_tipoTaglia`)
);

CREATE UNIQUE INDEX `IDX_TIPO_TAGLIA_1` ON `TIPO_TAGLIA` (`codice`);

# ---------------------------------------------------------------------- #
# Add table "TABELLA_TAGLIA"                                             #
# ---------------------------------------------------------------------- #

CREATE TABLE `TABELLA_TAGLIA` (
    `id_tabellaTaglia` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipoTaglia` INTEGER,
    `descrizione` VARCHAR(60),
    `flgAltezzaCavallo` INTEGER,
    `flgColloCm` INTEGER,
    `flgColloPoll` INTEGER,
    `flgGiroCoscia` INTEGER,
    `flgLarghezzaFondoCm` INTEGER,
    `flgLunghezzaGamba` INTEGER,
    `flgLunghezzaTotale` INTEGER,
    `flgSpalleCm` INTEGER,
    `flgTagliaCollo` INTEGER,
    `flgTagliaLettere` INTEGER,
    `flgTagliaNum` INTEGER,
    `flgToraceCm` INTEGER,
    `flgVitaCm` INTEGER,
    `descrizioneImg_en` VARCHAR(254),
    `descrizioneImg_it` VARCHAR(254),
    `flgLunghezzaManica` INTEGER,
    `flgVitaCmNoTeso` INTEGER,
    `flgVitaCmTeso` INTEGER,
    `imgTmst` VARCHAR(24),
    CONSTRAINT `PK_TABELLA_TAGLIA` PRIMARY KEY (`id_tabellaTaglia`)
);

CREATE INDEX `IDX_TABELLA_TAGLIA_1` ON `TABELLA_TAGLIA` (`id_tipoTaglia`);

# ---------------------------------------------------------------------- #
# Add table "TAGLIA_MISURE"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `TAGLIA_MISURE` (
    `id_tagliaMisure` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tabellaTaglia` INTEGER,
    `ordine` INTEGER,
    `tagliaLettere` CHAR(10),
    `tagliaNum` CHAR(10),
    `tagliaCollo` CHAR(10),
    `colloCm` CHAR(10),
    `colloPoll` CHAR(10),
    `vitaCm` CHAR(10),
    `toraceCm` CHAR(10),
    `lunghezzaTotale` CHAR(10),
    `altezzaCavallo` CHAR(10),
    `giroCoscia` CHAR(10),
    `larghezzaFondoCm` CHAR(10),
    `lunghezzaGamba` CHAR(10),
    `spalleCm` CHAR(10),
    `lunghezzaManica` CHAR(10),
    `vitaCmNoTeso` CHAR(10),
    `vitaCmTeso` CHAR(10),
    CONSTRAINT `PK_TAGLIA_MISURE` PRIMARY KEY (`id_tagliaMisure`)
);

CREATE INDEX `IDX_TAGLIA_MISURE_1` ON `TAGLIA_MISURE` (`id_tabellaTaglia`);

CREATE UNIQUE INDEX `IDX_TAGLIA_MISURE_2` ON `TAGLIA_MISURE` (`ordine`,`id_tabellaTaglia`);

# ---------------------------------------------------------------------- #
# Add table "TIPO_BANNER"                                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_BANNER` (
    `id_tipoBanner` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `larghezza` VARCHAR(10),
    `altezza` VARCHAR(10),
    CONSTRAINT `PK_TIPO_BANNER` PRIMARY KEY (`id_tipoBanner`)
);

# ---------------------------------------------------------------------- #
# Add table "BLACKLIST"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `BLACKLIST` (
    `id_blacklist` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(254),
    `flgAttivo` INTEGER,
    `ipAddress` CHAR(60),
    `eMail` VARCHAR(60),
    `notaBlacklist` TEXT,
    `tmstStartBlacklist` DATETIME,
    `fatalCount` INTEGER,
    `tmstStartCount` DATETIME,
    `ipMax` INTEGER UNSIGNED,
    `ipMin` INTEGER UNSIGNED,
    CONSTRAINT `PK_BLACKLIST` PRIMARY KEY (`id_blacklist`)
);

CREATE UNIQUE INDEX `IDX_BLACKLIST_1` ON `BLACKLIST` (`ipAddress`);

CREATE UNIQUE INDEX `IDX_BLACKLIST_2` ON `BLACKLIST` (`eMail`);

# ---------------------------------------------------------------------- #
# Add table "HELP"                                                       #
# ---------------------------------------------------------------------- #

CREATE TABLE `HELP` (
    `id_help` INTEGER NOT NULL AUTO_INCREMENT,
    `codice` VARCHAR(30),
    `titolo_it` VARCHAR(60),
    `titolo_en` VARCHAR(60),
    `id_helpPadre` INTEGER,
    `descrizione_it` VARCHAR(254),
    `descrizione_en` VARCHAR(254),
    `livello` INTEGER,
    `indici` VARCHAR(4000),
    `flgFoglia` INTEGER,
    `flgVisibile` INTEGER DEFAULT 0,
    `ordine` INTEGER,
    `flgTipoHelp` INTEGER,
    `text_it` TEXT,
    `text_en` TEXT,
    `imgTmst` CHAR(16),
    CONSTRAINT `PK_HELP` PRIMARY KEY (`id_help`)
);

CREATE INDEX `IDX_HELP_1` ON `HELP` (`id_helpPadre`);

CREATE UNIQUE INDEX `IDX_HELP_2` ON `HELP` (`codice` ASC);

# ---------------------------------------------------------------------- #
# Add table "EXCLUDE_KEYWORDS"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `EXCLUDE_KEYWORDS` (
    `id_excludeKeywords` VARCHAR(30) NOT NULL,
    `lang` CHAR(2),
    `theKey` VARCHAR(60),
    CONSTRAINT `PK_EXCLUDE_KEYWORDS` PRIMARY KEY (`id_excludeKeywords`)
);

# ---------------------------------------------------------------------- #
# Add table "HELP_REL"                                                   #
# ---------------------------------------------------------------------- #

CREATE TABLE `HELP_REL` (
    `id_helpRel` INTEGER NOT NULL AUTO_INCREMENT,
    `id_help1` INTEGER,
    `id_help` INTEGER,
    CONSTRAINT `PK_HELP_REL` PRIMARY KEY (`id_helpRel`)
);

CREATE INDEX `IDX_HELP_REL_1` ON `HELP_REL` (`id_help1`);

CREATE INDEX `IDX_HELP_REL_2` ON `HELP_REL` (`id_help`);

# ---------------------------------------------------------------------- #
# Add table "ESERCIZIO"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `ESERCIZIO` (
    `id_esercizio` INTEGER NOT NULL,
    `flgStato` INTEGER,
    CONSTRAINT `PK_ESERCIZIO` PRIMARY KEY (`id_esercizio`)
);

# ---------------------------------------------------------------------- #
# Add table "ASPETTO"                                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `ASPETTO` (
    `id_aspetto` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(40),
    CONSTRAINT `PK_ASPETTO` PRIMARY KEY (`id_aspetto`)
);

# ---------------------------------------------------------------------- #
# Add table "REGISTRO_IVA"                                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `REGISTRO_IVA` (
    `id_registroIva` INTEGER NOT NULL,
    `anno` INTEGER,
    `dataUltimaStampa` DATE,
    `ultimaPagina` INTEGER,
    `ultimaRiga` INTEGER,
    `dataDa` DATE,
    `dataA` DATE,
    `flgPeriodo` CHAR(2),
    `flgTipoLiquidazione` INTEGER,
    `flgMeseStampato` INTEGER,
    `flgAnnoStampato` INTEGER,
    `flgTrimestreStampato` INTEGER,
    CONSTRAINT `PK_REGISTRO_IVA` PRIMARY KEY (`id_registroIva`)
);

# ---------------------------------------------------------------------- #
# Add table "CONTATORE"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `CONTATORE` (
    `id_contatore` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(30),
    `flgTipo` INTEGER,
    `flgControllo` INTEGER,
    `annoIniziale` INTEGER,
    `progIniziale` INTEGER,
    CONSTRAINT `PK_CONTATORE` PRIMARY KEY (`id_contatore`)
);
INSERT INTO `contatore` VALUES (1,'Vendite',1,1,NULL,NULL),(2,'Acquisti',1,1,NULL,NULL),(3,'BOLLE EMESSE',1,1,NULL,NULL),(4,'Bolle da Fornitori',3,NULL,NULL,NULL),(5,'Bolle da Clienti',1,NULL,NULL,NULL),(6,'CORRISPETT
IVI',1,0,0,0),(7,'ORDINI A FORNITORI',3,0,NULL,NULL),(8,'PRENOTAZIONI CLIENTI',1,0,NULL,NULL),(9,'DOCUMENTI INTERNI',1,0,NULL,NULL),(10,'RIPARAZIONI',1,0,NULL,NULL),(11,'CONTO VENDITA',1,0,NULL,NULL),(12,'ordini web',
1,0,0,0),(13,'FATTURE WWW',1,1,0,0),(14,'RICEVUTE',1,1,0,0);

# ---------------------------------------------------------------------- #
# Add table "LISTINO"                                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `LISTINO` (
    `id_listino` INTEGER NOT NULL AUTO_INCREMENT,
    `flgTipoL` INTEGER,
    `descrizione` VARCHAR(30),
    `percL` DECIMAL(5,2),
    `percL1` DECIMAL(5,2),
    `percL2` DECIMAL(5,2),
    `percL3` DECIMAL(5,2),
    CONSTRAINT `PK_LISTINO` PRIMARY KEY (`id_listino`)
);

CREATE INDEX `IDX_LISTINO_1` ON `LISTINO` (`flgTipoL`);

# ---------------------------------------------------------------------- #
# Add table "REG_CASSA"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `REG_CASSA` (
    `id_regCassa` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `ipCassa` CHAR(60),
    `porta` INTEGER,
    `flgTipoCassa` INTEGER,
    CONSTRAINT `PK_REG_CASSA` PRIMARY KEY (`id_regCassa`)
);

# ---------------------------------------------------------------------- #
# Add table "CAUSALE_TRASPORTO"                                          #
# ---------------------------------------------------------------------- #

CREATE TABLE `CAUSALE_TRASPORTO` (
    `id_causaleTrasporto` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    CONSTRAINT `PK_CAUSALE_TRASPORTO` PRIMARY KEY (`id_causaleTrasporto`)
);

# ---------------------------------------------------------------------- #
# Add table "HELP_KEYWORD"                                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `HELP_KEYWORD` (
    `id_helpKeyword` INTEGER NOT NULL AUTO_INCREMENT,
    `lang` CHAR(2),
    `theKey` VARCHAR(30),
    `id_help` INTEGER,
    CONSTRAINT `PK_HELP_KEYWORD` PRIMARY KEY (`id_helpKeyword`)
);

CREATE INDEX `IDX_HELP_KEYWORD_1` ON `HELP_KEYWORD` (`theKey` ASC);

# ---------------------------------------------------------------------- #
# Add table "TIPO_SPESA"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_SPESA` (
    `id_tipoSpesa` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    CONSTRAINT `PK_TIPO_SPESA` PRIMARY KEY (`id_tipoSpesa`)
);

# ---------------------------------------------------------------------- #
# Add table "TEMPLATE_MSG"                                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `TEMPLATE_MSG` (
    `id_templateMsg` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `flgTipo` INTEGER,
    `testoMessaggio` TEXT,
    `imgTmst` VARCHAR(24),
    `oggettoEmail` VARCHAR(254),
    CONSTRAINT `PK_TEMPLATE_MSG` PRIMARY KEY (`id_templateMsg`)
);

# ---------------------------------------------------------------------- #
# Add table "WHITELIST"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `WHITELIST` (
    `id_whitelist` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `ipAddress` CHAR(60),
    `flgAttivo` INTEGER,
    CONSTRAINT `PK_WHITELIST` PRIMARY KEY (`id_whitelist`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_CONTRATTO"                                             #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_CONTRATTO` (
    `id_tipoContratto` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `dataFineValiditaContratto` DATE,
    `durataMesi` INTEGER,
    `flgPrepagato` INTEGER,
    `messaggioSms` TEXT,
    `ggInvioMsg` INTEGER,
    CONSTRAINT `PK_TIPO_CONTRATTO` PRIMARY KEY (`id_tipoContratto`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_POSTAZIONE"                                            #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_POSTAZIONE` (
    `id_tipoPostazione` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(30),
    CONSTRAINT `PK_TIPO_POSTAZIONE` PRIMARY KEY (`id_tipoPostazione`)
);

# ---------------------------------------------------------------------- #
# Add table "PORTO"                                                      #
# ---------------------------------------------------------------------- #

CREATE TABLE `PORTO` (
    `id_porto` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `nota` VARCHAR(254),
    CONSTRAINT `PK_PORTO` PRIMARY KEY (`id_porto`)
);

# ---------------------------------------------------------------------- #
# Add table "HELP_ALLEGATO"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `HELP_ALLEGATO` (
    `id_helpAllegato` INTEGER NOT NULL AUTO_INCREMENT,
    `id_help` INTEGER,
    `flgTipo` INTEGER,
    `nomeFile` VARCHAR(60),
    CONSTRAINT `PK_HELP_ALLEGATO` PRIMARY KEY (`id_helpAllegato`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_ALLEGATO_CLIFOR"                                       #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_ALLEGATO_CLIFOR` (
    `id_tipoAllegatoClifor` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    CONSTRAINT `PK_TIPO_ALLEGATO_CLIFOR` PRIMARY KEY (`id_tipoAllegatoClifor`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_ALLEGATO_ARTICOLO"                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_ALLEGATO_ARTICOLO` (
    `id_tipoAllegatoArticolo` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(40),
    CONSTRAINT `PK_TIPO_ALLEGATO_ARTICOLO` PRIMARY KEY (`id_tipoAllegatoArticolo`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_ALLEGATO_DOCUMENTO"                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_ALLEGATO_DOCUMENTO` (
    `id_tipoAllegatoDocumento` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(40),
    CONSTRAINT `PK_TIPO_ALLEGATO_DOCUMENTO` PRIMARY KEY (`id_tipoAllegatoDocumento`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_NEWS"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_NEWS` (
    `id_tipoNews` INTEGER NOT NULL AUTO_INCREMENT,
    `flgPubblica` INTEGER,
    CONSTRAINT `PK_TIPO_NEWS` PRIMARY KEY (`id_tipoNews`)
);

# ---------------------------------------------------------------------- #
# Add table "ALLEGATO_TEMPLATE_MSG"                                      #
# ---------------------------------------------------------------------- #

CREATE TABLE `ALLEGATO_TEMPLATE_MSG` (
    `id_allegatoTemplateMsg` INTEGER NOT NULL AUTO_INCREMENT,
    `id_templateMsg` INTEGER,
    `nomeFile` VARCHAR(60),
    CONSTRAINT `PK_ALLEGATO_TEMPLATE_MSG` PRIMARY KEY (`id_allegatoTemplateMsg`)
);

# ---------------------------------------------------------------------- #
# Add table "CONSEL_TABFIN"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `CONSEL_TABFIN` (
    `id_conselTabfin` INTEGER NOT NULL AUTO_INCREMENT,
    `flgTipo` CHAR(3),
    `valoreBene` DECIMAL(18,4),
    `durata` INTEGER,
    `importoRata` DECIMAL(18,4),
    `tan` DECIMAL(5,2),
    `taeg` DECIMAL(5,2),
    `interessi` DECIMAL(18,4),
    `speseGestSingolaRata` DECIMAL(18,4),
    `speseGestTotaleRata` DECIMAL(18,4),
    `impostaBollo` DECIMAL(18,4),
    `importoTotaleDovuto` DECIMAL(18,4),
    CONSTRAINT `PK_CONSEL_TABFIN` PRIMARY KEY (`id_conselTabfin`)
);

CREATE INDEX `IDX_CONSEL_TABFIN_1` ON `CONSEL_TABFIN` (`flgTipo`);

CREATE INDEX `IDX_CONSEL_TABFIN_2` ON `CONSEL_TABFIN` (`importoRata` ASC);

CREATE INDEX `IDX_CONSEL_TABFIN_3` ON `CONSEL_TABFIN` (`durata` ASC);

# ---------------------------------------------------------------------- #
# Add table "PROMOZIONE"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `PROMOZIONE` (
    `id_promozione` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(254),
    `dataInizio` DATE,
    `dataFine` DATE,
    `percSconto` INTEGER,
    `codicePromozione` VARCHAR(30),
    `dataUtilizzoPromozione` DATE,
    `numUtilizzi` INTEGER,
    `numUtilizziMax` INTEGER,
    `flgUtilizzoPerUtente` INTEGER,
    `flgInvioML` INTEGER,
    `flgArticolo` INTEGER,
    CONSTRAINT `PK_PROMOZIONE` PRIMARY KEY (`id_promozione`)
);

CREATE UNIQUE INDEX `IDX_PROMOZIONE_1` ON `PROMOZIONE` (`codicePromozione`);

# ---------------------------------------------------------------------- #
# Add table "DESC_TXT_LANG"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `DESC_TXT_LANG` (
    `tabella` CHAR(40) NOT NULL,
    `idTabella` INTEGER NOT NULL,
    `campo` CHAR(40) NOT NULL,
    `lang` CHAR(3) NOT NULL,
    `descrizione` MEDIUMTEXT,
    `descrizione254` VARCHAR(300) CHARACTER SET utf8,
    CONSTRAINT `PK_DESC_TXT_LANG` PRIMARY KEY (`tabella`, `idTabella`, `campo`, `lang`)
);

# ---------------------------------------------------------------------- #
# Add table "VETRINA"                                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `VETRINA` (
    `id_vetrina` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(30),
    CONSTRAINT `PK_VETRINA` PRIMARY KEY (`id_vetrina`)
);

# ---------------------------------------------------------------------- #
# Add table "COMPONENTE"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `COMPONENTE` (
    `id_componente` INTEGER NOT NULL AUTO_INCREMENT,
    `sigla` VARCHAR(5) NOT NULL,
    CONSTRAINT `PK_COMPONENTE` PRIMARY KEY (`id_componente`),
    CONSTRAINT `TUC_COMPONENTE_1` UNIQUE (`sigla`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPOLOGIA_ARTICOLO"                                         #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPOLOGIA_ARTICOLO` (
    `id_tipologiaArticolo` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `flgUdm` INTEGER,
    `flgKg` INTEGER,
    `flgMt` INTEGER,
    `flgNr` INTEGER,
    `flgAFT` INTEGER,
    CONSTRAINT `PK_TIPOLOGIA_ARTICOLO` PRIMARY KEY (`id_tipologiaArticolo`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_CLIFOR"                                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_CLIFOR` (
    `id_tipoClifor` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `flgTipo` CHAR(1),
    `flgTipologia` INTEGER,
    `flgProvvCliente` INTEGER,
    `flgProvvArticolo` INTEGER,
    CONSTRAINT `PK_TIPO_CLIFOR` PRIMARY KEY (`id_tipoClifor`)
);

# ---------------------------------------------------------------------- #
# Add table "MAIL_NEWSLETTER"                                            #
# ---------------------------------------------------------------------- #

CREATE TABLE `MAIL_NEWSLETTER` (
    `id_mailNewsletter` INTEGER NOT NULL AUTO_INCREMENT,
    `eMail` VARCHAR(255),
    `id_templateMsg` INTEGER,
    `dataTemplate` DATE,
    CONSTRAINT `PK_MAIL_NEWSLETTER` PRIMARY KEY (`id_mailNewsletter`)
);

CREATE UNIQUE INDEX `IDX_MAIL_NEWSLETTER_1` ON `MAIL_NEWSLETTER` (`eMail`);

# ---------------------------------------------------------------------- #
# Add table "SENT_MAIL"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `SENT_MAIL` (
    `id_sentMail` INTEGER NOT NULL AUTO_INCREMENT,
    `classe` VARCHAR(40),
    `id_classe` INTEGER,
    `from` VARCHAR(40),
    `to` VARCHAR(40),
    `cc` VARCHAR(40),
    `bcc` VARCHAR(40),
    `subject` VARCHAR(40),
    `body` VARCHAR(40),
    `dataInvio` DATE,
    `oraInvio` TIME,
    `Attribute_2` VARCHAR(40),
    CONSTRAINT `PK_SENT_MAIL` PRIMARY KEY (`id_sentMail`)
);

# ---------------------------------------------------------------------- #
# Add table "SENT_MAIL_ATTACH"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `SENT_MAIL_ATTACH` (
    `id_sentMailAttach` INTEGER NOT NULL AUTO_INCREMENT,
    `id_sentMail` INTEGER,
    `nomeAttach` VARCHAR(40),
    CONSTRAINT `PK_SENT_MAIL_ATTACH` PRIMARY KEY (`id_sentMailAttach`)
);

# ---------------------------------------------------------------------- #
# Add table "PIANO_CONTI"                                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `PIANO_CONTI` (
    `id_pianoConti` INTEGER NOT NULL AUTO_INCREMENT,
    `contoCompleto` VARCHAR(40),
    `descrizione` VARCHAR(254),
    `flgTipo` INTEGER,
    `flgCFBI` INTEGER,
    `flgMovimentabile` INTEGER,
    `mastro` VARCHAR(40),
    `conto` VARCHAR(40),
    `sottoconto` VARCHAR(40),
    CONSTRAINT `PK_PIANO_CONTI` PRIMARY KEY (`id_pianoConti`)
);

# ---------------------------------------------------------------------- #
# Add table "CAUSALE_CONTABILE"                                          #
# ---------------------------------------------------------------------- #

CREATE TABLE `CAUSALE_CONTABILE` (
    `id_causaleContabile` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(40),
    CONSTRAINT `PK_CAUSALE_CONTABILE` PRIMARY KEY (`id_causaleContabile`)
);

# ---------------------------------------------------------------------- #
# Add table "RIGA_CAUSALE_CONTABILE"                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `RIGA_CAUSALE_CONTABILE` (
    `id_rigaCausaleContabile` INTEGER NOT NULL AUTO_INCREMENT,
    `id_causaleContabile` INTEGER,
    `id_pianoConti` INTEGER,
    `flgDA` INTEGER,
    CONSTRAINT `PK_RIGA_CAUSALE_CONTABILE` PRIMARY KEY (`id_rigaCausaleContabile`)
);

# ---------------------------------------------------------------------- #
# Add table "ZONA"                                                       #
# ---------------------------------------------------------------------- #

CREATE TABLE `ZONA` (
    `id_zona` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(30),
    CONSTRAINT `PK_ZONA` PRIMARY KEY (`id_zona`)
);

# ---------------------------------------------------------------------- #
# Add table "ABI_CAB"                                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `ABI_CAB` (
    `id_abiCab` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `agenzia` VARCHAR(40),
    `indirizzo` VARCHAR(60),
    `localita` VARCHAR(60),
    `cap` VARCHAR(10),
    `provincia` VARCHAR(4),
    `abi` VARCHAR(6),
    `cab` VARCHAR(6),
    `bic` VARCHAR(30),
    `codiceAlt` VARCHAR(40),
    CONSTRAINT `PK_ABI_CAB` PRIMARY KEY (`id_abiCab`)
);

CREATE UNIQUE INDEX `IDX_ABI_CAB_1` ON `ABI_CAB` (`abi`,`cab`);

# ---------------------------------------------------------------------- #
# Add table "FESTIVITA"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `FESTIVITA` (
    `id_festivita` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(254),
    `giorno` INTEGER,
    `mese` INTEGER,
    `anno` INTEGER,
    `flgTipo` INTEGER,
    `dataInizio` DATE,
    `dataFine` DATE,
    CONSTRAINT `PK_FESTIVITA` PRIMARY KEY (`id_festivita`)
);

# ---------------------------------------------------------------------- #
# Add table "MESE_ESCLUSO"                                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `MESE_ESCLUSO` (
    `id_meseEscluso` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipoPagamento` INTEGER,
    `meseEscluso` INTEGER,
    `giornoEscluso` INTEGER,
    CONSTRAINT `PK_MESE_ESCLUSO` PRIMARY KEY (`id_meseEscluso`)
);

# ---------------------------------------------------------------------- #
# Add table "NO_MLIST"                                                   #
# ---------------------------------------------------------------------- #

CREATE TABLE `NO_MLIST` (
    `id_noMlist` INTEGER NOT NULL AUTO_INCREMENT,
    `email` VARCHAR(40),
    `dataCancellazione` DATE,
    `oraCancellazione` TIME,
    `ipAddress` CHAR(60),
    CONSTRAINT `PK_NO_MLIST` PRIMARY KEY (`id_noMlist`)
);

CREATE UNIQUE INDEX `IDX_NO_MLIST_1` ON `NO_MLIST` (`email`);

# ---------------------------------------------------------------------- #
# Add table "FASE_LAVORAZIONE"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `FASE_LAVORAZIONE` (
    `id_faseLavorazione` INTEGER NOT NULL AUTO_INCREMENT,
    `codFase` INTEGER,
    `descrizione` VARCHAR(40),
    `descrizioneBreve` VARCHAR(40),
    CONSTRAINT `PK_FASE_LAVORAZIONE` PRIMARY KEY (`id_faseLavorazione`)
);

CREATE INDEX `IDX_FASE_LAVORAZIONE_1` ON `FASE_LAVORAZIONE` (`codFase` ASC);

# ---------------------------------------------------------------------- #
# Add table "COLORE_FILATO"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `COLORE_FILATO` (
    `id_coloreFilato` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(40),
    `flgGreggio` INTEGER,
    CONSTRAINT `PK_COLORE_FILATO` PRIMARY KEY (`id_coloreFilato`)
);

# ---------------------------------------------------------------------- #
# Add table "RINCORSO"                                                   #
# ---------------------------------------------------------------------- #

CREATE TABLE `RINCORSO` (
    `id_rincorso` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizioneRincorso` VARCHAR(200),
    `dettaglioRincorso` VARCHAR(5000),
    CONSTRAINT `PK_RINCORSO` PRIMARY KEY (`id_rincorso`)
);

# ---------------------------------------------------------------------- #
# Add table "ARMATURA"                                                   #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARMATURA` (
    `id_armatura` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(40),
    `numLicci` INTEGER,
    `numcolpi` INTEGER,
    `partenza` INTEGER,
    CONSTRAINT `PK_ARMATURA` PRIMARY KEY (`id_armatura`)
);

# ---------------------------------------------------------------------- #
# Add table "ARMATURA_DETTAGLIO"                                         #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARMATURA_DETTAGLIO` (
    `id_armaturaDettaglio` INTEGER NOT NULL AUTO_INCREMENT,
    `id_armatura` INTEGER,
    `nRiga` INTEGER,
    `armaturaRiga` VARCHAR(100),
    CONSTRAINT `PK_ARMATURA_DETTAGLIO` PRIMARY KEY (`id_armaturaDettaglio`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_LAVORAZIONE"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_LAVORAZIONE` (
    `id_tipoLavorazione` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(40),
    CONSTRAINT `PK_TIPO_LAVORAZIONE` PRIMARY KEY (`id_tipoLavorazione`)
);

# ---------------------------------------------------------------------- #
# Add table "STAGIONE"                                                   #
# ---------------------------------------------------------------------- #

CREATE TABLE `STAGIONE` (
    `id_stagione` INTEGER NOT NULL AUTO_INCREMENT,
    CONSTRAINT `PK_STAGIONE` PRIMARY KEY (`id_stagione`)
);

# ---------------------------------------------------------------------- #
# Add table "CONFEZIONE"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `CONFEZIONE` (
    `id_confezione` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(40),
    `flgTipo` INTEGER,
    CONSTRAINT `PK_CONFEZIONE` PRIMARY KEY (`id_confezione`)
);

# ---------------------------------------------------------------------- #
# Add table "MOVIMENTO_FILATO"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `MOVIMENTO_FILATO` (
    `id_movimentoFilato` INTEGER NOT NULL AUTO_INCREMENT,
    `id_rigaDocumento` INTEGER,
    `id_causaleMagazzino` INTEGER,
    `id_magFisico` INTEGER,
    `id_clifor` INTEGER,
    `id_articoloFilatoColore` INTEGER,
    `id_confezione` INTEGER,
    `partita` VARCHAR(200),
    `bagno` VARCHAR(200),
    `kg` DOUBLE,
    CONSTRAINT `PK_MOVIMENTO_FILATO` PRIMARY KEY (`id_movimentoFilato`)
);

# ---------------------------------------------------------------------- #
# Add table "TABLE_DESC"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `TABLE_DESC` (
    `id_tableDesc` INTEGER NOT NULL AUTO_INCREMENT,
    `id_access` VARCHAR(30),
    `nomeColonna` VARCHAR(40),
    `label` VARCHAR(60),
    `flgPk` INTEGER,
    `flgHidden` INTEGER,
    `flgTipo` INTEGER,
    `flgFormField` INTEGER,
    `flgCR` INTEGER,
    `ordineCR` INTEGER,
    `rowNumbCR` INTEGER,
    `colLgCR` INTEGER,
    `colXsCR` INTEGER,
    `numColSearch` INTEGER,
    `ordine` INTEGER,
    `rowNumb` INTEGER,
    `colLg` INTEGER,
    `colXs` INTEGER,
    `ajaxSearchString` VARCHAR(300),
    `maxLenght` INTEGER,
    `flgReadOnly` INTEGER,
    `tabName` VARCHAR(40),
    `tabOrder` INTEGER,
    `flgRequired` INTEGER,
    `ajaxFieldsMapping` VARCHAR(200),
    `comboFlgValuelist` VARCHAR(300),
    `toolTip` VARCHAR(250),
    `flgHtml` INTEGER,
    `ajaxNChar` INTEGER,
    `ajaxNextAction` VARCHAR(40),
    `flgAjaxUseSubmit` INTEGER,
    `flgAjaxUseMono` INTEGER,
    `ajaxJavascriptmodify` VARCHAR(40),
    `ajaxJavascriptnew` VARCHAR(40),
    `valoreDefaultCR` VARCHAR(40),
    CONSTRAINT `PK_TABLE_DESC` PRIMARY KEY (`id_tableDesc`)
);

CREATE UNIQUE INDEX `IDX_TABLE_DESC_1` ON `TABLE_DESC` (`id_access`,`nomeColonna`);

# ---------------------------------------------------------------------- #
# Add table "STATUS_MSG"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `STATUS_MSG` (
    `id_statusMsg` INTEGER NOT NULL AUTO_INCREMENT,
    `tag` VARCHAR(40),
    `msg` VARCHAR(6000),
    CONSTRAINT `PK_STATUS_MSG` PRIMARY KEY (`id_statusMsg`)
);

CREATE UNIQUE INDEX `IDX_STATUS_MSG_1` ON `STATUS_MSG` (`tag`);

# ---------------------------------------------------------------------- #
# Add table "TELAIO"                                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `TELAIO` (
    `id_telaio` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(40),
    `codiceTelaio` VARCHAR(40),
    `flgTipoTelaio` INTEGER,
    `colpiMinuto` INTEGER,
    CONSTRAINT `PK_TELAIO` PRIMARY KEY (`id_telaio`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPOLOGIA_DOCUMENTO"                                        #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPOLOGIA_DOCUMENTO` (
    `id_tipologiaDocumento` INTEGER NOT NULL AUTO_INCREMENT,
    `codice` INTEGER,
    `descrizione` VARCHAR(40),
    `suffissoPD` VARCHAR(40),
    `flgArticolo2` INTEGER,
    `flgGestioneSeparata` INTEGER,
    `suffissoCR` VARCHAR(40),
    `flgTDFelett` VARCHAR(4),
    `nota` TEXT,
    CONSTRAINT `PK_TIPOLOGIA_DOCUMENTO` PRIMARY KEY (`id_tipologiaDocumento`)
);
INSERT INTO `TIPOLOGIA_DOCUMENTO` VALUES (1,NULL,'BOLLA',NULL,NULL,NULL,NULL,NULL,NULL),(2,1,'FATTURA',NULL,NULL,NULL,NULL,'TD01',NULL),(3,2,'NOTA DI CREDITO',NULL,NULL,NULL,NULL,'TD04',NULL),(4,3,'ORDINE',NULL,NULL,NULL,NULL,NULL,NULL),(5,4,'PRENOTAZIONE',NULL,NULL,NULL,NULL,NULL,NULL),(6,5,'RIPARAZIONE','Rip',NULL,NULL,NULL,NULL,NULL),(7,8,'ORDINE A FORNITORE',NULL,NULL,NULL,NULL,NULL,NULL),(8,99,'ALTRO',NULL,NULL,NULL,NULL,NULL,NULL),(9,100,'SCONTRINO','Cash',NULL,NULL,NULL,NULL,NULL),(10,200,'LAVORAZIONE TESSITURA','LavTess',NULL,NULL,NULL,NULL,NULL),(11,150,'RICEVUTA',NULL,NULL,NULL,NULL,'TD01',NULL),(12,-1,'---',NULL,NULL,NULL,NULL,NULL,NULL),(13,210,'CONFEZIONE TAGLIO','Taglio',1,NULL,NULL,NULL,NULL),(151,151,'RICEVUTA A CREDITO',NULL,NULL,NULL,NULL,NULL,NULL);

# ---------------------------------------------------------------------- #
# Add table "TIPO_STAMPA_DOCUMENTO"                                      #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_STAMPA_DOCUMENTO` (
    `id_tipoStampaDocumento` INTEGER NOT NULL AUTO_INCREMENT,
    `codice` INTEGER,
    `descrizione` VARCHAR(40),
    CONSTRAINT `PK_TIPO_STAMPA_DOCUMENTO` PRIMARY KEY (`id_tipoStampaDocumento`)
);
INSERT INTO `TIPO_STAMPA_DOCUMENTO` VALUES (1,-1,'NESSUNA'),(2,NULL,'FT STANDARD'),(3,1,'FT ACCOMPAGNATORIA'),(4,2,'DDT'),(5,3,'FT PROFESS.'),(6,4,'FT PROFESS. SEMPLICE'),(7,5,'RIPARAZIONE'),(8,6,'FT SEMPLICE'),(9,7,'
FT STD CON PESI E COLLI'),(10,9,'SCOTRINO FISCALE'),(11,10,'SCONTRINO NON FISCALE'),(12,11,'RICEVUTA');

# ---------------------------------------------------------------------- #
# Add table "TIPOLOGIA_DOCUMENTO_TIPO_STAMPA"                            #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPOLOGIA_DOCUMENTO_TIPO_STAMPA` (
    `id_tipologiaDocumentoTipoStampa` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipologiaDocumento` INTEGER,
    `id_tipoStampaDocumento` INTEGER,
    CONSTRAINT `PK_TIPOLOGIA_DOCUMENTO_TIPO_STAMPA` PRIMARY KEY (`id_tipologiaDocumentoTipoStampa`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_ATTIVITA"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_ATTIVITA` (
    `id_tipoAttivita` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(40),
    CONSTRAINT `PK_TIPO_ATTIVITA` PRIMARY KEY (`id_tipoAttivita`)
);

# ---------------------------------------------------------------------- #
# Add table "GOOGLE_CATEGORY"                                            #
# ---------------------------------------------------------------------- #

CREATE TABLE `GOOGLE_CATEGORY` (
    `id_googleCategory` INTEGER NOT NULL AUTO_INCREMENT,
    `codice` INTEGER,
    `descrizione` VARCHAR(1000),
    CONSTRAINT `PK_GOOGLE_CATEGORY` PRIMARY KEY (`id_googleCategory`)
);

CREATE INDEX `IDX_GOOGLE_CATEGORY_1` ON `GOOGLE_CATEGORY` (`descrizione`);

CREATE UNIQUE INDEX `IDX_GOOGLE_CATEGORY_2` ON `GOOGLE_CATEGORY` (`codice`);

# ---------------------------------------------------------------------- #
# Add table "STATO_USATO"                                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `STATO_USATO` (
    `id_statoUsato` INTEGER NOT NULL AUTO_INCREMENT,
    `sigla` CHAR(2),
    `flgLivello` INTEGER,
    CONSTRAINT `PK_STATO_USATO` PRIMARY KEY (`id_statoUsato`)
);

CREATE UNIQUE INDEX `IDX_STATO_USATO_1` ON `STATO_USATO` (`sigla`);

# ---------------------------------------------------------------------- #
# Add table "CATEGORIA_INGRAMMICRO"                                      #
# ---------------------------------------------------------------------- #

CREATE TABLE `CATEGORIA_INGRAMMICRO` (
    `id_categoriaIngrammiro` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(254),
    `codice` VARCHAR(8),
    CONSTRAINT `PK_CATEGORIA_INGRAMMICRO` PRIMARY KEY (`id_categoriaIngrammiro`)
);

CREATE UNIQUE INDEX `IDX_CATEGORIA_INGRAMMICRO_1` ON `CATEGORIA_INGRAMMICRO` (`codice`);

# ---------------------------------------------------------------------- #
# Add table "REMOTE_DEVICE"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `REMOTE_DEVICE` (
    `id_remoteDevice` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `token` VARCHAR(512),
    `imei` VARCHAR(40),
    `ipAddress` CHAR(60),
    `updTmst` DATETIME,
    `imgTmst` VARCHAR(24),
    `fcmToken` VARCHAR(512),
    CONSTRAINT `PK_REMOTE_DEVICE` PRIMARY KEY (`id_remoteDevice`)
);

CREATE UNIQUE INDEX `IDX_REMOTE_DEVICE_1` ON `REMOTE_DEVICE` (`token`);

CREATE UNIQUE INDEX `IDX_REMOTE_DEVICE_2` ON `REMOTE_DEVICE` (`fcmToken`);

CREATE UNIQUE INDEX `IDX_REMOTE_DEVICE_3` ON `REMOTE_DEVICE` (`imei`);

# ---------------------------------------------------------------------- #
# Add table "SITEMAP"                                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `SITEMAP` (
    `id_sitemap` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(40),
    `loc` VARCHAR(254),
    `priority` INTEGER,
    `flgChangefreq` INTEGER,
    `flgAbilita` INTEGER,
    `langSitemap` VARCHAR(3),
    CONSTRAINT `PK_SITEMAP` PRIMARY KEY (`id_sitemap`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_PERSONA_CARICO"                                        #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_PERSONA_CARICO` (
    `id_tipoPersonaCarico` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    CONSTRAINT `PK_TIPO_PERSONA_CARICO` PRIMARY KEY (`id_tipoPersonaCarico`)
);

# ---------------------------------------------------------------------- #
# Add table "OTTOXMILLE"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `OTTOXMILLE` (
    `id_ottoxmille` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(254),
    CONSTRAINT `PK_OTTOXMILLE` PRIMARY KEY (`id_ottoxmille`)
);

# ---------------------------------------------------------------------- #
# Add table "IVA"                                                        #
# ---------------------------------------------------------------------- #

CREATE TABLE `IVA` (
    `id_iva` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(30),
    `aliquota` INTEGER,
    `flgTipo` CHAR(2),
    `aliquotaIndetraibile` INTEGER,
    `notaEsenzione` VARCHAR(60),
    `flgMargine` INTEGER,
    `id_pianoConti` INTEGER,
    `codiceExport` VARCHAR(10),
    `descrizioneRigaStampa` VARCHAR(30),
    `flgOss` INTEGER,
    `id_ivaStdRM` INTEGER,
    CONSTRAINT `PK_IVA` PRIMARY KEY (`id_iva`)
);
INSERT INTO `IVA` VALUES (1,'IVA 22 %',22,'I',0,NULL,0,NULL,NULL,NULL,NULL,NULL),(4,'NON IMPONIBILE ART. 8 ',0,'N',0,'ART. 8 C. 1',NULL,NULL,NULL,NULL,NULL,NULL),(5,'ESCLUSO ART. 41 ',0,'N',0,'C
ESSIONE INTRACOMUNITARIA NON IMP. ART. 41',NULL,NULL,NULL,NULL,NULL,NULL),(6,'NON IMPONIBILE ART. 9 SP. TR.',0,'N',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL);

# ---------------------------------------------------------------------- #
# Add table "NAZIONE"                                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `NAZIONE` (
    `id_nazione` CHAR(4) NOT NULL,
    `codice` VARCHAR(16),
    `lang` CHAR(3),
    `descrizione_it` VARCHAR(60),
    `descrizione_en` VARCHAR(60),
    `flgCee` INTEGER,
    `flgAttiva` INTEGER,
    `costoSpedizione` DECIMAL(18,4),
    `codiceIstat` CHAR(3),
    `descrizioneInLingua` VARCHAR(60),
    `flgGoogleMerchant` INTEGER,
    `flgPreventivoWww` INTEGER,
    `id_iva` INTEGER,
    `importoMinimoWww` DECIMAL(18,4),
    `tag` VARCHAR(254),
    `prefissoTel` VARCHAR(5),
    CONSTRAINT `PK_NAZIONE` PRIMARY KEY (`id_nazione`)
);

CREATE INDEX `IDX_NAZIONE_1` ON `NAZIONE` (`lang`);

CREATE UNIQUE INDEX `IDX_NAZIONE_2` ON `NAZIONE` (`codice` ASC);

# ---------------------------------------------------------------------- #
# Add table "REGIONE"                                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `REGIONE` (
    `id_regione` VARCHAR(8) NOT NULL,
    `descrizione` VARCHAR(30),
    `id_nazione` CHAR(4),
    CONSTRAINT `PK_REGIONE` PRIMARY KEY (`id_regione`)
);

# ---------------------------------------------------------------------- #
# Add table "NEWS"                                                       #
# ---------------------------------------------------------------------- #

CREATE TABLE `NEWS` (
    `id_news` INTEGER NOT NULL AUTO_INCREMENT,
    `dataNews` DATE,
    `flgVisibile` INTEGER,
    `dataFineVld` DATE,
    `imgTmst` VARCHAR(24),
    `id_tipoNews` INTEGER,
    `dataInvio` DATE,
    `dataFine` DATE,
    CONSTRAINT `PK_NEWS` PRIMARY KEY (`id_news`)
);

# ---------------------------------------------------------------------- #
# Add table "ALLEGATO_NEWS"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `ALLEGATO_NEWS` (
    `id_allegatoNews` INTEGER NOT NULL AUTO_INCREMENT,
    `nomeFile` VARCHAR(60),
    `id_news` INTEGER(11),
    `descrizioneAllegato` VARCHAR(254),
    `clickThroughAN` INTEGER,
    CONSTRAINT `PK_ALLEGATO_NEWS` PRIMARY KEY (`id_allegatoNews`)
);

CREATE INDEX `IDX_ALLEGATO_NEWS_1` ON `ALLEGATO_NEWS` (`id_news`);

# ---------------------------------------------------------------------- #
# Add table "TAGLIA"                                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `TAGLIA` (
    `id_taglia` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipoTaglia` INTEGER,
    `ordine` INTEGER,
    `codice` VARCHAR(10),
    CONSTRAINT `PK_TAGLIA` PRIMARY KEY (`id_taglia`)
);

CREATE UNIQUE INDEX `IDX_TAGLIA_1` ON `TAGLIA` (`id_tipoTaglia`,`codice`);

# ---------------------------------------------------------------------- #
# Add table "POSTAZIONE"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `POSTAZIONE` (
    `id_postazione` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipoPostazione` INTEGER,
    `descrizione` VARCHAR(60),
    `ipAddress` CHAR(60),
    `stampanteA4` VARCHAR(60),
    `stampanteEtichette` VARCHAR(60),
    `id_regCassa` INTEGER,
    `hostname` VARCHAR(60),
    CONSTRAINT `PK_POSTAZIONE` PRIMARY KEY (`id_postazione`)
);

CREATE INDEX `IDX_POSTAZIONE_1` ON `POSTAZIONE` (`id_regCassa`);

# ---------------------------------------------------------------------- #
# Add table "CODA_MESSAGGI"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `CODA_MESSAGGI` (
    `id_codaMessaggi` INTEGER NOT NULL AUTO_INCREMENT,
    `flgTipo` INTEGER,
    `flgStatoInvio` INTEGER,
    `dataCreazione` DATE,
    `testoMessaggio` TEXT,
    `cellulare` VARCHAR(254),
    `mailTo` VARCHAR(60),
    `mailCc` VARCHAR(60),
    `mailBcc` VARCHAR(60),
    `dataInvio` DATE,
    `result` TEXT,
    `riferimento` VARCHAR(60),
    `destinatario` VARCHAR(254),
    `oggettoEmail` VARCHAR(254),
    `imgTmst` VARCHAR(24),
    `campagna` VARCHAR(60),
    `id_templateMsg` INTEGER,
    `tmstPrimaLettura` VARCHAR(30),
    `tmstUltimaLettura` VARCHAR(30),
    `nLetture` INTEGER,
    `ipPrimaLettura` CHAR(60),
    `ipUltimaLettura` CHAR(60),
    `campiMail` VARCHAR(1000),
    `id_remoteDevice` INTEGER,
    CONSTRAINT `PK_CODA_MESSAGGI` PRIMARY KEY (`id_codaMessaggi`)
);

# ---------------------------------------------------------------------- #
# Add table "ALLEGATO_CODA_MESSAGGI"                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `ALLEGATO_CODA_MESSAGGI` (
    `id_allegatoCodaMessaggi` INTEGER NOT NULL AUTO_INCREMENT,
    `id_codaMessaggi` INTEGER,
    `nomeFile` VARCHAR(60),
    CONSTRAINT `PK_ALLEGATO_CODA_MESSAGGI` PRIMARY KEY (`id_allegatoCodaMessaggi`)
);

# ---------------------------------------------------------------------- #
# Add table "BANCA"                                                      #
# ---------------------------------------------------------------------- #

CREATE TABLE `BANCA` (
    `id_banca` INTEGER NOT NULL AUTO_INCREMENT,
    `id_abiCab` INTEGER,
    `id_pianoConti` INTEGER,
    `descrizione` VARCHAR(60),
    `iban` CHAR(27),
    `telefono` VARCHAR(30),
    `email` VARCHAR(60),
    `codiceAlt` VARCHAR(40),
    `ordine` INTEGER,
    `flgDefaultBonifico` INTEGER,
    CONSTRAINT `PK_BANCA` PRIMARY KEY (`id_banca`)
);

# ---------------------------------------------------------------------- #
# Add table "MOV_CONTABILE"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `MOV_CONTABILE` (
    `id_movContabile` INTEGER NOT NULL AUTO_INCREMENT,
    `id_causaleContabile` INTEGER,
    `dataMovContabile` DATE,
    `descrizione` VARCHAR(254),
    `flgStato` INTEGER,
    CONSTRAINT `PK_MOV_CONTABILE` PRIMARY KEY (`id_movContabile`)
);

# ---------------------------------------------------------------------- #
# Add table "DISTINTA_RIBA"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `DISTINTA_RIBA` (
    `id_distintaRiba` INTEGER NOT NULL AUTO_INCREMENT,
    `id_banca` INTEGER,
    `dataPresentazione` DATE,
    `flgStatoDistinta` INTEGER,
    `flgAccorpaScadenze` INTEGER,
    `flgContabilizzata` INTEGER,
    `timestampElaborazione` INTEGER,
    `maxDistinta` DOUBLE,
    CONSTRAINT `PK_DISTINTA_RIBA` PRIMARY KEY (`id_distintaRiba`)
);

# ---------------------------------------------------------------------- #
# Add table "LAVORAZIONE"                                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `LAVORAZIONE` (
    `id_lavorazione` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(40),
    `id_tipoLavorazione` INTEGER,
    `costo` DECIMAL(18,4),
    `flgUdm` INTEGER,
    `abbreviazione` CHAR(3),
    CONSTRAINT `PK_LAVORAZIONE` PRIMARY KEY (`id_lavorazione`)
);

# ---------------------------------------------------------------------- #
# Add table "REPARTO"                                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `REPARTO` (
    `id_reparto` INTEGER NOT NULL AUTO_INCREMENT,
    `sigla` VARCHAR(16),
    `descrizione_it` VARCHAR(60),
    `descrizione_en` VARCHAR(60),
    `id_iva` INTEGER,
    `siglaEpson` INTEGER,
    `descrizione` VARCHAR(60),
    CONSTRAINT `PK_REPARTO` PRIMARY KEY (`id_reparto`)
);

CREATE UNIQUE INDEX `IDX_REPARTO_1` ON `REPARTO` (`sigla` ASC);

CREATE INDEX `IDX_REPARTO_2` ON `REPARTO` (`id_iva`);

# ---------------------------------------------------------------------- #
# Add table "TIPO"                                                       #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO` (
    `id_tipo` INTEGER(11) NOT NULL AUTO_INCREMENT,
    `ricaricoBase` INTEGER(11),
    `id_tipoPadre` INTEGER(11),
    `livello` INTEGER(11),
    `indici` VARCHAR(767) COLLATE latin1_swedish_ci,
    `flgFoglia` INTEGER(11),
    `flgNascondi` INTEGER(11) DEFAULT 0,
    `ordine` INTEGER(11),
    `codiceAlt` VARCHAR(8) CHARACTER SET latin1 COLLATE latin1_swedish_ci,
    `id_reparto` INTEGER(11),
    `flgTipoMagazzino` INTEGER(11),
    `flgUsaVarianti` INTEGER(11),
    `flgStampaEtichette` INTEGER(11),
    `flgStampaAccessori` INTEGER(11),
    `descrizione` VARCHAR(60) CHARACTER SET latin1 COLLATE latin1_swedish_ci,
    `flgPresente` INTEGER(11),
    `flgPresenteStock` INTEGER(11),
    `flgPresenteOfferte` INTEGER(11),
    `flgPresenteUsato` INTEGER(11),
    `descrizioneCompleta` VARCHAR(254),
    `flgRC` INTEGER,
    `flgEscludiWeb` INTEGER,
    `costoSpedizione` DECIMAL(18,4),
    `imgTmst` VARCHAR(24),
    `flgStampaBarcode` INTEGER,
    `id_tipoTaglia` INTEGER,
    `flgUsaTaglia` INTEGER,
    `flgNoListino` INTEGER,
    `id_tipologiaArticolo` INTEGER,
    `descrizioneR` VARCHAR(1000),
    `flgCaratteristiche` INTEGER,
    `flgComponenti` INTEGER,
    `flgAccessori` INTEGER,
    `flgAltreCompatibilita` INTEGER,
    `flgRivalutazioni` INTEGER,
    `flgFornitori` INTEGER,
    `flgAllegati` INTEGER,
    `flgMagNegativo` INTEGER,
    `flgUsaVarianteColori` INTEGER,
    `flgNoCart` INTEGER,
    `flgKit` INTEGER,
    `tag` VARCHAR(254),
    `ordineGlobale` INTEGER,
    `flgB2b` INTEGER,
    `ebayCategoryId` VARCHAR(10),
    `ebayCategoryDesc` VARCHAR(40),
    `googleProductCategory` INTEGER,
    `id_googleCategory` INTEGER,
    `ebayCommissione` DECIMAL(5,2),
    `percCostoSpedizioneDefault` INTEGER,
    `amazonCommissione` DECIMAL(5,2),
    `amazonSoglia` DECIMAL(18,4),
    `amazonCommissioneOltreSoglia` DECIMAL(5,2),
    `flgControlloCostiAggFor` INTEGER,
    `trovaprezziCategoria` VARCHAR(254),
    `flgMainPage` INTEGER,
    `flgIcecatNoAuto` INTEGER,
    `sitemapFileProdotti` VARCHAR(30),
    `sitemapPriority` INTEGER,
    `id_listinoEbay` INTEGER,
    `id_listinoAmazon` INTEGER,
    `amazonFissa` DECIMAL(18,4),
    `ebayFissa` DECIMAL(18,4),
    PRIMARY KEY (`id_tipo`)
);

CREATE INDEX `IDX_TIPO_INDICI` ON `TIPO` (`indici`);

CREATE INDEX `TIPO_TIPO` ON `TIPO` (`id_tipoPadre`);

CREATE INDEX `REPARTO_TIPO` ON `TIPO` (`id_reparto`);

CREATE INDEX `IDX_TIPO_4` ON `TIPO` (`tag`);

CREATE INDEX `IDX_TIPO_5` ON `TIPO` (`ordineGlobale` ASC);

CREATE INDEX `IDX_TIPO_6` ON `TIPO` (`ordine` ASC);

CREATE INDEX `IDX_TIPO_7` ON `TIPO` (`flgNascondi`);

CREATE INDEX `IDX_TIPO_8` ON `TIPO` (`livello` ASC,`ordine` ASC);

# ---------------------------------------------------------------------- #
# Add table "C_TIPO"                                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `C_TIPO` (
    `id_tipo` INTEGER NOT NULL,
    `id_caratteristica` INTEGER NOT NULL,
    CONSTRAINT `PK_C_TIPO` PRIMARY KEY (`id_tipo`, `id_caratteristica`)
);

CREATE INDEX `IDX_C_TIPO_1` ON `C_TIPO` (`id_tipo`);

CREATE INDEX `IDX_C_TIPO_2` ON `C_TIPO` (`id_caratteristica`);

# ---------------------------------------------------------------------- #
# Add table "COMUNE"                                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `COMUNE` (
    `id_comune` INTEGER NOT NULL AUTO_INCREMENT,
    `id_regione` VARCHAR(8),
    `id_zona` INTEGER,
    `codice` CHAR(4) NOT NULL,
    `descrizione` VARCHAR(60),
    `provincia` VARCHAR(60),
    `cap` CHAR(5),
    `codiceComune` VARCHAR(6),
    `codiceZona` CHAR(1),
    CONSTRAINT `PK_COMUNE` PRIMARY KEY (`id_comune`)
);

CREATE INDEX `ComuniComune` ON `COMUNE` (`codice`);

CREATE INDEX `ComuniDescrizione` ON `COMUNE` (`descrizione`);

# ---------------------------------------------------------------------- #
# Add table "LISTINO_TIPO"                                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `LISTINO_TIPO` (
    `id_listinoTipo` INTEGER NOT NULL AUTO_INCREMENT,
    `flgTipoLT` INTEGER,
    `percLT` DECIMAL(5,2),
    `id_tipo` INTEGER(11),
    `id_listino` INTEGER,
    `indiciTipo` VARCHAR(767),
    `percLT1` DECIMAL(5,2),
    `percLT2` DECIMAL(5,2),
    `percLT3` DECIMAL(5,2),
    `prezzoLT` DECIMAL(18,4),
    CONSTRAINT `PK_LISTINO_TIPO` PRIMARY KEY (`id_listinoTipo`)
);

CREATE INDEX `IDX_LISTINO_TIPO_1` ON `LISTINO_TIPO` (`indiciTipo`);

CREATE UNIQUE INDEX `IDX_LISTINO_TIPO_2` ON `LISTINO_TIPO` (`id_listino`,`id_tipo`);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_FILATO"                                            #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_FILATO` (
    `id_articoloFilato` INTEGER NOT NULL AUTO_INCREMENT,
    `codiceAF` VARCHAR(40),
    `id_tipo` INTEGER(11),
    `descrizione` VARCHAR(100),
    `titolo` INTEGER,
    `nCapi` INTEGER,
    `flgNaturaTinto` INTEGER,
    `id_iva` INTEGER,
    `quantitaCalcolate` BOOL,
    `quantitaEffettiva` DOUBLE,
    `quantitaImpegnata` DOUBLE,
    `quantitaInArrivo` DOUBLE,
    `quantitaMagazzinoMovimentoHtml` VARCHAR(254),
    `quantitaW` DOUBLE,
    `flgDispo` INTEGER,
    `percSconto` DECIMAL(5,2),
    `prezzoOfferta` DECIMAL(18,4),
    `prezzoPubblico` DECIMAL(18,4),
    `quantita` DOUBLE,
    CONSTRAINT `PK_ARTICOLO_FILATO` PRIMARY KEY (`id_articoloFilato`)
);

CREATE UNIQUE INDEX `IDX_ARTICOLO_FILATO_1` ON `ARTICOLO_FILATO` (`codiceAF`);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_FILATO_COMPONENTE"                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_FILATO_COMPONENTE` (
    `id_articoloFilatoComponente` INTEGER NOT NULL AUTO_INCREMENT,
    `id_componente` INTEGER,
    `id_articoloFilato` INTEGER,
    `percentuale` DECIMAL(5,2),
    CONSTRAINT `PK_ARTICOLO_FILATO_COMPONENTE` PRIMARY KEY (`id_articoloFilatoComponente`)
);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_TESSUTO"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_TESSUTO` (
    `id_articoloTessuto` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipo` INTEGER(11),
    `codiceAT` VARCHAR(40),
    `id_iva` INTEGER,
    `id_stagione` INTEGER,
    `flgTipoAT` INTEGER,
    `flgTipoTessutoM` INTEGER,
    `id_articoloTessutoPadre` INTEGER,
    `flgStato` INTEGER,
    `altezzaMin` INTEGER,
    `altezzaMax` INTEGER,
    `lunghezzaFinita` INTEGER,
    `pesoMin` DOUBLE,
    `pesoMax` DOUBLE,
    `pesoMq` DOUBLE,
    `lavaggio` INTEGER,
    `candeggio` INTEGER,
    `stiratura` INTEGER,
    `asciugatura` INTEGER,
    `pulituraSecco` INTEGER,
    `codiceDoganale` VARCHAR(40),
    `flgUdm` INTEGER,
    `prezzoBase` DECIMAL(18,4),
    `descrizione` VARCHAR(60),
    `altezzaGreggia` INTEGER,
    `altezzaPettine` DOUBLE,
    `caloOrdito` DECIMAL(5,2),
    `caloTrama` DECIMAL(5,2),
    `colpiFiniti` INTEGER,
    `colpiSpecchio` INTEGER,
    `colpiTelaio` INTEGER,
    `filiCimosse` INTEGER,
    `filiOrdito` INTEGER,
    `flgAccoppiato` INTEGER,
    `flgAcquistato` INTEGER,
    `flgJaquard` INTEGER,
    `flgTintoFiloPezza` INTEGER,
    `id_armatura` INTEGER,
    `id_rincorso` INTEGER,
    `impettinatura` INTEGER,
    `licci1` INTEGER,
    `licci2` INTEGER,
    `lunghezzaGreggia` INTEGER,
    `mtOrdito` INTEGER,
    `pesoGreggio` DOUBLE,
    `pettine` INTEGER,
    `pezzaPerTela` INTEGER,
    `tipoPettine` INTEGER,
    `quantitaCalcolate` BOOL,
    `quantitaEffettiva` DOUBLE,
    `quantitaImpegnata` DOUBLE,
    `quantitaInArrivo` DOUBLE,
    `quantitaMagazzinoMovimentoHtml` VARCHAR(254),
    `quantita` DOUBLE,
    `descLavorazione` VARCHAR(1000),
    `capiPerTelo` INTEGER,
    `numTeliMax` INTEGER,
    `dataFineVld` DATE,
    `codiciAlternativiAt` VARCHAR(200),
    `notaTessuto` TEXT,
    `ultimoPrezzoAcquisto` DECIMAL(18,4),
    `dataUltimoPrezzoAcquisto` DATE,
    `quantitaW` DOUBLE,
    `quantitaLavorazione` DOUBLE,
    CONSTRAINT `PK_ARTICOLO_TESSUTO` PRIMARY KEY (`id_articoloTessuto`)
);

CREATE UNIQUE INDEX `IDX_ARTICOLO_TESSUTO_1` ON `ARTICOLO_TESSUTO` (`codiceAT`);

CREATE INDEX `IDX_ARTICOLO_TESSUTO_2` ON `ARTICOLO_TESSUTO` (`codiciAlternativiAt`);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_TESSUTO_ACCOPPIATO"                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_TESSUTO_ACCOPPIATO` (
    `id_articoloTessutoAccoppiato` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articoloTessuto` INTEGER,
    `id_articoloTessutoComponente` INTEGER,
    CONSTRAINT `PK_ARTICOLO_TESSUTO_ACCOPPIATO` PRIMARY KEY (`id_articoloTessutoAccoppiato`)
);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_TESSUTO_COMPONENTE"                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_TESSUTO_COMPONENTE` (
    `id_articoloTessutoComponente` INTEGER NOT NULL AUTO_INCREMENT,
    `id_componente` INTEGER,
    `id_articoloTessuto` INTEGER,
    `percentuale` DECIMAL(5,2),
    CONSTRAINT `PK_ARTICOLO_TESSUTO_COMPONENTE` PRIMARY KEY (`id_articoloTessutoComponente`)
);

CREATE UNIQUE INDEX `IDX_ARTICOLO_TESSUTO_COMPONENTE_1` ON `ARTICOLO_TESSUTO_COMPONENTE` (`id_componente`,`id_articoloTessuto`);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_TESSUTO_LAVORAZIONE"                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_TESSUTO_LAVORAZIONE` (
    `id_articoloTessutoLavorazione` INTEGER NOT NULL AUTO_INCREMENT,
    `id_lavorazione` INTEGER,
    `id_articoloTessuto` INTEGER,
    `ordine` INTEGER,
    `flgObbligatoria` INTEGER,
    CONSTRAINT `PK_ARTICOLO_TESSUTO_LAVORAZIONE` PRIMARY KEY (`id_articoloTessutoLavorazione`)
);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_TESSUTO_COLORE"                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_TESSUTO_COLORE` (
    `id_articoloTessutoColore` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articoloTessuto` INTEGER,
    `id_colore` INTEGER,
    `quantitaAtc` DOUBLE,
    `quantitaCalcolate` BOOL,
    `quantitaEffettiva` DOUBLE,
    `quantitaImpegnata` DOUBLE,
    `quantitaInArrivo` DOUBLE,
    `quantitaMagazzinoMovimentoHtml` VARCHAR(254),
    `flgDispo` INTEGER,
    `quantitaAtcW` DOUBLE,
    `quantitaLavorazione` DOUBLE,
    CONSTRAINT `PK_ARTICOLO_TESSUTO_COLORE` PRIMARY KEY (`id_articoloTessutoColore`)
);

CREATE UNIQUE INDEX `IDX_ARTICOLO_TESSUTO_COLORE_1` ON `ARTICOLO_TESSUTO_COLORE` (`id_articoloTessuto`,`id_colore`);

# ---------------------------------------------------------------------- #
# Add table "WWW_AUTOMATOR"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `WWW_AUTOMATOR` (
    `id_wwwAutomator` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipo` INTEGER(11),
    `categoriaImport` VARCHAR(40),
    `searchTxt` VARCHAR(40),
    `qtaMaxAcquistoWww` INTEGER,
    `ricarico` DECIMAL(5,2),
    `flgGoogle` INTEGER,
    `ultimaEsecuzione` VARCHAR(6000),
    `flgAbilita` INTEGER,
    `ordine` INTEGER,
    `prezzoPubblicoDa` DECIMAL(18,4),
    `ricaricoOltre` DECIMAL(5,2),
    CONSTRAINT `PK_WWW_AUTOMATOR` PRIMARY KEY (`id_wwwAutomator`)
);

# ---------------------------------------------------------------------- #
# Add table "CLIFOR"                                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `CLIFOR` (
    `id_clifor` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipoPagamento` INTEGER,
    `codiceAlt` VARCHAR(16),
    `flgValido` INTEGER,
    `flgTipo` CHAR(1),
    `flgAzienda` INTEGER,
    `cognome` VARCHAR(254),
    `contatto` VARCHAR(60),
    `nome` VARCHAR(60),
    `indirizzo` VARCHAR(254),
    `numeroCivico` VARCHAR(30),
    `id_comune` INTEGER,
    `id_nazione` CHAR(4),
    `id_comuneNascita` INTEGER,
    `dataNascita` DATE,
    `codFisc` VARCHAR(16),
    `pIva` VARCHAR(16),
    `eMail` VARCHAR(254),
    `fax` VARCHAR(30),
    `telefono` VARCHAR(30),
    `nota` TEXT,
    `imgTmst` VARCHAR(24),
    `flgPrivComunicazione` INTEGER,
    `flgPrivSensibili` INTEGER,
    `flgPrivTrattamento` INTEGER,
    `flgSesso` INTEGER,
    `dataRegistrazioneDI` DATE,
    `dichiarazioneIntento` VARCHAR(30),
    `flgArt8` INTEGER,
    `id_listino` INTEGER,
    `iban` CHAR(27),
    `capZona` VARCHAR(40),
    `www` VARCHAR(60),
    `cellulare` VARCHAR(30),
    `bancaDesc` VARCHAR(60),
    `flgMl` INTEGER,
    `descrizioneComune` VARCHAR(60),
    `provinciaComune` CHAR(30),
    `capComune` CHAR(10),
    `flgRC` INTEGER,
    `codiceCartaFidelity` VARCHAR(30),
    `descrizioneComuneNascita` VARCHAR(60),
    `telefonoAmm` VARCHAR(30),
    `cellulareAmm` VARCHAR(30),
    `eMailAmm` VARCHAR(60),
    `telefonoAltro` VARCHAR(30),
    `cellulareAltro` VARCHAR(30),
    `eMailAltro` VARCHAR(60),
    `descrizioneAltroContatto` VARCHAR(60),
    `numeroDocumento` VARCHAR(60),
    `dataScadenzaDocumento` DATE,
    `percProvvigione` DECIMAL(5,2),
    `flgDocumentoVerificato` INTEGER,
    `notePerCliente` TEXT,
    `flgNascondiWeb` INTEGER,
    `zona` VARCHAR(60),
    `id_pianoConti` INTEGER,
    `id_bancaAzienda` INTEGER,
    `speseIncasso` DECIMAL(18,4),
    `abi` VARCHAR(5),
    `cab` VARCHAR(5),
    `bic` VARCHAR(20),
    `id_agente` INTEGER,
    `id_respCommerciale` INTEGER,
    `percAgente` DECIMAL(5,2),
    `percRespCommerciale` DECIMAL(5,2),
    `descAggiuntiva` VARCHAR(254),
    `pec` VARCHAR(60),
    `costoOrarioAssistenza` DECIMAL(18,4),
    `codiceIdentificativoFE` CHAR(7),
    `flgPA` INTEGER,
    `flgUsaContrattoOre` INTEGER,
    `flgSplitPayment` INTEGER,
    `flgUsato` INTEGER,
    `provinciaComuneNascita` CHAR(4),
    `comuneNascitaDescrizione` VARCHAR(60),
    `flgTaxFree` INTEGER,
    `importPrefissoCodice` VARCHAR(6),
    `importLinkFornitore` VARCHAR(254),
    `flgAbilitaAF` INTEGER,
    `importLinkFornitoreEan` VARCHAR(40),
    `valoreMinimoAbilitaAF` DECIMAL(18,4),
    `costoMinimoOrdineWeb` DECIMAL(18,4),
    `flgStatoCivile` INTEGER,
    `id_ottoxmille` INTEGER,
    `cf5xmille` VARCHAR(16),
    `codice2xmille` VARCHAR(16),
    CONSTRAINT `PK_CLIFOR` PRIMARY KEY (`id_clifor`)
);
INSERT INTO `CLIFOR` (id_clifor,flgValido,flgTipo,cognome )VALUES (1,1,'F','CARICO/SCARICO INTERNO');

CREATE UNIQUE INDEX `IDX_CLIFOR_1` ON `CLIFOR` (`codiceAlt` ASC);

CREATE INDEX `IDX_CLIFOR_2` ON `CLIFOR` (`id_tipoPagamento`);

CREATE INDEX `IDX_CLIFOR_3` ON `CLIFOR` (`id_nazione`);

CREATE INDEX `IDX_CLIFOR_4` ON `CLIFOR` (`id_comune`);

CREATE INDEX `IDX_CLIFOR_5` ON `CLIFOR` (`id_comuneNascita`);

CREATE INDEX `IDX_CLIFOR_6` ON `CLIFOR` (`id_listino`);

CREATE INDEX `IDX_CLIFOR_7` ON `CLIFOR` (`codFisc`,`flgTipo`);

CREATE UNIQUE INDEX `IDX_CLIFOR_8` ON `CLIFOR` (`pIva`,`flgTipo`);

CREATE INDEX `IDX_CLIFOR_9` ON `CLIFOR` (`cognome` ASC);

CREATE INDEX `IDX_CLIFOR_10` ON `CLIFOR` (`nome` ASC);

CREATE INDEX `IDX_CLIFOR_11` ON `CLIFOR` (`flgTipo`);

CREATE UNIQUE INDEX `IDX_CLIFOR_12` ON `CLIFOR` (`importPrefissoCodice`);

# ---------------------------------------------------------------------- #
# Add table "VETTORE"                                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `VETTORE` (
    `id_vettore` INTEGER NOT NULL AUTO_INCREMENT,
    `id_comune` INTEGER,
    `descrizione` VARCHAR(60),
    `indirizzo` VARCHAR(60),
    `numeroCivico` VARCHAR(40),
    `linkTracking` VARCHAR(254),
    `pIva` VARCHAR(11),
    `codFiscale` VARCHAR(16),
    `iscrizioneAlbo` VARCHAR(40),
    `id_nazione` CHAR(4),
    CONSTRAINT `PK_VETTORE` PRIMARY KEY (`id_vettore`)
);

CREATE INDEX `IDX_VETTORE_1` ON `VETTORE` (`id_comune`);

# ---------------------------------------------------------------------- #
# Add table "MAG_FISICO"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `MAG_FISICO` (
    `id_magFisico` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `flgTipo` INTEGER,
    `flgFineLavorazione` INTEGER,
    `id_clifor` INTEGER,
    CONSTRAINT `PK_MAG_FISICO` PRIMARY KEY (`id_magFisico`)
);
INSERT INTO `MAG_FISICO` VALUES (1,'Magazzino Base',1,0,null);

# ---------------------------------------------------------------------- #
# Add table "BANNER"                                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `BANNER` (
    `id_banner` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipoBanner` INTEGER,
    `id_clifor` INTEGER,
    `descrizioneClifor` VARCHAR(254),
    `link` VARCHAR(254),
    `dataInizioCampagna` DATE,
    `dataFineCampagna` DATE,
    `flgAttivo` INTEGER,
    `impression` INTEGER,
    `clickThrough` INTEGER,
    `dataFineVld` DATE,
    `priorita` INTEGER,
    `titolo` VARCHAR(60),
    `descrizioneBanner` TEXT,
    `imgTmst` VARCHAR(24),
    `flgTipo` INTEGER,
    CONSTRAINT `PK_BANNER` PRIMARY KEY (`id_banner`)
);

CREATE INDEX `IDX_BANNER_1` ON `BANNER` (`flgAttivo`);

CREATE INDEX `IDX_BANNER_2` ON `BANNER` (`flgTipo`);

CREATE INDEX `IDX_BANNER_3` ON `BANNER` (`dataInizioCampagna`);

CREATE INDEX `IDX_BANNER_4` ON `BANNER` (`dataFineCampagna`);

# ---------------------------------------------------------------------- #
# Add table "CAUSALE_MAGAZZINO"                                          #
# ---------------------------------------------------------------------- #

CREATE TABLE `CAUSALE_MAGAZZINO` (
    `id_causaleMagazzino` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizione` VARCHAR(60),
    `id_magFisicoPartenza` INTEGER,
    `id_magFisicoArrivo` INTEGER,
    `flgCaricoPartenza` INTEGER,
    `flgScaricoPartenza` INTEGER,
    `flgCaricoArrivo` INTEGER,
    `flgScaricoArrivo` INTEGER,
    `flgPartenzaInterno` INTEGER,
    `flgArrivoInterno` INTEGER,
    `flgPartenzaLavorazione` INTEGER,
    `flgArrivoLavorazione` INTEGER,
    `nota` TEXT,
    `flgAFTPartenza` INTEGER,
    `flgAFTArrivo` INTEGER,
    CONSTRAINT `PK_CAUSALE_MAGAZZINO` PRIMARY KEY (`id_causaleMagazzino`)
);
INSERT INTO `CAUSALE_MAGAZZINO` VALUES (1,'Scarico per vendita',1,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,'Carico per Acquisto',NULL,1,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL),(3,'Carico per reso da Cliente',NULL,1,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL),(4,'Scarico per reso a fornitori',1,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(5,'CARICO DIVERSIFICATO',NULL,1,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL),(6,'SCARICO DIVERSIFICATO',1,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL);

CREATE INDEX `IDX_CAUSALE_MAGAZZINO_1` ON `CAUSALE_MAGAZZINO` (`id_magFisicoPartenza`);

CREATE INDEX `IDX_CAUSALE_MAGAZZINO_2` ON `CAUSALE_MAGAZZINO` (`id_magFisicoArrivo`);

# ---------------------------------------------------------------------- #
# Add table "DESTINAZIONE_DIVERSA"                                       #
# ---------------------------------------------------------------------- #

CREATE TABLE `DESTINAZIONE_DIVERSA` (
    `id_destinazioneDiversa` INTEGER NOT NULL AUTO_INCREMENT,
    `id_clifor` INTEGER,
    `id_comuneDD` INTEGER,
    `id_nazioneDD` CHAR(4),
    `descrizioneDD` VARCHAR(60),
    `pressoDD` VARCHAR(60),
    `indirizzoDD` VARCHAR(60),
    `numeroCivicoDD` VARCHAR(40),
    `capZonaDD` CHAR(40),
    `telefonoDD` VARCHAR(30),
    `faxDD` VARCHAR(30),
    `eMailDD` VARCHAR(30),
    `descrizioneComuneDD` VARCHAR(60),
    `provinciaComuneDD` VARCHAR(30),
    `capComuneDD` CHAR(10),
    `flgDDDefault` INTEGER,
    CONSTRAINT `PK_DESTINAZIONE_DIVERSA` PRIMARY KEY (`id_destinazioneDiversa`)
);

CREATE INDEX `IDX_DESTINAZIONE_DIVERSA_1` ON `DESTINAZIONE_DIVERSA` (`id_clifor`);

CREATE INDEX `IDX_DESTINAZIONE_DIVERSA_2` ON `DESTINAZIONE_DIVERSA` (`id_nazioneDD`);

CREATE INDEX `IDX_DESTINAZIONE_DIVERSA_3` ON `DESTINAZIONE_DIVERSA` (`id_comuneDD`);

# ---------------------------------------------------------------------- #
# Add table "CONTRATTO"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `CONTRATTO` (
    `id_contratto` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipoContratto` INTEGER,
    `id_clifor` INTEGER,
    `descrizione` VARCHAR(60),
    `dataInizioContratto` DATE,
    `dataScadenzaContratto` DATE,
    `flgStato` INTEGER,
    `telefoniAssociati` VARCHAR(60),
    `notaContratto` TEXT,
    `logContratto` TEXT,
    `dataInvioAvvisoSms` DATE,
    CONSTRAINT `PK_CONTRATTO` PRIMARY KEY (`id_contratto`)
);

CREATE INDEX `IDX_CONTRATTO_1` ON `CONTRATTO` (`id_tipoContratto`);

CREATE INDEX `IDX_CONTRATTO_2` ON `CONTRATTO` (`id_clifor`);

# ---------------------------------------------------------------------- #
# Add table "ALLEGATO_CLIFOR"                                            #
# ---------------------------------------------------------------------- #

CREATE TABLE `ALLEGATO_CLIFOR` (
    `id_allegatoClifor` INTEGER NOT NULL AUTO_INCREMENT,
    `id_clifor` INTEGER,
    `id_tipoAllegatoClifor` INTEGER,
    `nomeFile` VARCHAR(254),
    `descrizioneAllegato` VARCHAR(254),
    `flgDefault` INTEGER,
    PRIMARY KEY (`id_allegatoClifor`)
);

# ---------------------------------------------------------------------- #
# Add table "CLIFOR_TIPO_CLIFOR"                                         #
# ---------------------------------------------------------------------- #

CREATE TABLE `CLIFOR_TIPO_CLIFOR` (
    `id_cliforTipoClifor` INTEGER NOT NULL AUTO_INCREMENT,
    `id_clifor` INTEGER,
    `id_tipoClifor` INTEGER,
    `percProvvigione` DECIMAL(5,2),
    CONSTRAINT `PK_CLIFOR_TIPO_CLIFOR` PRIMARY KEY (`id_cliforTipoClifor`)
);

# ---------------------------------------------------------------------- #
# Add table "CONTATTO"                                                   #
# ---------------------------------------------------------------------- #

CREATE TABLE `CONTATTO` (
    `id_contatto` INTEGER NOT NULL AUTO_INCREMENT,
    `descrizioneC` VARCHAR(40),
    `nomeC` VARCHAR(40),
    `telefonoC` VARCHAR(40),
    `emailC` VARCHAR(40),
    `id_clifor` INTEGER,
    `flgContattoDefault` INTEGER,
    CONSTRAINT `PK_CONTATTO` PRIMARY KEY (`id_contatto`)
);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_FILATO_COLORE_RITORTO"                             #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_FILATO_COLORE_RITORTO` (
    `id_articoloFilatoColoreRitorto` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articoloFilatoTestata` INTEGER,
    `id_coloreFilatoTestata` INTEGER,
    `id_articoloFilato` INTEGER,
    `id_coloreFilato` INTEGER,
    `perc` DECIMAL(5,2),
    CONSTRAINT `PK_ARTICOLO_FILATO_COLORE_RITORTO` PRIMARY KEY (`id_articoloFilatoColoreRitorto`)
);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_FILATO_COLORE"                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_FILATO_COLORE` (
    `id_articoloFilatoColore` INTEGER NOT NULL AUTO_INCREMENT,
    `id_coloreFilato` INTEGER,
    `quantitaCalcolate` BOOL,
    `quantitaMagazzinoMovimentoHtml` VARCHAR(254),
    `quantitaInArrivo` DOUBLE,
    `quantitaImpegnata` DOUBLE,
    `quantitaEffettiva` DOUBLE,
    `flgDispo` INTEGER,
    `quantitaAfcW` DOUBLE,
    `id_articoloFilato` INTEGER,
    `quantitaAfc` DOUBLE,
    CONSTRAINT `PK_ARTICOLO_FILATO_COLORE` PRIMARY KEY (`id_articoloFilatoColore`)
);

CREATE UNIQUE INDEX `IDX_ARTICOLO_FILATO_COLORE_1` ON `ARTICOLO_FILATO_COLORE` (`id_coloreFilato`);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_FILATO_FORNITORE"                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_FILATO_FORNITORE` (
    `id_articoloFilatoFornitore` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articoloFilato` INTEGER,
    `id_clifor` INTEGER,
    `descrizione` VARCHAR(40),
    CONSTRAINT `PK_ARTICOLO_FILATO_FORNITORE` PRIMARY KEY (`id_articoloFilatoFornitore`)
);

# ---------------------------------------------------------------------- #
# Add table "COLORE_FILATO_FORNITORE"                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `COLORE_FILATO_FORNITORE` (
    `id_coloreFilatoFornitore` INTEGER NOT NULL AUTO_INCREMENT,
    `id_clifor` INTEGER,
    `id_coloreFilato` INTEGER,
    `descrizione` VARCHAR(40),
    CONSTRAINT `PK_COLORE_FILATO_FORNITORE` PRIMARY KEY (`id_coloreFilatoFornitore`)
);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_TESSUTO_FILATO"                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_TESSUTO_FILATO` (
    `id_articoloTessutoFilato` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articoloTessuto` INTEGER,
    `id_articoloFilatoColore` INTEGER,
    `serie` VARCHAR(40),
    `ordine` INTEGER,
    `percentuale` DECIMAL(5,2),
    `flgTramaOrdito` INTEGER,
    `noteOrdTess` VARCHAR(1000),
    CONSTRAINT `PK_ARTICOLO_TESSUTO_FILATO` PRIMARY KEY (`id_articoloTessutoFilato`)
);

# ---------------------------------------------------------------------- #
# Add table "CLIFOR_LAVORAZIONE"                                         #
# ---------------------------------------------------------------------- #

CREATE TABLE `CLIFOR_LAVORAZIONE` (
    `id_cliforLavorazione` INTEGER NOT NULL AUTO_INCREMENT,
    `id_clifor` INTEGER,
    `id_lavorazione` INTEGER,
    `costoLavorazione` DECIMAL(18,4),
    CONSTRAINT `PK_CLIFOR_LAVORAZIONE` PRIMARY KEY (`id_cliforLavorazione`)
);

# ---------------------------------------------------------------------- #
# Add table "ATTIVITA"                                                   #
# ---------------------------------------------------------------------- #

CREATE TABLE `ATTIVITA` (
    `id_attivita` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipoAttivita` INTEGER,
    `nomeAttivita` VARCHAR(60),
    `indirizzoAttivita` VARCHAR(60),
    `numeroCivicoAttivita` VARCHAR(30),
    `id_comuneAttivita` INTEGER,
    `descrizioneComuneAttivita` VARCHAR(60),
    `descrizioneProvinciaAttivita` CHAR(2),
    `capComuneAttivita` CHAR(5),
    `capZonaAttivita` VARCHAR(10),
    `telefonoAttivita` VARCHAR(40),
    `emailAttivita` VARCHAR(60),
    `flgGusti` INTEGER,
    `dataIscrizione` DATE,
    `codiceAttivita` VARCHAR(40),
    `imgTmst` VARCHAR(24),
    `fglMainSxCategorie` INTEGER,
    `flgMainSxVetrinaBestseller` INTEGER,
    `flgMainSxVetrinaOfferte` INTEGER,
    `flgMainSxUltimiVisualizzati` INTEGER,
    `flgMainBanner` INTEGER,
    `flgMainVetrina` INTEGER,
    `flgMainVetrinaCategorie` INTEGER,
    `flgTopTelefono` INTEGER,
    `flgTopLingue` INTEGER,
    `topLingueAttivita` VARCHAR(40),
    `flgTopMail` INTEGER,
    `topColoreHex` VARCHAR(7),
    `flgHeadCategorie` INTEGER,
    `flgHeadMarche` INTEGER,
    `flgHeadNewsType` INTEGER,
    `headColoreHex` VARCHAR(7),
    `flgDetailReviews` INTEGER,
    `flgDetailRelatedProducts` INTEGER,
    `flgDetailDxVetrinaBestseller` INTEGER,
    `flgDetailDxVetrinaOfferte` INTEGER,
    `flgCoupon` INTEGER,
    `flgCheckoutGuest` INTEGER,
    `accountFacebook` VARCHAR(60),
    `accountTwitter` VARCHAR(60),
    `accountInstagram` VARCHAR(60),
    `flgSocialSide` INTEGER,
    `flgFooterSocial` INTEGER,
    `flgDefault` INTEGER,
    `mailFrom` VARCHAR(40),
    `mailTitolarePrivacy` TEXT,
    `mailFooter` TEXT,
    `mailTitle` VARCHAR(40),
    `flgCartProcediPagamento` INTEGER,
    `id_vettore` INTEGER,
    `mailCoordinateBancarie` VARCHAR(254),
    `wwwAddress` VARCHAR(40),
    `topFontColorHex` VARCHAR(7),
    `backgroundColorHex` VARCHAR(7),
    `backgroundColorFooterHex` VARCHAR(7),
    `backgroundColorNavHoverHex` VARCHAR(7),
    `backgroundCustomFeatureBox` VARCHAR(7),
    `headCategorieBorderColorHex` VARCHAR(7),
    `mainTextColorHex` VARCHAR(7),
    `leftMenuTextColorHex` VARCHAR(7),
    `leftMenuSubTextColorHex` VARCHAR(7),
    `subtitleHex` VARCHAR(7),
    `bodyBackgroundHex` VARCHAR(7),
    `footerTextH5Hex` VARCHAR(7),
    `footerTextliHex` VARCHAR(7),
    `footerTextliAHex` VARCHAR(7),
    `costoContrassegno` DECIMAL(18,4),
    `paypalClientId` VARCHAR(254),
    `paypalClientSecret` VARCHAR(254),
    `flgDetailCompara` INTEGER,
    `flgDetailWishlist` INTEGER,
    `flgDetailShareAddThis` INTEGER,
    `flgNewsletterType` INTEGER,
    `mailchimpSubscribeForm` TEXT,
    `tagManagerHead` TEXT,
    `tagManagerBody` TEXT,
    `flgMainMiniBanner` INTEGER,
    `flgMainSxCategorie` INTEGER,
    `mainSubtitleBottomBorderHex` VARCHAR(7),
    `indirizzoSede` VARCHAR(60),
    `numeroCivicoSede` VARCHAR(30),
    `id_comuneSede` INTEGER,
    `descrizioneComuneSede` VARCHAR(60),
    `descrizioneProvinciaSede` CHAR(2),
    `capComuneSede` CHAR(5),
    `capZonaSede` VARCHAR(10),
    `telefonoSede` VARCHAR(40),
    `codFisc` VARCHAR(16),
    `pIva` VARCHAR(16),
    `pec` VARCHAR(40),
    `codiceIdentificativoFE` VARCHAR(7),
    `contatto` VARCHAR(60),
    `flgAcquistaSoloDisponibile` INTEGER,
    `qtaDisponibilitaBassa` INTEGER,
    `googleFtpUser` VARCHAR(60),
    `googleFtpPassword` VARCHAR(60),
    `flgGoogleMerchant` INTEGER,
    `googleNomiFileFeed` VARCHAR(1000),
    `deliveryFreeAbove` DECIMAL(18,4),
    `cellulareAttivita` VARCHAR(40),
    `flgTopChatWhatsapp` INTEGER,
    `flgTopChatTelegram` INTEGER,
    `chatTelegramUsername` VARCHAR(40),
    `flgFooterChatWhatsapp` INTEGER,
    `flgFooterChatTelegram` INTEGER,
    `flgSubito` INTEGER,
    `flgQuotazione` INTEGER,
    `mainUltimiNum` INTEGER,
    `flgMainUltimi` INTEGER,
    `flgMainUltimaNews` INTEGER,
    `deliveryCost` DECIMAL(18,4),
    `recaptchaV2Key` VARCHAR(60),
    `id_listinoEbay` INTEGER,
    `flgEbay` INTEGER,
    `cciaa` VARCHAR(10),
    `faxAttivita` VARCHAR(40),
    `ebayFulfillmentPolicyId` VARCHAR(40),
    `ebayPaymentPolicyId` VARCHAR(40),
    `ebayReturnPolicyId` VARCHAR(40),
    `ebayMerchantLocationKey` VARCHAR(40),
    `ebayOAuthRefreshToken` TEXT,
    `ebayOAuthRefreshTokenExpire` DATETIME,
    `ebayOAuthUserToken` TEXT,
    `ebayOAuthUserTokenExpire` DATETIME,
    `flgIcecat` INTEGER,
    `icecatUsername` VARCHAR(40),
    `icecatPassword` VARCHAR(40),
    `percentileMaxPerPreventivo` INTEGER,
    `googleMerchantRecensioniScript` VARCHAR(2000),
    `googleMerchantRecensioniScriptBadge` VARCHAR(2000),
    `flgGoogleMerchantRecensioni` INTEGER,
    `flgGoogleMerchantRecensioniBadge` INTEGER,
    `googleSiteId` VARCHAR(40),
    `googleApiKey` VARCHAR(250),
    `flgAmz` INTEGER,
    `id_listinoAmz` INTEGER,
    `flgTrovaprezzi` INTEGER,
    `trovaprezziTrustedProgramScript` VARCHAR(2000),
    `trovaprezziTrustedProgramScriptItem` VARCHAR(200),
    `checkCartPercScontoMax` DECIMAL(5,2),
    `cookiePolicyTheme` VARCHAR(60),
    `flgIdealo` INTEGER,
    `idealoTag` VARCHAR(40),
    `nomeAttivitaSeo` VARCHAR(30),
    `paypalRateScriptHead` VARCHAR(1000),
    `paypalRateScriptBodyDett` VARCHAR(1000),
    `paypalRateScriptBodyCat` VARCHAR(1000),
    `indexNowUrlQuota` INTEGER,
    `indexNowApiKey` VARCHAR(60),
    `indexNowDay` DATE,
    `indexNowDayCount` INTEGER,
    `flgPaypalRate` INTEGER,
    `amzLwaClientId` VARCHAR(254),
    `amzLwaClientSecret` VARCHAR(254),
    `amzLwaAuthToken` VARCHAR(400),
    `amzLwaAccessToken` VARCHAR(400),
    `amzLwaRefreshToken` VARCHAR(400),
    `amzLwaAccessTokenExpireTS` DATETIME,
    `amzIamRoleARN` VARCHAR(254),
    `amzIamAccessKey` VARCHAR(254),
    `amzIamSecretKey` VARCHAR(254),
    `amzStsAccessKeyId` VARCHAR(254),
    `amzStsSecretAccessKey` VARCHAR(254),
    `amzStsSessionToken` VARCHAR(400),
    `amzStsSessionTokenTS` DATETIME,
    `amzMarketplaces` VARCHAR(1000),
    `amzSellerid` VARCHAR(60),
    `amzMerchantShippingGroupFree` VARCHAR(60),
    CONSTRAINT `PK_ATTIVITA` PRIMARY KEY (`id_attivita`)
);

CREATE UNIQUE INDEX `IDX_ATTIVITA_1` ON `ATTIVITA` (`codiceAttivita`);

# ---------------------------------------------------------------------- #
# Add table "ABBONAMENTO"                                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `ABBONAMENTO` (
    `id_attivita` INTEGER,
    `id_abbonamento` INTEGER NOT NULL AUTO_INCREMENT,
    `dataInizio` VARCHAR(40),
    `dataFine` VARCHAR(40),
    `costoMensile` DECIMAL(18,4),
    CONSTRAINT `PK_ABBONAMENTO` PRIMARY KEY (`id_abbonamento`)
);

# ---------------------------------------------------------------------- #
# Add table "ATTIVITA_TIPO_PAGAMENTO"                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `ATTIVITA_TIPO_PAGAMENTO` (
    `id_attivitaTipoPagamento` INTEGER NOT NULL AUTO_INCREMENT,
    `id_attivita` INTEGER,
    `id_tipoPagamento` INTEGER,
    CONSTRAINT `PK_ATTIVITA_TIPO_PAGAMENTO` PRIMARY KEY (`id_attivitaTipoPagamento`)
);

# ---------------------------------------------------------------------- #
# Add table "CLIFOR_TIPO_PAGAMENTO"                                      #
# ---------------------------------------------------------------------- #

CREATE TABLE `CLIFOR_TIPO_PAGAMENTO` (
    `id_cliforTipoPagamento` INTEGER NOT NULL AUTO_INCREMENT,
    `id_clifor` INTEGER NOT NULL,
    `id_tipoPagamento` INTEGER NOT NULL,
    CONSTRAINT `PK_CLIFOR_TIPO_PAGAMENTO` PRIMARY KEY (`id_cliforTipoPagamento`)
);

CREATE UNIQUE INDEX `IDX_CLIFOR_TIPO_PAGAMENTO_1` ON `CLIFOR_TIPO_PAGAMENTO` (`id_clifor`,`id_tipoPagamento`);

# ---------------------------------------------------------------------- #
# Add table "FOTO"                                                       #
# ---------------------------------------------------------------------- #

CREATE TABLE `FOTO` (
    `id_foto` INTEGER NOT NULL AUTO_INCREMENT,
    `id_clifor` INTEGER,
    `fileName` VARCHAR(254),
    `pettorali` VARCHAR(254),
    `fileNameMd5` VARCHAR(200),
    `md5` VARCHAR(40),
    `tsInserimento` DATETIME,
    `flgFotoSearch` INTEGER,
    CONSTRAINT `PK_FOTO` PRIMARY KEY (`id_foto`)
);

CREATE INDEX `IDX_FOTO_1` ON `FOTO` (`md5`);

CREATE INDEX `IDX_FOTO_2` ON `FOTO` (`pettorali`);

CREATE INDEX `IDX_FOTO_3` ON `FOTO` (`flgFotoSearch`);

# ---------------------------------------------------------------------- #
# Add table "FOTO_FACE"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `FOTO_FACE` (
    `id_fotoFace` INTEGER NOT NULL AUTO_INCREMENT,
    `id_foto` INTEGER,
    `jsonData` VARCHAR(10000),
    `faceTopVx` INTEGER,
    `faceTopVy` INTEGER,
    `faceBottomVx` INTEGER,
    `faceBottomVy` INTEGER,
    `featureVector1` VARCHAR(1000),
    `featureVector2` VARCHAR(1000),
    `fileName` VARCHAR(254),
    `label` INTEGER,
    CONSTRAINT `PK_FOTO_FACE` PRIMARY KEY (`id_fotoFace`)
);

# ---------------------------------------------------------------------- #
# Add table "PERSONA_CARICO"                                             #
# ---------------------------------------------------------------------- #

CREATE TABLE `PERSONA_CARICO` (
    `id_personaCarico` INTEGER NOT NULL AUTO_INCREMENT,
    `id_clifor` INTEGER,
    `id_tipoPersonaCarico` INTEGER,
    `cognomePC` VARCHAR(60),
    `nomePC` VARCHAR(60),
    `codFiscPC` VARCHAR(16),
    `percCarico` DECIMAL(5,2),
    `notaPC` TEXT,
    CONSTRAINT `PK_PERSONA_CARICO` PRIMARY KEY (`id_personaCarico`)
);

# ---------------------------------------------------------------------- #
# Add table "FACE_RECOG"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `FACE_RECOG` (
    `id_faceRecog` INTEGER NOT NULL AUTO_INCREMENT,
    `id_fotoFace1` INTEGER,
    `id_fotoFace2` INTEGER,
    `eDistance` DOUBLE,
    `cosineSim` DOUBLE,
    CONSTRAINT `PK_FACE_RECOG` PRIMARY KEY (`id_faceRecog`)
);

# ---------------------------------------------------------------------- #
# Add table "USERS"                                                      #
# ---------------------------------------------------------------------- #

CREATE TABLE `USERS` (
    `id_users` INTEGER NOT NULL AUTO_INCREMENT,
    `login` VARCHAR(60) NOT NULL,
    `id_userProfile` INTEGER,
    `pwd` VARCHAR(512),
    `flgValido` CHAR(1),
    `dataInizioVld` DATE,
    `dataFineVld` DATE,
    `nome` VARCHAR(60),
    `cognome` VARCHAR(254),
    `eMail` VARCHAR(60),
    `lang` CHAR(2),
    `style` VARCHAR(60),
    `controlCode` VARCHAR(30),
    `flgPresenza` INTEGER,
    `dataInserimento` DATE,
    `id_postazione` INTEGER,
    `currentIp` CHAR(60),
    `createIp` CHAR(60),
    `dataCreazionePwd` DATE,
    `dataScadenzaPwd` DATE,
    `oldPwd` TEXT,
    `nota` TEXT,
    `capSped` VARCHAR(10),
    `cittaSped` VARCHAR(30),
    `codFisc` VARCHAR(16),
    `contatto` VARCHAR(30),
    `dataNascita` DATE,
    `flgMl` INTEGER,
    `flgPrivComunicazione` INTEGER,
    `flgPrivSensibili` INTEGER,
    `flgPrivTrattamento` INTEGER,
    `flgSesso` INTEGER,
    `indirizzoSped` VARCHAR(60),
    `langMl` CHAR(2),
    `pIva` VARCHAR(15),
    `presso` VARCHAR(60),
    `provinciaSped` VARCHAR(30),
    `telefono` VARCHAR(30),
    `fax` VARCHAR(30),
    `flgChangeLog` INTEGER,
    `oraInserimento` TIME,
    `id_clifor` INTEGER,
    `flgOperatore` INTEGER,
    `flgNews` INTEGER,
    `imgProfilo` VARCHAR(30),
    `cittaNascita` VARCHAR(30),
    `provinciaNascita` VARCHAR(4),
    `elencoIpAbilitati` VARCHAR(254),
    `pwdSuper` VARCHAR(512),
    `imgTmst` VARCHAR(24),
    `flgUsaDomainController` INTEGER,
    `utenteDominio` VARCHAR(60),
    `numeroCivicoSped` VARCHAR(10),
    `secretKey` VARCHAR(40),
    `codiceAlt` VARCHAR(40),
    `tariffaProfessionista` DECIMAL(18,4),
    `percProfessionista` DECIMAL(5,2),
    `socialId` VARCHAR(60),
    `flgSocialIdType` INTEGER,
    CONSTRAINT `PK_USERS` PRIMARY KEY (`id_users`),
    CONSTRAINT `TUC_USERS_1` UNIQUE (`login`)
);
insert into USERS (id_users,id_userProfile,login,pwd,nome,cognome,flgValido)
values (1,1,'acolzi','pio','Andrea','Colzi','S');

insert into USERS (id_users,id_userProfile,login,pwd,nome,cognome,flgValido)
values (2,1,'test','test','test','test','S');

CREATE UNIQUE INDEX `IDX_USERS_1` ON `USERS` (`login` ASC);

CREATE UNIQUE INDEX `IDX_USERS_2` ON `USERS` (`utenteDominio`);

CREATE UNIQUE INDEX `IDX_USERS_3` ON `USERS` (`codiceAlt`);

# ---------------------------------------------------------------------- #
# Add table "USER_ACCESS"                                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `USER_ACCESS` (
    `id_userAccess` INTEGER NOT NULL AUTO_INCREMENT,
    `id_users` INTEGER NOT NULL,
    `id_access` VARCHAR(30) NOT NULL,
    `flgRW` INTEGER DEFAULT 0,
    CONSTRAINT `PK_USER_ACCESS` PRIMARY KEY (`id_userAccess`)
);

CREATE UNIQUE INDEX `IDX_USER_ACCESS_1` ON `USER_ACCESS` (`id_users`,`id_access`);

# ---------------------------------------------------------------------- #
# Add table "USER_ACCESS_GROUP"                                          #
# ---------------------------------------------------------------------- #

CREATE TABLE `USER_ACCESS_GROUP` (
    `id_userAccessGroup` INTEGER NOT NULL AUTO_INCREMENT,
    `id_accessGroup` INTEGER NOT NULL,
    `id_users` INTEGER NOT NULL,
    CONSTRAINT `PK_USER_ACCESS_GROUP` PRIMARY KEY (`id_userAccessGroup`)
);

CREATE UNIQUE INDEX `IDX_USER_ACCESS_GROUP_1` ON `USER_ACCESS_GROUP` (`id_users`,`id_accessGroup`);

# ---------------------------------------------------------------------- #
# Add table "TIPO_DOCUMENTO"                                             #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_DOCUMENTO` (
    `id_tipoDocumento` INTEGER NOT NULL AUTO_INCREMENT,
    `codice` CHAR(5),
    `descrizione` VARCHAR(60),
    `flgClienteFornitore` CHAR(1),
    `flgMenu` INTEGER,
    `descMenu` VARCHAR(30),
    `id_contatore` INTEGER,
    `flgAutoAdd` INTEGER,
    `flgSingleLineArt` INTEGER,
    `id_tipoDocumentoFiglio` INTEGER,
    `descrizioneStampa` VARCHAR(30),
    `flgTipoDocumentoPrelevabile` INTEGER,
    `flgTipoStampa` INTEGER,
    `flgImportoIva` INTEGER,
    `flgCorrispettivi` INTEGER,
    `flgObbligoPrelievo` INTEGER,
    `flgGestioneDoc` INTEGER,
    `flgFontDocumento` INTEGER,
    `flgFontCorpo` INTEGER,
    `flgAllegato` INTEGER,
    `flgNascondi` INTEGER,
    `numeroCopieStampa` INTEGER,
    `righePerPagina` INTEGER,
    `maxCarDesc` INTEGER,
    `coloreBordoEsterno` CHAR(7),
    `coloreBordoInterno` CHAR(7),
    `flgBordoRiga` INTEGER,
    `flgBordoColonna` INTEGER,
    `indentNuovaRiga` INTEGER,
    `riferimento` VARCHAR(40),
    `id_causaleContabile` INTEGER,
    `notaConfermaOrdine` VARCHAR(1000),
    `docFontSizeRow` INTEGER,
    `id_causaleMagazzino` INTEGER,
    `nota` TEXT,
    `flgAFT` INTEGER,
    `flgOrdinamentoRigheEdit` INTEGER,
    `flgOrdinamentoRigheStampa` INTEGER,
    `docFontSize` INTEGER,
    `docFontSizeFH` INTEGER,
    `flgAllineamentoRiga` INTEGER,
    `suffissoFattElett` VARCHAR(5),
    `flgAFT2` INTEGER,
    `id_causaleMagazzino2` INTEGER,
    `flgGestioneDocArticolo` INTEGER,
    `flgNoAnag` INTEGER,
    `flgNoAnag2` INTEGER,
    `id_tipologiaDocumento` INTEGER,
    `id_tipoStampaDocumento` INTEGER,
    `flgFETipoNumeroFattura` INTEGER,
    `coloreNuovoDocumento` CHAR(7),
    `ordineNuovoDocumento` INTEGER,
    `flgNascondiNuovo` INTEGER,
    `suffissoPD` VARCHAR(40),
    `suffissoCR` VARCHAR(40),
    `flgUsato` INTEGER,
    `flgMovMagazzino` INTEGER,
    `flgOss` INTEGER,
    CONSTRAINT `PK_TIPO_DOCUMENTO` PRIMARY KEY (`id_tipoDocumento`)
);
INSERT INTO `tipo_documento` VALUES (1,'SC','SCONTRINO','C',1,'CASSA',6,1,1,NULL,NULL,0,9,1,1,0,0,0,0,0,NULL,1,0,0,NULL,'FFFFFF',0,0,0,NULL,NULL,NULL,8,1,NULL,0,1,0,10,8,0,NULL,-1,NULL,NULL,NULL,NULL,2,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(2,'FB','FATTURA ACCOMPAGNATORIA DI VENDITA','C',1,'FATT. VENDITA',1,1,1,NULL,'FATTURA',0,0,0,0,0,0,0,0,0,NULL,1,0,0,NULL,'FFFFFF',0,0,0,NULL,NULL,NULL,8,1,NULL,0,1,0,10,8,0,NULL,-1,NULL,NULL,NULL,NULL,2,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(3,'BC','BOLLA DI CARICO','F',1,'BOLLA CARICO',2,1,1,NULL,NULL,0,0,0,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,1,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(5,'FSC','FATTURA DA SCONTRINO','C',0,NULL,1,0,0,NULL,'FATTURA',0,0,0,0,0,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,2,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(6,'FD','FATTURA DIFFERITA','C',1,'FATT. DIFF',1,1,1,NULL,'FATTURA',0,0,0,0,0,0,0,0,0,NULL,1,24,70,NULL,'FFFFFF',0,1,0,NULL,NULL,NULL,8,NULL,NULL,0,1,0,10,8,0,NULL,-1,NULL,1,0,0,2,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(7,'CON','DDT DI CONSEGNA','C',1,'DDT CONSEGNA',3,1,1,NULL,'DDT',1,2,0,0,0,0,0,0,0,NULL,1,25,70,NULL,'FFFFFF',0,0,0,NULL,NULL,NULL,8,1,NULL,0,1,0,10,8,0,NULL,-1,NULL,1,0,0,1,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
 (8,'ORD','ORDINE A FORNITORE','F',1,'ORDINI FORNITORI',7,0,1,3,'ORDINE',1,1,0,0,0,1,0,0,0,NULL,1,0,0,NULL,'FFFFFF',0,0,0,NULL,NULL,NULL,8,NULL,NULL,0,1,0,10,8,0,NULL,-1,NULL,NULL,NULL,NULL,4,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)
,(9,'PRE','PRENOTAZIONI','C',1,'PRENOTAZIONI',8,1,1,1,NULL,1,10,0,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,5,11,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(10,'CI','CARICO INTERNO','F',1,'CARICO INTERNO',9,0,1,NULL,'CARICO INTERNO',0,2,0,0,0,0,0,0,0,NULL,1,25,65,NULL,'FFFFFF',0,0,0,NULL,NULL,NULL,10,5,NULL,0,1,0,10,8,0,NULL,-1,NULL,NULL,NULL,NULL,8,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(11,'SI','SCARICO INTERNO','C',0,NULL,9,1,1,NULL,'SCARICO INTERNO',0,2,0,0,0,0,0,0,0,NULL,1,25,65,NULL,'FFFFFF',0,0,0,NULL,NULL,NULL,10,6,NULL,0,1,0,10,8,0,NULL,-1,NULL,NULL,NULL,NULL,8,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(13,'DDTSC','DDT DI CONSEGNA DA SCONTRINO','C',0,NULL,3,0,0,NULL,'DDT ',1,1,0,0,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,1,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(14,'NC','NOTA DI CREDITO','C',1,'Nota Credito',1,0,0,NULL,'NOTA DI CREDITO',0,0,0,0,0,0,0,0,0,NULL,1,24,70,NULL,'DEDEDE',0,1,0,NULL,NULL,NULL,8,NULL,NULL,0,1,0,10,8,0,NULL,-1,NULL,1,0,0,3,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(15,'RF','RESO A FORNITORE','F',0,NULL,3,0,0,NULL,'DDT RESO',0,2,0,0,0,0,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,1,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(16,'RIP','RIPARAZIONI','C',1,'RIPARAZIONI',10,0,0,NULL,'SCHEDA RIPARAZIONE',1,5,0,0,0,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,6,7,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(17,'DDTR','DDT INVIO IN RIPARAZIONE','F',1,'DDT C.TO RIPAR.',3,1,1,NULL,'DDT',0,2,0,0,0,0,0,0,0,NULL,1,0,0,NULL,'FFFFFF',0,0,0,NULL,NULL,NULL,8,NULL,NULL,0,1,0,10,8,0,NULL,-1,NULL,NULL,NULL,NULL,1,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(18,'CVEN','CONTO VENDITA','A',0,NULL,11,1,1,NULL,NULL,0,2,0,0,0,0,0,0,0,NULL,1,0,0,NULL,'FFFFFF',0,0,0,NULL,NULL,NULL,8,6,NULL,0,1,0,10,8,0,NULL,-1,NULL,NULL,NULL,NULL,8,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(19,'CIRIP','CARICO INTERNO X RIPARAZIONE','F',1,'CARICO INTERNO X RIP.',9,0,0,NULL,NULL,0,0,0,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,8,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(20,'SIRIP','SCARICO INTERNO X RIPARAZIONE','C',1,'SCARICO INTERNO X RIP.',9,0,0,NULL,NULL,0,0,0,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,6,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,8,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(21,'WWW','ORDINE WEB','C',0,NULL,12,1,1,NULL,'RICEVUTA',1,2,1,1,0,0,0,0,0,NULL,1,25,55,NULL,'FFFFFF',0,0,0,NULL,NULL,NULL,8,1,NULL,0,1,0,10,8,0,NULL,-1,NULL,NULL,NULL,NULL,11,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(22,'FWWW','FATTURA WWW','C',1,NULL,13,1,1,NULL,'FATTURA',0,0,0,0,0,0,0,0,0,NULL,1,25,45,NULL,'E6E6E6',1,1,0,NULL,NULL,NULL,10,NULL,NULL,0,1,0,10,8,0,NULL,-1,NULL,NULL,NULL,NULL,2,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(23,'RWWW','RICEVUTA WWW','C',1,'RICEVUTA',14,0,0,NULL,'RICEVUTA',0,11,1,1,0,0,NULL,NULL,0,NULL,1,26,45,NULL,'E6E6E6',1,1,0,NULL,NULL,NULL,0,NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,NULL,NULL,11,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);

CREATE UNIQUE INDEX `IDX_TIPO_DOCUMENTO_1` ON `TIPO_DOCUMENTO` (`codice`);

CREATE INDEX `IDX_TIPO_DOCUMENTO_2` ON `TIPO_DOCUMENTO` (`id_contatore`);

CREATE INDEX `IDX_TIPO_DOCUMENTO_3` ON `TIPO_DOCUMENTO` (`id_tipoDocumentoFiglio`);

# ---------------------------------------------------------------------- #
# Add table "CLIFOR_USERS"                                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `CLIFOR_USERS` (
    `id_cliforUsers` INTEGER NOT NULL AUTO_INCREMENT,
    `id_clifor` INTEGER,
    `id_users` INTEGER,
    CONSTRAINT `PK_CLIFOR_USERS` PRIMARY KEY (`id_cliforUsers`)
);

CREATE INDEX `IDX_CLIFOR_USERS_1` ON `CLIFOR_USERS` (`id_clifor`);

CREATE INDEX `IDX_CLIFOR_USERS_2` ON `CLIFOR_USERS` (`id_users`);

# ---------------------------------------------------------------------- #
# Add table "BANNER_STATS"                                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `BANNER_STATS` (
    `id_bannerStats` INTEGER NOT NULL AUTO_INCREMENT,
    `id_banner` INTEGER,
    `entryPoint` VARCHAR(254),
    `ipAddress` VARCHAR(40),
    `dataTimestamp` TIMESTAMP,
    `flgI_CT` INTEGER,
    CONSTRAINT `PK_BANNER_STATS` PRIMARY KEY (`id_bannerStats`)
);

# ---------------------------------------------------------------------- #
# Add table "DOC_PREL"                                                   #
# ---------------------------------------------------------------------- #

CREATE TABLE `DOC_PREL` (
    `id_docPrel` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipoDocumentoPrel` INTEGER,
    `id_tipoDocumento` INTEGER,
    `flgTipoGenerazione` INTEGER,
    CONSTRAINT `PK_DOC_PREL` PRIMARY KEY (`id_docPrel`)
);

CREATE INDEX `IDX_DOC_PREL_1` ON `DOC_PREL` (`id_tipoDocumentoPrel`);

CREATE INDEX `IDX_DOC_PREL_2` ON `DOC_PREL` (`id_tipoDocumento`);

# ---------------------------------------------------------------------- #
# Add table "SPESA"                                                      #
# ---------------------------------------------------------------------- #

CREATE TABLE `SPESA` (
    `id_spesa` INTEGER NOT NULL AUTO_INCREMENT,
    `dataSpesa` DATE,
    `importo` DECIMAL(18,4),
    `notaSpesa` VARCHAR(254),
    `id_tipoSpesa` INTEGER,
    `id_users` INTEGER,
    `descrizione` VARCHAR(60),
    CONSTRAINT `PK_SPESA` PRIMARY KEY (`id_spesa`)
);

CREATE INDEX `IDX_SPESA_1` ON `SPESA` (`id_tipoSpesa`);

CREATE INDEX `IDX_SPESA_2` ON `SPESA` (`id_users`);

# ---------------------------------------------------------------------- #
# Add table "USER_WHITELIST"                                             #
# ---------------------------------------------------------------------- #

CREATE TABLE `USER_WHITELIST` (
    `id_userWhitelist` INTEGER NOT NULL AUTO_INCREMENT,
    `id_whitelist` INTEGER,
    `id_users` INTEGER,
    CONSTRAINT `PK_USER_WHITELIST` PRIMARY KEY (`id_userWhitelist`)
);

# ---------------------------------------------------------------------- #
# Add table "USER_CLIFOR"                                                #
# ---------------------------------------------------------------------- #

CREATE TABLE `USER_CLIFOR` (
    `id_userClifor` INTEGER NOT NULL AUTO_INCREMENT,
    `id_users` INTEGER,
    `id_clifor` INTEGER,
    CONSTRAINT `PK_USER_CLIFOR` PRIMARY KEY (`id_userClifor`)
);

# ---------------------------------------------------------------------- #
# Add table "NEWS_USERS"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `NEWS_USERS` (
    `id_newsUsers` INTEGER NOT NULL AUTO_INCREMENT,
    `id_news` INTEGER,
    `id_users` INTEGER,
    `tmstInvio` TIMESTAMP,
    `result` VARCHAR(254),
    CONSTRAINT `PK_NEWS_USERS` PRIMARY KEY (`id_newsUsers`)
);

# ---------------------------------------------------------------------- #
# Add table "TIPO_DOCUMENTO_LAVORAZIONE"                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `TIPO_DOCUMENTO_LAVORAZIONE` (
    `id_tipoDocumentoLavorazione` INTEGER NOT NULL AUTO_INCREMENT,
    `id_lavorazione` INTEGER,
    `id_tipoDocumento` INTEGER,
    CONSTRAINT `PK_TIPO_DOCUMENTO_LAVORAZIONE` PRIMARY KEY (`id_tipoDocumentoLavorazione`)
);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO"                                                   #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO` (
    `id_articolo` INTEGER NOT NULL AUTO_INCREMENT,
    `id_iva` INTEGER,
    `id_tipo` INTEGER,
    `id_marca` INTEGER,
    `id_articoloVarianteBase` INTEGER,
    `id_tipoTaglia` INTEGER,
    `id_tabellaTaglia` INTEGER,
    `codice` VARCHAR(30),
    `codiceProduttore` VARCHAR(254),
    `codiciAlternativi` VARCHAR(254),
    `nome` VARCHAR(254) NOT NULL,
    `flgObsoleto` INTEGER,
    `flgNascondi` INTEGER DEFAULT 0,
    `flgStato` INTEGER,
    `flgStockOfferte` INTEGER DEFAULT 0,
    `dataScadenzaOfferta` DATE,
    `dataAggiornamento` DATE,
    `dataFineVld` DATE,
    `ordine` INTEGER DEFAULT 0,
    `imgTmst` VARCHAR(24),
    `mesigar` INTEGER,
    `prezzoPubblico` DECIMAL(18,4),
    `ricaricoBase` DOUBLE,
    `streetPrice` DECIMAL(18,4),
    `percSconto` DOUBLE,
    `quantita` DOUBLE,
    `quantitaPrenotata` DOUBLE,
    `pesoKg` DECIMAL,
    `volumeM3` DECIMAL(18,4),
    `descSearch` VARCHAR(254),
    `flgUsaVarianti` INTEGER,
    `flgStampaEtichette` INTEGER,
    `dataCambiamentoPrezzo` DATE,
    `flgUsaVariantiArt` INTEGER,
    `altreCompatibilita` VARCHAR(1000),
    `flgSerialiMassivi` INTEGER,
    `compatibilita` VARCHAR(1000),
    `qtaRiordino` DOUBLE,
    `flgStampaAccessori` INTEGER,
    `costoRivalutazione` DECIMAL(18,4),
    `flgNegativo` INTEGER,
    `quantitaEffettiva` DOUBLE,
    `caratteristiche` VARCHAR(254),
    `flgServizio` INTEGER,
    `flgRC` INTEGER,
    `flgNoListino` INTEGER,
    `flgEscludiWeb` INTEGER,
    `id_tipoAccessorio` INTEGER,
    `descrizioneVetrina_it` TEXT,
    `descrizioneVetrina_en` TEXT,
    `dataAggQuantita` DATE,
    `flgEscludiWebArt` INTEGER,
    `id_vetrina` INTEGER,
    `prezzoOfferta` DECIMAL(18,4),
    `altezzaMinima` INTEGER,
    `massaLineare` INTEGER,
    `codiceDoganale` VARCHAR(30),
    `lavaggio` INTEGER,
    `candeggio` INTEGER,
    `stiratura` INTEGER,
    `asciugatura` INTEGER,
    `pulituraSecco` INTEGER,
    `flgNoListinoArt` INTEGER,
    `flgTipoMagazzino` INTEGER,
    `flgDispo` INTEGER,
    `abbuonoPrezzoPubblico` DECIMAL(18,4),
    `quantitaMagazzinoMovimentoHtml` VARCHAR(254),
    `quantitaW` DOUBLE,
    `quantitaImpegnata` DOUBLE,
    `quantitaInArrivo` DOUBLE,
    `quantitaCalcolate` BOOL,
    `flgWebNoVendita` INTEGER,
    `flgArticoloComponente` INTEGER,
    `id_tipo2` INTEGER,
    `volumeCm3` INTEGER,
    `codiciMagazzino` VARCHAR(1000),
    `langsNomel` VARCHAR(1000),
    `langsDescrizione` VARCHAR(1000),
    `caratteristicheListeId` VARCHAR(1000),
    `notaArticolo` TEXT,
    `flgUsato` INTEGER,
    `nMatricola` VARCHAR(254),
    `costoNetto` DECIMAL(18,4),
    `costoNuovo` DECIMAL(18,4),
    `dataUltimoCosto` DATE,
    `prezzoNettoBarrato` DECIMAL(18,4),
    `prezzoIvatoBarrato` DECIMAL(18,4),
    `flgNoleggio` INTEGER,
    `prezzoNoleggio` DECIMAL(18,4),
    `flgGoogle` INTEGER,
    `codiceEan` VARCHAR(60),
    `descrizioneGoogle` VARCHAR(200),
    `flgEbay` INTEGER,
    `percRicarico` DECIMAL(5,2),
    `flgSuperGaranzia` INTEGER,
    `flgStatoImport` INTEGER,
    `costoManodopera` DECIMAL(18,4),
    `costoStiro` DECIMAL(18,4),
    `costoSpeseFisse` DECIMAL(18,4),
    `costoAccessori` DECIMAL(18,4),
    `flgKit` INTEGER,
    `flgKitArt` INTEGER,
    `prezzoPubblicoIva` DECIMAL(18,4),
    `flgRateale0` INTEGER,
    `descrizioneSearch` VARCHAR(1000),
    `scaffale` VARCHAR(40),
    `flgContoVendita` INTEGER,
    `flgInEsaurimento` INTEGER,
    `idTipoSearch` VARCHAR(1000),
    `tipoOrdineSearch` INTEGER,
    `tipoDescrizioneSearch` VARCHAR(60),
    `id_confezionistaDefault` INTEGER,
    `flgDisponibilitaWeb` INTEGER,
    `flgModImportazione` INTEGER,
    `prezzoPubblicoIvaOrd` DECIMAL(18,4),
    `flgSubito` INTEGER,
    `tagArticolo` VARCHAR(200),
    `codicePromozioneA` VARCHAR(40),
    `costoPrecedente` DECIMAL(18,4),
    `imponibilePrecedente` DECIMAL(18,4),
    `percRicaricoEffettivo` DECIMAL(18,4),
    `googleFeedFileName` VARCHAR(40),
    `flgRichiediQuotazione` INTEGER,
    `countImportNonTrovato` INTEGER NOT NULL,
    `dataUltimoImport` DATE,
    `sitemapPriority` INTEGER,
    `keywords` VARCHAR(254),
    `flgB2b` INTEGER,
    `flgB2bArt` INTEGER,
    `readyForWeb` VARCHAR(40),
    `ebayItemId` VARCHAR(16),
    `ebayOfferId` VARCHAR(40),
    `id_listinoEbay` INTEGER,
    `prezzoSuEbayIva` DECIMAL(18,4),
    `qtaEbay` INTEGER,
    `qtaSuEbay` INTEGER,
    `impression` INTEGER,
    `tmstLastImpression` DATETIME,
    `qtaMaxAcquistoWww` INTEGER,
    `id_fornitoreCostoNuovo` INTEGER,
    `id_statoUsato` INTEGER,
    `flgPreventivoWwwArt` INTEGER,
    `percCostoSpedizione` INTEGER,
    `categoriaImport` VARCHAR(1000),
    `dataScadenzaOffertaFornitore` DATE,
    `flgAmazon` INTEGER,
    `id_listinoAmazon` INTEGER,
    `tariffaAmazon` DECIMAL(18,4),
    `flgControlloCostoAggArt` INTEGER,
    `flgTrovaprezzi` INTEGER,
    `flgIdealo` INTEGER,
    `flgTipoSchedaArticoloWww` INTEGER,
    `nomeSeo` VARCHAR(254),
    `erroriSeo` VARCHAR(1000),
    `dataChiamataIcecat` DATE,
    `hashCodeCurrent` INTEGER,
    `hashCodeIndexNow` INTEGER,
    `prezzoSuAmzIva` DECIMAL(18,4),
    `qtaSuAmz` INTEGER,
    `qtaAmz` INTEGER,
    `productTypeAmz` VARCHAR(40),
    `asinAmz` VARCHAR(40),
    `flgPriceTypeAmz` INTEGER,
    `descAmz` VARCHAR(1000),
    `flgAmzWarn` INTEGER,
    CONSTRAINT `PK_ARTICOLO` PRIMARY KEY (`id_articolo`)
);

CREATE UNIQUE INDEX `IDX_ARTICOLO_1` ON `ARTICOLO` (`codice` ASC);

CREATE INDEX `IDX_ARTICOLO_2` ON `ARTICOLO` (`codiceProduttore` ASC);

CREATE INDEX `IDX_ARTICOLO_3` ON `ARTICOLO` (`codiciAlternativi` ASC);

CREATE INDEX `IDX_ARTICOLO_4` ON `ARTICOLO` (`codiciMagazzino`);

CREATE INDEX `IDX_ARTICOLO_5` ON `ARTICOLO` (`langsNomel`);

CREATE INDEX `IDX_ARTICOLO_6` ON `ARTICOLO` (`langsDescrizione`);

CREATE INDEX `IDX_ARTICOLO_7` ON `ARTICOLO` (`caratteristicheListeId`);

CREATE INDEX `IDX_ARTICOLO_8` ON `ARTICOLO` (`descrizioneSearch`);

CREATE INDEX `IDX_ARTICOLO_9` ON `ARTICOLO` (`idTipoSearch`);

CREATE INDEX `IDX_ARTICOLO_10` ON `ARTICOLO` (`tipoOrdineSearch` ASC);

CREATE INDEX `IDX_ARTICOLO_11` ON `ARTICOLO` (`tipoDescrizioneSearch` ASC);

CREATE INDEX `IDX_ARTICOLO_12` ON `ARTICOLO` (`nome` ASC);

CREATE INDEX `IDX_ARTICOLO_13` ON `ARTICOLO` (`flgEscludiWeb`);

CREATE INDEX `IDX_ARTICOLO_14` ON `ARTICOLO` (`flgNascondi`);

CREATE INDEX `IDX_ARTICOLO_15` ON `ARTICOLO` (`prezzoPubblicoIvaOrd`);

CREATE INDEX `IDX_ARTICOLO_16` ON `ARTICOLO` (`tagArticolo`);

CREATE INDEX `IDX_ARTICOLO_17` ON `ARTICOLO` (`readyForWeb`);

CREATE UNIQUE INDEX `IDX_ARTICOLO_18` ON `ARTICOLO` (`ebayItemId`);

# ---------------------------------------------------------------------- #
# Add table "CARATTERISTICA_ARTICOLO"                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `CARATTERISTICA_ARTICOLO` (
    `id_articolo` INTEGER NOT NULL,
    `id_caratteristica` INTEGER NOT NULL,
    `valI` INTEGER,
    `valS` VARCHAR(60),
    `valSN` INTEGER,
    `valD` DATE,
    `id_lista` INTEGER,
    `valDouble` DECIMAL(18,4),
    CONSTRAINT `PK_CARATTERISTICA_ARTICOLO` PRIMARY KEY (`id_articolo`, `id_caratteristica`)
);

CREATE INDEX `IDX_CARATTERISTICA_ARTICOLO_1` ON `CARATTERISTICA_ARTICOLO` (`id_caratteristica`);

CREATE INDEX `IDX_CARATTERISTICA_ARTICOLO_2` ON `CARATTERISTICA_ARTICOLO` (`id_lista`);

CREATE INDEX `IDX_CARATTERISTICA_ARTICOLO_3` ON `CARATTERISTICA_ARTICOLO` (`id_articolo`);

# ---------------------------------------------------------------------- #
# Add table "ACCESSORIO"                                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `ACCESSORIO` (
    `id_accessorio` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipoAccessorio` INTEGER,
    `id_articoloAssociato` INTEGER,
    `id_articolo` INTEGER,
    `id_articoloVarianteAssociato` INTEGER,
    `id_articoloVariante` INTEGER,
    `flgEstendiVariante` INTEGER,
    CONSTRAINT `PK_ACCESSORIO` PRIMARY KEY (`id_accessorio`)
);

CREATE INDEX `IDX_ACCESSORIO_1` ON `ACCESSORIO` (`id_tipoAccessorio` ASC);

CREATE INDEX `IDX_ACCESSORIO_2` ON `ACCESSORIO` (`id_articoloAssociato`);

CREATE INDEX `IDX_ACCESSORIO_3` ON `ACCESSORIO` (`id_articolo`);

CREATE INDEX `IDX_ACCESSORIO_4` ON `ACCESSORIO` (`id_articoloVarianteAssociato`);

CREATE INDEX `IDX_ACCESSORIO_5` ON `ACCESSORIO` (`id_articoloVariante`);

CREATE UNIQUE INDEX `IDX_ACCESSORIO_6` ON `ACCESSORIO` (`id_tipoAccessorio`,`id_articolo`,`id_articoloAssociato`,`id_articoloVariante`,`id_articoloVarianteAssociato`);

# ---------------------------------------------------------------------- #
# Add table "DOCUMENTO"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `DOCUMENTO` (
    `id_documento` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tipoDocumento` INTEGER,
    `id_clifor` INTEGER NOT NULL,
    `id_vettore` INTEGER,
    `id_tipoPagamento` INTEGER,
    `flgPagamentoDataFissa` INTEGER,
    `dataScadenzaPagamento` DATE,
    `flgSys` INTEGER,
    `flgStato` INTEGER,
    `dataDocumento` DATE,
    `progDocumento` INTEGER,
    `progDocumentoAgg` CHAR(6) DEFAULT "",
    `id_esercizio` INTEGER,
    `id_contatore` INTEGER NOT NULL,
    `riferimento` VARCHAR(30),
    `dataRiferimento` DATE,
    `flgTipoDocumento` INTEGER,
    `scontoIncondizionato` DECIMAL(18,4),
    `dataPagamento` DATE,
    `dataRegistrazioneDI` DATE,
    `dichiarazioneIntento` VARCHAR(30),
    `flgArt8` INTEGER,
    `flgPagata` INTEGER,
    `flgExport` INTEGER,
    `flgTrasporto` INTEGER,
    `kgLordo` DOUBLE,
    `nColli` INTEGER,
    `dataStampaBollato` DATE,
    `dataStampaIva` DATE,
    `flgTrasportoAssicurato` INTEGER,
    `notaSpedizione` VARCHAR(254),
    `dataConsegna` DATE,
    `oraConsegna` TIME,
    `speseTrasporto` DECIMAL(18,4),
    `speseAltre` DECIMAL(18,4),
    `descSpeseAltre` VARCHAR(60),
    `id_aspetto` INTEGER,
    `note` TEXT,
    `imponibileRighe` DECIMAL(18,4),
    `importoIvaRighe` DECIMAL(18,4),
    `imponibileTotale` DECIMAL(18,4),
    `importoIvaTotale` DECIMAL(18,4),
    `id_documentoFiglio` INTEGER,
    `flgEmettiFatturaScontrino` INTEGER,
    `echoScontrino` VARCHAR(30),
    `presso` VARCHAR(60),
    `id_comuneSped` INTEGER,
    `indirizzoSped` VARCHAR(60),
    `numeroCivicoSped` VARCHAR(10),
    `flgDocumentoPrelevato` INTEGER,
    `importoTotale` DECIMAL(18,4),
    `acconto` DECIMAL(18,4),
    `flgStatoPrenotazione` INTEGER,
    `id_causaleTrasporto` INTEGER,
    `kgNetto` DOUBLE,
    `volume` DECIMAL(18,4),
    `abbuono` DECIMAL(18,4),
    `speseIncasso` DECIMAL(18,4),
    `bancaDesc` VARCHAR(60),
    `iban` CHAR(27),
    `notePagamento` VARCHAR(254),
    `id_destinazioneDiversa` INTEGER,
    `dataAvviso` DATE,
    `dataChiusura` DATE,
    `nominativoDocumento` VARCHAR(254),
    `telDocumento` VARCHAR(30),
    `eMailDocumento` VARCHAR(254),
    `flgInviaAvviso` INTEGER,
    `percContIntegrativo` DECIMAL(5,2),
    `rimborsoArt15` DECIMAL(18,4),
    `percRitenutaAcconto` DECIMAL(5,2),
    `flgHaDocumentoPadre` INTEGER,
    `flgStatoRiparazione` INTEGER,
    `flgInGaranzia` INTEGER,
    `cauzione` DECIMAL(18,4),
    `descrizioneDifetto` TEXT,
    `interventoEffettuato` TEXT,
    `flgPreventivo` INTEGER,
    `importoPreventivo` DECIMAL(18,4),
    `notaAggiuntiva` TEXT,
    `descrizionePreventivo` TEXT,
    `faxDocumento` VARCHAR(30),
    `cellDocumento` VARCHAR(60),
    `id_usersIntervento` INTEGER,
    `id_usersChiusura` INTEGER,
    `id_users` INTEGER,
    `id_porto` INTEGER,
    `progDocumentoB` INTEGER,
    `progDocumentiAggB` CHAR(6),
    `id_esercizioB` INTEGER,
    `flgTipoMovimento` INTEGER,
    `id_cliforListino` INTEGER,
    `id_ivaDoc` INTEGER,
    `importoConsuntivo` DECIMAL(18,4),
    `descTransaction` VARCHAR(80),
    `dataTransaction` DATE,
    `flgProcediPagamento` INTEGER,
    `flgStatoOrdineWww` INTEGER,
    `id_documentoXpay` VARCHAR(40),
    `flgRitiroNegozio` INTEGER,
    `logRecord` TEXT,
    `id_magFisicoPartenza` INTEGER,
    `id_magFisicoArrivo` INTEGER,
    `dataDownload` DATE,
    `ipDownload` VARCHAR(254),
    `flgDownload` INTEGER,
    `tmstStampato` DATETIME,
    `oraDownload` TIME,
    `bic` VARCHAR(30),
    `id_bancaAnticipo` INTEGER,
    `flgHasDocumentiPrelevabili` INTEGER,
    `flgSuper` INTEGER,
    `clienteNome` VARCHAR(254),
    `clienteCognome` VARCHAR(254),
    `clienteIndirizzo` VARCHAR(254),
    `clienteCf` VARCHAR(254),
    `clientePiva` VARCHAR(254),
    `flgEmsta` INTEGER,
    `notaSblocco` VARCHAR(1000),
    `cittaSped` VARCHAR(60),
    `provinciaSped` VARCHAR(40),
    `capSped` VARCHAR(40),
    `tmstFilePdf` DATETIME,
    `tmstInvioMail` DATETIME,
    `flgWwwRichiedeFattura` INTEGER,
    `bancaCFDesc` VARCHAR(60),
    `ibanCF` CHAR(27),
    `percScontoIncondizionato` DECIMAL(5,2),
    `id_nazioneSped` CHAR(4),
    `tmstFileXml` DATETIME,
    `importoBolloEsenzione` DECIMAL(18,4),
    `imponibileBolloEsenzione` DECIMAL(18,4),
    `progFileFE` VARCHAR(5),
    `tmstInvioXml` DATETIME,
    `flgStatoInvioXml` INTEGER,
    `codiceCIG` VARCHAR(40),
    `codiceCUP` VARCHAR(40),
    `codiceCommessa` VARCHAR(40),
    `descrizioneDocumento` VARCHAR(60),
    `id_magFisicoPartenza2` INTEGER,
    `id_magFisicoArrivo2` INTEGER,
    `tsFineLavorazione` DATETIME,
    `tsInizioLavorazione` DATETIME,
    `flgStatoLavorazione` INTEGER,
    `flgBarcodeType` INTEGER,
    `flgBarcodeSequenzaNumeri` INTEGER,
    `ordineCodiceCUP` VARCHAR(40),
    `ordineCodiceCIG` VARCHAR(40),
    `prezzoAlColpo` DECIMAL(18,4),
    `id_articolo` INTEGER,
    `id_taglia` INTEGER,
    `causale` VARCHAR(200),
    `totaleColpi` INTEGER,
    `flgBartolini` INTEGER,
    `valoreDichiarato` DECIMAL(18,4),
    `costoEffettivoSped` DECIMAL(18,4),
    `dataSpedizione` DATE,
    `dataInvioMailSped` DATE,
    `flgTipoRitiro` INTEGER,
    `flgAvvisoConsegna` INTEGER,
    `flgModoAccredito` INTEGER,
    `progOrdineWww` INTEGER,
    `tmstInvioMailOrdine` DATETIME,
    `trackingSpedizione` VARCHAR(40),
    `prezzo1000Colpi` DECIMAL(18,4),
    `prezzoAnnodatura` DECIMAL(18,4),
    `notaMail` VARCHAR(2000),
    `flgWwwTipoOrdine` INTEGER,
    `wwwCostoOrdine` DECIMAL(18,4),
    `wwwCostoSpedizione` DECIMAL(18,4),
    `wwwCostoTariffa` DECIMAL(18,4),
    `id_rigaBollaAtr` INTEGER,
    `dataRestituzioneAcconto` DATE,
    `FERiferimentoTesto` VARCHAR(60),
    `FERiferimentoNumero` DOUBLE,
    `FERiferimentoData` DATE,
    `id_lavorazione` INTEGER,
    `descTransactionStripe` VARCHAR(80),
    CONSTRAINT `PK_DOCUMENTO` PRIMARY KEY (`id_documento`)
);

CREATE UNIQUE INDEX `IDX_DOCUMENTO_1` ON `DOCUMENTO` (`progDocumento` ASC,`id_contatore` ASC,`id_esercizio` ASC,`flgStato` ASC,`progDocumentoAgg` ASC);

CREATE INDEX `IDX_DOCUMENTO_2` ON `DOCUMENTO` (`id_tipoDocumento`);

CREATE INDEX `IDX_DOCUMENTO_3` ON `DOCUMENTO` (`id_vettore`);

CREATE INDEX `IDX_DOCUMENTO_4` ON `DOCUMENTO` (`id_tipoPagamento`);

CREATE INDEX `IDX_DOCUMENTO_5` ON `DOCUMENTO` (`id_clifor`);

CREATE INDEX `IDX_DOCUMENTO_6` ON `DOCUMENTO` (`id_aspetto`);

CREATE INDEX `IDX_DOCUMENTO_7` ON `DOCUMENTO` (`id_esercizio`);

CREATE INDEX `IDX_DOCUMENTO_8` ON `DOCUMENTO` (`id_documentoFiglio`);

CREATE INDEX `IDX_DOCUMENTO_9` ON `DOCUMENTO` (`id_comuneSped`);

CREATE INDEX `IDX_DOCUMENTO_10` ON `DOCUMENTO` (`id_causaleTrasporto`);

CREATE INDEX `IDX_DOCUMENTO_11` ON `DOCUMENTO` (`id_destinazioneDiversa`);

CREATE INDEX `IDX_DOCUMENTO_12` ON `DOCUMENTO` (`id_usersIntervento`);

CREATE INDEX `IDX_DOCUMENTO_13` ON `DOCUMENTO` (`id_usersChiusura`);

CREATE INDEX `IDX_DOCUMENTO_14` ON `DOCUMENTO` (`id_users`);

CREATE INDEX `IDX_DOCUMENTO_15` ON `DOCUMENTO` (`progDocumento` ASC);

CREATE UNIQUE INDEX `IDX_DOCUMENTO_16` ON `DOCUMENTO` (`id_documentoXpay`);

CREATE UNIQUE INDEX `IDX_DOCUMENTO_17` ON `DOCUMENTO` (`progFileFE`);

CREATE INDEX `IDX_DOCUMENTO_18` ON `DOCUMENTO` (`progOrdineWww`);

CREATE INDEX `IDX_DOCUMENTO_19` ON `DOCUMENTO` (`dataTransaction`);

# ---------------------------------------------------------------------- #
# Add table "RIGA_DOCUMENTO"                                             #
# ---------------------------------------------------------------------- #

CREATE TABLE `RIGA_DOCUMENTO` (
    `id_rigaDocumento` INTEGER NOT NULL AUTO_INCREMENT,
    `id_documento` INTEGER,
    `id_articolo` INTEGER,
    `id_articoloVariante` INTEGER,
    `id_iva` INTEGER,
    `seriale` VARCHAR(30),
    `imponibile` DECIMAL(18,4),
    `quantita` DOUBLE,
    `descrizioneRiga` VARCHAR(254),
    `notaRigaDocumento` VARCHAR(254),
    `sconto` DECIMAL(5,2),
    `quantitaPrelevata` DOUBLE DEFAULT 0,
    `quantitaAssociata` DOUBLE DEFAULT 0,
    `flgRigaPrelevata` INTEGER,
    `id_reparto` INTEGER,
    `importo` DECIMAL(18,4),
    `flgReso` INTEGER,
    `flgPrenotazioneArrivata` INTEGER,
    `serialeSost` VARCHAR(30),
    `id_documentoPadre` INTEGER,
    `ordineRiga` INTEGER,
    `notaBarcode` VARCHAR(60),
    `id_rigaDocumentoPadre` INTEGER,
    `dataScadenzaLotto` DATE,
    `id_articoloTaglia` INTEGER,
    `percL1` DECIMAL(5,2),
    `percL2` DECIMAL(5,2),
    `percL3` DECIMAL(5,2),
    `kg` DOUBLE,
    `mt` DOUBLE,
    `nr` DOUBLE,
    `qtaSlipStampate` INTEGER,
    `statoPrenotazione` INTEGER,
    `id_causaleMagazzino` INTEGER DEFAULT null,
    `id_clifor` INTEGER DEFAULT null,
    `id_magFisico` INTEGER DEFAULT null,
    `segnoMov` INTEGER,
    `id_rigaDocumentoMov` INTEGER,
    `id_rigaDocumentoPrelevata` INTEGER,
    `id_pezza` INTEGER,
    `id_faseLavorazione` INTEGER,
    `id_articoloFilatoColoreRitorto` INTEGER,
    `id_articoloTessuto` INTEGER,
    `descrizioneCodiceRiga` VARCHAR(40),
    `stacchi` INTEGER,
    `metriStacchi` DOUBLE,
    `rifTipoArticolo` INTEGER,
    `tsInizioLavorazioneRiga` DATETIME,
    `flgStatoLavorazioneRiga` INTEGER,
    `tsFineLavorazioneRiga` DATETIME,
    `codiceCartellinoIniziale` VARCHAR(40),
    `codiceCartellinoStart` VARCHAR(40),
    `codiceCartellinoStop` VARCHAR(40),
    `numColpiDM` INTEGER,
    `flgCodiceRiga` INTEGER,
    `id_articoloTessutoColore` INTEGER,
    `colpoInizialeRiga` INTEGER,
    `colpoFinaleRiga` INTEGER,
    `capiPerTelo` INTEGER,
    `id_telaio` INTEGER,
    `flgDaCancellare` INTEGER,
    `nrOriginale` DOUBLE,
    `descrizioneRigaRaggruppamento` VARCHAR(254),
    `descrizioneRigaDettaglio` VARCHAR(254),
    `flgDescPadreGenerazioneRiga` VARCHAR(40),
    `ordine` INTEGER,
    `id_articoloFilatoColore` INTEGER,
    `id_rigaDocumentoTessutoA` INTEGER,
    CONSTRAINT `PK_RIGA_DOCUMENTO` PRIMARY KEY (`id_rigaDocumento`)
);

CREATE INDEX `IDX_RIGA_DOCUMENTO_1` ON `RIGA_DOCUMENTO` (`id_articolo`);

CREATE INDEX `IDX_RIGA_DOCUMENTO_2` ON `RIGA_DOCUMENTO` (`id_documento`);

CREATE INDEX `IDX_RIGA_DOCUMENTO_3` ON `RIGA_DOCUMENTO` (`id_iva`);

CREATE INDEX `IDX_RIGA_DOCUMENTO_4` ON `RIGA_DOCUMENTO` (`id_articoloVariante`);

CREATE INDEX `IDX_RIGA_DOCUMENTO_5` ON `RIGA_DOCUMENTO` (`id_reparto`);

CREATE UNIQUE INDEX `IDX_RIGA_DOCUMENTO_6` ON `RIGA_DOCUMENTO` (`codiceCartellinoIniziale`);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_VARIANTE"                                          #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_VARIANTE` (
    `id_articoloVariante` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articolo` INTEGER NOT NULL,
    `nomeV` VARCHAR(30),
    `codiceVariante` VARCHAR(30) NOT NULL,
    `imgTmst` VARCHAR(24),
    `flgNascondi` INTEGER DEFAULT 0,
    `flgUdmAv` INTEGER,
    `quantitaAv` DOUBLE,
    `codiciAlternativiV` VARCHAR(254),
    `id_vetrina` INTEGER,
    `qtaAttribuitaV` DOUBLE,
    `qtaInProduzioneV` DOUBLE,
    `codiceSerieV` VARCHAR(16),
    `flgStockV` INTEGER,
    `flgNonOrdinabile` INTEGER,
    `flgDispo` INTEGER,
    `flgInAggiornamento` INTEGER,
    `quantitaMagazzinoMovimentoHtml` VARCHAR(254),
    `flgListinoArticolo` INTEGER,
    `metaTag` VARCHAR(40),
    `metaDesc` VARCHAR(254),
    `quantitaCalcolateAv` BOOL,
    `flgWebNoVenditaAv` INTEGER,
    `flgEscludiWebAv` INTEGER,
    `quantitaImpegnataAv` DOUBLE,
    `quantitaInArrivoAv` DOUBLE,
    `quantitaAvW` DOUBLE,
    `quantitaEffettivaAv` DOUBLE,
    `codiciMagazzino` VARCHAR(1000),
    `id_colore` INTEGER,
    `codicePromozioneAV` VARCHAR(40),
    `coloreVHex` VARCHAR(7),
    `descrizioneSearchAv` VARCHAR(1000),
    `keywordsAv` VARCHAR(200),
    `ebayItemIdAv` VARCHAR(40),
    `flgSubitoAv` INTEGER,
    `flgGoogleAv` INTEGER,
    `flgEbayAv` INTEGER,
    `readyForWebAv` VARCHAR(40),
    `ebayOfferIdAv` VARCHAR(40),
    `qtaEbayAv` INTEGER,
    `qtaSuEbayAv` INTEGER,
    `impressionAv` INTEGER,
    `tmstLastImpressionAv` DATETIME,
    `id_statoUsato` INTEGER,
    `codiceEanAv` VARCHAR(40),
    CONSTRAINT `PK_ARTICOLO_VARIANTE` PRIMARY KEY (`id_articoloVariante`)
);

CREATE INDEX `IDX_ARTICOLO_VARIANTE_1` ON `ARTICOLO_VARIANTE` (`id_articolo`);

CREATE UNIQUE INDEX `IDX_ARTICOLO_VARIANTE_2` ON `ARTICOLO_VARIANTE` (`id_articolo` ASC,`nomeV` ASC,`codiceSerieV` ASC);

CREATE UNIQUE INDEX `IDX_ARTICOLO_VARIANTE_3` ON `ARTICOLO_VARIANTE` (`codiceVariante` ASC);

CREATE INDEX `IDX_ARTICOLO_VARIANTE_4` ON `ARTICOLO_VARIANTE` (`codiciAlternativiV` ASC);

CREATE INDEX `IDX_ARTICOLO_VARIANTE_5` ON `ARTICOLO_VARIANTE` (`codiciMagazzino`);

CREATE INDEX `IDX_ARTICOLO_VARIANTE_6` ON `ARTICOLO_VARIANTE` (`descrizioneSearchAv`);

CREATE UNIQUE INDEX `IDX_ARTICOLO_VARIANTE_7` ON `ARTICOLO_VARIANTE` (`ebayItemIdAv`);

CREATE INDEX `IDX_ARTICOLO_VARIANTE_8` ON `ARTICOLO_VARIANTE` (`readyForWebAv`);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_FORNITORE"                                         #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_FORNITORE` (
    `id_articoloFornitore` INTEGER NOT NULL AUTO_INCREMENT,
    `id_clifor` INTEGER NOT NULL,
    `id_articolo` INTEGER,
    `id_articoloTessuto` INTEGER,
    `id_articoloTessutoColore` INTEGER,
    `id_articoloVariante` INTEGER,
    `codiceFornitore` VARCHAR(60),
    `costo` DECIMAL(18,4),
    `costoVecchio` DECIMAL(18,4),
    `dataUltimoPrezzo` DATE,
    `flgFuoriListino` INTEGER,
    `costoScontoQta` INTEGER,
    `costoSconto` DECIMAL(18,4),
    `dispSede` INTEGER,
    `dispCash` INTEGER,
    `flgAbituale` INTEGER,
    `flgPromo` INTEGER,
    `streetPrice` DECIMAL(18,4),
    `costoAggiuntivo` DECIMAL(18,4),
    `dataInizioPromo` DATE,
    `dataFinePromo` DATE,
    `flgControlloCostoAggAF` INTEGER,
    CONSTRAINT `PK_ARTICOLO_FORNITORE` PRIMARY KEY (`id_articoloFornitore`)
);

CREATE UNIQUE INDEX `IDX_ARTICOLO_FORNITORE_1` ON `ARTICOLO_FORNITORE` (`codiceFornitore`,`id_clifor`);

# ---------------------------------------------------------------------- #
# Add table "ALLEGATO_ARTICOLO"                                          #
# ---------------------------------------------------------------------- #

CREATE TABLE `ALLEGATO_ARTICOLO` (
    `id_allegatoArticolo` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articolo` INTEGER,
    `id_tipoAllegatoArticolo` INTEGER,
    `nomeFile` VARCHAR(60),
    `descrizioneAllegato` VARCHAR(254),
    CONSTRAINT `PK_ALLEGATO_ARTICOLO` PRIMARY KEY (`id_allegatoArticolo`)
);

CREATE INDEX `IDX_ALLEGATO_ARTICOLO_1` ON `ALLEGATO_ARTICOLO` (`id_articolo`);

# ---------------------------------------------------------------------- #
# Add table "LISTINO_PERS"                                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `LISTINO_PERS` (
    `id_listinoPers` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articolo` INTEGER,
    `id_clifor` INTEGER,
    `flgTipoLP` INTEGER,
    `percLP` DECIMAL(5,2),
    `prezzoLP` DECIMAL(18,4),
    `id_tipo` INTEGER(11),
    `indiciTipo` VARCHAR(1000),
    CONSTRAINT `PK_LISTINO_PERS` PRIMARY KEY (`id_listinoPers`)
);

CREATE INDEX `IDX_LISTINO_PERS_1` ON `LISTINO_PERS` (`id_articolo`);

CREATE INDEX `IDX_LISTINO_PERS_2` ON `LISTINO_PERS` (`id_clifor`);

CREATE UNIQUE INDEX `IDX_LISTINO_PERS_3` ON `LISTINO_PERS` (`id_articolo`,`id_clifor`);

CREATE UNIQUE INDEX `IDX_LISTINO_PERS_4` ON `LISTINO_PERS` (`id_clifor`,`id_tipo`);

# ---------------------------------------------------------------------- #
# Add table "RIGA_DOCUMENTO_P"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `RIGA_DOCUMENTO_P` (
    `id_rigaDocumentoP` INTEGER NOT NULL AUTO_INCREMENT,
    `id_rigaDocumento` INTEGER NOT NULL,
    `id_rigaDocumentoPrelevata` INTEGER NOT NULL,
    `id_documento` INTEGER,
    `quantitaPrelevata` DOUBLE,
    CONSTRAINT `PK_RIGA_DOCUMENTO_P` PRIMARY KEY (`id_rigaDocumentoP`)
);

# ---------------------------------------------------------------------- #
# Add table "RIVALUTAZIONE"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `RIVALUTAZIONE` (
    `id_rivalutazione` INTEGER NOT NULL AUTO_INCREMENT,
    `dataRivalutazione` DATE,
    `imponibileRivalutazione` DECIMAL(18,4),
    `id_articolo` INTEGER,
    CONSTRAINT `PK_RIVALUTAZIONE` PRIMARY KEY (`id_rivalutazione`)
);

CREATE INDEX `IDX_RIVALUTAZIONE_1` ON `RIVALUTAZIONE` (`id_articolo`);

# ---------------------------------------------------------------------- #
# Add table "DOC_FIGLIO_PADRE"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `DOC_FIGLIO_PADRE` (
    `id_docFiglioPadre` INTEGER NOT NULL AUTO_INCREMENT,
    `id_documentoPadre` INTEGER,
    `id_documentoFiglio` INTEGER,
    CONSTRAINT `PK_DOC_FIGLIO_PADRE` PRIMARY KEY (`id_docFiglioPadre`)
);

CREATE INDEX `IDX_DOC_FIGLIO_PADRE_1` ON `DOC_FIGLIO_PADRE` (`id_documentoPadre`);

CREATE INDEX `IDX_DOC_FIGLIO_PADRE_2` ON `DOC_FIGLIO_PADRE` (`id_documentoFiglio`);

CREATE UNIQUE INDEX `IDX_DOC_FIGLIO_PADRE_3` ON `DOC_FIGLIO_PADRE` (`id_documentoPadre`,`id_documentoFiglio`);

# ---------------------------------------------------------------------- #
# Add table "LISTINO_SERVIZI_PERS"                                       #
# ---------------------------------------------------------------------- #

CREATE TABLE `LISTINO_SERVIZI_PERS` (
    `id_listinoServiziPers` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articolo` INTEGER,
    `id_clifor` INTEGER,
    `flgUdm` INTEGER,
    `flgTipoLP` INTEGER,
    `percLP` DECIMAL(5,2),
    `prezzoLP` DECIMAL(18,4),
    `id_aspetto` INTEGER,
    `flgMinimoTassabile` INTEGER,
    CONSTRAINT `PK_LISTINO_SERVIZI_PERS` PRIMARY KEY (`id_listinoServiziPers`)
);

CREATE INDEX `IDX_LISTINO_SERVIZI_PERS_1` ON `LISTINO_SERVIZI_PERS` (`id_articolo`);

CREATE INDEX `IDX_LISTINO_SERVIZI_PERS_2` ON `LISTINO_SERVIZI_PERS` (`id_clifor`);

CREATE UNIQUE INDEX `IDX_LISTINO_SERVIZI_PERS_3` ON `LISTINO_SERVIZI_PERS` (`id_articolo`,`id_clifor`);

# ---------------------------------------------------------------------- #
# Add table "ALLEGATO_DOCUMENTO"                                         #
# ---------------------------------------------------------------------- #

CREATE TABLE `ALLEGATO_DOCUMENTO` (
    `id_allegatoDocumento` INTEGER NOT NULL AUTO_INCREMENT,
    `id_documento` INTEGER,
    `id_tipoAllegatoDocumento` INTEGER,
    `nomeFile` VARCHAR(254),
    `descrizioneAllegato` VARCHAR(254),
    CONSTRAINT `PK_ALLEGATO_DOCUMENTO` PRIMARY KEY (`id_allegatoDocumento`)
);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_TAGLIA"                                            #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_TAGLIA` (
    `id_articoloTaglia` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articolo` INTEGER,
    `id_articoloVariante` INTEGER,
    `id_taglia` INTEGER,
    `codiceAT` CHAR(40),
    `flgDispo` INTEGER,
    `quantitaCalcolateAt` BOOL,
    `quantitaImpegnataAt` DOUBLE,
    `quantitaInArrivoAt` DOUBLE,
    `quantitaAtW` DOUBLE,
    `quantitaEffettivaAt` DOUBLE,
    `flgUdmAt` INTEGER,
    `quantitaAt` DOUBLE,
    `qtaAttribuitaT` DOUBLE,
    `qtaProduzioneT` DOUBLE,
    `quantitaMagazzinoMovimentoHtml` VARCHAR(254),
    `codiciMagazzino` VARCHAR(1000),
    CONSTRAINT `PK_ARTICOLO_TAGLIA` PRIMARY KEY (`id_articoloTaglia`)
);

CREATE INDEX `IDX_ARTICOLO_TAGLIA_1` ON `ARTICOLO_TAGLIA` (`codiciMagazzino`);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_COMPONENTE"                                        #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_COMPONENTE` (
    `id_articoloComponente` INTEGER NOT NULL AUTO_INCREMENT,
    `id_componente` INTEGER,
    `id_articolo` INTEGER,
    `perc` DECIMAL(5,2),
    CONSTRAINT `PK_ARTICOLO_COMPONENTE` PRIMARY KEY (`id_articoloComponente`)
);

# ---------------------------------------------------------------------- #
# Add table "LISTINO_ARTICOLO"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `LISTINO_ARTICOLO` (
    `id_listinoArticolo` INTEGER NOT NULL AUTO_INCREMENT,
    `id_listino` INTEGER,
    `id_articolo` INTEGER,
    `prezzoLA` DECIMAL(18,4),
    `id_articoloVariante` INTEGER,
    `percLA` DECIMAL(5,2),
    `prezzoOffertaLA` DECIMAL(18,4),
    `dataScadenzaOffertaLA` DATE,
    `abbuonoPrezzoPubblicoLA` DECIMAL(18,4),
    `dataCambiamentoPrezzoLA` DATE,
    `percLA1` DECIMAL(5,2),
    `percLA2` DECIMAL(5,2),
    `percLA3` DECIMAL(5,2),
    `percScontoOffertaLA` DECIMAL(5,2),
    CONSTRAINT `PK_LISTINO_ARTICOLO` PRIMARY KEY (`id_listinoArticolo`)
);

# ---------------------------------------------------------------------- #
# Add table "DOCUMENTO_AGENTE"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `DOCUMENTO_AGENTE` (
    `id_documentoAgente` INTEGER NOT NULL AUTO_INCREMENT,
    `id_documento` INTEGER,
    `id_cliforDA` INTEGER,
    `percDocumentoAgente` DECIMAL(5,2),
    CONSTRAINT `PK_DOCUMENTO_AGENTE` PRIMARY KEY (`id_documentoAgente`)
);

# ---------------------------------------------------------------------- #
# Add table "RIGA_DOCUMENTO_PROGETTISTA"                                 #
# ---------------------------------------------------------------------- #

CREATE TABLE `RIGA_DOCUMENTO_PROGETTISTA` (
    `id_rigaDocumentoProgettista` INTEGER NOT NULL AUTO_INCREMENT,
    `id_rigaDocumento` INTEGER,
    `id_cliforRDA` INTEGER,
    `percRDA` DECIMAL(5,2),
    CONSTRAINT `PK_RIGA_DOCUMENTO_PROGETTISTA` PRIMARY KEY (`id_rigaDocumentoProgettista`)
);

# ---------------------------------------------------------------------- #
# Add table "RIGA_DOCUMENTO_P_M"                                         #
# ---------------------------------------------------------------------- #

CREATE TABLE `RIGA_DOCUMENTO_P_M` (
    `id_rigaDocumento` INTEGER NOT NULL,
    `id_rigaDocumentoPrelevata` INTEGER NOT NULL,
    `quantitaPrelevata` DOUBLE,
    CONSTRAINT `PK_RIGA_DOCUMENTO_P_M` PRIMARY KEY (`id_rigaDocumento`, `id_rigaDocumentoPrelevata`)
);

# ---------------------------------------------------------------------- #
# Add table "MOVIMENTO"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `MOVIMENTO` (
    `id_movimento` INTEGER NOT NULL AUTO_INCREMENT,
    `id_rigaDocumento` INTEGER,
    `id_articolo` INTEGER,
    `id_articoloVariante` INTEGER,
    `id_articoloTaglia` INTEGER,
    `id_magFisico` INTEGER,
    `id_clifor` INTEGER,
    `seriale` VARCHAR(30),
    `kg` DOUBLE,
    `mt` DOUBLE,
    `nr` DOUBLE,
    `id_rigaDocumentoP` INTEGER,
    `id_causaleMagazzino` INTEGER,
    `dataMovimento` DATE,
    CONSTRAINT `PK_MOVIMENTO` PRIMARY KEY (`id_movimento`)
);

CREATE INDEX `IDX_MOVIMENTO_1` ON `MOVIMENTO` (`seriale`);

# ---------------------------------------------------------------------- #
# Add table "INCASSO_PAGAMENTO"                                          #
# ---------------------------------------------------------------------- #

CREATE TABLE `INCASSO_PAGAMENTO` (
    `id_incassoPagamento` INTEGER NOT NULL AUTO_INCREMENT,
    `dataIP` DATE,
    `importoIP` DECIMAL(18,4),
    `notaIP` TEXT,
    `id_documento` INTEGER,
    `id_movimento` INTEGER,
    CONSTRAINT `PK_INCASSO_PAGAMENTO` PRIMARY KEY (`id_incassoPagamento`)
);

# ---------------------------------------------------------------------- #
# Add table "DOCUMENTO_PAGAMENTO"                                        #
# ---------------------------------------------------------------------- #

CREATE TABLE `DOCUMENTO_PAGAMENTO` (
    `id_documentoPagamento` INTEGER NOT NULL AUTO_INCREMENT,
    `id_documento` INTEGER,
    `id_tipoPagamento` INTEGER,
    `data` DATE,
    `importo` DECIMAL(18,4),
    `nota` VARCHAR(254),
    `flgTipoMovimento` INTEGER,
    `flgTipoIncasso` INTEGER,
    CONSTRAINT `PK_DOCUMENTO_PAGAMENTO` PRIMARY KEY (`id_documentoPagamento`)
);

# ---------------------------------------------------------------------- #
# Add table "RIGA_MOV_CONTABILE"                                         #
# ---------------------------------------------------------------------- #

CREATE TABLE `RIGA_MOV_CONTABILE` (
    `id_rigaMovContabile` INTEGER NOT NULL AUTO_INCREMENT,
    `id_movContabile` INTEGER,
    `importo` DECIMAL(18,4),
    `flgDA` INTEGER,
    `id_pianoConti` INTEGER,
    `id_clifor` INTEGER,
    `id_banca` INTEGER,
    `id_documento` INTEGER,
    `id_iva` INTEGER,
    CONSTRAINT `PK_RIGA_MOV_CONTABILE` PRIMARY KEY (`id_rigaMovContabile`)
);

# ---------------------------------------------------------------------- #
# Add table "DOCUMENTO_SCADENZA"                                         #
# ---------------------------------------------------------------------- #

CREATE TABLE `DOCUMENTO_SCADENZA` (
    `id_documentoScadenza` INTEGER NOT NULL AUTO_INCREMENT,
    `id_documento` INTEGER,
    `id_distintaRiba` INTEGER,
    `dataScadenza` DATE,
    `importoScadenza` DECIMAL(18,4),
    `flgScadenzaSelezionata` INTEGER,
    CONSTRAINT `PK_DOCUMENTO_SCADENZA` PRIMARY KEY (`id_documentoScadenza`)
);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_PROGETTISTA"                                       #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_PROGETTISTA` (
    `id_articoloProgettista` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articolo` INTEGER,
    `id_progettista` INTEGER,
    `percProvvigione` DECIMAL(5,2),
    `nota` VARCHAR(200),
    CONSTRAINT `PK_ARTICOLO_PROGETTISTA` PRIMARY KEY (`id_articoloProgettista`)
);

CREATE UNIQUE INDEX `IDX_ARTICOLO_PROGETTISTA_1` ON `ARTICOLO_PROGETTISTA` (`id_articolo`,`id_progettista`);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_ARTICOLO_COMPONENTE"                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_ARTICOLO_COMPONENTE` (
    `id_articoloArticoloComponente` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articoloComponente` INTEGER,
    `id_articolo` INTEGER NOT NULL,
    CONSTRAINT `PK_ARTICOLO_ARTICOLO_COMPONENTE` PRIMARY KEY (`id_articoloArticoloComponente`)
);

# ---------------------------------------------------------------------- #
# Add table "PEZZA"                                                      #
# ---------------------------------------------------------------------- #

CREATE TABLE `PEZZA` (
    `id_pezza` INTEGER NOT NULL AUTO_INCREMENT,
    `matricola` INTEGER,
    `id_tela` INTEGER,
    `id_articoloTessuto` INTEGER NOT NULL,
    `serie` VARCHAR(40),
    `colore` VARCHAR(40),
    `id_faseLavorazione` INTEGER,
    `id_rigaDocumento` INTEGER,
    `flgTipoProduzione` INTEGER,
    `flgAnnullata` INTEGER,
    `lunghezzaStandard` INTEGER,
    `pesoGreggio` DOUBLE,
    `pesoFinito` DOUBLE,
    `metriGreggi` DOUBLE,
    `metriFiniti` DOUBLE,
    `metriAbbuono` DOUBLE,
    `scelta` INTEGER,
    `partitaOrdito` VARCHAR(40),
    `partitaTrama` VARCHAR(40),
    CONSTRAINT `PK_PEZZA` PRIMARY KEY (`id_pezza`, `id_articoloTessuto`)
);

CREATE UNIQUE INDEX `IDX_PEZZA_1` ON `PEZZA` (`matricola`);

# ---------------------------------------------------------------------- #
# Add table "TELA"                                                       #
# ---------------------------------------------------------------------- #

CREATE TABLE `TELA` (
    `id_tela` INTEGER NOT NULL AUTO_INCREMENT,
    `id_cliforOrditura` INTEGER,
    `id_cliforTessitura` INTEGER,
    `progTela` INTEGER,
    `rigaTela` VARCHAR(40),
    `id_articoloTessuto` INTEGER,
    `serie` VARCHAR(40),
    `colore` VARCHAR(40),
    `id_rigaDocumento` INTEGER,
    `flgTipoPoduzione` INTEGER,
    `flgStatoTela` INTEGER,
    `pezzeDisposte` INTEGER,
    `pezzeAnnullate` INTEGER,
    `pezzeRientrate` INTEGER,
    CONSTRAINT `PK_TELA` PRIMARY KEY (`id_tela`)
);

CREATE UNIQUE INDEX `IDX_TELA_1` ON `TELA` (`progTela`,`rigaTela`);

# ---------------------------------------------------------------------- #
# Add table "PEZZA_PARTITA"                                              #
# ---------------------------------------------------------------------- #

CREATE TABLE `PEZZA_PARTITA` (
    `id_pezzaPartita` INTEGER NOT NULL AUTO_INCREMENT,
    `id_pezza` INTEGER,
    `id_articoloFilatoColore` INTEGER,
    `flgTramaOrdito` INTEGER,
    `partita` VARCHAR(40),
    `bagno` VARCHAR(40),
    CONSTRAINT `PK_PEZZA_PARTITA` PRIMARY KEY (`id_pezzaPartita`)
);

# ---------------------------------------------------------------------- #
# Add table "MOVIMENTO_PEZZA"                                            #
# ---------------------------------------------------------------------- #

CREATE TABLE `MOVIMENTO_PEZZA` (
    `id_movimentoPezza` INTEGER NOT NULL AUTO_INCREMENT,
    `id_pezza` INTEGER,
    `id_faseLavorazione` INTEGER,
    `dataMovimento` DATE,
    `id_clifor` INTEGER,
    `lunghezzaPezza` DOUBLE,
    `pesoPezza` DOUBLE,
    `id_rigaDocumento` INTEGER,
    CONSTRAINT `PK_MOVIMENTO_PEZZA` PRIMARY KEY (`id_movimentoPezza`)
);

# ---------------------------------------------------------------------- #
# Add table "TELA_PARTITA"                                               #
# ---------------------------------------------------------------------- #

CREATE TABLE `TELA_PARTITA` (
    `id_telaPartita` INTEGER NOT NULL AUTO_INCREMENT,
    `id_tela` INTEGER,
    `id_articoloFilatoColore` INTEGER,
    `flgTramaOrdito` INTEGER,
    `ordine` INTEGER,
    `partita` VARCHAR(40),
    `bagno` VARCHAR(40),
    CONSTRAINT `PK_TELA_PARTITA` PRIMARY KEY (`id_telaPartita`)
);

# ---------------------------------------------------------------------- #
# Add table "LAV_PEZZA"                                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `LAV_PEZZA` (
    `id_lavPezza` INTEGER NOT NULL AUTO_INCREMENT,
    `id_rigaDocumento` INTEGER,
    `tsInserimento` DATETIME,
    `codicePezza` VARCHAR(40),
    `mtPezza` DOUBLE,
    `id_rigaDocumentoBolla` INTEGER,
    `codicePancale` VARCHAR(5),
    `numColpi` INTEGER,
    `id_clifor` INTEGER,
    CONSTRAINT `PK_LAV_PEZZA` PRIMARY KEY (`id_lavPezza`)
);

CREATE UNIQUE INDEX `IDX_LAV_PEZZA_1` ON `LAV_PEZZA` (`codicePezza`,`id_clifor`);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_ARTICOLO_TESSUTO"                                  #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_ARTICOLO_TESSUTO` (
    `id_articoloArticoloTessuto` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articolo` INTEGER,
    `id_articoloVariante` INTEGER,
    `id_articoloTessuto` INTEGER,
    `id_articoloTessutoColore` INTEGER,
    `flgPrincipale` INTEGER,
    `mmATT` INTEGER,
    `bordaturaMm` INTEGER,
    CONSTRAINT `PK_ARTICOLO_ARTICOLO_TESSUTO` PRIMARY KEY (`id_articoloArticoloTessuto`)
);

CREATE INDEX `IDX_ARTICOLO_ARTICOLO_TESSUTO_1` ON `ARTICOLO_ARTICOLO_TESSUTO` (`id_articolo`,`id_articoloTessuto`,`id_articoloTessutoColore`,`id_articoloVariante`);

# ---------------------------------------------------------------------- #
# Add table "NUMERO_TELI_RIGA"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `NUMERO_TELI_RIGA` (
    `id_numeroTeliRiga` INTEGER NOT NULL AUTO_INCREMENT,
    `numTeliRiga` INTEGER,
    `id_rigaDocumentoArticolo` INTEGER,
    `id_rigaDocumentoTessuto` INTEGER,
    `mtTessutoRiga` DOUBLE,
    CONSTRAINT `PK_NUMERO_TELI_RIGA` PRIMARY KEY (`id_numeroTeliRiga`)
);

CREATE UNIQUE INDEX `IDX_NUMERO_TELI_RIGA_1` ON `NUMERO_TELI_RIGA` (`id_rigaDocumentoArticolo`,`id_rigaDocumentoTessuto`);

# ---------------------------------------------------------------------- #
# Add table "PROMOZIONE_USER"                                            #
# ---------------------------------------------------------------------- #

CREATE TABLE `PROMOZIONE_USER` (
    `id_promozioneUser` INTEGER NOT NULL AUTO_INCREMENT,
    `id_promozione` INTEGER,
    `id_users` INTEGER,
    `id_documento` INTEGER,
    CONSTRAINT `PK_PROMOZIONE_USER` PRIMARY KEY (`id_promozioneUser`)
);

# ---------------------------------------------------------------------- #
# Add table "KIT"                                                        #
# ---------------------------------------------------------------------- #

CREATE TABLE `KIT` (
    `id_kit` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articoloSecondario` INTEGER,
    `id_articolo` INTEGER,
    `id_articoloVarianteSecondario` INTEGER,
    `id_articoloVariante` INTEGER,
    `flgEstendiVarianteKit` INTEGER,
    CONSTRAINT `PK_KIT` PRIMARY KEY (`id_kit`)
);

CREATE UNIQUE INDEX `IDX_KIT_1` ON `KIT` (`id_articolo`,`id_articoloSecondario`,`id_articoloVariante`,`id_articoloVarianteSecondario`);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_USATO"                                             #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_USATO` (
    `id_articoloUsato` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articolo` INTEGER,
    `dataDocumento` DATE,
    `numeroDocumento` VARCHAR(40),
    `flgTipoDocumento` INTEGER,
    `importo` DECIMAL(18,4),
    `id_fornitore` INTEGER,
    `id_rigaDocumento` INTEGER,
    `id_cliente` INTEGER,
    `tmstStampa` VARCHAR(40),
    `descrizioneRigaDocumento` VARCHAR(254),
    `codiceAlt` INTEGER,
    CONSTRAINT `PK_ARTICOLO_USATO` PRIMARY KEY (`id_articoloUsato`)
);

# ---------------------------------------------------------------------- #
# Add table "WISHLIST"                                                   #
# ---------------------------------------------------------------------- #

CREATE TABLE `WISHLIST` (
    `id_wishlist` INTEGER NOT NULL AUTO_INCREMENT,
    `id_users` INTEGER,
    `id_articolo` INTEGER,
    `id_articoloVariante` INTEGER,
    `id_articoloTaglia` INTEGER,
    `flgAbilitaAvviso` INTEGER,
    `prezzoWL` DECIMAL(18,4),
    `dataWL` DATE,
    `oraWL` TIME,
    `prezzoUltimoAvviso` DECIMAL(18,4),
    `tmstUltimoAvviso` DATETIME,
    `dispoLevelWL` INTEGER,
    `dispoLevelUltimoAvviso` INTEGER,
    CONSTRAINT `PK_WISHLIST` PRIMARY KEY (`id_wishlist`)
);

# ---------------------------------------------------------------------- #
# Add table "QUOTAZIONE_ARTICOLO"                                        #
# ---------------------------------------------------------------------- #

CREATE TABLE `QUOTAZIONE_ARTICOLO` (
    `id_quotazioneArticolo` INTEGER NOT NULL AUTO_INCREMENT,
    `id_users` INTEGER,
    `id_articolo` INTEGER,
    `id_articoloVariante` INTEGER,
    `id_articoloTaglia` INTEGER,
    `flgAbilitaAvviso` INTEGER,
    `prezzoQA` DECIMAL(18,4),
    `dataQA` DATE,
    `dataFineQA` DATE,
    `tmstUltimoAvviso` DATETIME,
    CONSTRAINT `PK_QUOTAZIONE_ARTICOLO` PRIMARY KEY (`id_quotazioneArticolo`)
);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_CLIENTE"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_CLIENTE` (
    `id_articoloCliente` INTEGER NOT NULL AUTO_INCREMENT,
    `id_clifor` INTEGER,
    `id_articolo` INTEGER,
    `id_articoloVariante` INTEGER,
    `id_tipo` INTEGER(11),
    `indiciTipo` VARCHAR(1000),
    CONSTRAINT `PK_ARTICOLO_CLIENTE` PRIMARY KEY (`id_articoloCliente`)
);

# ---------------------------------------------------------------------- #
# Add table "ARTICOLO_NAZIONE"                                           #
# ---------------------------------------------------------------------- #

CREATE TABLE `ARTICOLO_NAZIONE` (
    `id_articoloNazione` INTEGER NOT NULL AUTO_INCREMENT,
    `id_nazione` CHAR(4),
    `id_articolo` INTEGER,
    `flgPreventivoWwwAN` INTEGER,
    `costoSpedizioneAN` DECIMAL(18,4),
    CONSTRAINT `PK_ARTICOLO_NAZIONE` PRIMARY KEY (`id_articoloNazione`)
);

CREATE UNIQUE INDEX `IDX_ARTICOLO_NAZIONE_1` ON `ARTICOLO_NAZIONE` (`id_nazione`,`id_articolo`);

# ---------------------------------------------------------------------- #
# Add table "AMZ_FEATURED_PRICE"                                         #
# ---------------------------------------------------------------------- #

CREATE TABLE `AMZ_FEATURED_PRICE` (
    `id_amzFeaturedPrice` INTEGER NOT NULL AUTO_INCREMENT,
    `id_articolo` INTEGER,
    `lang` VARCHAR(4),
    `featuredOEPriceAmz` DECIMAL(18,4),
    `competingFOPriceAmz` DECIMAL(18,4),
    `currentFOPriceAmz` DECIMAL(18,4),
    `currentPriceAmz` DECIMAL(18,4),
    `dataPriceAmz` DATE,
    `flgPrezzoCompetitivoAmz` INTEGER,
    `flgPrezzoCompetitivo` INTEGER,
    CONSTRAINT `PK_AMZ_FEATURED_PRICE` PRIMARY KEY (`id_amzFeaturedPrice`)
);

CREATE UNIQUE INDEX `IDX_AMZ_FEATURED_PRICE_1` ON `AMZ_FEATURED_PRICE` (`id_articolo`,`lang`);

# ---------------------------------------------------------------------- #
# Add foreign key constraints                                            #
# ---------------------------------------------------------------------- #

ALTER TABLE `USERS` ADD CONSTRAINT `USER_PROFILE_USERS` 
    FOREIGN KEY (`id_userProfile`) REFERENCES `USER_PROFILE` (`id_userProfile`);

ALTER TABLE `USERS` ADD CONSTRAINT `POSTAZIONE_USERS` 
    FOREIGN KEY (`id_postazione`) REFERENCES `POSTAZIONE` (`id_postazione`);

ALTER TABLE `USERS` ADD CONSTRAINT `CLIFOR_USERS_1` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `ACCESS` ADD CONSTRAINT `ACCESS_ACCESS` 
    FOREIGN KEY (`id_accessHeader`) REFERENCES `ACCESS` (`id_access`);

ALTER TABLE `USER_ACCESS` ADD CONSTRAINT `ACCESS_USER_ACCESS` 
    FOREIGN KEY (`id_access`) REFERENCES `ACCESS` (`id_access`);

ALTER TABLE `USER_ACCESS` ADD CONSTRAINT `USERS_USER_ACCESS` 
    FOREIGN KEY (`id_users`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `USER_ACCESS_GROUP` ADD CONSTRAINT `ACCESS_GROUP_USER_ACCESS_GROUP` 
    FOREIGN KEY (`id_accessGroup`) REFERENCES `ACCESS_GROUP` (`id_accessGroup`);

ALTER TABLE `USER_ACCESS_GROUP` ADD CONSTRAINT `USERS_USER_ACCESS_GROUP` 
    FOREIGN KEY (`id_users`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `ACCESS_GROUP_ACCESS` ADD CONSTRAINT `ACCESS_ACCESS_GROUP_ACCESS` 
    FOREIGN KEY (`id_access`) REFERENCES `ACCESS` (`id_access`);

ALTER TABLE `ACCESS_GROUP_ACCESS` ADD CONSTRAINT `ACCESS_GROUP_ACCESS_GROUP_ACCESS` 
    FOREIGN KEY (`id_accessGroup`) REFERENCES `ACCESS_GROUP` (`id_accessGroup`);

ALTER TABLE `REPARTO` ADD CONSTRAINT `IVA_REPARTO` 
    FOREIGN KEY (`id_iva`) REFERENCES `IVA` (`id_iva`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `MARCA_ARTICOLO` 
    FOREIGN KEY (`id_marca`) REFERENCES `MARCA` (`id_marca`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `TIPO_ARTICOLO` 
    FOREIGN KEY (`id_tipo`) REFERENCES `TIPO` (`id_tipo`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `IVA_ARTICOLO` 
    FOREIGN KEY (`id_iva`) REFERENCES `IVA` (`id_iva`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `TIPO_TAGLIA_ARTICOLO` 
    FOREIGN KEY (`id_tipoTaglia`) REFERENCES `TIPO_TAGLIA` (`id_tipoTaglia`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `ARTICOLO_VARIANTE_ARTICOLO` 
    FOREIGN KEY (`id_articoloVarianteBase`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `TABELLA_TAGLIA_ARTICOLO` 
    FOREIGN KEY (`id_tabellaTaglia`) REFERENCES `TABELLA_TAGLIA` (`id_tabellaTaglia`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `TIPO_ACCESSORIO_ARTICOLO` 
    FOREIGN KEY (`id_tipoAccessorio`) REFERENCES `TIPO_ACCESSORIO` (`id_tipoAccessorio`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `VETRINA_ARTICOLO` 
    FOREIGN KEY (`id_vetrina`) REFERENCES `VETRINA` (`id_vetrina`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `TIPO_ARTICOLO_2` 
    FOREIGN KEY (`id_tipo2`) REFERENCES `TIPO` (`id_tipo`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `CLIFOR_ARTICOLO_conf_default` 
    FOREIGN KEY (`id_confezionistaDefault`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `LISTINO_ARTICOLO_ebay` 
    FOREIGN KEY (`id_listinoEbay`) REFERENCES `LISTINO` (`id_listino`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `CLIFOR_ARTICOLO_forn_costo_nuovo` 
    FOREIGN KEY (`id_fornitoreCostoNuovo`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `STATO_USATO_ARTICOLO` 
    FOREIGN KEY (`id_statoUsato`) REFERENCES `STATO_USATO` (`id_statoUsato`);

ALTER TABLE `ARTICOLO` ADD CONSTRAINT `LISTINO_ARTICOLO_amz` 
    FOREIGN KEY (`id_listinoAmazon`) REFERENCES `LISTINO` (`id_listino`);

ALTER TABLE `CLIFOR` ADD CONSTRAINT `TIPO_PAGAMENTO_CLIFOR` 
    FOREIGN KEY (`id_tipoPagamento`) REFERENCES `TIPO_PAGAMENTO` (`id_tipoPagamento`);

ALTER TABLE `CLIFOR` ADD CONSTRAINT `COMUNE_CLIFOR` 
    FOREIGN KEY (`id_comune`) REFERENCES `COMUNE` (`id_comune`);

ALTER TABLE `CLIFOR` ADD CONSTRAINT `COMUNE_CLIFOR_nasc` 
    FOREIGN KEY (`id_comuneNascita`) REFERENCES `COMUNE` (`id_comune`);

ALTER TABLE `CLIFOR` ADD CONSTRAINT `LISTINO_CLIFOR` 
    FOREIGN KEY (`id_listino`) REFERENCES `LISTINO` (`id_listino`);

ALTER TABLE `CLIFOR` ADD CONSTRAINT `PIANO_CONTI_CLIFOR` 
    FOREIGN KEY (`id_pianoConti`) REFERENCES `PIANO_CONTI` (`id_pianoConti`);

ALTER TABLE `CLIFOR` ADD CONSTRAINT `BANCA_CLIFOR_azienda` 
    FOREIGN KEY (`id_bancaAzienda`) REFERENCES `BANCA` (`id_banca`);

ALTER TABLE `CLIFOR` ADD CONSTRAINT `CLIFOR_CLIFOR_agente` 
    FOREIGN KEY (`id_agente`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `CLIFOR` ADD CONSTRAINT `CLIFOR_CLIFOR_resp_comm` 
    FOREIGN KEY (`id_respCommerciale`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `CLIFOR` ADD CONSTRAINT `OTTOXMILLE_CLIFOR` 
    FOREIGN KEY (`id_ottoxmille`) REFERENCES `OTTOXMILLE` (`id_ottoxmille`);

ALTER TABLE `CARATTERISTICA_ARTICOLO` ADD CONSTRAINT `CARATTERISTICA_CARATTERISTICA_ARTICOLO` 
    FOREIGN KEY (`id_caratteristica`) REFERENCES `CARATTERISTICA` (`id_caratteristica`);

ALTER TABLE `CARATTERISTICA_ARTICOLO` ADD CONSTRAINT `LISTA_CARATTERISTICA_ARTICOLO` 
    FOREIGN KEY (`id_lista`) REFERENCES `LISTA` (`id_lista`);

ALTER TABLE `CARATTERISTICA_ARTICOLO` ADD CONSTRAINT `ARTICOLO_CARATTERISTICA_ARTICOLO` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `LISTA` ADD CONSTRAINT `CARATTERISTICA_LISTA` 
    FOREIGN KEY (`id_caratteristica`) REFERENCES `CARATTERISTICA` (`id_caratteristica`);

ALTER TABLE `TIPO` ADD CONSTRAINT `TIPO_TIPO` 
    FOREIGN KEY (`id_tipoPadre`) REFERENCES `TIPO` (`id_tipo`);

ALTER TABLE `TIPO` ADD CONSTRAINT `REPARTO_TIPO` 
    FOREIGN KEY (`id_reparto`) REFERENCES `REPARTO` (`id_reparto`);

ALTER TABLE `TIPO` ADD CONSTRAINT `TIPO_TAGLIA_TIPO` 
    FOREIGN KEY (`id_tipoTaglia`) REFERENCES `TIPO_TAGLIA` (`id_tipoTaglia`);

ALTER TABLE `TIPO` ADD CONSTRAINT `TIPOLOGIA_ARTICOLO_TIPO` 
    FOREIGN KEY (`id_tipologiaArticolo`) REFERENCES `TIPOLOGIA_ARTICOLO` (`id_tipologiaArticolo`);

ALTER TABLE `TIPO` ADD CONSTRAINT `GOOGLE_CATEGORY_TIPO` 
    FOREIGN KEY (`id_googleCategory`) REFERENCES `GOOGLE_CATEGORY` (`id_googleCategory`);

ALTER TABLE `TIPO` ADD CONSTRAINT `LISTINO_TIPO_ebay` 
    FOREIGN KEY (`id_listinoEbay`) REFERENCES `LISTINO` (`id_listino`);

ALTER TABLE `TIPO` ADD CONSTRAINT `LISTINO_TIPO_amz` 
    FOREIGN KEY (`id_listinoAmazon`) REFERENCES `LISTINO` (`id_listino`);

ALTER TABLE `C_TIPO` ADD CONSTRAINT `TIPO_C_TIPO` 
    FOREIGN KEY (`id_tipo`) REFERENCES `TIPO` (`id_tipo`);

ALTER TABLE `C_TIPO` ADD CONSTRAINT `CARATTERISTICA_C_TIPO` 
    FOREIGN KEY (`id_caratteristica`) REFERENCES `CARATTERISTICA` (`id_caratteristica`);

ALTER TABLE `ACCESSORIO` ADD CONSTRAINT `TIPO_ACCESSORIO_ACCESSORIO` 
    FOREIGN KEY (`id_tipoAccessorio`) REFERENCES `TIPO_ACCESSORIO` (`id_tipoAccessorio`);

ALTER TABLE `ACCESSORIO` ADD CONSTRAINT `ARTICOLO_ACCESSORIO_Assoc` 
    FOREIGN KEY (`id_articoloAssociato`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `ACCESSORIO` ADD CONSTRAINT `ARTICOLO_ACCESSORIO` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `ACCESSORIO` ADD CONSTRAINT `ARTICOLO_VARIANTE_ACCESSORIO_ass` 
    FOREIGN KEY (`id_articoloVarianteAssociato`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `ACCESSORIO` ADD CONSTRAINT `ARTICOLO_VARIANTE_ACCESSORIO` 
    FOREIGN KEY (`id_articoloVariante`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `TIPO_DOCUMENTO_DOCUMENTO` 
    FOREIGN KEY (`id_tipoDocumento`) REFERENCES `TIPO_DOCUMENTO` (`id_tipoDocumento`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `VETTORE_DOCUMENTO` 
    FOREIGN KEY (`id_vettore`) REFERENCES `VETTORE` (`id_vettore`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `TIPO_PAGAMENTO_DOCUMENTO` 
    FOREIGN KEY (`id_tipoPagamento`) REFERENCES `TIPO_PAGAMENTO` (`id_tipoPagamento`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `CLIFOR_DOCUMENTO` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `ASPETTO_DOCUMENTO` 
    FOREIGN KEY (`id_aspetto`) REFERENCES `ASPETTO` (`id_aspetto`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `DOCUMENTO_DOCUMENTO` 
    FOREIGN KEY (`id_documentoFiglio`) REFERENCES `DOCUMENTO` (`id_documento`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `COMUNE_DOCUMENTO` 
    FOREIGN KEY (`id_comuneSped`) REFERENCES `COMUNE` (`id_comune`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `CAUSALE_TRASPORTO_DOCUMENTO` 
    FOREIGN KEY (`id_causaleTrasporto`) REFERENCES `CAUSALE_TRASPORTO` (`id_causaleTrasporto`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `DESTINAZIONE_DIVERSA_DOCUMENTO` 
    FOREIGN KEY (`id_destinazioneDiversa`) REFERENCES `DESTINAZIONE_DIVERSA` (`id_destinazioneDiversa`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `USERS_DOCUMENTO_interv` 
    FOREIGN KEY (`id_usersIntervento`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `USERS_DOCUMENTO_chiusura` 
    FOREIGN KEY (`id_usersChiusura`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `USERS_DOCUMENTO` 
    FOREIGN KEY (`id_users`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `PORTO_DOCUMENTO` 
    FOREIGN KEY (`id_porto`) REFERENCES `PORTO` (`id_porto`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `CONTATORE_DOCUMENTO` 
    FOREIGN KEY (`id_contatore`) REFERENCES `CONTATORE` (`id_contatore`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `CLIFOR_DOCUMENTO_LISTINO` 
    FOREIGN KEY (`id_cliforListino`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `IVA_DOCUMENTO` 
    FOREIGN KEY (`id_ivaDoc`) REFERENCES `IVA` (`id_iva`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `MAG_FISICO_DOCUMENTO_PARTENZA_1` 
    FOREIGN KEY (`id_magFisicoPartenza`) REFERENCES `MAG_FISICO` (`id_magFisico`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `MAG_FISICO_DOCUMENTO_ARRIVO_1` 
    FOREIGN KEY (`id_magFisicoArrivo`) REFERENCES `MAG_FISICO` (`id_magFisico`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `BANCA_DOCUMENTO_ANTICIPO` 
    FOREIGN KEY (`id_bancaAnticipo`) REFERENCES `BANCA` (`id_banca`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `MAG_FISICO_DOCUMENTO_PARTENZA_2` 
    FOREIGN KEY (`id_magFisicoPartenza2`) REFERENCES `MAG_FISICO` (`id_magFisico`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `MAG_FISICO_DOCUMENTO_ARRIVO_2` 
    FOREIGN KEY (`id_magFisicoArrivo2`) REFERENCES `MAG_FISICO` (`id_magFisico`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `ARTICOLO_DOCUMENTO` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `TAGLIA_DOCUMENTO` 
    FOREIGN KEY (`id_taglia`) REFERENCES `TAGLIA` (`id_taglia`);

ALTER TABLE `DOCUMENTO` ADD CONSTRAINT `LAVORAZIONE_DOCUMENTO` 
    FOREIGN KEY (`id_lavorazione`) REFERENCES `LAVORAZIONE` (`id_lavorazione`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `ARTICOLO_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `DOCUMENTO_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_documento`) REFERENCES `DOCUMENTO` (`id_documento`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `IVA_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_iva`) REFERENCES `IVA` (`id_iva`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `ARTICOLO_VARIANTE_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_articoloVariante`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `REPARTO_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_reparto`) REFERENCES `REPARTO` (`id_reparto`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `DOCUMENTOpadre_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_documentoPadre`) REFERENCES `DOCUMENTO` (`id_documento`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `RIGA_DOCUMENTO_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_rigaDocumentoPadre`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `ARTICOLO_TAGLIA_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_articoloTaglia`) REFERENCES `ARTICOLO_TAGLIA` (`id_articoloTaglia`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `CAUSALE_MAGAZZINO_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_causaleMagazzino`) REFERENCES `CAUSALE_MAGAZZINO` (`id_causaleMagazzino`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `CLIFOR_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `MAG_FISICO_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_magFisico`) REFERENCES `MAG_FISICO` (`id_magFisico`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `RIGA_DOCUMENTO_RIGA_DOCUMENTO_MOV` 
    FOREIGN KEY (`id_rigaDocumentoMov`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `RIGA_DOCUMENTO_RIGA_DOCUMENTO_PRELEVATA` 
    FOREIGN KEY (`id_rigaDocumentoPrelevata`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `PEZZA_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_pezza`, `id_articoloTessuto`) REFERENCES `PEZZA` (`id_pezza`,`id_articoloTessuto`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `FASE_LAVORAZIONE_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_faseLavorazione`) REFERENCES `FASE_LAVORAZIONE` (`id_faseLavorazione`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `ARTICOLO_FILATO_COLORE_RITORTO_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_articoloFilatoColoreRitorto`) REFERENCES `ARTICOLO_FILATO_COLORE_RITORTO` (`id_articoloFilatoColoreRitorto`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `ARTICOLO_TESSUTO_COLORE_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_articoloTessutoColore`) REFERENCES `ARTICOLO_TESSUTO_COLORE` (`id_articoloTessutoColore`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `TELAIO_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_telaio`) REFERENCES `TELAIO` (`id_telaio`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `ARTICOLO_FILATO_COLORE_RIGA_DOCUMENTO` 
    FOREIGN KEY (`id_articoloFilatoColore`) REFERENCES `ARTICOLO_FILATO_COLORE` (`id_articoloFilatoColore`);

ALTER TABLE `RIGA_DOCUMENTO` ADD CONSTRAINT `RIGA_DOCUMENTO_RIGA_DOCUMENTO_ARRIVO` 
    FOREIGN KEY (`id_rigaDocumentoTessutoA`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `TIPO_DOCUMENTO` ADD CONSTRAINT `CONTATORE_TIPO_DOCUMENTO` 
    FOREIGN KEY (`id_contatore`) REFERENCES `CONTATORE` (`id_contatore`);

ALTER TABLE `TIPO_DOCUMENTO` ADD CONSTRAINT `TIPO_DOCUMENTO_TIPO_DOCUMENTO` 
    FOREIGN KEY (`id_tipoDocumentoFiglio`) REFERENCES `TIPO_DOCUMENTO` (`id_tipoDocumento`);

ALTER TABLE `TIPO_DOCUMENTO` ADD CONSTRAINT `CAUSALE_CONTABILE_TIPO_DOCUMENTO` 
    FOREIGN KEY (`id_causaleContabile`) REFERENCES `CAUSALE_CONTABILE` (`id_causaleContabile`);

ALTER TABLE `TIPO_DOCUMENTO` ADD CONSTRAINT `CAUSALE_MAGAZZINO_TIPO_DOCUMENTO_1` 
    FOREIGN KEY (`id_causaleMagazzino`) REFERENCES `CAUSALE_MAGAZZINO` (`id_causaleMagazzino`);

ALTER TABLE `TIPO_DOCUMENTO` ADD CONSTRAINT `CAUSALE_MAGAZZINO_TIPO_DOCUMENTO_2` 
    FOREIGN KEY (`id_causaleMagazzino2`) REFERENCES `CAUSALE_MAGAZZINO` (`id_causaleMagazzino`);

ALTER TABLE `TIPO_DOCUMENTO` ADD CONSTRAINT `TIPOLOGIA_DOCUMENTO_TIPO_DOCUMENTO` 
    FOREIGN KEY (`id_tipologiaDocumento`) REFERENCES `TIPOLOGIA_DOCUMENTO` (`id_tipologiaDocumento`);

ALTER TABLE `TIPO_DOCUMENTO` ADD CONSTRAINT `TIPO_STAMPA_DOCUMENTO_TIPO_DOCUMENTO` 
    FOREIGN KEY (`id_tipoStampaDocumento`) REFERENCES `TIPO_STAMPA_DOCUMENTO` (`id_tipoStampaDocumento`);

ALTER TABLE `IVA` ADD CONSTRAINT `PIANO_CONTI_IVA` 
    FOREIGN KEY (`id_pianoConti`) REFERENCES `PIANO_CONTI` (`id_pianoConti`);

ALTER TABLE `IVA` ADD CONSTRAINT `IVA_IVA_std_regime_margine` 
    FOREIGN KEY (`id_ivaStdRM`) REFERENCES `IVA` (`id_iva`);

ALTER TABLE `VETTORE` ADD CONSTRAINT `COMUNE_VETTORE` 
    FOREIGN KEY (`id_comune`) REFERENCES `COMUNE` (`id_comune`);

ALTER TABLE `VETTORE` ADD CONSTRAINT `NAZIONE_VETTORE` 
    FOREIGN KEY (`id_nazione`) REFERENCES `NAZIONE` (`id_nazione`);

ALTER TABLE `CLIFOR_USERS` ADD CONSTRAINT `CLIFOR_CLIFOR_USERS` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `CLIFOR_USERS` ADD CONSTRAINT `USERS_CLIFOR_USERS` 
    FOREIGN KEY (`id_users`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `NAZIONE` ADD CONSTRAINT `IVA_NAZIONE` 
    FOREIGN KEY (`id_iva`) REFERENCES `IVA` (`id_iva`);

ALTER TABLE `COMUNE` ADD CONSTRAINT `REGIONE_COMUNE` 
    FOREIGN KEY (`id_regione`) REFERENCES `REGIONE` (`id_regione`);

ALTER TABLE `COMUNE` ADD CONSTRAINT `ZONA_COMUNE` 
    FOREIGN KEY (`id_zona`) REFERENCES `ZONA` (`id_zona`);

ALTER TABLE `REGIONE` ADD CONSTRAINT `NAZIONE_REGIONE` 
    FOREIGN KEY (`id_nazione`) REFERENCES `NAZIONE` (`id_nazione`);

ALTER TABLE `NEWS` ADD CONSTRAINT `TIPO_NEWS_NEWS` 
    FOREIGN KEY (`id_tipoNews`) REFERENCES `TIPO_NEWS` (`id_tipoNews`);

ALTER TABLE `ALLEGATO_NEWS` ADD CONSTRAINT `NEWS_ALLEGATO_NEWS` 
    FOREIGN KEY (`id_news`) REFERENCES `NEWS` (`id_news`);

ALTER TABLE `TAGLIA` ADD CONSTRAINT `TIPO_TAGLIA_TAGLIA` 
    FOREIGN KEY (`id_tipoTaglia`) REFERENCES `TIPO_TAGLIA` (`id_tipoTaglia`);

ALTER TABLE `ARTICOLO_VARIANTE` ADD CONSTRAINT `ARTICOLO_ARTICOLO_VARIANTE` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `ARTICOLO_VARIANTE` ADD CONSTRAINT `VETRINA_ARTICOLO_VARIANTE` 
    FOREIGN KEY (`id_vetrina`) REFERENCES `VETRINA` (`id_vetrina`);

ALTER TABLE `ARTICOLO_VARIANTE` ADD CONSTRAINT `COLORE_ARTICOLO_VARIANTE` 
    FOREIGN KEY (`id_colore`) REFERENCES `COLORE` (`id_colore`);

ALTER TABLE `ARTICOLO_VARIANTE` ADD CONSTRAINT `STATO_USATO_ARTICOLO_VARIANTE` 
    FOREIGN KEY (`id_statoUsato`) REFERENCES `STATO_USATO` (`id_statoUsato`);

ALTER TABLE `ARTICOLO_FORNITORE` ADD CONSTRAINT `ARTICOLO_ARTICOLO_FORNITORE` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `ARTICOLO_FORNITORE` ADD CONSTRAINT `CLIFOR_ARTICOLO_FORNITORE` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `ARTICOLO_FORNITORE` ADD CONSTRAINT `ARTICOLO_TESSUTO_ARTICOLO_FORNITORE` 
    FOREIGN KEY (`id_articoloTessuto`) REFERENCES `ARTICOLO_TESSUTO` (`id_articoloTessuto`);

ALTER TABLE `ARTICOLO_FORNITORE` ADD CONSTRAINT `ARTICOLO_TESSUTO_COLORE_ARTICOLO_FORNITORE` 
    FOREIGN KEY (`id_articoloTessutoColore`) REFERENCES `ARTICOLO_TESSUTO_COLORE` (`id_articoloTessutoColore`);

ALTER TABLE `ARTICOLO_FORNITORE` ADD CONSTRAINT `ARTICOLO_VARIANTE_ARTICOLO_FORNITORE` 
    FOREIGN KEY (`id_articoloVariante`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `ALLEGATO_ARTICOLO` ADD CONSTRAINT `ARTICOLO_ALLEGATO_ARTICOLO` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `ALLEGATO_ARTICOLO` ADD CONSTRAINT `TIPO_ALLEGATO_ARTICOLO_ALLEGATO_ARTICOLO` 
    FOREIGN KEY (`id_tipoAllegatoArticolo`) REFERENCES `TIPO_ALLEGATO_ARTICOLO` (`id_tipoAllegatoArticolo`);

ALTER TABLE `TABELLA_TAGLIA` ADD CONSTRAINT `TIPO_TAGLIA_TABELLA_TAGLIA` 
    FOREIGN KEY (`id_tipoTaglia`) REFERENCES `TIPO_TAGLIA` (`id_tipoTaglia`);

ALTER TABLE `TAGLIA_MISURE` ADD CONSTRAINT `TABELLA_TAGLIA_TAGLIA_MISURE` 
    FOREIGN KEY (`id_tabellaTaglia`) REFERENCES `TABELLA_TAGLIA` (`id_tabellaTaglia`);

ALTER TABLE `MAG_FISICO` ADD CONSTRAINT `CLIFOR_MAG_FISICO` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `BANNER_STATS` ADD CONSTRAINT `BANNER_BANNER_STATS` 
    FOREIGN KEY (`id_banner`) REFERENCES `BANNER` (`id_banner`);

ALTER TABLE `BANNER` ADD CONSTRAINT `TIPO_BANNER_BANNER` 
    FOREIGN KEY (`id_tipoBanner`) REFERENCES `TIPO_BANNER` (`id_tipoBanner`);

ALTER TABLE `BANNER` ADD CONSTRAINT `CLIFOR_BANNER` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `HELP` ADD CONSTRAINT `HELP_HELP` 
    FOREIGN KEY (`id_helpPadre`) REFERENCES `HELP` (`id_help`);

ALTER TABLE `CAUSALE_MAGAZZINO` ADD CONSTRAINT `MAG_FISICO_CAUSALE_MAGAZZINO_part` 
    FOREIGN KEY (`id_magFisicoPartenza`) REFERENCES `MAG_FISICO` (`id_magFisico`);

ALTER TABLE `CAUSALE_MAGAZZINO` ADD CONSTRAINT `MAG_FISICO_CAUSALE_MAGAZZINO_arr` 
    FOREIGN KEY (`id_magFisicoArrivo`) REFERENCES `MAG_FISICO` (`id_magFisico`);

ALTER TABLE `HELP_REL` ADD CONSTRAINT `HELP_HELP_REL1` 
    FOREIGN KEY (`id_help1`) REFERENCES `HELP` (`id_help`);

ALTER TABLE `HELP_REL` ADD CONSTRAINT `HELP_HELP_REL2` 
    FOREIGN KEY (`id_help`) REFERENCES `HELP` (`id_help`);

ALTER TABLE `DESTINAZIONE_DIVERSA` ADD CONSTRAINT `CLIFOR_DESTINAZIONE_DIVERSA` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `DESTINAZIONE_DIVERSA` ADD CONSTRAINT `COMUNE_DESTINAZIONE_DIVERSA` 
    FOREIGN KEY (`id_comuneDD`) REFERENCES `COMUNE` (`id_comune`);

ALTER TABLE `LISTINO_PERS` ADD CONSTRAINT `ARTICOLO_LISTINO_PERS` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `LISTINO_PERS` ADD CONSTRAINT `CLIFOR_LISTINO_PERS` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `LISTINO_PERS` ADD CONSTRAINT `TIPO_LISTINO_PERS` 
    FOREIGN KEY (`id_tipo`) REFERENCES `TIPO` (`id_tipo`);

ALTER TABLE `POSTAZIONE` ADD CONSTRAINT `REG_CASSA_POSTAZIONE` 
    FOREIGN KEY (`id_regCassa`) REFERENCES `REG_CASSA` (`id_regCassa`);

ALTER TABLE `POSTAZIONE` ADD CONSTRAINT `TIPO_POSTAZIONE_POSTAZIONE` 
    FOREIGN KEY (`id_tipoPostazione`) REFERENCES `TIPO_POSTAZIONE` (`id_tipoPostazione`);

ALTER TABLE `DOC_PREL` ADD CONSTRAINT `TIPO_DOCUMENTO_DOC_PREL_prel` 
    FOREIGN KEY (`id_tipoDocumentoPrel`) REFERENCES `TIPO_DOCUMENTO` (`id_tipoDocumento`);

ALTER TABLE `DOC_PREL` ADD CONSTRAINT `TIPO_DOCUMENTO_DOC_PREL` 
    FOREIGN KEY (`id_tipoDocumento`) REFERENCES `TIPO_DOCUMENTO` (`id_tipoDocumento`);

ALTER TABLE `RIGA_DOCUMENTO_P` ADD CONSTRAINT `RIGA_DOCUMENTO_RIGA_DOCUMENTO_P_PRELEVATA` 
    FOREIGN KEY (`id_rigaDocumentoPrelevata`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `RIGA_DOCUMENTO_P` ADD CONSTRAINT `RIGA_DOCUMENTO_RIGA_DOCUMENTO_P` 
    FOREIGN KEY (`id_rigaDocumento`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `HELP_KEYWORD` ADD CONSTRAINT `HELP_HELP_KEYWORD` 
    FOREIGN KEY (`id_help`) REFERENCES `HELP` (`id_help`);

ALTER TABLE `SPESA` ADD CONSTRAINT `TIPO_SPESA_SPESA` 
    FOREIGN KEY (`id_tipoSpesa`) REFERENCES `TIPO_SPESA` (`id_tipoSpesa`);

ALTER TABLE `SPESA` ADD CONSTRAINT `USERS_SPESA` 
    FOREIGN KEY (`id_users`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `RIVALUTAZIONE` ADD CONSTRAINT `ARTICOLO_RIVALUTAZIONE` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `CODA_MESSAGGI` ADD CONSTRAINT `TEMPLATE_MSG_CODA_MESSAGGI` 
    FOREIGN KEY (`id_templateMsg`) REFERENCES `TEMPLATE_MSG` (`id_templateMsg`);

ALTER TABLE `CODA_MESSAGGI` ADD CONSTRAINT `REMOTE_DEVICE_CODA_MESSAGGI` 
    FOREIGN KEY (`id_remoteDevice`) REFERENCES `REMOTE_DEVICE` (`id_remoteDevice`);

ALTER TABLE `USER_WHITELIST` ADD CONSTRAINT `WHITELIST_USER_WHITELIST` 
    FOREIGN KEY (`id_whitelist`) REFERENCES `WHITELIST` (`id_whitelist`);

ALTER TABLE `USER_WHITELIST` ADD CONSTRAINT `USERS_USER_WHITELIST` 
    FOREIGN KEY (`id_users`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `CONTRATTO` ADD CONSTRAINT `TIPO_CONTRATTO_CONTRATTO` 
    FOREIGN KEY (`id_tipoContratto`) REFERENCES `TIPO_CONTRATTO` (`id_tipoContratto`);

ALTER TABLE `CONTRATTO` ADD CONSTRAINT `CLIFOR_CONTRATTO` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `DOC_FIGLIO_PADRE` ADD CONSTRAINT `DOCUMENTO_DOC_FIGLIO_PADRE_PADRE` 
    FOREIGN KEY (`id_documentoPadre`) REFERENCES `DOCUMENTO` (`id_documento`);

ALTER TABLE `DOC_FIGLIO_PADRE` ADD CONSTRAINT `DOCUMENTO_DOC_FIGLIO_PADRE_figlio` 
    FOREIGN KEY (`id_documentoFiglio`) REFERENCES `DOCUMENTO` (`id_documento`);

ALTER TABLE `LISTINO_SERVIZI_PERS` ADD CONSTRAINT `ARTICOLO_LISTINO_SERVIZI_PERS` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `LISTINO_SERVIZI_PERS` ADD CONSTRAINT `CLIFOR_LISTINO_SERVIZI_PERS` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `LISTINO_SERVIZI_PERS` ADD CONSTRAINT `ASPETTO_LISTINO_SERVIZI_PERS` 
    FOREIGN KEY (`id_aspetto`) REFERENCES `ASPETTO` (`id_aspetto`);

ALTER TABLE `HELP_ALLEGATO` ADD CONSTRAINT `HELP_HELP_ALLEGATO` 
    FOREIGN KEY (`id_help`) REFERENCES `HELP` (`id_help`);

ALTER TABLE `ALLEGATO_CLIFOR` ADD CONSTRAINT `CLIFOR_ALLEGATO_CLIFOR` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `ALLEGATO_CLIFOR` ADD CONSTRAINT `TIPO_ALLEGATO_CLIFOR_ALLEGATO_CLIFOR` 
    FOREIGN KEY (`id_tipoAllegatoClifor`) REFERENCES `TIPO_ALLEGATO_CLIFOR` (`id_tipoAllegatoClifor`);

ALTER TABLE `ALLEGATO_DOCUMENTO` ADD CONSTRAINT `DOCUMENTO_ALLEGATO_DOCUMENTO` 
    FOREIGN KEY (`id_documento`) REFERENCES `DOCUMENTO` (`id_documento`);

ALTER TABLE `ALLEGATO_DOCUMENTO` ADD CONSTRAINT `TIPO_ALLEGATO_DOCUMENTO_ALLEGATO_DOCUMENTO` 
    FOREIGN KEY (`id_tipoAllegatoDocumento`) REFERENCES `TIPO_ALLEGATO_DOCUMENTO` (`id_tipoAllegatoDocumento`);

ALTER TABLE `ALLEGATO_TEMPLATE_MSG` ADD CONSTRAINT `TEMPLATE_MSG_ALLEGATO_TEMPLATE_MSG` 
    FOREIGN KEY (`id_templateMsg`) REFERENCES `TEMPLATE_MSG` (`id_templateMsg`);

ALTER TABLE `ALLEGATO_CODA_MESSAGGI` ADD CONSTRAINT `CODA_MESSAGGI_ALLEGATO_CODA_MESSAGGI` 
    FOREIGN KEY (`id_codaMessaggi`) REFERENCES `CODA_MESSAGGI` (`id_codaMessaggi`);

ALTER TABLE `LISTINO_TIPO` ADD CONSTRAINT `TIPO_LISTINO_TIPO` 
    FOREIGN KEY (`id_tipo`) REFERENCES `TIPO` (`id_tipo`);

ALTER TABLE `LISTINO_TIPO` ADD CONSTRAINT `LISTINO_LISTINO_TIPO` 
    FOREIGN KEY (`id_listino`) REFERENCES `LISTINO` (`id_listino`);

ALTER TABLE `ARTICOLO_TAGLIA` ADD CONSTRAINT `ARTICOLO_ARTICOLO_TAGLIA` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `ARTICOLO_TAGLIA` ADD CONSTRAINT `ARTICOLO_VARIANTE_ARTICOLO_TAGLIA` 
    FOREIGN KEY (`id_articoloVariante`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `ARTICOLO_TAGLIA` ADD CONSTRAINT `TAGLIA_ARTICOLO_TAGLIA` 
    FOREIGN KEY (`id_taglia`) REFERENCES `TAGLIA` (`id_taglia`);

ALTER TABLE `ARTICOLO_COMPONENTE` ADD CONSTRAINT `COMPONENTE_ARTICOLO_COMPONENTE` 
    FOREIGN KEY (`id_componente`) REFERENCES `COMPONENTE` (`id_componente`);

ALTER TABLE `ARTICOLO_COMPONENTE` ADD CONSTRAINT `ARTICOLO_COMPOSIZIONE` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `LISTINO_ARTICOLO` ADD CONSTRAINT `LISTINO_LISTINO_ARTICOLO` 
    FOREIGN KEY (`id_listino`) REFERENCES `LISTINO` (`id_listino`);

ALTER TABLE `LISTINO_ARTICOLO` ADD CONSTRAINT `ARTICOLO_LISTINO_ARTICOLO` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `LISTINO_ARTICOLO` ADD CONSTRAINT `ARTICOLO_VARIANTE_LISTINO_ARTICOLO` 
    FOREIGN KEY (`id_articoloVariante`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `DOCUMENTO_AGENTE` ADD CONSTRAINT `DOCUMENTO_DOCUMENTO_AGENTE` 
    FOREIGN KEY (`id_documento`) REFERENCES `DOCUMENTO` (`id_documento`);

ALTER TABLE `DOCUMENTO_AGENTE` ADD CONSTRAINT `CLIFOR_DOCUMENTO_AGENTE_agente` 
    FOREIGN KEY (`id_cliforDA`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `RIGA_DOCUMENTO_PROGETTISTA` ADD CONSTRAINT `RIGA_DOCUMENTO_RIGA_DOCUMENTO_PROGETTISTA` 
    FOREIGN KEY (`id_rigaDocumento`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `RIGA_DOCUMENTO_PROGETTISTA` ADD CONSTRAINT `CLIFOR_RIGA_DOCUMENTO_PROGETTISTA` 
    FOREIGN KEY (`id_cliforRDA`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `RIGA_DOCUMENTO_P_M` ADD CONSTRAINT `RIGA_DOCUMENTO_RIGA_DOCUMENTO_P_M_PRELEVATA` 
    FOREIGN KEY (`id_rigaDocumentoPrelevata`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `RIGA_DOCUMENTO_P_M` ADD CONSTRAINT `RIGA_DOCUMENTO_RIGA_DOCUMENTO_P_M` 
    FOREIGN KEY (`id_rigaDocumento`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `MOVIMENTO` ADD CONSTRAINT `RIGA_DOCUMENTO_MOVIMENTO` 
    FOREIGN KEY (`id_rigaDocumento`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `MOVIMENTO` ADD CONSTRAINT `ARTICOLO_MOVIMENTO` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `MOVIMENTO` ADD CONSTRAINT `ARTICOLO_VARIANTE_MOVIMENTO` 
    FOREIGN KEY (`id_articoloVariante`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `MOVIMENTO` ADD CONSTRAINT `ARTICOLO_TAGLIA_MOVIMENTO` 
    FOREIGN KEY (`id_articoloTaglia`) REFERENCES `ARTICOLO_TAGLIA` (`id_articoloTaglia`);

ALTER TABLE `MOVIMENTO` ADD CONSTRAINT `MAG_FISICO_MOVIMENTO` 
    FOREIGN KEY (`id_magFisico`) REFERENCES `MAG_FISICO` (`id_magFisico`);

ALTER TABLE `MOVIMENTO` ADD CONSTRAINT `CLIFOR_MOVIMENTO` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `MOVIMENTO` ADD CONSTRAINT `RIGA_DOCUMENTO_P_MOVIMENTO` 
    FOREIGN KEY (`id_rigaDocumentoP`) REFERENCES `RIGA_DOCUMENTO_P` (`id_rigaDocumentoP`);

ALTER TABLE `MOVIMENTO` ADD CONSTRAINT `CAUSALE_MAGAZZINO_MOVIMENTO` 
    FOREIGN KEY (`id_causaleMagazzino`) REFERENCES `CAUSALE_MAGAZZINO` (`id_causaleMagazzino`);

ALTER TABLE `CLIFOR_TIPO_CLIFOR` ADD CONSTRAINT `CLIFOR_CLIFOR_TIPO_CLIFOR` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `CLIFOR_TIPO_CLIFOR` ADD CONSTRAINT `TIPO_CLIFOR_CLIFOR_TIPO_CLIFOR` 
    FOREIGN KEY (`id_tipoClifor`) REFERENCES `TIPO_CLIFOR` (`id_tipoClifor`);

ALTER TABLE `MAIL_NEWSLETTER` ADD CONSTRAINT `TEMPLATE_MSG_MAIL_NEWSLETTER` 
    FOREIGN KEY (`id_templateMsg`) REFERENCES `TEMPLATE_MSG` (`id_templateMsg`);

ALTER TABLE `USER_CLIFOR` ADD CONSTRAINT `USERS_USER_CLIFOR` 
    FOREIGN KEY (`id_users`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `USER_CLIFOR` ADD CONSTRAINT `CLIFOR_USER_CLIFOR` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `NEWS_USERS` ADD CONSTRAINT `NEWS_NEWS_USERS` 
    FOREIGN KEY (`id_news`) REFERENCES `NEWS` (`id_news`);

ALTER TABLE `NEWS_USERS` ADD CONSTRAINT `USERS_NEWS_USERS` 
    FOREIGN KEY (`id_users`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `INCASSO_PAGAMENTO` ADD CONSTRAINT `DOCUMENTO_INCASSO_PAGAMENTO` 
    FOREIGN KEY (`id_documento`) REFERENCES `DOCUMENTO` (`id_documento`);

ALTER TABLE `INCASSO_PAGAMENTO` ADD CONSTRAINT `MOVIMENTO_INCASSO_PAGAMENTO` 
    FOREIGN KEY (`id_movimento`) REFERENCES `MOVIMENTO` (`id_movimento`);

ALTER TABLE `BANCA` ADD CONSTRAINT `PIANO_CONTI_BANCA` 
    FOREIGN KEY (`id_pianoConti`) REFERENCES `PIANO_CONTI` (`id_pianoConti`);

ALTER TABLE `BANCA` ADD CONSTRAINT `ABI_CAB_BANCA` 
    FOREIGN KEY (`id_abiCab`) REFERENCES `ABI_CAB` (`id_abiCab`);

ALTER TABLE `DOCUMENTO_PAGAMENTO` ADD CONSTRAINT `DOCUMENTO_DOCUMENTO_PAGAMENTO` 
    FOREIGN KEY (`id_documento`) REFERENCES `DOCUMENTO` (`id_documento`);

ALTER TABLE `DOCUMENTO_PAGAMENTO` ADD CONSTRAINT `TIPO_PAGAMENTO_DOCUMENTO_PAGAMENTO` 
    FOREIGN KEY (`id_tipoPagamento`) REFERENCES `TIPO_PAGAMENTO` (`id_tipoPagamento`);

ALTER TABLE `SENT_MAIL_ATTACH` ADD CONSTRAINT `SENT_MAIL_SENT_MAIL_ATTACH` 
    FOREIGN KEY (`id_sentMail`) REFERENCES `SENT_MAIL` (`id_sentMail`);

ALTER TABLE `MOV_CONTABILE` ADD CONSTRAINT `CAUSALE_CONTABILE_MOV_CONTABILE` 
    FOREIGN KEY (`id_causaleContabile`) REFERENCES `CAUSALE_CONTABILE` (`id_causaleContabile`);

ALTER TABLE `RIGA_MOV_CONTABILE` ADD CONSTRAINT `MOV_CONTABILE_RIGA_MOV_CONTABILE` 
    FOREIGN KEY (`id_movContabile`) REFERENCES `MOV_CONTABILE` (`id_movContabile`);

ALTER TABLE `RIGA_MOV_CONTABILE` ADD CONSTRAINT `PIANO_CONTI_RIGA_MOV_CONTABILE` 
    FOREIGN KEY (`id_pianoConti`) REFERENCES `PIANO_CONTI` (`id_pianoConti`);

ALTER TABLE `RIGA_MOV_CONTABILE` ADD CONSTRAINT `CLIFOR_RIGA_MOV_CONTABILE` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `RIGA_MOV_CONTABILE` ADD CONSTRAINT `BANCA_RIGA_MOV_CONTABILE` 
    FOREIGN KEY (`id_banca`) REFERENCES `BANCA` (`id_banca`);

ALTER TABLE `RIGA_MOV_CONTABILE` ADD CONSTRAINT `DOCUMENTO_RIGA_MOV_CONTABILE` 
    FOREIGN KEY (`id_documento`) REFERENCES `DOCUMENTO` (`id_documento`);

ALTER TABLE `RIGA_MOV_CONTABILE` ADD CONSTRAINT `IVA_RIGA_MOV_CONTABILE` 
    FOREIGN KEY (`id_iva`) REFERENCES `IVA` (`id_iva`);

ALTER TABLE `RIGA_CAUSALE_CONTABILE` ADD CONSTRAINT `PIANO_CONTI_RIGA_CAUSALE_CONTABILE` 
    FOREIGN KEY (`id_pianoConti`) REFERENCES `PIANO_CONTI` (`id_pianoConti`);

ALTER TABLE `RIGA_CAUSALE_CONTABILE` ADD CONSTRAINT `CAUSALE_CONTABILE_RIGA_CAUSALE_CONTABILE` 
    FOREIGN KEY (`id_causaleContabile`) REFERENCES `CAUSALE_CONTABILE` (`id_causaleContabile`);

ALTER TABLE `DOCUMENTO_SCADENZA` ADD CONSTRAINT `DOCUMENTO_DOCUMENTO_SCADENZA` 
    FOREIGN KEY (`id_documento`) REFERENCES `DOCUMENTO` (`id_documento`);

ALTER TABLE `DOCUMENTO_SCADENZA` ADD CONSTRAINT `DISTINTA_RIBA_DOCUMENTO_SCADENZA` 
    FOREIGN KEY (`id_distintaRiba`) REFERENCES `DISTINTA_RIBA` (`id_distintaRiba`);

ALTER TABLE `DISTINTA_RIBA` ADD CONSTRAINT `BANCA_DISTINTA_RIBA` 
    FOREIGN KEY (`id_banca`) REFERENCES `BANCA` (`id_banca`);

ALTER TABLE `MESE_ESCLUSO` ADD CONSTRAINT `TIPO_PAGAMENTO_MESE_ESCLUSO` 
    FOREIGN KEY (`id_tipoPagamento`) REFERENCES `TIPO_PAGAMENTO` (`id_tipoPagamento`);

ALTER TABLE `ARTICOLO_PROGETTISTA` ADD CONSTRAINT `ARTICOLO_ARTICOLO_PROGETTISTA` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `ARTICOLO_PROGETTISTA` ADD CONSTRAINT `CLIFOR_ARTICOLO_PROGETTISTA` 
    FOREIGN KEY (`id_progettista`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `CONTATTO` ADD CONSTRAINT `CLIFOR_CONTATTO` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `ARTICOLO_ARTICOLO_COMPONENTE` ADD CONSTRAINT `ARTICOLO_COMP` 
    FOREIGN KEY (`id_articoloComponente`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `ARTICOLO_ARTICOLO_COMPONENTE` ADD CONSTRAINT `ARTICOLO_PRINCIPALE` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `PEZZA` ADD CONSTRAINT `TELA_PEZZA` 
    FOREIGN KEY (`id_tela`) REFERENCES `TELA` (`id_tela`);

ALTER TABLE `PEZZA` ADD CONSTRAINT `ARTICOLO_TESSUTO_PEZZA` 
    FOREIGN KEY (`id_articoloTessuto`) REFERENCES `ARTICOLO_TESSUTO` (`id_articoloTessuto`);

ALTER TABLE `PEZZA` ADD CONSTRAINT `FASE_LAVORAZIONE_PEZZA` 
    FOREIGN KEY (`id_faseLavorazione`) REFERENCES `FASE_LAVORAZIONE` (`id_faseLavorazione`);

ALTER TABLE `PEZZA` ADD CONSTRAINT `RIGA_DOCUMENTO_PEZZA` 
    FOREIGN KEY (`id_rigaDocumento`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `ARTICOLO_FILATO_COLORE_RITORTO` ADD CONSTRAINT `COLORE_FILATO_ARTICOLO_FILATO_COLORE_RITORTO_TESTATA` 
    FOREIGN KEY (`id_coloreFilatoTestata`) REFERENCES `COLORE_FILATO` (`id_coloreFilato`);

ALTER TABLE `ARTICOLO_FILATO_COLORE_RITORTO` ADD CONSTRAINT `COLORE_FILATO_ARTICOLO_FILATO_COLORE_RITORTO` 
    FOREIGN KEY (`id_coloreFilato`) REFERENCES `COLORE_FILATO` (`id_coloreFilato`);

ALTER TABLE `ARTICOLO_FILATO_COLORE_RITORTO` ADD CONSTRAINT `ARTICOLO_FILATO_ARTICOLO_FILATO_COLORE_RITORTO_TESTATA` 
    FOREIGN KEY (`id_articoloFilatoTestata`) REFERENCES `ARTICOLO_FILATO` (`id_articoloFilato`);

ALTER TABLE `ARTICOLO_FILATO_COLORE_RITORTO` ADD CONSTRAINT `ARTICOLO_FILATO_ARTICOLO_FILATO_COLORE_RITORTO` 
    FOREIGN KEY (`id_articoloFilato`) REFERENCES `ARTICOLO_FILATO` (`id_articoloFilato`);

ALTER TABLE `ARTICOLO_FILATO_COLORE` ADD CONSTRAINT `COLORE_FILATO_ARTICOLO_FILATO_COLORE` 
    FOREIGN KEY (`id_coloreFilato`) REFERENCES `COLORE_FILATO` (`id_coloreFilato`);

ALTER TABLE `ARTICOLO_FILATO_COLORE` ADD CONSTRAINT `ARTICOLO_FILATO_ARTICOLO_FILATO_COLORE` 
    FOREIGN KEY (`id_articoloFilato`) REFERENCES `ARTICOLO_FILATO` (`id_articoloFilato`);

ALTER TABLE `ARTICOLO_FILATO` ADD CONSTRAINT `IVA_ARTICOLO_FILATO` 
    FOREIGN KEY (`id_iva`) REFERENCES `IVA` (`id_iva`);

ALTER TABLE `ARTICOLO_FILATO` ADD CONSTRAINT `TIPO_ARTICOLO_FILATO` 
    FOREIGN KEY (`id_tipo`) REFERENCES `TIPO` (`id_tipo`);

ALTER TABLE `ARTICOLO_FILATO_FORNITORE` ADD CONSTRAINT `ARTICOLO_FILATO_ARTICOLO_FILATO_FORNITORE` 
    FOREIGN KEY (`id_articoloFilato`) REFERENCES `ARTICOLO_FILATO` (`id_articoloFilato`);

ALTER TABLE `ARTICOLO_FILATO_FORNITORE` ADD CONSTRAINT `CLIFOR_ARTICOLO_FILATO_FORNITORE` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `COLORE_FILATO_FORNITORE` ADD CONSTRAINT `COLORE_FILATO_COLORE_FILATO_FORNITORE` 
    FOREIGN KEY (`id_coloreFilato`) REFERENCES `COLORE_FILATO` (`id_coloreFilato`);

ALTER TABLE `COLORE_FILATO_FORNITORE` ADD CONSTRAINT `CLIFOR_COLORE_FILATO_FORNITORE` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `ARTICOLO_FILATO_COMPONENTE` ADD CONSTRAINT `COMPONENTE_ARTICOLO_FILATO_COMPONENTE` 
    FOREIGN KEY (`id_componente`) REFERENCES `COMPONENTE` (`id_componente`);

ALTER TABLE `ARTICOLO_FILATO_COMPONENTE` ADD CONSTRAINT `ARTICOLO_FILATO_ARTICOLO_FILATO_COMPONENTE` 
    FOREIGN KEY (`id_articoloFilato`) REFERENCES `ARTICOLO_FILATO` (`id_articoloFilato`);

ALTER TABLE `ARTICOLO_TESSUTO` ADD CONSTRAINT `ARTICOLO_TESSUTO_ARTICOLO_TESSUTO_padre` 
    FOREIGN KEY (`id_articoloTessutoPadre`) REFERENCES `ARTICOLO_TESSUTO` (`id_articoloTessuto`);

ALTER TABLE `ARTICOLO_TESSUTO` ADD CONSTRAINT `RINCORSO_ARTICOLO_TESSUTO` 
    FOREIGN KEY (`id_rincorso`) REFERENCES `RINCORSO` (`id_rincorso`);

ALTER TABLE `ARTICOLO_TESSUTO` ADD CONSTRAINT `ARMATURA_ARTICOLO_TESSUTO` 
    FOREIGN KEY (`id_armatura`) REFERENCES `ARMATURA` (`id_armatura`);

ALTER TABLE `ARTICOLO_TESSUTO` ADD CONSTRAINT `IVA_ARTICOLO_TESSUTO` 
    FOREIGN KEY (`id_iva`) REFERENCES `IVA` (`id_iva`);

ALTER TABLE `ARTICOLO_TESSUTO` ADD CONSTRAINT `STAGIONE_ARTICOLO_TESSUTO` 
    FOREIGN KEY (`id_stagione`) REFERENCES `STAGIONE` (`id_stagione`);

ALTER TABLE `ARTICOLO_TESSUTO` ADD CONSTRAINT `TIPO_ARTICOLO_TESSUTO` 
    FOREIGN KEY (`id_tipo`) REFERENCES `TIPO` (`id_tipo`);

ALTER TABLE `ARTICOLO_TESSUTO_FILATO` ADD CONSTRAINT `ARTICOLO_TESSUTO_ARTICOLO_TESSUTO_FILATO` 
    FOREIGN KEY (`id_articoloTessuto`) REFERENCES `ARTICOLO_TESSUTO` (`id_articoloTessuto`);

ALTER TABLE `ARTICOLO_TESSUTO_FILATO` ADD CONSTRAINT `ARTICOLO_FILATO_COLORE_ARTICOLO_TESSUTO_FILATO` 
    FOREIGN KEY (`id_articoloFilatoColore`) REFERENCES `ARTICOLO_FILATO_COLORE` (`id_articoloFilatoColore`);

ALTER TABLE `ARTICOLO_TESSUTO_ACCOPPIATO` ADD CONSTRAINT `ARTICOLO_TESSUTO_ARTICOLO_TESSUTO_ACCOPPIATO_COMPONENTE` 
    FOREIGN KEY (`id_articoloTessutoComponente`) REFERENCES `ARTICOLO_TESSUTO` (`id_articoloTessuto`);

ALTER TABLE `ARTICOLO_TESSUTO_ACCOPPIATO` ADD CONSTRAINT `ARTICOLO_TESSUTO_ARTICOLO_TESSUTO_ACCOPPIATO` 
    FOREIGN KEY (`id_articoloTessuto`) REFERENCES `ARTICOLO_TESSUTO` (`id_articoloTessuto`);

ALTER TABLE `ARTICOLO_TESSUTO_COMPONENTE` ADD CONSTRAINT `COMPONENTE_ARTICOLO_TESSUTO_COMPONENTE` 
    FOREIGN KEY (`id_componente`) REFERENCES `COMPONENTE` (`id_componente`);

ALTER TABLE `ARTICOLO_TESSUTO_COMPONENTE` ADD CONSTRAINT `ARTICOLO_TESSUTO_ARTICOLO_TESSUTO_COMPONENTE` 
    FOREIGN KEY (`id_articoloTessuto`) REFERENCES `ARTICOLO_TESSUTO` (`id_articoloTessuto`);

ALTER TABLE `ARMATURA_DETTAGLIO` ADD CONSTRAINT `ARMATURA_ARMATURA_DETTAGLIO` 
    FOREIGN KEY (`id_armatura`) REFERENCES `ARMATURA` (`id_armatura`);

ALTER TABLE `TELA` ADD CONSTRAINT `ARTICOLO_TESSUTO_TELA` 
    FOREIGN KEY (`id_articoloTessuto`) REFERENCES `ARTICOLO_TESSUTO` (`id_articoloTessuto`);

ALTER TABLE `TELA` ADD CONSTRAINT `RIGA_DOCUMENTO_TELA` 
    FOREIGN KEY (`id_rigaDocumento`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `TELA` ADD CONSTRAINT `CLIFOR_TELA_TESSITURA` 
    FOREIGN KEY (`id_cliforTessitura`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `TELA` ADD CONSTRAINT `CLIFOR_TELA_ORDITURA` 
    FOREIGN KEY (`id_cliforOrditura`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `ARTICOLO_TESSUTO_LAVORAZIONE` ADD CONSTRAINT `ARTICOLO_TESSUTO_ARTICOLO_TESSUTO_LAVORAZIONE` 
    FOREIGN KEY (`id_articoloTessuto`) REFERENCES `ARTICOLO_TESSUTO` (`id_articoloTessuto`);

ALTER TABLE `ARTICOLO_TESSUTO_LAVORAZIONE` ADD CONSTRAINT `LAVORAZIONE_ARTICOLO_TESSUTO_LAVORAZIONE` 
    FOREIGN KEY (`id_lavorazione`) REFERENCES `LAVORAZIONE` (`id_lavorazione`);

ALTER TABLE `LAVORAZIONE` ADD CONSTRAINT `TIPO_LAVORAZIONE_LAVORAZIONE` 
    FOREIGN KEY (`id_tipoLavorazione`) REFERENCES `TIPO_LAVORAZIONE` (`id_tipoLavorazione`);

ALTER TABLE `CLIFOR_LAVORAZIONE` ADD CONSTRAINT `LAVORAZIONE_CLIFOR_LAVORAZIONE` 
    FOREIGN KEY (`id_lavorazione`) REFERENCES `LAVORAZIONE` (`id_lavorazione`);

ALTER TABLE `CLIFOR_LAVORAZIONE` ADD CONSTRAINT `CLIFOR_CLIFOR_LAVORAZIONE` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `MOVIMENTO_FILATO` ADD CONSTRAINT `CONFEZIONE_MOVIMENTO_FILATO` 
    FOREIGN KEY (`id_confezione`) REFERENCES `CONFEZIONE` (`id_confezione`);

ALTER TABLE `PEZZA_PARTITA` ADD CONSTRAINT `PEZZA_PEZZA_PARTITA` 
    FOREIGN KEY (`id_pezza`) REFERENCES `PEZZA` (`id_pezza`);

ALTER TABLE `PEZZA_PARTITA` ADD CONSTRAINT `ARTICOLO_FILATO_COLORE_PEZZA_PARTITA` 
    FOREIGN KEY (`id_articoloFilatoColore`) REFERENCES `ARTICOLO_FILATO_COLORE` (`id_articoloFilatoColore`);

ALTER TABLE `MOVIMENTO_PEZZA` ADD CONSTRAINT `PEZZA_MOVIMENTO_PEZZA` 
    FOREIGN KEY (`id_pezza`) REFERENCES `PEZZA` (`id_pezza`);

ALTER TABLE `MOVIMENTO_PEZZA` ADD CONSTRAINT `FASE_LAVORAZIONE_MOVIMENTO_PEZZA` 
    FOREIGN KEY (`id_faseLavorazione`) REFERENCES `FASE_LAVORAZIONE` (`id_faseLavorazione`);

ALTER TABLE `MOVIMENTO_PEZZA` ADD CONSTRAINT `CLIFOR_MOVIMENTO_PEZZA` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `MOVIMENTO_PEZZA` ADD CONSTRAINT `RIGA_DOCUMENTO_MOVIMENTO_PEZZA` 
    FOREIGN KEY (`id_rigaDocumento`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `TELA_PARTITA` ADD CONSTRAINT `TELA_TELA_PARTITA` 
    FOREIGN KEY (`id_tela`) REFERENCES `TELA` (`id_tela`);

ALTER TABLE `TELA_PARTITA` ADD CONSTRAINT `ARTICOLO_FILATO_COLORE_TELA_PARTITA` 
    FOREIGN KEY (`id_articoloFilatoColore`) REFERENCES `ARTICOLO_FILATO_COLORE` (`id_articoloFilatoColore`);

ALTER TABLE `TABLE_DESC` ADD CONSTRAINT `ACCESS_TABLE_DESC` 
    FOREIGN KEY (`id_access`) REFERENCES `ACCESS` (`id_access`);

ALTER TABLE `LAV_PEZZA` ADD CONSTRAINT `RIGA_DOCUMENTO_LAV_PEZZA_disposizione` 
    FOREIGN KEY (`id_rigaDocumento`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `LAV_PEZZA` ADD CONSTRAINT `RIGA_DOCUMENTO_LAV_PEZZA_bolla` 
    FOREIGN KEY (`id_rigaDocumentoBolla`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `LAV_PEZZA` ADD CONSTRAINT `CLIFOR_LAV_PEZZA` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `ARTICOLO_ARTICOLO_TESSUTO` ADD CONSTRAINT `ARTICOLO_ARTICOLO_ARTICOLO_TESSUTO` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `ARTICOLO_ARTICOLO_TESSUTO` ADD CONSTRAINT `ARTICOLO_TESSUTO_ARTICOLO_ARTICOLO_TESSUTO` 
    FOREIGN KEY (`id_articoloTessuto`) REFERENCES `ARTICOLO_TESSUTO` (`id_articoloTessuto`);

ALTER TABLE `ARTICOLO_ARTICOLO_TESSUTO` ADD CONSTRAINT `ARTICOLO_VARIANTE_ARTICOLO_ARTICOLO_TESSUTO` 
    FOREIGN KEY (`id_articoloVariante`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `ARTICOLO_ARTICOLO_TESSUTO` ADD CONSTRAINT `ARTICOLO_TESSUTO_COLORE_ARTICOLO_ARTICOLO_TESSUTO` 
    FOREIGN KEY (`id_articoloTessutoColore`) REFERENCES `ARTICOLO_TESSUTO_COLORE` (`id_articoloTessutoColore`);

ALTER TABLE `TIPOLOGIA_DOCUMENTO_TIPO_STAMPA` ADD CONSTRAINT `TIPOLOGIA_DOCUMENTO_TIPOLOGIA_DOCUMENTO_TIPO_STAMPA` 
    FOREIGN KEY (`id_tipologiaDocumento`) REFERENCES `TIPOLOGIA_DOCUMENTO` (`id_tipologiaDocumento`);

ALTER TABLE `TIPOLOGIA_DOCUMENTO_TIPO_STAMPA` ADD CONSTRAINT `TIPO_STAMPA_DOCUMENTO_TIPOLOGIA_DOCUMENTO_TIPO_STAMPA` 
    FOREIGN KEY (`id_tipoStampaDocumento`) REFERENCES `TIPO_STAMPA_DOCUMENTO` (`id_tipoStampaDocumento`);

ALTER TABLE `ARTICOLO_TESSUTO_COLORE` ADD CONSTRAINT `COLORE_ARTICOLO_TESSUTO_COLORE` 
    FOREIGN KEY (`id_colore`) REFERENCES `COLORE` (`id_colore`);

ALTER TABLE `ARTICOLO_TESSUTO_COLORE` ADD CONSTRAINT `ARTICOLO_TESSUTO_ARTICOLO_TESSUTO_COLORE` 
    FOREIGN KEY (`id_articoloTessuto`) REFERENCES `ARTICOLO_TESSUTO` (`id_articoloTessuto`);

ALTER TABLE `NUMERO_TELI_RIGA` ADD CONSTRAINT `RIGA_DOCUMENTO_NUMERO_TELI_RIGA_articolo` 
    FOREIGN KEY (`id_rigaDocumentoArticolo`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `NUMERO_TELI_RIGA` ADD CONSTRAINT `RIGA_DOCUMENTO_NUMERO_TELI_RIGA_tessuto` 
    FOREIGN KEY (`id_rigaDocumentoTessuto`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `PROMOZIONE_USER` ADD CONSTRAINT `PROMOZIONE_PROMOZIONE_USER` 
    FOREIGN KEY (`id_promozione`) REFERENCES `PROMOZIONE` (`id_promozione`);

ALTER TABLE `PROMOZIONE_USER` ADD CONSTRAINT `USERS_PROMOZIONE_USER` 
    FOREIGN KEY (`id_users`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `PROMOZIONE_USER` ADD CONSTRAINT `DOCUMENTO_PROMOZIONE_USER` 
    FOREIGN KEY (`id_documento`) REFERENCES `DOCUMENTO` (`id_documento`);

ALTER TABLE `KIT` ADD CONSTRAINT `ARTICOLO_KIT_PRIMARIO` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `KIT` ADD CONSTRAINT `ARTICOLO_KIT_SECONDARIO` 
    FOREIGN KEY (`id_articoloSecondario`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `KIT` ADD CONSTRAINT `ARTICOLO_VARIANTE_KIT_PRIMARIO` 
    FOREIGN KEY (`id_articoloVariante`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `KIT` ADD CONSTRAINT `ARTICOLO_VARIANTE_KIT_SECONDARIO` 
    FOREIGN KEY (`id_articoloVarianteSecondario`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `ARTICOLO_USATO` ADD CONSTRAINT `ARTICOLO_ARTICOLO_USATO` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `ARTICOLO_USATO` ADD CONSTRAINT `CLIFOR_ARTICOLO_USATO_fornitore` 
    FOREIGN KEY (`id_fornitore`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `ARTICOLO_USATO` ADD CONSTRAINT `CLIFOR_ARTICOLO_USATO_cliente` 
    FOREIGN KEY (`id_cliente`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `ARTICOLO_USATO` ADD CONSTRAINT `RIGA_DOCUMENTO_ARTICOLO_USATO` 
    FOREIGN KEY (`id_rigaDocumento`) REFERENCES `RIGA_DOCUMENTO` (`id_rigaDocumento`);

ALTER TABLE `ATTIVITA` ADD CONSTRAINT `COMUNE_ATTIVITA` 
    FOREIGN KEY (`id_comuneAttivita`) REFERENCES `COMUNE` (`id_comune`);

ALTER TABLE `ATTIVITA` ADD CONSTRAINT `TIPO_ATTIVITA_ATTIVITA` 
    FOREIGN KEY (`id_tipoAttivita`) REFERENCES `TIPO_ATTIVITA` (`id_tipoAttivita`);

ALTER TABLE `ATTIVITA` ADD CONSTRAINT `VETTORE_ATTIVITA` 
    FOREIGN KEY (`id_vettore`) REFERENCES `VETTORE` (`id_vettore`);

ALTER TABLE `ATTIVITA` ADD CONSTRAINT `COMUNE_ATTIVITA_sede` 
    FOREIGN KEY (`id_comuneSede`) REFERENCES `COMUNE` (`id_comune`);

ALTER TABLE `ATTIVITA` ADD CONSTRAINT `LISTINO_ATTIVITA_EBAY` 
    FOREIGN KEY (`id_listinoEbay`) REFERENCES `LISTINO` (`id_listino`);

ALTER TABLE `ATTIVITA` ADD CONSTRAINT `LISTINO_ATTIVITA_amz` 
    FOREIGN KEY (`id_listinoAmz`) REFERENCES `LISTINO` (`id_listino`);

ALTER TABLE `ABBONAMENTO` ADD CONSTRAINT `ATTIVITA_ABBONAMENTO` 
    FOREIGN KEY (`id_attivita`) REFERENCES `ATTIVITA` (`id_attivita`);

ALTER TABLE `ATTIVITA_TIPO_PAGAMENTO` ADD CONSTRAINT `ATTIVITA_ATTIVITA_TIPO_PAGAMENTO` 
    FOREIGN KEY (`id_attivita`) REFERENCES `ATTIVITA` (`id_attivita`);

ALTER TABLE `ATTIVITA_TIPO_PAGAMENTO` ADD CONSTRAINT `TIPO_PAGAMENTO_ATTIVITA_TIPO_PAGAMENTO` 
    FOREIGN KEY (`id_tipoPagamento`) REFERENCES `TIPO_PAGAMENTO` (`id_tipoPagamento`);

ALTER TABLE `WISHLIST` ADD CONSTRAINT `ARTICOLO_WISHLIST` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `WISHLIST` ADD CONSTRAINT `ARTICOLO_TAGLIA_WISHLIST` 
    FOREIGN KEY (`id_articoloTaglia`) REFERENCES `ARTICOLO_TAGLIA` (`id_articoloTaglia`);

ALTER TABLE `WISHLIST` ADD CONSTRAINT `ARTICOLO_VARIANTE_WISHLIST` 
    FOREIGN KEY (`id_articoloVariante`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `WISHLIST` ADD CONSTRAINT `USERS_WISHLIST` 
    FOREIGN KEY (`id_users`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `QUOTAZIONE_ARTICOLO` ADD CONSTRAINT `USERS_QUOTAZIONE_ARTICOLO` 
    FOREIGN KEY (`id_users`) REFERENCES `USERS` (`id_users`);

ALTER TABLE `QUOTAZIONE_ARTICOLO` ADD CONSTRAINT `ARTICOLO_QUOTAZIONE_ARTICOLO` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `QUOTAZIONE_ARTICOLO` ADD CONSTRAINT `ARTICOLO_VARIANTE_QUOTAZIONE_ARTICOLO` 
    FOREIGN KEY (`id_articoloVariante`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `QUOTAZIONE_ARTICOLO` ADD CONSTRAINT `ARTICOLO_TAGLIA_QUOTAZIONE_ARTICOLO` 
    FOREIGN KEY (`id_articoloTaglia`) REFERENCES `ARTICOLO_TAGLIA` (`id_articoloTaglia`);

ALTER TABLE `ARTICOLO_CLIENTE` ADD CONSTRAINT `ARTICOLO_ARTICOLO_CLIENTE` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `ARTICOLO_CLIENTE` ADD CONSTRAINT `ARTICOLO_VARIANTE_ARTICOLO_CLIENTE` 
    FOREIGN KEY (`id_articoloVariante`) REFERENCES `ARTICOLO_VARIANTE` (`id_articoloVariante`);

ALTER TABLE `ARTICOLO_CLIENTE` ADD CONSTRAINT `TIPO_ARTICOLO_CLIENTE` 
    FOREIGN KEY (`id_tipo`) REFERENCES `TIPO` (`id_tipo`);

ALTER TABLE `ARTICOLO_CLIENTE` ADD CONSTRAINT `CLIFOR_ARTICOLO_CLIENTE` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `ARTICOLO_NAZIONE` ADD CONSTRAINT `NAZIONE_ARTICOLO_NAZIONE` 
    FOREIGN KEY (`id_nazione`) REFERENCES `NAZIONE` (`id_nazione`);

ALTER TABLE `ARTICOLO_NAZIONE` ADD CONSTRAINT `ARTICOLO_ARTICOLO_NAZIONE` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `CLIFOR_TIPO_PAGAMENTO` ADD CONSTRAINT `CLIFOR_CLIFOR_TIPO_PAGAMENTO` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `CLIFOR_TIPO_PAGAMENTO` ADD CONSTRAINT `TIPO_PAGAMENTO_CLIFOR_TIPO_PAGAMENTO` 
    FOREIGN KEY (`id_tipoPagamento`) REFERENCES `TIPO_PAGAMENTO` (`id_tipoPagamento`);

ALTER TABLE `WWW_AUTOMATOR` ADD CONSTRAINT `TIPO_WWW_AUTOMATOR` 
    FOREIGN KEY (`id_tipo`) REFERENCES `TIPO` (`id_tipo`);

ALTER TABLE `TIPO_DOCUMENTO_LAVORAZIONE` ADD CONSTRAINT `LAVORAZIONE_TIPO_DOCUMENTO_LAVORAZIONE` 
    FOREIGN KEY (`id_lavorazione`) REFERENCES `LAVORAZIONE` (`id_lavorazione`);

ALTER TABLE `TIPO_DOCUMENTO_LAVORAZIONE` ADD CONSTRAINT `TIPO_DOCUMENTO_TIPO_DOCUMENTO_LAVORAZIONE` 
    FOREIGN KEY (`id_tipoDocumento`) REFERENCES `TIPO_DOCUMENTO` (`id_tipoDocumento`);

ALTER TABLE `AMZ_FEATURED_PRICE` ADD CONSTRAINT `ARTICOLO_AMZ_FEATURED_PRICE` 
    FOREIGN KEY (`id_articolo`) REFERENCES `ARTICOLO` (`id_articolo`);

ALTER TABLE `FOTO` ADD CONSTRAINT `CLIFOR_FOTO` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `FOTO_FACE` ADD CONSTRAINT `FOTO_FOTO_FACE` 
    FOREIGN KEY (`id_foto`) REFERENCES `FOTO` (`id_foto`);

ALTER TABLE `PERSONA_CARICO` ADD CONSTRAINT `CLIFOR_PERSONA_CARICO` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `PERSONA_CARICO` ADD CONSTRAINT `TIPO_PERSONA_CARICO_PERSONA_CARICO` 
    FOREIGN KEY (`id_tipoPersonaCarico`) REFERENCES `TIPO_PERSONA_CARICO` (`id_tipoPersonaCarico`);

ALTER TABLE `FACE_RECOG` ADD CONSTRAINT `FOTO_FACE_FACE_RECOG_1` 
    FOREIGN KEY (`id_fotoFace1`) REFERENCES `FOTO_FACE` (`id_fotoFace`);

ALTER TABLE `FACE_RECOG` ADD CONSTRAINT `FOTO_FACE_FACE_RECOG_2` 
    FOREIGN KEY (`id_fotoFace2`) REFERENCES `FOTO_FACE` (`id_fotoFace`);
    
    # ---------------------------------------------------------------------- #
# Script generated with: DeZign for Databases 11.1.0                     #
# Target DBMS:           MySQL 5                                         #
# Project file:          abliaDbComuni3.dez                              #
# Project name:          DB COMUNI - ABLIA                               #
# Author:                Andrea Colzi                                    #
# Script type:           Alter database script                           #
# Created on:            2023-07-07 10:19                                #
# ---------------------------------------------------------------------- #


# ---------------------------------------------------------------------- #
# Drop foreign key constraints                                           #
# ---------------------------------------------------------------------- #

ALTER TABLE `FOTO` DROP FOREIGN KEY `CLIFOR_FOTO`;

ALTER TABLE `FACE_RECOG` DROP FOREIGN KEY `FOTO_FACE_FACE_RECOG_1`;

ALTER TABLE `FACE_RECOG` DROP FOREIGN KEY `FOTO_FACE_FACE_RECOG_2`;

ALTER TABLE `FOTO_FACE` DROP FOREIGN KEY `FOTO_FOTO_FACE`;

# ---------------------------------------------------------------------- #
# Alter table "FOTO"                                                     #
# ---------------------------------------------------------------------- #

ALTER TABLE `FOTO` CHANGE `id_clifor` `id_evento` INTEGER;

# ---------------------------------------------------------------------- #
# Alter table "FACE_RECOG"                                               #
# ---------------------------------------------------------------------- #

ALTER TABLE `FACE_RECOG` ADD COLUMN `confidenceLBPH` DOUBLE;

ALTER TABLE `FACE_RECOG` ADD COLUMN `confidenceEigen` DOUBLE;

ALTER TABLE `FACE_RECOG` ADD COLUMN `confidenceFish` DOUBLE;

# ---------------------------------------------------------------------- #
# Add table "EVENTO"                                                     #
# ---------------------------------------------------------------------- #

CREATE TABLE `EVENTO` (
    `id_evento` INTEGER NOT NULL AUTO_INCREMENT,
    `id_clifor` INTEGER,
    `descrizione` VARCHAR(254),
    `dataGara` DATE,
    `codiceEventoCliente` VARCHAR(40),
    CONSTRAINT `PK_EVENTO` PRIMARY KEY (`id_evento`)
);

CREATE INDEX `IDX_EVENTO_1` ON `EVENTO` (`codiceEventoCliente`);

# ---------------------------------------------------------------------- #
# Add foreign key constraints                                            #
# ---------------------------------------------------------------------- #

ALTER TABLE `FOTO` ADD CONSTRAINT `EVENTO_FOTO` 
    FOREIGN KEY (`id_evento`) REFERENCES `EVENTO` (`id_evento`);

ALTER TABLE `FACE_RECOG` ADD CONSTRAINT `FOTO_FACE_FACE_RECOG_1` 
    FOREIGN KEY (`id_fotoFace1`) REFERENCES `FOTO_FACE` (`id_fotoFace`);

ALTER TABLE `FACE_RECOG` ADD CONSTRAINT `FOTO_FACE_FACE_RECOG_2` 
    FOREIGN KEY (`id_fotoFace2`) REFERENCES `FOTO_FACE` (`id_fotoFace`);

ALTER TABLE `EVENTO` ADD CONSTRAINT `CLIFOR_EVENTO` 
    FOREIGN KEY (`id_clifor`) REFERENCES `CLIFOR` (`id_clifor`);

ALTER TABLE `FOTO_FACE` ADD CONSTRAINT `FOTO_FOTO_FACE` 
    FOREIGN KEY (`id_foto`) REFERENCES `FOTO` (`id_foto`);




###################################################################
#insert into PARM (codice) values ('DB_VERSION'); 
UPDATE PARM SET testo='Abl_40_329_01_100523', tipoParm='VERSIONE' where codice='DB_VERSION';
#insert into PARM (codice) values ('DB_VERSION_DBCOM'); 
UPDATE PARM SET testo='DBCom.331 facerecog', tipoParm='VERSIONE' where codice='DB_VERSION_DBCOM';
#####################################################################