/*
scripte de creation des table génériques 
pour le calcul des pnéalités

-- sekection des entries
-- les entries
-- - les non echu
-- - les bloqué
-- - les lettre totaux dont la date du dernier lettrage < date echanche
--
-- il reste
-- les entries echu non bloqué 
--  non totalement lettre
-- ou lettre apres la date echéance

-- caculer pénalité jusque date lettrage total ou date du jour si non lettré

*/

-- table des pénalitées à populer
Drop table If exists TMP_LATE_INTEREST_RATES;
Create Table TMP_LATE_INTEREST_RATES (
    TMP_LATE_INTEREST_RATES__ID Int Unsigned Not Null Primary Key AUTO_INCREMENT
    , TMP_LATE_INTEREST_RATES__LATE_INTEREST_NAMEID Int Unsigned Not Null 
    , TMP_LATE_INTEREST_RATES__DATE DATE
    , TMP_LATE_INTEREST_RATES__RATE DECIMAL(5,5)
    , Unique Key (TMP_LATE_INTEREST_RATES__LATE_INTEREST_NAMEID
                    , TMP_LATE_INTEREST_RATES__DATE
                ) 
);
-- utile ???
-- -- -- tables des données de consolidation a qui on applique les pénalité
-- -- -- ex les compte ou les dossier ou lettrage 
-- -- -- en fonction du projets ou regle metier
-- -- --  contient également la grille de taux à appliquer
-- -- Drop table If exists TMP_LATE_INTEREST_GRP_DATA;
-- -- Create Table TMP_LATE_INTEREST_GRP_DATA (
-- --     TMP_LATE_INTEREST_GRP_DATA__ID Int Unsigned Not Null Primary Key
-- --     , TMP_LATE_INTEREST_GRP_DATA__LATE_INTEREST_NAMEID Int Unsigned Not null
-- --     , TMP_LATE_INTEREST_GRP_DATA__RATE_INCREASE DECIMAL(5,5)
-- --     , TMP_LATE_INTEREST_GRP_DATA__RATE_COEF DECIMAL(7,5)
-- --     , TMP_LATE_INTEREST_GRP_DATA__PENALITY_AMOUNT DECIMAL(30,5) default 0
-- --     
-- --     , Index (TMP_LATE_INTEREST_GRP_DATA__LATE_INTEREST_NAMEID)
-- -- );


-- table des données cible des pénalités
-- contient les données débiteur les plus anciens par unité de regroupement
-- l'unité de regroupement peut être par exemple le code lettrage
-- c'est sur ces donnée que la pénalité sera calculé
-- en principe elle est le point de départ du calcul de la pénalité par unité 
--  de regroupement

Drop table If exists TMP_LATE_INTEREST_TRG_DATA;
Create Table TMP_LATE_INTEREST_TRG_DATA (
    TMP_LATE_INTEREST_TRG_DATA__ID Int Unsigned Not Null Primary Key AUTO_INCREMENT
    , TMP_LATE_INTEREST_TRG_DATA__DATAID Int Unsigned Not Null -- id de mouvement
    , TMP_LATE_INTEREST_TRG_DATA__GRPID Int Unsigned  -- id de la donnée de regrouppement (ex code letttrage)
    , TMP_LATE_INTEREST_TRG_DATA__LATE_INTEREST_NAMEID Int Unsigned  -- id de la grille de taux
    , TMP_LATE_INTEREST_TRG_DATA__PENALITY_AMOUNT DECIMAL(30,5) Not Null Default 0
    , Index (TMP_LATE_INTEREST_TRG_DATA__DATAID)
    , Index (TMP_LATE_INTEREST_TRG_DATA__GRPID)
    , Index (TMP_LATE_INTEREST_TRG_DATA__LATE_INTEREST_NAMEID)
);


-- les données permetant de calculer les pénalité
-- par exemples les facture echues
-- a populer en classant par l'id de la donné (id compte) + date !!!!!
Drop table If exists TMP_LATE_INTEREST_SRC_DATA;
Create table TMP_LATE_INTEREST_SRC_DATA (
    TMP_LATE_INTEREST_SRC_DATA__ID Int Unsigned Not Null Primary Key AUTO_INCREMENT
    , TMP_LATE_INTEREST_SRC_DATA__DATAID Int Unsigned Not Null -- id de mouvement
--     , TMP_LATE_INTEREST_SRC_DATA__GRPID Int Unsigned -- id de la donnée de regrouppement (ex code letttrage)
    , TMP_LATE_INTEREST_SRC_DATA__TMP_LATE_INTEREST_TRG_DATAID Int Unsigned Not Null
    , TMP_LATE_INTEREST_SRC_DATA__DATE DATE
    , TMP_LATE_INTEREST_SRC_DATA__AMOUNT DECIMAL(30,5)
    , TMP_LATE_INTEREST_SRC_DATA__ALLOW_NEGATIVE_PENALITY Smallint Not Null Default 0
    , Index(TMP_LATE_INTEREST_SRC_DATA__DATAID)
--     , Index(TMP_LATE_INTEREST_SRC_DATA__GRPID)
    , Index(TMP_LATE_INTEREST_SRC_DATA__TMP_LATE_INTEREST_TRG_DATAID)
    , Index(TMP_LATE_INTEREST_SRC_DATA__DATE)
);