-- Script généré par WINDEV le 07/09/2026 11:22:44
-- Tables de l'analyse BD_ZI.wda
-- pour MySQL

-- Création de la table absence
CREATE TABLE `absence` (
    `IDabsence` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `date` DATE NOT NULL,
    `type` VARCHAR(50) NOT NULL,
    `IDemploye` BIGINT );
CREATE INDEX `WDIDX_absence_IDemploye` ON `absence` (`IDemploye`);

-- Création de la table achat
CREATE TABLE `achat` (
    `IDachat` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `type` VARCHAR(50) NOT NULL,
    `net_a_payer` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `versement` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `reste_a_payer` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDutilisateur` BIGINT ,
    `IDfournisseur` BIGINT );
CREATE INDEX `WDIDX_achat_numero` ON `achat` (`numero`);
CREATE INDEX `WDIDX_achat_IDutilisateur` ON `achat` (`IDutilisateur`);
CREATE INDEX `WDIDX_achat_IDfournisseur` ON `achat` (`IDfournisseur`);

-- Création de la table article
CREATE TABLE `article` (
    `IDarticle` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `type` VARCHAR(50) NOT NULL,
    `reference` VARCHAR(50) NOT NULL,
    `libelle` VARCHAR(50) NOT NULL,
    `etat_metrage` VARCHAR(50) NOT NULL,
    `pa` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `pv_detail` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `qte_grossiste` REAL NOT NULL DEFAULT 0,
    `pv_grossiste` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `conditionnement` VARCHAR(50) NOT NULL,
    `id_mp` VARCHAR(50) NOT NULL,
    `etat_liaison` VARCHAR(50) NOT NULL,
    `gestion_lot` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_article_reference` ON `article` (`reference`);

-- Création de la table avance_client
CREATE TABLE `avance` (
    `IDavance` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `montant` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDutilisateur` BIGINT ,
    `IDclient` BIGINT ,
    `note` VARCHAR(50) NOT NULL,
    `heure` TIME NOT NULL,
    `etat` VARCHAR(50) NOT NULL,
    `caisse` INTEGER NOT NULL DEFAULT 0,
    `mode_reglement` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_avance_client_numero` ON `avance` (`numero`);
CREATE INDEX `WDIDX_avance_client_IDutilisateur` ON `avance` (`IDutilisateur`);
CREATE INDEX `WDIDX_avance_client_IDclient` ON `avance` (`IDclient`);

-- Création de la table avance_fournisseur
CREATE TABLE `avance_fournisseur` (
    `IDavance_fournisseur` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `date` DATE NOT NULL,
    `montant` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDfournisseur` BIGINT ,
    `IDutilisateur` BIGINT ,
    `heure` TIME NOT NULL,
    `note` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_avance_fournisseur_IDfournisseur` ON `avance_fournisseur` (`IDfournisseur`);
CREATE INDEX `WDIDX_avance_fournisseur_IDutilisateur` ON `avance_fournisseur` (`IDutilisateur`);

-- Création de la table avoir
CREATE TABLE `avoir` (
    `IDavoir` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `etat` VARCHAR(50) NOT NULL,
    `IDclient` BIGINT ,
    `IDutilisateur` BIGINT ,
    `heure` TIME NOT NULL,
    `nom_client` VARCHAR(50) NOT NULL,
    `adresse_client` VARCHAR(50) NOT NULL,
    `telephone_client` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_avoir_numero` ON `avoir` (`numero`);
CREATE INDEX `WDIDX_avoir_IDclient` ON `avoir` (`IDclient`);
CREATE INDEX `WDIDX_avoir_IDutilisateur` ON `avoir` (`IDutilisateur`);

-- Création de la table bascule
CREATE TABLE `bascule` (
    `IDbascule` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `nom_chauffeur` VARCHAR(50) NOT NULL,
    `type_vehicule` VARCHAR(50) NOT NULL,
    `immatriculation` VARCHAR(50) NOT NULL,
    `telephone_chauffeur` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `date_entree` DATE NOT NULL,
    `heure_entree` TIME NOT NULL,
    `heure` TIME NOT NULL,
    `date_sortie` DATE NOT NULL,
    `heure_sortie` TIME NOT NULL,
    `IDutilisateur` BIGINT ,
    `etat` VARCHAR(50) NOT NULL,
    `poids_brut` INTEGER NOT NULL DEFAULT 0,
    `poids_tare` INTEGER NOT NULL DEFAULT 0,
    `poids_net` INTEGER NOT NULL DEFAULT 0,
    `type` VARCHAR(50) NOT NULL,
    `poids_virtuel` INTEGER NOT NULL DEFAULT 0);
CREATE INDEX `WDIDX_bascule_IDutilisateur` ON `bascule` (`IDutilisateur`);

-- Création de la table caisse
CREATE TABLE `caisse` (
    `IDcaisse` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `nature` VARCHAR(50) NOT NULL,
    `recette` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `depense` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `date` DATE NOT NULL,
    `IDutilisateur` BIGINT ,
    `id_reglement_client` VARCHAR(50) NOT NULL,
    `caisse` INTEGER NOT NULL DEFAULT 0);
CREATE INDEX `WDIDX_caisse_IDutilisateur` ON `caisse` (`IDutilisateur`);
CREATE INDEX `WDIDX_caisse_id_reglement_client` ON `caisse` (`id_reglement_client`);

-- Création de la table carte
CREATE TABLE `carte` (
    `numero` VARCHAR(50) NOT NULL,
    `etat` VARCHAR(50) NOT NULL,
    `IDcarte` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `note` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_carte_numero` ON `carte` (`numero`);

-- Création de la table client
CREATE TABLE `client` (
    `IDclient` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero` VARCHAR(50) NOT NULL,
    `adresse` VARCHAR(50) NOT NULL,
    `telephone` VARCHAR(50) NOT NULL,
    `regime` VARCHAR(50) NOT NULL,
    `ifu` VARCHAR(50) NOT NULL,
    `rccm` VARCHAR(50) NOT NULL,
    `credit` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `avance` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `etat_plafond` VARCHAR(50) NOT NULL,
    `montant_plafond` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `raison_sociale` VARCHAR(50) NOT NULL,
    `whatsapp` VARCHAR(50) NOT NULL,
    `boite_postale` VARCHAR(50) NOT NULL,
    `id_user` INTEGER NOT NULL DEFAULT 0);
CREATE INDEX `WDIDX_client_numero` ON `client` (`numero`);

-- Création de la table commande
CREATE TABLE `commande` (
    `IDcommande` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero_commande` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `statut` VARCHAR(50) NOT NULL,
    `commentaire` VARCHAR(255) NOT NULL,
    `IDFourn` BIGINT ,
    `IDutilisateur` BIGINT );
CREATE INDEX `WDIDX_commande_IDFourn` ON `commande` (`IDFourn`);
CREATE INDEX `WDIDX_commande_IDutilisateur` ON `commande` (`IDutilisateur`);

-- Création de la table compte
CREATE TABLE `compte` (
    `IDcompte` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `intitule` VARCHAR(50) NOT NULL,
    `solde_Initial` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `SoldeActuel` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `etat` VARCHAR(50) NOT NULL,
    `type` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_compte_intitule` ON `compte` (`intitule`);

-- Création de la table compteur
CREATE TABLE `compteur` (
    `IDcompteur` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `annee` VARCHAR(50) NOT NULL,
    `achat` INTEGER NOT NULL DEFAULT 0,
    `vente` INTEGER NOT NULL DEFAULT 0,
    `client` INTEGER NOT NULL DEFAULT 0,
    `fournisseur` INTEGER NOT NULL DEFAULT 0,
    `devis` INTEGER NOT NULL DEFAULT 0,
    `mouvement` INTEGER NOT NULL DEFAULT 0,
    `normalise` INTEGER NOT NULL DEFAULT 0,
    `reglement_client` INTEGER NOT NULL DEFAULT 0,
    `reglement_fournisseur` INTEGER NOT NULL DEFAULT 0,
    `avance` INTEGER NOT NULL DEFAULT 0,
    `avoir` INTEGER NOT NULL DEFAULT 0,
    `sortie` INTEGER NOT NULL DEFAULT 0,
    `fact_retour` INTEGER NOT NULL DEFAULT 0);
CREATE INDEX `WDIDX_compteur_annee` ON `compteur` (`annee`);

-- Création de la table connexion
CREATE TABLE `connexion` (
    `IDconnexion` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `date` DATE NOT NULL,
    `heure` TIME NOT NULL,
    `libelle` VARCHAR(50) NOT NULL,
    `adresse_ip` VARCHAR(50) NOT NULL,
    `IDutilisateur` BIGINT );
CREATE INDEX `WDIDX_connexion_IDutilisateur` ON `connexion` (`IDutilisateur`);

-- Création de la table Departement
CREATE TABLE `Departement` (
    `IDDepartement` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `intitule` VARCHAR(50) NOT NULL,
    `description` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_Departement_intitule` ON `Departement` (`intitule`);

-- Création de la table depense
CREATE TABLE `depense` (
    `IDdepense` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `date` DATE NOT NULL,
    `nature` VARCHAR(50) NOT NULL,
    `montant` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDutilisateur` BIGINT ,
    `heure` TIME NOT NULL,
    `caisse` INTEGER NOT NULL DEFAULT 0,
    `beneficiaire` VARCHAR(50) NOT NULL,
    `etat` VARCHAR(50) NOT NULL,
    `mode_reglement` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_depense_IDutilisateur` ON `depense` (`IDutilisateur`);

-- Création de la table depot
CREATE TABLE `depot` (
    `IDdepot` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `intitule` VARCHAR(50) NOT NULL,
    `adresse` VARCHAR(50) NOT NULL,
    `responsable` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_depot_intitule` ON `depot` (`intitule`);

-- Création de la table devis
CREATE TABLE `devis` (
    `IDdevis` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `total` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `tva` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `bic` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `ttc` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDclient` BIGINT ,
    `IDutilisateur` BIGINT ,
    `raison_sociale` VARCHAR(50) NOT NULL,
    `adresse` VARCHAR(50) NOT NULL,
    `telephone` VARCHAR(50) NOT NULL,
    `regime` VARCHAR(50) NOT NULL,
    `ifu` VARCHAR(50) NOT NULL,
    `rccm` VARCHAR(50) NOT NULL,
    `boite_postale` VARCHAR(50) NOT NULL,
    `whatsapp` VARCHAR(50) NOT NULL,
    `heure` TIME NOT NULL);
CREATE INDEX `WDIDX_devis_numero` ON `devis` (`numero`);
CREATE INDEX `WDIDX_devis_IDclient` ON `devis` (`IDclient`);
CREATE INDEX `WDIDX_devis_IDutilisateur` ON `devis` (`IDutilisateur`);

-- Création de la table document
CREATE TABLE `document` (
    `IDdocument` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `date` DATE NOT NULL,
    `reference` VARCHAR(50) NOT NULL,
    `doc` LONGBLOB NOT NULL,
    `IDtype_doc` BIGINT ,
    `IDutilisateur` BIGINT ,
    `heure` TIME NOT NULL);
CREATE INDEX `WDIDX_document_reference` ON `document` (`reference`);
CREATE INDEX `WDIDX_document_IDtype_doc` ON `document` (`IDtype_doc`);
CREATE INDEX `WDIDX_document_IDutilisateur` ON `document` (`IDutilisateur`);

-- Création de la table employe
CREATE TABLE `employe` (
    `IDemploye` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `cnib` VARCHAR(50) NOT NULL,
    `nom` VARCHAR(50) NOT NULL,
    `prenom` VARCHAR(50) NOT NULL,
    `date_naissance` DATE NOT NULL,
    `telephone` VARCHAR(50) NOT NULL,
    `IDDepartement` BIGINT ,
    `etat` VARCHAR(50) NOT NULL,
    `IDcarte` BIGINT ,
    `presence` VARCHAR(50) NOT NULL,
    `presence_jour` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_employe_cnib` ON `employe` (`cnib`);
CREATE INDEX `WDIDX_employe_nom` ON `employe` (`nom`);
CREATE INDEX `WDIDX_employe_IDDepartement` ON `employe` (`IDDepartement`);
CREATE INDEX `WDIDX_employe_IDcarte` ON `employe` (`IDcarte`);

-- Création de la table exercice
CREATE TABLE `exercice` (
    `IDexercice` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `intitule` VARCHAR(50) NOT NULL,
    `date_debut` DATE NOT NULL,
    `date_fin` DATE NOT NULL,
    `IDutilisateur` BIGINT ,
    `etat` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_exercice_intitule` ON `exercice` (`intitule`);
CREATE INDEX `WDIDX_exercice_IDutilisateur` ON `exercice` (`IDutilisateur`);

-- Création de la table facture_retour
CREATE TABLE `facture_retour` (
    `IDfacture_retour` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `heure` TIME NOT NULL,
    `net_a_payer` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `reference_vente` VARCHAR(50) NOT NULL,
    `IDutilisateur` BIGINT );
CREATE INDEX `WDIDX_facture_retour_numero` ON `facture_retour` (`numero`);
CREATE INDEX `WDIDX_facture_retour_IDutilisateur` ON `facture_retour` (`IDutilisateur`);

-- Création de la table Fourn
CREATE TABLE `Fourn` (
    `IDFourn` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `nom` VARCHAR(50) NOT NULL,
    `contact` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_Fourn_nom` ON `Fourn` (`nom`);

-- Création de la table fournisseur
CREATE TABLE `fournisseur` (
    `IDfournisseur` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `raison_sociale` VARCHAR(50) NOT NULL,
    `adresse` VARCHAR(50) NOT NULL,
    `telephone` VARCHAR(50) NOT NULL,
    `numero` VARCHAR(50) NOT NULL,
    `avoir` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `avance` NUMERIC(24,6) NOT NULL DEFAULT 0);
CREATE INDEX `WDIDX_fournisseur_raison_sociale` ON `fournisseur` (`raison_sociale`);
CREATE INDEX `WDIDX_fournisseur_numero` ON `fournisseur` (`numero`);

-- Création de la table groupe_utilisateur
CREATE TABLE `groupe_utilisateur` (
    `IDgroupe_utilisateur` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `Nom_du_groupe` VARCHAR(50) NOT NULL);

-- Création de la table horaire
CREATE TABLE `horaire` (
    `IDhoraire` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `jour` VARCHAR(50) NOT NULL,
    `heure_debut` TIME NOT NULL,
    `heure_fin` TIME NOT NULL,
    `IDDepartement` BIGINT ,
    `pause_debut` TIME NOT NULL,
    `pause_fin` TIME NOT NULL);
CREATE INDEX `WDIDX_horaire_IDDepartement` ON `horaire` (`IDDepartement`);

-- Création de la table inventaire
CREATE TABLE `inventaire` (
    `IDinventaire` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `date` DATE NOT NULL,
    `heure` TIME NOT NULL,
    `valeur_reel` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `vakeur_virtuel` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `intitule` VARCHAR(50) NOT NULL);

-- Création de la table journalCompte
CREATE TABLE `journalCompte` (
    `IDjournalCompte` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `date` DATE NOT NULL,
    `heure` TIME NOT NULL,
    `nature` VARCHAR(255) NOT NULL,
    `recette` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `depense` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `type` VARCHAR(50) NOT NULL,
    `idType` BIGINT NOT NULL DEFAULT 0,
    `caisse` BIGINT NOT NULL DEFAULT 0,
    `mode_reglement` VARCHAR(50) NOT NULL,
    `IDcompte` BIGINT );
CREATE INDEX `WDIDX_journalCompte_IDcompte` ON `journalCompte` (`IDcompte`);

-- Création de la table ligne_achat
CREATE TABLE `ligne_achat` (
    `IDligne_achat` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `qte` REAL NOT NULL DEFAULT 0,
    `pu` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `sous_total` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDachat` BIGINT ,
    `IDarticle` BIGINT );
CREATE INDEX `WDIDX_ligne_achat_IDachat` ON `ligne_achat` (`IDachat`);
CREATE INDEX `WDIDX_ligne_achat_IDarticle` ON `ligne_achat` (`IDarticle`);

-- Création de la table ligne_avoir
CREATE TABLE `ligne_avoir` (
    `IDligne_avoir` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `qte` REAL NOT NULL DEFAULT 0,
    `IDavoir` BIGINT ,
    `IDarticle` BIGINT ,
    `libelle` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_ligne_avoir_IDavoir` ON `ligne_avoir` (`IDavoir`);
CREATE INDEX `WDIDX_ligne_avoir_IDarticle` ON `ligne_avoir` (`IDarticle`);

-- Création de la table ligne_depot
CREATE TABLE `ligne_depot` (
    `IDligne_depot` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `stock` REAL NOT NULL DEFAULT 0,
    `IDdepot` BIGINT ,
    `IDarticle` BIGINT );
CREATE INDEX `WDIDX_ligne_depot_IDdepot` ON `ligne_depot` (`IDdepot`);
CREATE INDEX `WDIDX_ligne_depot_IDarticle` ON `ligne_depot` (`IDarticle`);

-- Création de la table ligne_devis
CREATE TABLE `ligne_devis` (
    `IDligne_devis` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `qte` REAL NOT NULL DEFAULT 0,
    `metrage` REAL NOT NULL DEFAULT 0,
    `qte_total` REAL NOT NULL DEFAULT 0,
    `pu` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `sous_total` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDdevis` BIGINT ,
    `IDarticle` BIGINT );
CREATE INDEX `WDIDX_ligne_devis_IDdevis` ON `ligne_devis` (`IDdevis`);
CREATE INDEX `WDIDX_ligne_devis_IDarticle` ON `ligne_devis` (`IDarticle`);

-- Création de la table ligne_facture_retour
CREATE TABLE `ligne_facture_retour` (
    `IDligne_facture_retour` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `qte` REAL NOT NULL DEFAULT 0,
    `metrage` REAL NOT NULL DEFAULT 0,
    `qte_total` REAL NOT NULL DEFAULT 0,
    `pu` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `sous_total` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDfacture_retour` BIGINT ,
    `IDarticle` BIGINT );
CREATE INDEX `WDIDX_ligne_facture_retour_IDfacture_retour` ON `ligne_facture_retour` (`IDfacture_retour`);
CREATE INDEX `WDIDX_ligne_facture_retour_IDarticle` ON `ligne_facture_retour` (`IDarticle`);

-- Création de la table ligne_inventaire
CREATE TABLE `ligne_inventaire` (
    `IDligne_inventaire` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `stock_virtuel` REAL NOT NULL DEFAULT 0,
    `stock_reel` REAL NOT NULL DEFAULT 0,
    `vakeur_virtuel` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `valeur_reel` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDarticle` BIGINT ,
    `IDinventaire` BIGINT ,
    `prix` NUMERIC(24,6) NOT NULL DEFAULT 0);
CREATE INDEX `WDIDX_ligne_inventaire_IDarticle` ON `ligne_inventaire` (`IDarticle`);
CREATE INDEX `WDIDX_ligne_inventaire_IDinventaire` ON `ligne_inventaire` (`IDinventaire`);

-- Création de la table ligne_mouvement
CREATE TABLE `ligne_mouvement` (
    `IDligne_mouvement` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `qte` REAL NOT NULL DEFAULT 0,
    `IDmouvement` BIGINT ,
    `IDarticle` BIGINT ,
    `stock_initial` REAL NOT NULL DEFAULT 0,
    `qte_entree` REAL NOT NULL DEFAULT 0,
    `qte_sortie` REAL NOT NULL DEFAULT 0,
    `stock_final` REAL NOT NULL DEFAULT 0,
    `metrage` REAL NOT NULL DEFAULT 0,
    `lot` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_ligne_mouvement_IDmouvement` ON `ligne_mouvement` (`IDmouvement`);
CREATE INDEX `WDIDX_ligne_mouvement_IDarticle` ON `ligne_mouvement` (`IDarticle`);

-- Création de la table ligne_normalise
CREATE TABLE `ligne_normalise` (
    `IDligne_normalise` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `qte` REAL NOT NULL DEFAULT 0,
    `metrage` REAL NOT NULL DEFAULT 0,
    `qte_total` REAL NOT NULL DEFAULT 0,
    `pu` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `sous_total` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDnormalise` BIGINT ,
    `IDarticle` BIGINT );
CREATE INDEX `WDIDX_ligne_normalise_IDnormalise` ON `ligne_normalise` (`IDnormalise`);
CREATE INDEX `WDIDX_ligne_normalise_IDarticle` ON `ligne_normalise` (`IDarticle`);

-- Création de la table ligne_sortie
CREATE TABLE `ligne_sortie` (
    `IDligne_sortie` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `qte` REAL NOT NULL DEFAULT 0,
    `IDarticle` BIGINT ,
    `IDsortie` BIGINT ,
    `libelle` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_ligne_sortie_IDarticle` ON `ligne_sortie` (`IDarticle`);
CREATE INDEX `WDIDX_ligne_sortie_IDsortie` ON `ligne_sortie` (`IDsortie`);

-- Création de la table ligne_vente
CREATE TABLE `ligne_vente` (
    `IDligne_vente` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `qte` REAL NOT NULL DEFAULT 0,
    `metrage` REAL NOT NULL DEFAULT 0,
    `qte_total` REAL NOT NULL DEFAULT 0,
    `pu` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `sous_total` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDvente` BIGINT ,
    `IDarticle` BIGINT ,
    `lot` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_ligne_vente_IDvente` ON `ligne_vente` (`IDvente`);
CREATE INDEX `WDIDX_ligne_vente_IDarticle` ON `ligne_vente` (`IDarticle`);

-- Création de la table LigneCommandeFour
CREATE TABLE `LigneCommandeFour` (
    `IDLigneCommandeFour` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `quantite` REAL NOT NULL DEFAULT 0,
    `quantite_receptionne` REAL NOT NULL DEFAULT 0,
    `IDproduit` BIGINT ,
    `IDcommande` BIGINT ,
    `commentaire` VARCHAR(255) NOT NULL);
CREATE INDEX `WDIDX_LigneCommandeFour_IDproduit` ON `LigneCommandeFour` (`IDproduit`);
CREATE INDEX `WDIDX_LigneCommandeFour_IDcommande` ON `LigneCommandeFour` (`IDcommande`);

-- Création de la table LigneReception
CREATE TABLE `LigneReception` (
    `IDLigneReception` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `quantite` REAL NOT NULL DEFAULT 0,
    `IDproduit` BIGINT ,
    `IDreception` BIGINT ,
    `commentaire` VARCHAR(255) NOT NULL);
CREATE INDEX `WDIDX_LigneReception_IDproduit` ON `LigneReception` (`IDproduit`);
CREATE INDEX `WDIDX_LigneReception_IDreception` ON `LigneReception` (`IDreception`);

-- Création de la table LigneReglement
CREATE TABLE `LigneReglement` (
    `IDLigneReglement` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `montant` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDvente` BIGINT ,
    `IDreglement_client` BIGINT );
CREATE INDEX `WDIDX_LigneReglement_IDvente` ON `LigneReglement` (`IDvente`);
CREATE INDEX `WDIDX_LigneReglement_IDreglement_client` ON `LigneReglement` (`IDreglement_client`);

-- Création de la table LigneReglementFournisseur
CREATE TABLE `LigneReglementFournisseur` (
    `IDLigneReglementFournisseur` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `montant` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDreglement_fournisseur` BIGINT ,
    `IDachat` BIGINT );
CREATE INDEX `WDIDX_LigneReglementFournisseur_IDreglement_fournisseur` ON `LigneReglementFournisseur` (`IDreglement_fournisseur`);
CREATE INDEX `WDIDX_LigneReglementFournisseur_IDachat` ON `LigneReglementFournisseur` (`IDachat`);

-- Création de la table lot
CREATE TABLE `lot` (
    `IDlot` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `qte` REAL NOT NULL DEFAULT 0,
    `IDarticle` BIGINT ,
    `IDdepot` BIGINT ,
    `numero` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_lot_IDarticle` ON `lot` (`IDarticle`);
CREATE INDEX `WDIDX_lot_IDdepot` ON `lot` (`IDdepot`);
CREATE INDEX `WDIDX_lot_numero` ON `lot` (`numero`);

-- Création de la table mouvement
CREATE TABLE `mouvement` (
    `IDmouvement` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero` VARCHAR(50) NOT NULL,
    `type` VARCHAR(50) NOT NULL,
    `type_mouv` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `decription` VARCHAR(50) NOT NULL,
    `IDdepot` BIGINT ,
    `IDutilisateur` BIGINT ,
    `num_vente` VARCHAR(50) NOT NULL,
    `etat` VARCHAR(50) NOT NULL,
    `nom_client` VARCHAR(50) NOT NULL,
    `heure` TIME NOT NULL);
CREATE INDEX `WDIDX_mouvement_numero` ON `mouvement` (`numero`);
CREATE INDEX `WDIDX_mouvement_IDdepot` ON `mouvement` (`IDdepot`);
CREATE INDEX `WDIDX_mouvement_IDutilisateur` ON `mouvement` (`IDutilisateur`);

-- Création de la table normalise
CREATE TABLE `normalise` (
    `IDnormalise` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `total` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `tva` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `bic` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `ttc` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDutilisateur` BIGINT ,
    `IDclient` BIGINT ,
    `raison_sociale` VARCHAR(50) NOT NULL,
    `adresse` VARCHAR(50) NOT NULL,
    `telephone` VARCHAR(50) NOT NULL,
    `regime` VARCHAR(50) NOT NULL,
    `ifu` VARCHAR(50) NOT NULL,
    `rccm` VARCHAR(50) NOT NULL,
    `boite_postale` VARCHAR(50) NOT NULL,
    `heure` TIME NOT NULL,
    `paiement` VARCHAR(50) NOT NULL,
    `aleatoire` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_normalise_numero` ON `normalise` (`numero`);
CREATE INDEX `WDIDX_normalise_IDutilisateur` ON `normalise` (`IDutilisateur`);
CREATE INDEX `WDIDX_normalise_IDclient` ON `normalise` (`IDclient`);
CREATE INDEX `WDIDX_normalise_aleatoire` ON `normalise` (`aleatoire`);

-- Création de la table presence
CREATE TABLE `presence` (
    `IDpresence` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `date` DATE NOT NULL,
    `heure_arrivee` TIME NOT NULL,
    `heure_depart` TIME NOT NULL,
    `IDemploye` BIGINT ,
    `pause_debut` TIME NOT NULL,
    `pause_fin` TIME NOT NULL);
CREATE INDEX `WDIDX_presence_IDemploye` ON `presence` (`IDemploye`);

-- Création de la table produit
CREATE TABLE `produit` (
    `IDproduit` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `reference` VARCHAR(50) NOT NULL,
    `designation` VARCHAR(50) NOT NULL,
    `conditionnement` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_produit_reference` ON `produit` (`reference`);

-- Création de la table reception
CREATE TABLE `reception` (
    `IDreception` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `date` DATE NOT NULL,
    `bon_livraison` VARCHAR(50) NOT NULL,
    `qualite` TINYINT NOT NULL DEFAULT 0,
    `commentaire` VARCHAR(255) NOT NULL,
    `IDcommande` BIGINT ,
    `IDutilisateur` BIGINT );
CREATE INDEX `WDIDX_reception_IDcommande` ON `reception` (`IDcommande`);
CREATE INDEX `WDIDX_reception_IDutilisateur` ON `reception` (`IDutilisateur`);

-- Création de la table reglement_client
CREATE TABLE `reglement_client` (
    `IDreglement_client` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `montant` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `description` VARCHAR(50) NOT NULL,
    `etat` VARCHAR(50) NOT NULL,
    `IDclient` BIGINT ,
    `IDvente` BIGINT ,
    `IDutilisateur` BIGINT ,
    `heure` TIME NOT NULL,
    `mode_reglement` VARCHAR(50) NOT NULL,
    `caisse` INTEGER NOT NULL DEFAULT 0);
CREATE INDEX `WDIDX_reglement_client_numero` ON `reglement_client` (`numero`);
CREATE INDEX `WDIDX_reglement_client_IDclient` ON `reglement_client` (`IDclient`);
CREATE INDEX `WDIDX_reglement_client_IDvente` ON `reglement_client` (`IDvente`);
CREATE INDEX `WDIDX_reglement_client_IDutilisateur` ON `reglement_client` (`IDutilisateur`);

-- Création de la table reglement_fournisseur
CREATE TABLE `reglement_fournisseur` (
    `IDreglement_fournisseur` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `montant` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `description` VARCHAR(50) NOT NULL,
    `IDfournisseur` BIGINT ,
    `IDachat` BIGINT ,
    `IDutilisateur` BIGINT ,
    `heure` TIME NOT NULL);
CREATE INDEX `WDIDX_reglement_fournisseur_numero` ON `reglement_fournisseur` (`numero`);
CREATE INDEX `WDIDX_reglement_fournisseur_IDfournisseur` ON `reglement_fournisseur` (`IDfournisseur`);
CREATE INDEX `WDIDX_reglement_fournisseur_IDachat` ON `reglement_fournisseur` (`IDachat`);
CREATE INDEX `WDIDX_reglement_fournisseur_IDutilisateur` ON `reglement_fournisseur` (`IDutilisateur`);

-- Création de la table retard
CREATE TABLE `retard` (
    `IDretard` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `date` DATE NOT NULL,
    `heure_arrivee` TIME NOT NULL,
    `IDemploye` BIGINT );
CREATE INDEX `WDIDX_retard_IDemploye` ON `retard` (`IDemploye`);

-- Création de la table roles
CREATE TABLE `roles` (
    `IDroles` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `parametre` VARCHAR(50) NOT NULL,
    `info_societe` VARCHAR(50) NOT NULL,
    `import_excel` VARCHAR(50) NOT NULL,
    `configuration_serveur` VARCHAR(50) NOT NULL,
    `compte_utilisateur` VARCHAR(50) NOT NULL,
    `gestion_connexion` VARCHAR(50) NOT NULL,
    `compte_fournisseur` VARCHAR(50) NOT NULL,
    `compte_client` VARCHAR(50) NOT NULL,
    `nouveau_client` VARCHAR(50) NOT NULL,
    `modifier_client` VARCHAR(50) NOT NULL,
    `impression_credit_client` VARCHAR(50) NOT NULL,
    `impression_avance_client` VARCHAR(50) NOT NULL,
    `historique_client` VARCHAR(50) NOT NULL,
    `gestion_achat` VARCHAR(50) NOT NULL,
    `gestion_devis` VARCHAR(50) NOT NULL,
    `gestion_vente` VARCHAR(50) NOT NULL,
    `nouvelle_vente` VARCHAR(50) NOT NULL,
    `modifier_vente` VARCHAR(50) NOT NULL,
    `impression_vente` VARCHAR(50) NOT NULL,
    `gestion_normalise` VARCHAR(50) NOT NULL,
    `gestion_article` VARCHAR(50) NOT NULL,
    `gestion_depot` VARCHAR(50) NOT NULL,
    `gestion_mouvement` VARCHAR(50) NOT NULL,
    `nouveau_mouvement` VARCHAR(50) NOT NULL,
    `impression_mouvement` VARCHAR(50) NOT NULL,
    `gestion_avoir` VARCHAR(50) NOT NULL,
    `gestion_sortie` VARCHAR(50) NOT NULL,
    `gestion_avance_client` VARCHAR(50) NOT NULL,
    `nouvelle_avance_client` VARCHAR(50) NOT NULL,
    `gestion_reglement_client` VARCHAR(50) NOT NULL,
    `nouveau_reglement_client` VARCHAR(50) NOT NULL,
    `gestion_reglement_fournisseur` VARCHAR(50) NOT NULL,
    `gestion_depense` VARCHAR(50) NOT NULL,
    `gestion_caisse` VARCHAR(50) NOT NULL,
    `tableau_board` VARCHAR(50) NOT NULL,
    `IDgroupe_utilisateur` BIGINT ,
    `statistiques` VARCHAR(50) NOT NULL,
    `gestion_employe` VARCHAR(50) NOT NULL,
    `gestion_pont_bascule` VARCHAR(50) NOT NULL,
    `gestion_archives` VARCHAR(50) NOT NULL,
    `whatsapp` VARCHAR(50) NOT NULL,
    `envoi_message` VARCHAR(50) NOT NULL,
    `nouveau_devis` VARCHAR(50) NOT NULL,
    `nouvelle_normalisee` VARCHAR(50) NOT NULL,
    `livraison_effectuee` VARCHAR(50) NOT NULL,
    `nouvelle_sortie` VARCHAR(50) NOT NULL,
    `gestion_fact_retoure` VARCHAR(50) NOT NULL,
    `nouvelle_fact_retour` VARCHAR(50) NOT NULL,
    `suivicommande` VARCHAR(50) NOT NULL,
    `prixventeminimum` VARCHAR(50) NOT NULL,
    `VueListe` VARCHAR(50) NOT NULL,
    `PlafondClient` VARCHAR(50) NOT NULL,
    `remise` VARCHAR(50) NOT NULL DEFAULT '0,000000',
    `caisse` VARCHAR(50) NOT NULL,
    `admin_caisse` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_roles_IDgroupe_utilisateur` ON `roles` (`IDgroupe_utilisateur`);

-- Création de la table societe
CREATE TABLE `societe` (
    `IDsociete` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `raison_sociale` VARCHAR(50) NOT NULL,
    `adresse` VARCHAR(50) NOT NULL,
    `telephone` VARCHAR(50) NOT NULL,
    `ifu` VARCHAR(50) NOT NULL,
    `regime` VARCHAR(50) NOT NULL,
    `rccm` VARCHAR(50) NOT NULL,
    `bas_page` VARCHAR(500) NOT NULL,
    `taxe_tva` REAL NOT NULL DEFAULT 0,
    `taxe_bic` REAL NOT NULL DEFAULT 0,
    `gestion_caisse` VARCHAR(50) NOT NULL);

-- Création de la table sortie
CREATE TABLE `sortie` (
    `IDsortie` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `IDclient` BIGINT ,
    `IDutilisateur` BIGINT ,
    `chauffeur` VARCHAR(50) NOT NULL,
    `immatriculation` VARCHAR(50) NOT NULL,
    `description` VARCHAR(50) NOT NULL,
    `num_description` VARCHAR(50) NOT NULL,
    `cnib` VARCHAR(50) NOT NULL,
    `telephone` VARCHAR(50) NOT NULL,
    `type_vehicule` VARCHAR(50) NOT NULL,
    `note` VARCHAR(255) NOT NULL,
    `heure` TIME NOT NULL);
CREATE INDEX `WDIDX_sortie_numero` ON `sortie` (`numero`);
CREATE INDEX `WDIDX_sortie_IDclient` ON `sortie` (`IDclient`);
CREATE INDEX `WDIDX_sortie_IDutilisateur` ON `sortie` (`IDutilisateur`);

-- Création de la table SuiviCompte
CREATE TABLE `SuiviCompte` (
    `IDSuiviCompte` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `date` DATE NOT NULL,
    `solde_Initial` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `recette` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `depense` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `versement` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `solde` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `IDutilisateur` BIGINT ,
    `IDcompte` BIGINT ,
    `etat` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_SuiviCompte_IDutilisateur` ON `SuiviCompte` (`IDutilisateur`);
CREATE INDEX `WDIDX_SuiviCompte_IDcompte` ON `SuiviCompte` (`IDcompte`);

-- Création de la table type_doc
CREATE TABLE `type_doc` (
    `IDtype_doc` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `intitule` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_type_doc_intitule` ON `type_doc` (`intitule`);

-- Création de la table utilisateur
-- Le type "Mot de passe" de la rubrique "password" n'est pas supporté.


-- Script partiel

CREATE TABLE `utilisateur` (
    `IDutilisateur` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `login` VARCHAR(50) NOT NULL,
    `nom_complet` VARCHAR(50) NOT NULL,
,
    `IDgroupe_utilisateur` BIGINT ,
    `etat` VARCHAR(50) NOT NULL,
    `code` VARCHAR(50) NOT NULL);
CREATE INDEX `WDIDX_utilisateur_login` ON `utilisateur` (`login`);
CREATE INDEX `WDIDX_utilisateur_IDgroupe_utilisateur` ON `utilisateur` (`IDgroupe_utilisateur`);

-- Création de la table vente
CREATE TABLE `vente` (
    `IDvente` BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    `numero` VARCHAR(50) NOT NULL,
    `date` DATE NOT NULL,
    `net_a_payer` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `versement` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `reste_a_payer` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `etat_livraison` VARCHAR(50) NOT NULL,
    `type` VARCHAR(50) NOT NULL,
    `IDclient` BIGINT ,
    `IDutilisateur` BIGINT ,
    `etat` VARCHAR(50) NOT NULL,
    `nom_client` VARCHAR(50) NOT NULL,
    `adresse_client` VARCHAR(50) NOT NULL,
    `telephone_client` VARCHAR(50) NOT NULL,
    `heure` TIME NOT NULL,
    `depot` VARCHAR(50) NOT NULL,
    `vue` VARCHAR(50) NOT NULL,
    `total` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `remise` NUMERIC(24,6) NOT NULL DEFAULT 0,
    `mode_reglement` VARCHAR(50) NOT NULL,
    `etat_reglement` VARCHAR(50) NOT NULL,
    `caisse` INTEGER NOT NULL DEFAULT 0);
CREATE INDEX `WDIDX_vente_numero` ON `vente` (`numero`);
CREATE INDEX `WDIDX_vente_IDclient` ON `vente` (`IDclient`);
CREATE INDEX `WDIDX_vente_IDutilisateur` ON `vente` (`IDutilisateur`);
-- Contraintes d'intégrité
ALTER TABLE `connexion` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `ligne_depot` ADD FOREIGN KEY (`IDdepot`) REFERENCES `depot` (`IDdepot`);
ALTER TABLE `ligne_depot` ADD FOREIGN KEY (`IDarticle`) REFERENCES `article` (`IDarticle`);
ALTER TABLE `achat` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `achat` ADD FOREIGN KEY (`IDfournisseur`) REFERENCES `fournisseur` (`IDfournisseur`);
ALTER TABLE `ligne_achat` ADD FOREIGN KEY (`IDachat`) REFERENCES `achat` (`IDachat`);
ALTER TABLE `ligne_achat` ADD FOREIGN KEY (`IDarticle`) REFERENCES `article` (`IDarticle`);
ALTER TABLE `reglement_fournisseur` ADD FOREIGN KEY (`IDfournisseur`) REFERENCES `fournisseur` (`IDfournisseur`);
ALTER TABLE `devis` ADD FOREIGN KEY (`IDclient`) REFERENCES `client` (`IDclient`);
ALTER TABLE `devis` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `ligne_devis` ADD FOREIGN KEY (`IDdevis`) REFERENCES `devis` (`IDdevis`);
ALTER TABLE `ligne_devis` ADD FOREIGN KEY (`IDarticle`) REFERENCES `article` (`IDarticle`);
ALTER TABLE `normalise` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `normalise` ADD FOREIGN KEY (`IDclient`) REFERENCES `client` (`IDclient`);
ALTER TABLE `ligne_normalise` ADD FOREIGN KEY (`IDnormalise`) REFERENCES `normalise` (`IDnormalise`);
ALTER TABLE `ligne_normalise` ADD FOREIGN KEY (`IDarticle`) REFERENCES `article` (`IDarticle`);
ALTER TABLE `vente` ADD FOREIGN KEY (`IDclient`) REFERENCES `client` (`IDclient`);
ALTER TABLE `vente` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `ligne_vente` ADD FOREIGN KEY (`IDvente`) REFERENCES `vente` (`IDvente`);
ALTER TABLE `ligne_vente` ADD FOREIGN KEY (`IDarticle`) REFERENCES `article` (`IDarticle`);
ALTER TABLE `reglement_client` ADD FOREIGN KEY (`IDclient`) REFERENCES `client` (`IDclient`);
ALTER TABLE `reglement_client` ADD FOREIGN KEY (`IDvente`) REFERENCES `vente` (`IDvente`);
ALTER TABLE `reglement_fournisseur` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `reglement_client` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `avance` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `avance` ADD FOREIGN KEY (`IDclient`) REFERENCES `client` (`IDclient`);
ALTER TABLE `depense` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `caisse` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `mouvement` ADD FOREIGN KEY (`IDdepot`) REFERENCES `depot` (`IDdepot`);
ALTER TABLE `ligne_mouvement` ADD FOREIGN KEY (`IDmouvement`) REFERENCES `mouvement` (`IDmouvement`);
ALTER TABLE `ligne_mouvement` ADD FOREIGN KEY (`IDarticle`) REFERENCES `article` (`IDarticle`);
ALTER TABLE `avoir` ADD FOREIGN KEY (`IDclient`) REFERENCES `client` (`IDclient`);
ALTER TABLE `ligne_avoir` ADD FOREIGN KEY (`IDavoir`) REFERENCES `avoir` (`IDavoir`);
ALTER TABLE `ligne_avoir` ADD FOREIGN KEY (`IDarticle`) REFERENCES `article` (`IDarticle`);
ALTER TABLE `ligne_sortie` ADD FOREIGN KEY (`IDarticle`) REFERENCES `article` (`IDarticle`);
ALTER TABLE `ligne_sortie` ADD FOREIGN KEY (`IDsortie`) REFERENCES `sortie` (`IDsortie`);
ALTER TABLE `sortie` ADD FOREIGN KEY (`IDclient`) REFERENCES `client` (`IDclient`);
ALTER TABLE `mouvement` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `avoir` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `sortie` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `utilisateur` ADD FOREIGN KEY (`IDgroupe_utilisateur`) REFERENCES `groupe_utilisateur` (`IDgroupe_utilisateur`);
ALTER TABLE `roles` ADD FOREIGN KEY (`IDgroupe_utilisateur`) REFERENCES `groupe_utilisateur` (`IDgroupe_utilisateur`);
ALTER TABLE `lot` ADD FOREIGN KEY (`IDarticle`) REFERENCES `article` (`IDarticle`);
ALTER TABLE `lot` ADD FOREIGN KEY (`IDdepot`) REFERENCES `depot` (`IDdepot`);
ALTER TABLE `horaire` ADD FOREIGN KEY (`IDDepartement`) REFERENCES `Departement` (`IDDepartement`);
ALTER TABLE `employe` ADD FOREIGN KEY (`IDDepartement`) REFERENCES `Departement` (`IDDepartement`);
ALTER TABLE `employe` ADD FOREIGN KEY (`IDcarte`) REFERENCES `carte` (`IDcarte`);
ALTER TABLE `presence` ADD FOREIGN KEY (`IDemploye`) REFERENCES `employe` (`IDemploye`);
ALTER TABLE `absence` ADD FOREIGN KEY (`IDemploye`) REFERENCES `employe` (`IDemploye`);
ALTER TABLE `retard` ADD FOREIGN KEY (`IDemploye`) REFERENCES `employe` (`IDemploye`);
ALTER TABLE `bascule` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `document` ADD FOREIGN KEY (`IDtype_doc`) REFERENCES `type_doc` (`IDtype_doc`);
ALTER TABLE `document` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `ligne_facture_retour` ADD FOREIGN KEY (`IDfacture_retour`) REFERENCES `facture_retour` (`IDfacture_retour`);
ALTER TABLE `ligne_facture_retour` ADD FOREIGN KEY (`IDarticle`) REFERENCES `article` (`IDarticle`);
ALTER TABLE `facture_retour` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `avance_fournisseur` ADD FOREIGN KEY (`IDfournisseur`) REFERENCES `fournisseur` (`IDfournisseur`);
ALTER TABLE `avance_fournisseur` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `ligne_inventaire` ADD FOREIGN KEY (`IDarticle`) REFERENCES `article` (`IDarticle`);
ALTER TABLE `ligne_inventaire` ADD FOREIGN KEY (`IDinventaire`) REFERENCES `inventaire` (`IDinventaire`);
ALTER TABLE `exercice` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `LigneReglement` ADD FOREIGN KEY (`IDvente`) REFERENCES `vente` (`IDvente`);
ALTER TABLE `LigneReglement` ADD FOREIGN KEY (`IDreglement_client`) REFERENCES `reglement_client` (`IDreglement_client`);
ALTER TABLE `LigneCommandeFour` ADD FOREIGN KEY (`IDproduit`) REFERENCES `produit` (`IDproduit`);
ALTER TABLE `LigneReception` ADD FOREIGN KEY (`IDproduit`) REFERENCES `produit` (`IDproduit`);
ALTER TABLE `LigneCommandeFour` ADD FOREIGN KEY (`IDcommande`) REFERENCES `commande` (`IDcommande`);
ALTER TABLE `reception` ADD FOREIGN KEY (`IDcommande`) REFERENCES `commande` (`IDcommande`);
ALTER TABLE `commande` ADD FOREIGN KEY (`IDFourn`) REFERENCES `Fourn` (`IDFourn`);
ALTER TABLE `commande` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `reception` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `LigneReception` ADD FOREIGN KEY (`IDreception`) REFERENCES `reception` (`IDreception`);
ALTER TABLE `LigneReglementFournisseur` ADD FOREIGN KEY (`IDachat`) REFERENCES `achat` (`IDachat`);
ALTER TABLE `LigneReglementFournisseur` ADD FOREIGN KEY (`IDreglement_fournisseur`) REFERENCES `reglement_fournisseur` (`IDreglement_fournisseur`);
ALTER TABLE `journalCompte` ADD FOREIGN KEY (`IDcompte`) REFERENCES `compte` (`IDcompte`);
ALTER TABLE `SuiviCompte` ADD FOREIGN KEY (`IDutilisateur`) REFERENCES `utilisateur` (`IDutilisateur`);
ALTER TABLE `SuiviCompte` ADD FOREIGN KEY (`IDcompte`) REFERENCES `compte` (`IDcompte`);
