Malheureusement personne ne peut vous dire ce que PunBB est - vous devez le voir par vous-même.
Vous n'êtes pas identifié.
-- MySQL Script generated by MySQL Workbench
-- jeu. 28 févr. 2019 09:00:26 CET
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
-- -----------------------------------------------------
-- Schema paysagest
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `paysagest` ;
-- -----------------------------------------------------
-- Schema paysagest
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `paysagest` DEFAULT CHARACTER SET utf8 ;
USE `paysagest` ;
-- -----------------------------------------------------
-- Table `paysagest`.`entreprise`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`entreprise` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`entreprise` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`siret` VARCHAR(14) NOT NULL,
`nom` VARCHAR(255) NULL,
`ape` VARCHAR(25) NULL,
`tva_intracom` VARCHAR(45) NULL,
`adresse` VARCHAR(255) NULL,
`suite_adresse` VARCHAR(255) NULL,
`cp` VARCHAR(16) NULL,
`ville` VARCHAR(150) NULL,
`tel` VARCHAR(45) NULL,
`portable` VARCHAR(45) NULL,
`email` VARCHAR(255) NULL,
`regime_commercial` VARCHAR(150) NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `siret_UNIQUE` (`siret` ASC))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`role`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`role` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`role` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`role` VARCHAR(32) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`user`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`user` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`user` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`entreprise_id` INT UNSIGNED NOT NULL,
`username` VARCHAR(32) NOT NULL,
`email` VARCHAR(255) NOT NULL,
`password` VARCHAR(255) NOT NULL,
`role_id` INT UNSIGNED NOT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL,
PRIMARY KEY (`id`, `entreprise_id`),
INDEX `fk_user_entreprise_idx` (`entreprise_id` ASC),
INDEX `fk_user_role_idx` (`role_id` ASC),
CONSTRAINT `fk_user_entreprise`
FOREIGN KEY (`entreprise_id`)
REFERENCES `paysagest`.`entreprise` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_user_role`
FOREIGN KEY (`role_id`)
REFERENCES `paysagest`.`role` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`civilite`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`civilite` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`civilite` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`libelle` VARCHAR(100) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`client`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`client` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`client` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`entreprise_id` INT UNSIGNED NOT NULL,
`code_client` VARCHAR(32) NOT NULL,
`civilite_id` INT UNSIGNED NULL,
`nom` VARCHAR(64) NOT NULL,
`prenom` VARCHAR(32) NULL,
`tel` VARCHAR(32) NULL,
`portable` VARCHAR(32) NULL,
`email` VARCHAR(255) NULL,
`tva_intracom` VARCHAR(32) NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL,
PRIMARY KEY (`id`, `entreprise_id`),
UNIQUE INDEX `code_client_UNIQUE` (`code_client` ASC),
INDEX `fk_client_civilite_idx` (`civilite_id` ASC),
INDEX `fk_client_entreprise_idx` (`entreprise_id` ASC),
CONSTRAINT `fk_client_entreprise`
FOREIGN KEY (`entreprise_id`)
REFERENCES `paysagest`.`entreprise` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_client_civilite`
FOREIGN KEY (`civilite_id`)
REFERENCES `paysagest`.`civilite` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`rib`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`rib` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`rib` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`client_id` INT UNSIGNED NOT NULL,
`nom_banque` VARCHAR(64) NULL,
`nom_agence` VARCHAR(64) NULL,
`code_banque` VARCHAR(5) NOT NULL,
`code_guichet` VARCHAR(5) NOT NULL,
`num_compte` VARCHAR(11) NOT NULL,
`cle_rib` VARCHAR(2) NOT NULL,
`iban` VARCHAR(34) NOT NULL,
`bic` VARCHAR(11) NOT NULL,
PRIMARY KEY (`id`, `client_id`),
INDEX `fk_rib_client_idx` (`client_id` ASC),
CONSTRAINT `fk_rib_client`
FOREIGN KEY (`client_id`)
REFERENCES `paysagest`.`client` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`tva`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`tva` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`tva` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`code_tva` INT NOT NULL,
`libelle` VARCHAR(32) NOT NULL,
`taux` DECIMAL(4,2) NOT NULL DEFAULT 0.00,
PRIMARY KEY (`id`),
UNIQUE INDEX `code_tva_UNIQUE` (`code_tva` ASC))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`famille_article`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`famille_article` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`famille_article` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`libelle` VARCHAR(64) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`article`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`article` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`article` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`entreprise_id` INT UNSIGNED NOT NULL,
`code` VARCHAR(64) NOT NULL,
`famille_article_id` INT UNSIGNED NULL,
`libelle` TEXT NULL,
`unite` VARCHAR(45) NULL,
`ht` DECIMAL(12,4) NULL DEFAULT 0.0000,
`prix_achat` DECIMAL(12,4) NULL DEFAULT 0.0000,
`coef` DECIMAL(5,2) NULL DEFAULT 0.00,
`ttc` DECIMAL(12,4) NULL DEFAULT 0.0000,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL,
`tva_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`, `entreprise_id`),
INDEX `fk_article_tva_idx` (`tva_id` ASC),
INDEX `fk_article_famille_article_idx` (`famille_article_id` ASC),
UNIQUE INDEX `code_UNIQUE` (`code` ASC),
INDEX `fk_articles_entreprise_idx` (`entreprise_id` ASC),
CONSTRAINT `fk_articles_tva`
FOREIGN KEY (`tva_id`)
REFERENCES `paysagest`.`tva` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_articles_entreprise`
FOREIGN KEY (`entreprise_id`)
REFERENCES `paysagest`.`entreprise` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_article_famille_article`
FOREIGN KEY (`famille_article_id`)
REFERENCES `paysagest`.`famille_article` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`adresse_type`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`adresse_type` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`adresse_type` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`code` INT UNSIGNED NOT NULL,
`libelle` VARCHAR(64) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `code_UNIQUE` (`code` ASC))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`adresse`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`adresse` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`adresse` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`client_id` INT UNSIGNED NOT NULL,
`adresse_1` VARCHAR(150) NULL,
`adresse_2` VARCHAR(150) NULL,
`adresse_3` VARCHAR(150) NULL,
`cp` VARCHAR(10) NULL,
`ville` VARCHAR(100) NULL,
`pays` VARCHAR(64) NULL,
`adresse_type_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`, `client_id`),
INDEX `fk_adresse_adresse_type_idx` (`adresse_type_id` ASC),
INDEX `fk_adresse_client_idx` (`client_id` ASC),
CONSTRAINT `fk_adresse_adresse_type`
FOREIGN KEY (`adresse_type_id`)
REFERENCES `paysagest`.`adresse_type` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_adresse_client`
FOREIGN KEY (`client_id`)
REFERENCES `paysagest`.`client` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`echeance`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`echeance` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`echeance` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`libelle` VARCHAR(32) NOT NULL,
`interval` VARCHAR(32) NOT NULL,
`unite` INT NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`facture`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`facture` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`facture` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`client_id` INT UNSIGNED NOT NULL,
`entreprise_id` INT UNSIGNED NOT NULL,
`code_facture` VARCHAR(32) NOT NULL,
`adresse_id` INT UNSIGNED NOT NULL,
`echeance_id` INT UNSIGNED NOT NULL,
`date_edition` DATETIME NULL,
`total_ht` DECIMAL(12,4) NOT NULL DEFAULT 0.0000,
`total_tva` DECIMAL(12,4) NOT NULL DEFAULT 0.0000,
`total_ttc` DECIMAL(12,4) NOT NULL DEFAULT 0.0000,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL,
PRIMARY KEY (`id`, `client_id`, `entreprise_id`),
UNIQUE INDEX `code_facture_UNIQUE` (`code_facture` ASC),
INDEX `fk_facture_adresse_idx` (`adresse_id` ASC),
INDEX `fk_facture_echeance_idx` (`echeance_id` ASC),
INDEX `fk_facture_client_idx` (`client_id` ASC, `entreprise_id` ASC),
CONSTRAINT `fk_facture_adresse`
FOREIGN KEY (`adresse_id`)
REFERENCES `paysagest`.`adresse` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_facture_echeance`
FOREIGN KEY (`echeance_id`)
REFERENCES `paysagest`.`echeance` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_facture_client`
FOREIGN KEY (`client_id` , `entreprise_id`)
REFERENCES `paysagest`.`client` (`id` , `entreprise_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`statut_devis`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`statut_devis` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`statut_devis` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`libelle` VARCHAR(32) NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`devis`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`devis` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`devis` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`client_id` INT UNSIGNED NOT NULL,
`entreprise_id` INT UNSIGNED NOT NULL,
`code_devis` VARCHAR(32) NOT NULL,
`statut_devis_id` INT UNSIGNED NOT NULL,
`adresse_id` INT UNSIGNED NOT NULL,
`validite` DATETIME NULL,
`total_ht` DECIMAL(12,4) NOT NULL DEFAULT 0.0000,
`total_tva` DECIMAL(12,4) NOT NULL DEFAULT 0.0000,
`total_ttc` DECIMAL(12,4) NOT NULL DEFAULT 0.0000,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NULL,
PRIMARY KEY (`id`, `client_id`, `entreprise_id`),
UNIQUE INDEX `code_devis_UNIQUE` (`code_devis` ASC),
INDEX `fk_devis_adresse_idx` (`adresse_id` ASC),
INDEX `fk_devis_client_idx` (`client_id` ASC, `entreprise_id` ASC),
INDEX `fk_devis_statut_devis_idx` (`statut_devis_id` ASC),
CONSTRAINT `fk_devis_adresse`
FOREIGN KEY (`adresse_id`)
REFERENCES `paysagest`.`adresse` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_devis_client`
FOREIGN KEY (`client_id` , `entreprise_id`)
REFERENCES `paysagest`.`client` (`id` , `entreprise_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_devis_statut_devis`
FOREIGN KEY (`statut_devis_id`)
REFERENCES `paysagest`.`statut_devis` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`tranche_devis`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`tranche_devis` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`tranche_devis` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`devis_id` INT UNSIGNED NOT NULL,
`num_ligne` INT UNSIGNED NOT NULL,
`libelle` TEXT NULL,
`sous_total_ht` DECIMAL(12,4) NULL,
`sous_total_tva` DECIMAL(12,4) NULL,
`sous_total_ttc` DECIMAL(12,4) NULL,
PRIMARY KEY (`id`),
INDEX `fk_tranche_devis_devis_idx` (`devis_id` ASC),
CONSTRAINT `fk_tranche_devis_devis`
FOREIGN KEY (`devis_id`)
REFERENCES `paysagest`.`devis` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`ligne_devis`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`ligne_devis` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`ligne_devis` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`devis_id` INT UNSIGNED NOT NULL,
`num_ligne` INT UNSIGNED NOT NULL,
`libelle` TEXT NULL,
`quantite` DECIMAL(6,2) NULL,
`ht` DECIMAL(12,4) NULL,
`tva` DECIMAL(12,4) NULL,
`ttc` DECIMAL(12,4) NULL,
`article_id` INT UNSIGNED NULL,
`tranche_devis_id` INT UNSIGNED NULL,
PRIMARY KEY (`id`),
INDEX `fk_ligne_devis_article_idx` (`article_id` ASC),
INDEX `fk_ligne_devis_devis_idx` (`devis_id` ASC),
INDEX `fk_ligne_devis_tranche_devis_idx` (`tranche_devis_id` ASC),
CONSTRAINT `fk_ligne_devis_article`
FOREIGN KEY (`article_id`)
REFERENCES `paysagest`.`article` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_ligne_devis_devis`
FOREIGN KEY (`devis_id`)
REFERENCES `paysagest`.`devis` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_ligne_devis_tranche_devis`
FOREIGN KEY (`tranche_devis_id`)
REFERENCES `paysagest`.`tranche_devis` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`tranche_facture`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`tranche_facture` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`tranche_facture` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`facture_id` INT UNSIGNED NOT NULL,
`num_ligne` INT UNSIGNED NOT NULL,
`libelle` TEXT NULL,
`sous_total_ht` DECIMAL(12,4) NULL,
`sous_total_tva` DECIMAL(12,4) NULL,
`sous_total_ttc` DECIMAL(12,4) NULL,
PRIMARY KEY (`id`),
INDEX `fk_tranche_facture_facture_idx` (`facture_id` ASC),
CONSTRAINT `fk_tranche_facture_facture`
FOREIGN KEY (`facture_id`)
REFERENCES `paysagest`.`facture` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`ligne_facture`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`ligne_facture` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`ligne_facture` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`num_ligne` INT UNSIGNED NOT NULL,
`libelle` TEXT NULL,
`quantite` DECIMAL(6,2) NULL,
`ht` DECIMAL(12,4) NULL,
`tva` DECIMAL(12,4) NULL,
`ttc` DECIMAL(12,4) NULL,
`article_id` INT UNSIGNED NULL,
`facture_id` INT UNSIGNED NOT NULL,
`tranche_facture_id` INT UNSIGNED NULL,
PRIMARY KEY (`id`),
INDEX `fk_ligne_facture_article_idx` (`article_id` ASC),
INDEX `fk_ligne_facture_facture_idx` (`facture_id` ASC),
INDEX `fk_ligne_facture_tranche_facture_idx` (`tranche_facture_id` ASC),
CONSTRAINT `fk_ligne_facture_article`
FOREIGN KEY (`article_id`)
REFERENCES `paysagest`.`article` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_ligne_facture_facture`
FOREIGN KEY (`facture_id`)
REFERENCES `paysagest`.`facture` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_ligne_facture_tranche_facture`
FOREIGN KEY (`tranche_facture_id`)
REFERENCES `paysagest`.`tranche_facture` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`reglement`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`reglement` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`reglement` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`facture_id` INT UNSIGNED NOT NULL,
`client_id` INT UNSIGNED NOT NULL,
`entreprise_id` INT UNSIGNED NOT NULL,
`reglement` DECIMAL(12,4) NOT NULL DEFAULT 0.0000,
`reste` DECIMAL(12,4) NOT NULL DEFAULT 0.0000,
`total_ttc` DECIMAL(12,4) NOT NULL DEFAULT 0.0000,
PRIMARY KEY (`id`, `facture_id`, `client_id`, `entreprise_id`),
INDEX `fk_reglement_facture_idx` (`facture_id` ASC, `client_id` ASC, `entreprise_id` ASC),
CONSTRAINT `fk_reglement_facture`
FOREIGN KEY (`facture_id` , `client_id` , `entreprise_id`)
REFERENCES `paysagest`.`facture` (`id` , `client_id` , `entreprise_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`acompte`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`acompte` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`acompte` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`devis_id` INT UNSIGNED NOT NULL,
`montant` DECIMAL(12,4) NOT NULL DEFAULT 0.0000,
PRIMARY KEY (`id`),
INDEX `fk_acompte_devis_idx` (`devis_id` ASC),
CONSTRAINT `fk_acompte_devis`
FOREIGN KEY (`devis_id`)
REFERENCES `paysagest`.`devis` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`periodicite`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`periodicite` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`periodicite` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`libelle` VARCHAR(32) NOT NULL,
`interval` VARCHAR(32) NOT NULL,
`unite` INT NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`contrat`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`contrat` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`contrat` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`client_id` INT UNSIGNED NOT NULL,
`entreprise_id` INT UNSIGNED NOT NULL,
`code_contrat` VARCHAR(32) NOT NULL,
`total_ht` DECIMAL(12,4) NULL DEFAULT 0.0000,
`tva_id` INT UNSIGNED NOT NULL,
`total_ttc` DECIMAL(12,4) NULL DEFAULT 0.0000,
`total_ht_period` DECIMAL(12,4) NULL DEFAULT 0.0000,
`total_ttc_period` DECIMAL(12,4) NULL DEFAULT 0.0000,
`periodicite_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`, `client_id`, `entreprise_id`),
UNIQUE INDEX `num_contrat_UNIQUE` (`code_contrat` ASC),
INDEX `fk_contrat_tva_idx` (`tva_id` ASC),
INDEX `fk_contrat_periodicite_idx` (`periodicite_id` ASC),
INDEX `fk_contrat_client_idx` (`client_id` ASC, `entreprise_id` ASC),
CONSTRAINT `fk_contrat_tva`
FOREIGN KEY (`tva_id`)
REFERENCES `paysagest`.`tva` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_contrat_periodicite`
FOREIGN KEY (`periodicite_id`)
REFERENCES `paysagest`.`periodicite` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_contrat_client`
FOREIGN KEY (`client_id` , `entreprise_id`)
REFERENCES `paysagest`.`client` (`id` , `entreprise_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`dernier_code`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`dernier_code` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`dernier_code` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`table_nom` VARCHAR(64) NOT NULL,
`colonne` VARCHAR(64) NOT NULL,
`code_table` VARCHAR(32) NOT NULL,
`prochain_code` VARCHAR(32) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`facture_periodique`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`facture_periodique` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`facture_periodique` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`client_id` INT UNSIGNED NOT NULL,
`entreprise_id` INT UNSIGNED NOT NULL,
`contrat_id` INT UNSIGNED NOT NULL,
`prochaine_facture` DATE NOT NULL,
`date_debut` DATE NOT NULL,
INDEX `fk_facture_periodique_contrat_idx` (`contrat_id` ASC),
PRIMARY KEY (`id`, `client_id`, `entreprise_id`),
INDEX `fk_facture_periodique_client_idx` (`client_id` ASC, `entreprise_id` ASC),
CONSTRAINT `fk_facture_periodique_contrat`
FOREIGN KEY (`contrat_id`)
REFERENCES `paysagest`.`contrat` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_facture_periodique_client`
FOREIGN KEY (`client_id` , `entreprise_id`)
REFERENCES `paysagest`.`client` (`id` , `entreprise_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`tranche_facture_periodique`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`tranche_facture_periodique` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`tranche_facture_periodique` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`facture_periodique_id` INT UNSIGNED NOT NULL,
`num_ligne` INT UNSIGNED NOT NULL,
`libelle` TEXT NULL,
`sous_total_ht` DECIMAL(12,4) NULL,
`sous_total_tva` DECIMAL(12,4) NULL,
`sous_total_ttc` DECIMAL(12,4) NULL,
PRIMARY KEY (`id`),
INDEX `fk_tranche_facture_periodique_facture_periodique_idx` (`facture_periodique_id` ASC),
CONSTRAINT `fk_tranche_facture_periodique_facture_periodique`
FOREIGN KEY (`facture_periodique_id`)
REFERENCES `paysagest`.`facture_periodique` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`ligne_facture_periodique`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`ligne_facture_periodique` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`ligne_facture_periodique` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`facture_periodique_id` INT UNSIGNED NOT NULL,
`article_id` INT UNSIGNED NULL,
`num_ligne` INT UNSIGNED NULL,
`libelle` TEXT NULL,
`quantite` DECIMAL(6,2) NULL,
`ht` DECIMAL(12,4) NULL,
`tva` DECIMAL(12,4) NULL,
`ttc` DECIMAL(12,4) NULL,
`tranche_facture_periodique_id` INT UNSIGNED NULL,
PRIMARY KEY (`id`),
INDEX `fk_ligne_facture_periodique_article_idx` (`article_id` ASC),
INDEX `fk_ligne_facture_periodique_facture_periodique_idx` (`facture_periodique_id` ASC),
INDEX `fk_ligne_facture_periodique_tranche_facture_periodique_idx` (`tranche_facture_periodique_id` ASC),
CONSTRAINT `fk_ligne_facture_periodique_article`
FOREIGN KEY (`article_id`)
REFERENCES `paysagest`.`article` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_ligne_facture_periodique_facture_periodique`
FOREIGN KEY (`facture_periodique_id`)
REFERENCES `paysagest`.`facture_periodique` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_ligne_facture_periodique_tranche_facture_periodique`
FOREIGN KEY (`tranche_facture_periodique_id`)
REFERENCES `paysagest`.`tranche_facture_periodique` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `paysagest`.`prefix`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `paysagest`.`prefix` ;
CREATE TABLE IF NOT EXISTS `paysagest`.`prefix` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`table_nom` VARCHAR(64) NOT NULL,
`libelle` VARCHAR(16) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
USE `paysagest`;
DELIMITER $$
USE `paysagest`$$
DROP TRIGGER IF EXISTS `paysagest`.`client_AFTER_INSERT` $$
USE `paysagest`$$
CREATE TRIGGER `paysagest`.`client_AFTER_INSERT`
AFTER INSERT ON `client` FOR EACH ROW
BEGIN
DECLARE len INTEGER;
DECLARE new_code VARCHAR(32);
DECLARE num_code INTEGER UNSIGNED;
DECLARE pref VARCHAR(16);
IF (NEW.code_client IS NOT NULL) THEN
SET pref = (SELECT COALESCE(libelle, 'CL') from prefix
WHERE table_nom = 'client');
SET len = char_length(pref);
SET new_code = substring(NEW.code_client, len + 1);
SET num_code = CAST(new_code AS UNSIGNED);
SET new_code = CONCAT(pref, num_code +1);
INSERT INTO dernier_code (table_nom, colonne, code_table, prochain_code)
VALUES ('client', 'code_client', NEW.code_client, new_code);
END IF;
END$$
USE `paysagest`$$
DROP TRIGGER IF EXISTS `paysagest`.`facture_AFTER_INSERT` $$
USE `paysagest`$$
CREATE TRIGGER `paysagest`.`facture_AFTER_INSERT`
AFTER INSERT ON `facture` FOR EACH ROW
BEGIN
DECLARE len INTEGER;
DECLARE new_code VARCHAR(32);
DECLARE num_code INTEGER UNSIGNED;
DECLARE pref VARCHAR(16);
IF (NEW.code_facture IS NOT NULL) THEN
SET pref = (SELECT COALESCE(libelle, 'FC') from prefix
WHERE table_nom = 'facture');
SET len = char_length(pref);
SET new_code = substring(NEW.code_facture, len + 1);
SET num_code = CAST(new_code AS UNSIGNED);
SET new_code = CONCAT(pref, num_code +1);
INSERT INTO dernier_code (table_nom, colonne, code_table, prochain_code)
VALUES ('facture', 'code_facture', NEW.code_facture, new_code);
END IF;
END$$
USE `paysagest`$$
DROP TRIGGER IF EXISTS `paysagest`.`devis_AFTER_INSERT` $$
USE `paysagest`$$
CREATE TRIGGER `paysagest`.`devis_AFTER_INSERT`
AFTER INSERT ON `devis` FOR EACH ROW
BEGIN
DECLARE len INTEGER;
DECLARE new_code VARCHAR(32);
DECLARE num_code INTEGER UNSIGNED;
DECLARE pref VARCHAR(16);
IF (NEW.code_devis IS NOT NULL) THEN
SET pref = (SELECT COALESCE(libelle, 'DC') from prefix
WHERE table_nom = 'devis');
SET len = char_length(pref);
SET new_code = substring(NEW.code_devis, len + 1);
SET num_code = CAST(new_code AS UNSIGNED);
SET new_code = CONCAT(pref, num_code +1);
INSERT INTO dernier_code (table_nom, colonne, code_table, prochain_code)
VALUES ('devis', 'code_devis', NEW.code_devis, new_code);
END IF;
END$$
USE `paysagest`$$
DROP TRIGGER IF EXISTS `paysagest`.`contrat_AFTER_INSERT` $$
USE `paysagest`$$
CREATE TRIGGER `paysagest`.`contrat_AFTER_INSERT`
AFTER INSERT ON `contrat` FOR EACH ROW
BEGIN
DECLARE len INTEGER;
DECLARE new_code VARCHAR(32);
DECLARE num_code INTEGER UNSIGNED;
DECLARE pref VARCHAR(16);
IF (NEW.code_contrat IS NOT NULL) THEN
SET pref = (SELECT COALESCE(libelle, 'C') from prefix
WHERE table_nom = 'contrat');
SET len = char_length(pref);
SET new_code = substring(NEW.code_contrat, len + 1);
SET num_code = CAST(new_code AS UNSIGNED);
SET new_code = CONCAT(pref, num_code +1);
INSERT INTO dernier_code (table_nom, colonne, code_table, prochain_code)
VALUES ('contrat', 'code_contrat', NEW.code_contrat, new_code);
END IF;
END$$
DELIMITER ;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
-- -----------------------------------------------------
-- Data for table `paysagest`.`role`
-- -----------------------------------------------------
START TRANSACTION;
USE `paysagest`;
INSERT INTO `paysagest`.`role` (`id`, `role`) VALUES (1, 'admin');
INSERT INTO `paysagest`.`role` (`id`, `role`) VALUES (2, 'user');
COMMIT;
-- -----------------------------------------------------
-- Data for table `paysagest`.`civilite`
-- -----------------------------------------------------
START TRANSACTION;
USE `paysagest`;
INSERT INTO `paysagest`.`civilite` (`id`, `libelle`) VALUES (1, 'M. et MM.');
INSERT INTO `paysagest`.`civilite` (`id`, `libelle`) VALUES (2, 'Madame');
INSERT INTO `paysagest`.`civilite` (`id`, `libelle`) VALUES (3, 'Monsieur');
INSERT INTO `paysagest`.`civilite` (`id`, `libelle`) VALUES (4, 'Madame et Monsieur');
COMMIT;
-- -----------------------------------------------------
-- Data for table `paysagest`.`tva`
-- -----------------------------------------------------
START TRANSACTION;
USE `paysagest`;
INSERT INTO `paysagest`.`tva` (`id`, `code_tva`, `libelle`, `taux`) VALUES (1, 1, 'tva_20', 20.00);
INSERT INTO `paysagest`.`tva` (`id`, `code_tva`, `libelle`, `taux`) VALUES (2, 2, 'tva_5.5', 5.50);
COMMIT;
-- -----------------------------------------------------
-- Data for table `paysagest`.`adresse_type`
-- -----------------------------------------------------
START TRANSACTION;
USE `paysagest`;
INSERT INTO `paysagest`.`adresse_type` (`id`, `code`, `libelle`) VALUES (1, 1, 'standard');
INSERT INTO `paysagest`.`adresse_type` (`id`, `code`, `libelle`) VALUES (2, 2, 'facturation');
INSERT INTO `paysagest`.`adresse_type` (`id`, `code`, `libelle`) VALUES (3, 3, 'travaux');
COMMIT;
-- -----------------------------------------------------
-- Data for table `paysagest`.`statut_devis`
-- -----------------------------------------------------
START TRANSACTION;
USE `paysagest`;
INSERT INTO `paysagest`.`statut_devis` (`id`, `libelle`) VALUES (1, 'en cours');
INSERT INTO `paysagest`.`statut_devis` (`id`, `libelle`) VALUES (2, 'accepté');
INSERT INTO `paysagest`.`statut_devis` (`id`, `libelle`) VALUES (3, 'terminé');
INSERT INTO `paysagest`.`statut_devis` (`id`, `libelle`) VALUES (4, 'rejeté');
COMMIT;
-- -----------------------------------------------------
-- Data for table `paysagest`.`periodicite`
-- -----------------------------------------------------
START TRANSACTION;
USE `paysagest`;
INSERT INTO `paysagest`.`periodicite` (`id`, `libelle`, `interval`, `unite`) VALUES (1, 'mensuelle', 'MONTH', 1);
INSERT INTO `paysagest`.`periodicite` (`id`, `libelle`, `interval`, `unite`) VALUES (2, 'bimestrielle', 'MONTH', 2);
INSERT INTO `paysagest`.`periodicite` (`id`, `libelle`, `interval`, `unite`) VALUES (3, 'trimestrielle', 'MONTH', 3);
COMMIT;
-- -----------------------------------------------------
-- Data for table `paysagest`.`prefix`
-- -----------------------------------------------------
START TRANSACTION;
USE `paysagest`;
INSERT INTO `paysagest`.`prefix` (`id`, `table_nom`, `libelle`) VALUES (1, 'client', 'CL');
INSERT INTO `paysagest`.`prefix` (`id`, `table_nom`, `libelle`) VALUES (2, 'contrat', 'C');
INSERT INTO `paysagest`.`prefix` (`id`, `table_nom`, `libelle`) VALUES (3, 'devis', 'DC');
INSERT INTO `paysagest`.`prefix` (`id`, `table_nom`, `libelle`) VALUES (4, 'facture', 'FC');
COMMIT;Hors ligne