diff options
Diffstat (limited to 'php/Model.php')
| -rw-r--r-- | php/Model.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/php/Model.php b/php/Model.php new file mode 100644 index 0000000..9d0f80f --- /dev/null +++ b/php/Model.php | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | <?php | ||
| 2 | // php/Model.php | ||
| 3 | |||
| 4 | class Model extends Connection | ||
| 5 | { | ||
| 6 | private $db; // instance de connexion | ||
| 7 | |||
| 8 | public function __construct() | ||
| 9 | { | ||
| 10 | $this->db = parent::getInstance(); | ||
| 11 | self::create_tables(); | ||
| 12 | } | ||
| 13 | |||
| 14 | // code SQL | ||
| 15 | function create_tables() | ||
| 16 | { | ||
| 17 | // la table prestations est liée à la table clients | ||
| 18 | // les tables devis_factures, cesu et locations sont liées à la table prestations | ||
| 19 | $this->db->exec("CREATE TABLE IF NOT EXISTS clients (ID INTEGER, prenom_nom TEXT, adresse TEXT, code_client TEXT, commentaires TEXT, PRIMARY KEY(ID AUTOINCREMENT));"); | ||
| 20 | $this->db->exec("CREATE TABLE IF NOT EXISTS prestations (ID INTEGER, ID_client INTEGER, combientieme_fois INTEGER, code_presta TEXT, date INTEGER, type TEXT, mode_paiement TEXT, commentaires TEXT, PRIMARY KEY(ID AUTOINCREMENT));"); | ||
| 21 | $this->db->exec("CREATE TABLE IF NOT EXISTS devis_factures (ID INTEGER, ID_presta INTEGER, validite_devis TEXT, signature_devis TEXT, taches TEXT, machine TEXT, OS TEXT, donnees TEXT, cles_licences TEXT, total_main_d_oeuvre INTEGER, pieces TEXT, total_pieces INTEGER, deplacement INTEGER, total_HT INTEGER, PRIMARY KEY(ID AUTOINCREMENT));"); | ||
| 22 | $this->db->exec("CREATE TABLE IF NOT EXISTS cesu (ID INTEGER, ID_presta INTEGER, taches TEXT, duree_travail TEXT, salaire INTEGER, PRIMARY KEY(ID AUTOINCREMENT));"); | ||
| 23 | $this->db->exec("CREATE TABLE IF NOT EXISTS locations (ID INTEGER, ID_presta INTEGER, nature_bien TEXT, valeur INTEGER, etat_des_lieux_debut TEXT, etat_des_lieux_fin TEXT, total_HT INTEGER, PRIMARY KEY(ID AUTOINCREMENT));"); | ||
| 24 | |||
| 25 | // les types de variables de sqlite sont peu nombreux et autorisent un typage automatique | ||
| 26 | // le "type indiqué" est indiqué dans l'instruction CREATE TABLE | ||
| 27 | // https://www.leppf.com/site/spip.php?article89 | ||
| 28 | |||
| 29 | // || type indiqué || type choisi automatiquement || autre types possibles || | ||
| 30 | // --------------------------------------------------------------------------- | ||
| 31 | // || TEXT || TEXT || BLOB, NULL || | ||
| 32 | // || INTEGER || INTEGER (de 1 à 8 octets) || REAL, TEXT, BLOB, NULL || | ||
| 33 | // || REAL || REAL (flottant sur 9 octets) || TEXT, BLOB, NULL || | ||
| 34 | // || NUMERIC || INTEGER ou REAL || TEXT, BLOB, NULL || | ||
| 35 | // || NONE || indéfini || dépend des données || | ||
| 36 | |||
| 37 | // du code SQL écrit pour d'autres SGBD devrait fonctionner, | ||
| 38 | // sqlite fera des conversions dans ses propres types avec les problèmes qu'on peut imaginer | ||
| 39 | |||
| 40 | // pour les dates, on stockera à priori le timestamp | ||
| 41 | } | ||
| 42 | } | ||
