summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2022-12-02 15:29:02 +0100
committerpolo <ordipolo@gmx.fr>2022-12-02 15:29:02 +0100
commit6b55446d12a5c39d5a4a4584bfabc7507c2f9b74 (patch)
tree8e2e337b93391225d5e702a553314164f6139d86
parent473ee4ec50a6bfdfa5c145471b077b7e3749beeb (diff)
downloadAppliGestionPHP-6b55446d12a5c39d5a4a4584bfabc7507c2f9b74.zip
date<->timestamp, ===, renommage, latex
-rw-r--r--config.php22
-rw-r--r--latex/devis.tex (renamed from LaTeX/devis.tex)0
-rw-r--r--latex/enveloppe_recto.tex (renamed from LaTeX/enveloppe_recto.tex)0
-rw-r--r--latex/enveloppe_verso.tex (renamed from LaTeX/enveloppe_verso.tex)0
-rw-r--r--latex/facture.tex (renamed from LaTeX/facture.tex)0
-rw-r--r--latex/location.tex (renamed from LaTeX/location.tex)0
-rw-r--r--latex/ordipolo.png (renamed from LaTeX/ordipolo.png)bin46751 -> 46751 bytes
-rw-r--r--php/Connection.php (renamed from php/ConnectionDatabase.php)2
-rw-r--r--php/DateTimestamp.php50
-rw-r--r--php/Latex.php84
-rw-r--r--php/Model.php51
-rw-r--r--php/Zenity.php (renamed from php/ZenityClasses.php)14
-rw-r--r--php/compileLatex.php30
-rw-r--r--php/dependances.php26
-rw-r--r--php/functions.php2
-rw-r--r--php/latexToPdf.php38
-rwxr-xr-xphp/main.php67
-rw-r--r--php/saisie.php16
-rw-r--r--php/zenity_setup.php22
19 files changed, 259 insertions, 165 deletions
diff --git a/config.php b/config.php
index 5933242..89a25cc 100644
--- a/config.php
+++ b/config.php
@@ -10,27 +10,29 @@ $business_name = 'ORDIPOLO';
10$db_name = "ordipolo"; 10$db_name = "ordipolo";
11 11
12// défaut = racine de l'appli = dossier parent de celui du code source 12// défaut = racine de l'appli = dossier parent de celui du code source
13// $db_place = '../'; 13// $db_place = '../data/';
14$db_place = '../data/'; 14$db_place = '../data/';
15 15
16 16
17// $receipts = 'LaTeX/'; 17// le dossier latex par défaut est celui "inclu" dans ce programme
18$receipts = 'LaTeX/'; 18// $receipts = '../latex/';
19$receiptsStorageLaTeX = '~ORDIPOLO/factures/LaTeX/'; 19$receipts = '../latex/';
20$receiptsStorageLaTeX = '~ORDIPOLO/factures/latex/';
20$receiptsStoragePDF = '~ORDIPOLO/factures/PDF/'; 21$receiptsStoragePDF = '~ORDIPOLO/factures/PDF/';
21 22
22// $quotations = 'LaTeX/'; 23// $quotations = '../latex/';
23$quotations = 'LaTeX/'; 24$quotations = '../latex/';
24$quotationsStorageLaTeX = '~ORDIPOLO/devis/LaTeX/'; 25$quotationsStorageLaTeX = '~ORDIPOLO/devis/latex/';
25$quotationsStoragePDF = '~ORDIPOLO/devis/PDF/'; 26$quotationsStoragePDF = '~ORDIPOLO/devis/PDF/';
26 27
27// $envelopes = 'LaTeX/'; 28// $envelopes = '../latex/';
28$envelopes = 'LaTeX/'; 29$envelopes = '../latex/';
29$envelopesStorageLaTeX = '~ORDIPOLO/enveloppes/LaTeX/'; 30$envelopesStorageLaTeX = '~ORDIPOLO/enveloppes/latex/';
30$envelopesStoragePDF = '~ORDIPOLO/enveloppes/PDF/'; 31$envelopesStoragePDF = '~ORDIPOLO/enveloppes/PDF/';
31 32
32 33
33// $pub = "~/ORDIPOLO/PUB/"; // dossier extérieur au choix 34// $pub = "~/ORDIPOLO/PUB/"; // dossier extérieur au choix
35// $pub = "../pub/";
34$pub = "../pub/"; // dossier pub inclu dans l'appli 36$pub = "../pub/"; // dossier pub inclu dans l'appli
35 37
36// $flyer = "flyer.xcf"; 38// $flyer = "flyer.xcf";
diff --git a/LaTeX/devis.tex b/latex/devis.tex
index debcdc5..debcdc5 100644
--- a/LaTeX/devis.tex
+++ b/latex/devis.tex
diff --git a/LaTeX/enveloppe_recto.tex b/latex/enveloppe_recto.tex
index d1f3f43..d1f3f43 100644
--- a/LaTeX/enveloppe_recto.tex
+++ b/latex/enveloppe_recto.tex
diff --git a/LaTeX/enveloppe_verso.tex b/latex/enveloppe_verso.tex
index 24baa8a..24baa8a 100644
--- a/LaTeX/enveloppe_verso.tex
+++ b/latex/enveloppe_verso.tex
diff --git a/LaTeX/facture.tex b/latex/facture.tex
index babb2ab..babb2ab 100644
--- a/LaTeX/facture.tex
+++ b/latex/facture.tex
diff --git a/LaTeX/location.tex b/latex/location.tex
index bcfb1e5..bcfb1e5 100644
--- a/LaTeX/location.tex
+++ b/latex/location.tex
diff --git a/LaTeX/ordipolo.png b/latex/ordipolo.png
index 2acd67d..2acd67d 100644
--- a/LaTeX/ordipolo.png
+++ b/latex/ordipolo.png
Binary files differ
diff --git a/php/ConnectionDatabase.php b/php/Connection.php
index b26d0bd..bdc7aa9 100644
--- a/php/ConnectionDatabase.php
+++ b/php/Connection.php
@@ -1,5 +1,5 @@
1<?php 1<?php
2// php/ConnectionDatabase.php 2// php/Connection.php
3 3
4class Connection extends PDO 4class Connection extends PDO
5{ 5{
diff --git a/php/DateTimestamp.php b/php/DateTimestamp.php
new file mode 100644
index 0000000..ca07b0a
--- /dev/null
+++ b/php/DateTimestamp.php
@@ -0,0 +1,50 @@
1<?php
2// php/DateTimestamp.php
3
4class DateTimestamp
5{
6 private $date;
7 static public $date_format = 'EU'; // dates européennes jj-mm-aaaa par défaut
8
9 // date jour/mois/année (string) -> timestamp (int)
10 private function get_timestamp(): int
11 {
12 if(self::$date_format === 'EU')
13 {
14 // change jj/mm/aaaa en jj-mm-aaaa
15 $this->date = preg_replace('#/#', '-', $this->date);
16 }
17 elseif(self::$date_format === 'US')
18 {
19 // change mm-dd.yyyy en mm/dd/yyyy
20 $this->date = preg_replace('#[-\.]#', '/', $this->date);
21 }
22 else
23 {
24 echo('Le fichier config.php comporte une erreur. La variable $date_format doit avoir pour valeur "EU" ou "US"');
25 die(); // brutal
26 }
27 return(strtotime($this->date));
28 // strtotime() devine le format en analysant la chaîne en entrée, on l'aide un peu
29 // avec des /, php considère que la date est américaine
30 // avec des - ou des ., php considère que la date est européenne
31 }
32
33 // timestamp (int) -> date jj-mm-aaaa (string)
34 private function get_date(): string
35 {
36 if(self::$date_format === 'EU')
37 {
38 return(date("j-m-Y", $this->date));
39 }
40 elseif(self::$date_format === 'US')
41 {
42 return(date("m/d/Y", $this->date));
43 }
44 else
45 {
46 echo('Le fichier config.php comporte une erreur. La variable $date_format doit avoir pour valeur "EU" ou "US"');
47 die(); // brutal
48 }
49 }
50}
diff --git a/php/Latex.php b/php/Latex.php
new file mode 100644
index 0000000..e8ed763
--- /dev/null
+++ b/php/Latex.php
@@ -0,0 +1,84 @@
1<?php
2// php/Latex.php
3//
4// génération du code LaTeX
5
6abstract class Latex
7{
8 protected $fileName = '';
9 protected $latexPath = '';
10 protected $pdfPath = '';
11
12 protected function createFile(string $latex, string $fileName, string $latexPath)
13 {
14 // nom du fichier créé = nom.tex
15 // pour les devis, factures et enveloppes, le nom est le code la prestation
16 // pour les livre de recettes et registres des achats mensuels:
17 // le nom du fichier suit cet exemple: "Recettes-2022-06-Juin.tex"
18 // pour le livre de recette ou le registre des achats annuel, même principe: "Achats-2022.tex"
19 // pour le bilan comptable annuel, ça donne: "Bilan-2022.tex"
20 $fichier = fopen($latexPath . $fileName, "w+");
21 fputs($fichier, $latex);
22 fclose($fichier);
23 }
24}
25
26
27abstract class PrestaLatex extends Latex
28{
29 public function __construct(string $quoi, , string $codePresta)
30 {
31 nameTheFile($quoi, $codePresta);
32 }
33
34 // forme = code-presta.tex
35 protected function nameTheFile(string $quoi, string $codePresta)
36 {
37 $this->fileName = $quoi . '-' . $codePresta . '.tex';
38 }
39}
40
41class DevisLatex extends PrestaLatex
42{}
43
44class FactureLatex extends PrestaLatex
45{}
46
47class LocationLatex extends PrestaLatex
48{}
49
50class EnveloppeRectoLatex extends PrestaLatex
51{}
52class EnveloppeVersoLatex extends PrestaLatex
53{}
54
55
56abstract class ComptaLatex extends Latex
57{
58 public function __construct(string $quoi, , string $annee, int $numeroMois = 0)
59 {
60 nameTheFile($quoi, $annee, $numeroMois);
61 }
62
63 // forme = Recettes-2022-06-Juin.tex ou Recettes-2022.tex
64 // type de 'annee'?
65 protected function nameTheFile(string $quoi, string $annee, int $numeroMois = 0)
66 {
67 $this->fileName = $quoi . '-' . $annee;
68 $mois = ['', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];
69 if($numeroMois > 0 && $numeroMois <= 12)
70 {
71 $this->fileName .= '-' . $numeroMois . '-' . $mois[$numeroMois];
72 }
73 $this->fileName .= '.tex';
74 }
75}
76
77class LivreRecettesLatex extends ComptaLatex
78{}
79
80class RegistreAchatsLatex extends ComptaLatex
81{}
82
83class BilanLatex extends ComptaLatex
84{}
diff --git a/php/Model.php b/php/Model.php
index f3f1fe7..d26b081 100644
--- a/php/Model.php
+++ b/php/Model.php
@@ -4,18 +4,15 @@
4class Model extends Connection 4class Model extends Connection
5{ 5{
6 private $db; // instance de connexion 6 private $db; // instance de connexion
7 private $date = ''; 7 public $date;
8 static public $date_format; // dates européennes jj-mm-aaaa
9 // pourquoi ne pas mettre les fonctions concernées dans une interface?
10 8
11 public function __construct() 9 public function __construct()
12 { 10 {
13 $this->db = parent::getInstance(); // connexion 11 $this->db = parent::getInstance(); // connexion
14 self::create_tables();
15 } 12 }
16 13
17 // code SQL 14 // code SQL
18 function create_tables() 15 public function create_tables()
19 { 16 {
20 // la table prestations est liée à la table clients 17 // la table prestations est liée à la table clients
21 // les tables devis_factures, cesu et locations sont liées à la table prestations 18 // les tables devis_factures, cesu et locations sont liées à la table prestations
@@ -42,48 +39,4 @@ class Model extends Connection
42 39
43 // pour les dates, on stockera à priori le timestamp 40 // pour les dates, on stockera à priori le timestamp
44 } 41 }
45
46
47 // date jour/mois/année (string) -> timestamp (int)
48 private function get_timestamp(): int
49 {
50 if(self::$date_format == 'EU')
51 {
52 // change jj/mm/aaaa en jj-mm-aaaa
53 $this->date = preg_replace('#/#', '-', $this->date);
54 }
55 elseif(self::$date_format == 'US')
56 {
57 // change mm-dd.yyyy en mm/dd/yyyy
58 $this->date = preg_replace('#[-\.]#', '/', $this->date);
59 }
60 else
61 {
62 echo('Le fichier config.php comporte une erreur. La variable $date_format doit avoir pour valeur "EU" ou "US"');
63 die(); // brutal
64 }
65 return(strtotime($this->date));
66 // strtotime() devine le format en analysant la chaîne en entrée, on l'aide un peu
67 // avec des /, php considère que la date est américaine
68 // avec des - ou des ., php considère que la date est européenne
69 }
70
71 // timestamp (int) -> date jj-mm-aaaa (string)
72 private function get_date(): string
73 {
74 if(self::$date_format == 'EU')
75 {
76 return(date("j-m-Y", $this->date));
77 }
78 elseif(self::$date_format == 'US')
79 {
80 return(date("m/d/Y", $this->date));
81 }
82 else
83 {
84 echo('Le fichier config.php comporte une erreur. La variable $date_format doit avoir pour valeur "EU" ou "US"');
85 die(); // brutal
86 }
87 }
88
89} 42}
diff --git a/php/ZenityClasses.php b/php/Zenity.php
index 7965012..a04b794 100644
--- a/php/ZenityClasses.php
+++ b/php/Zenity.php
@@ -1,9 +1,9 @@
1<?php 1<?php
2// php/ZenityClasses.php 2// php/Zenity.php
3// 3//
4// commande système zenity 4// commande système zenity
5 5
6abstract class Zenity_cmd 6abstract class ZenityCmd
7{ 7{
8 protected $command = 'zenity'; 8 protected $command = 'zenity';
9 protected $command_type = ''; 9 protected $command_type = '';
@@ -29,7 +29,7 @@ abstract class Zenity_cmd
29} 29}
30 30
31 31
32class Zenity_list extends Zenity_cmd 32class ZenityList extends ZenityCmd
33{ 33{
34 public function __construct($text, array $rows) 34 public function __construct($text, array $rows)
35 { 35 {
@@ -58,7 +58,7 @@ class Zenity_list extends Zenity_cmd
58 } 58 }
59} 59}
60 60
61class Zenity_question extends Zenity_cmd 61class ZenityQuestion extends ZenityCmd
62{ 62{
63 public function __construct($text) 63 public function __construct($text)
64 { 64 {
@@ -70,7 +70,7 @@ class Zenity_question extends Zenity_cmd
70 } 70 }
71} 71}
72 72
73class Zenity_forms extends Zenity_cmd 73class ZenityForms extends ZenityCmd
74{ 74{
75 public function __construct($text, array $rows) 75 public function __construct($text, array $rows)
76 { 76 {
@@ -91,7 +91,7 @@ class Zenity_forms extends Zenity_cmd
91 } 91 }
92} 92}
93 93
94class Zenity_calendar extends Zenity_cmd 94class ZenityCalendar extends ZenityCmd
95{ 95{
96 public function __construct($text) 96 public function __construct($text)
97 { 97 {
@@ -100,7 +100,7 @@ class Zenity_calendar extends Zenity_cmd
100 } 100 }
101} 101}
102 102
103class Zenity_entry extends Zenity_cmd 103class ZenityEntry extends ZenityCmd
104{ 104{
105 public function __construct($text) 105 public function __construct($text)
106 { 106 {
diff --git a/php/compileLatex.php b/php/compileLatex.php
deleted file mode 100644
index ccd9dab..0000000
--- a/php/compileLatex.php
+++ /dev/null
@@ -1,30 +0,0 @@
1<?php
2// compileLatex.php
3
4// contenu
5$codeLaTeX = '\documentclass{article}
6
7\usepackage[francais]{babel}
8\usepackage[utf8]{inputenc}
9\usepackage[T1]{fontenc}
10
11\begin{document}
12 Bravo, ça compile !!
13\end{document}';
14
15
16// ficher tex
17// regarder la doc, php-cli permettrait de manipuler les fichiers directement comme le bash
18$fichier = fopen("latex.tex", "w+");
19fputs($fichier, $codeLaTeX);
20fclose($fichier);
21
22// compilation
23exec('pdflatex latex.tex');
24
25// nettoyage
26unlink("latex.aux");
27unlink("latex.log");
28unlink("latex.tex");
29
30exec('xdg-open latex.pdf');
diff --git a/php/dependances.php b/php/dependances.php
index 4a5667e..66ce414 100644
--- a/php/dependances.php
+++ b/php/dependances.php
@@ -11,14 +11,14 @@
11// - zenity 11// - zenity
12 12
13// zenity disponible 13// zenity disponible
14if(exec("zenity --version 2> /dev/null") == '') // commande qui n'ouvre pas de fenêtre, erreur si la chaine est vide parce que la sortie d'erreur va dans /dev/null 14if(exec("zenity --version 2> /dev/null") === '') // commande qui n'ouvre pas de fenêtre, erreur si la chaine est vide parce que la sortie d'erreur va dans /dev/null
15{ 15{
16 printf("Impossible de lancer zenity. Veuillez installer le paquet zenity\n"); 16 printf("Impossible de lancer zenity. Veuillez installer le paquet zenity\n");
17 exit(); 17 exit();
18} 18}
19 19
20// compilateur pdflatex disponible 20// compilateur pdflatex disponible
21if(exec("pdflatex -version 2> /dev/null") == '') // erreur si la chaine est vide parce que la sortie d'erreur va dans /dev/null 21if(exec("pdflatex -version 2> /dev/null") === '') // erreur si la chaine est vide parce que la sortie d'erreur va dans /dev/null
22{ 22{
23 printf("Impossible de lancer pdflatex. Veuillez installer une distribution LaTeX.\n"); 23 printf("Impossible de lancer pdflatex. Veuillez installer une distribution LaTeX.\n");
24 exit(); 24 exit();
@@ -37,10 +37,10 @@ if(!extension_loaded("pdo_sqlite"))
37 37
38 38
39// client sqlite 39// client sqlite
40if($exec_mode == 'gui') 40if($exec_mode === 'gui')
41{ 41{
42 // sqlitebrowser disponible 42 // sqlitebrowser disponible
43 if(exec("which sqlitebrowser 2> /dev/null") != '') // which parcourt les dossiers du PATH et affiche les chemins trouvés, erreur si la chaine est vide parce que la sortie d'erreur va dans /dev/null 43 if(exec("which sqlitebrowser 2> /dev/null") !== '') // which parcourt les dossiers du PATH et affiche les chemins trouvés, erreur si la chaine est vide parce que la sortie d'erreur va dans /dev/null
44 { 44 {
45 $sqlitebrowser_enable = true; 45 $sqlitebrowser_enable = true;
46 } 46 }
@@ -49,32 +49,32 @@ if($exec_mode == 'gui')
49 { 49 {
50 printf("Sqlitebrowser n'est pas disponible. J'espère que vous maîtrisez le SQL.\n"); 50 printf("Sqlitebrowser n'est pas disponible. J'espère que vous maîtrisez le SQL.\n");
51 51
52 if(exec("which xterm 2> /dev/null") != '' && exec("xterm -v 2> /dev/null") != '') 52 if(exec("which xterm 2> /dev/null") !== '' && exec("xterm -v 2> /dev/null") !== '')
53 { 53 {
54 $x_term_ccommand = 'xterm -e'; 54 $x_term_ccommand = 'xterm -e';
55 } 55 }
56 elseif(exec("which urxvt 2> /dev/null") != '') 56 elseif(exec("which urxvt 2> /dev/null") !== '')
57 { 57 {
58 $x_term_ccommand = 'urxvt -e'; 58 $x_term_ccommand = 'urxvt -e';
59 } 59 }
60 elseif(exec("which lxterminal 2> /dev/null") != '' && exec("lxterminal -v 2> /dev/null") != '') 60 elseif(exec("which lxterminal 2> /dev/null") !== '' && exec("lxterminal -v 2> /dev/null") !== '')
61 { 61 {
62 $x_term_ccommand = 'lxterminal -e'; 62 $x_term_ccommand = 'lxterminal -e';
63 } 63 }
64 elseif(exec("which xfce4-terminal 2> /dev/null") != '' && exec("xfce4-terminal -V 2> /dev/null") != '') 64 elseif(exec("which xfce4-terminal 2> /dev/null") !== '' && exec("xfce4-terminal -V 2> /dev/null") !== '')
65 { 65 {
66 $x_term_ccommand = 'xfce4-terminal -x'; 66 $x_term_ccommand = 'xfce4-terminal -x';
67 } 67 }
68 elseif(exec("which gnome-terminal 2> /dev/null") != '') 68 elseif(exec("which gnome-terminal 2> /dev/null") !== '')
69 { 69 {
70 $x_term_ccommand = 'gnome-terminal --'; 70 $x_term_ccommand = 'gnome-terminal --';
71 } 71 }
72 elseif(exec("which konsole 2> /dev/null") != '' && exec("konsole -v 2> /dev/null") != '') 72 elseif(exec("which konsole 2> /dev/null") !== '' && exec("konsole -v 2> /dev/null") !== '')
73 { 73 {
74 $x_term_ccommand = 'konsole -e'; 74 $x_term_ccommand = 'konsole -e';
75 } 75 }
76 // pour MAC - NON TESTÉ !! (possibilité de détecter le système avec uname?) 76 // pour MAC - NON TESTÉ !! (possibilité de détecter le système avec uname?)
77 //~ elseif(exec("which Terminal 2> /dev/null") != '') 77 //~ elseif(exec("which Terminal 2> /dev/null") !== '')
78 //~ { 78 //~ {
79 //~ $x_term_ccommand = 'open -a Terminal -e'; // ne marche probablement pas 79 //~ $x_term_ccommand = 'open -a Terminal -e'; // ne marche probablement pas
80 //~ } 80 //~ }
@@ -86,11 +86,11 @@ if($exec_mode == 'gui')
86} 86}
87 87
88// sqlite CLI disponible 88// sqlite CLI disponible
89if(exec("which sqlite 2> /dev/null") != '' && exec("sqlite --version 2> /dev/null") != '') 89if(exec("which sqlite 2> /dev/null") !== '' && exec("sqlite --version 2> /dev/null") !== '')
90{ 90{
91 $sqlite_cli = 'sqlite'; 91 $sqlite_cli = 'sqlite';
92} 92}
93elseif(exec("which sqlite3 2> /dev/null") != '' && exec("sqlite3 --version 2> /dev/null") != '') 93elseif(exec("which sqlite3 2> /dev/null") !== '' && exec("sqlite3 --version 2> /dev/null") !== '')
94{ 94{
95 $sqlite_cli = 'sqlite3'; 95 $sqlite_cli = 'sqlite3';
96} 96}
diff --git a/php/functions.php b/php/functions.php
index 61bc13e..83ebead 100644
--- a/php/functions.php
+++ b/php/functions.php
@@ -5,7 +5,7 @@
5function window_app_command(string $app, string $path = ''): string 5function window_app_command(string $app, string $path = ''): string
6{ 6{
7 $command = 'nohup ' . $app; // détache l'appli du script PHP 7 $command = 'nohup ' . $app; // détache l'appli du script PHP
8 if($path != '') 8 if($path !== '')
9 { 9 {
10 $command .= ' ' . $path; 10 $command .= ' ' . $path;
11 } 11 }
diff --git a/php/latexToPdf.php b/php/latexToPdf.php
new file mode 100644
index 0000000..18ff452
--- /dev/null
+++ b/php/latexToPdf.php
@@ -0,0 +1,38 @@
1<?php
2// php/latexToPdf.php
3
4// contenu
5$latex = '\documentclass{article}
6
7\usepackage[french]{babel}
8\usepackage[utf8]{inputenc}
9\usepackage[T1]{fontenc}
10
11\begin{document}
12 Bravo, ça compile !!
13\end{document}';
14
15$fileName = 'latex.tex';
16$latexPath = '';
17$pdfPath = '';
18
19//~ writeLatex($latex, $fileName, $latexPath);
20
21function latexToPdf(string $fileName, string $latexPath, string $pdfPath)
22{
23 $outputDir = '';
24 if($pdfPath !== '')
25 {
26 $outputDir = '-output-directory=' . $pdfPath . ' ';
27 }
28
29 // compilation
30 exec('pdflatex ' . $outputDir . $latexPath . $fileName);
31
32 // nettoyage
33 $basename = basename($fileName, '.tex');
34 unlink($pdfPath . $basename . '.aux');
35 unlink($pdfPath . $basename . '.log');
36}
37
38//~ latexToPdf($fileName, $latexPath, $pdfPath);
diff --git a/php/main.php b/php/main.php
index 5855606..88181ea 100755
--- a/php/main.php
+++ b/php/main.php
@@ -19,18 +19,22 @@ $x_term_command = ''; // commande terminal en mode graphique
19 19
20require('dependances.php'); // vérification des dépendances 20require('dependances.php'); // vérification des dépendances
21require('functions.php'); 21require('functions.php');
22require('DateTimestamp.php'); // objet date
23DateTimestamp::$date_format = $date_format; // dates européennes ou américaines
22 24
23require('ConnectionDatabase.php'); // class DB extends PDO, connexion à la base et création de la base et des tables si elles n'existent pas déjà 25require('Connection.php'); // class DB extends PDO, connexion à la base et création de la base et des tables si elles n'existent pas déjà
24require('Model.php'); // class Model extends DB, requêtes SQL 26require('Model.php'); // class Model extends DB, requêtes SQL
25Connection::$dsn = 'sqlite:' . $db_place; // Data Source Name = 1er paramètre du constructeur de PDO: $bdd = new PDO($dsn); 27Connection::$dsn = 'sqlite:' . $db_place; // Data Source Name = 1er paramètre du constructeur de PDO: $bdd = new PDO($dsn);
26Model::$date_format = $date_format; // dates européennes ou américaines
27$Database = new Model(); // connexion et méthodes pour manipuler la base de données
28 28
29require('ZenityClasses.php'); // méthodes pour créer les commandes 29$Database = new Model; // connexion et méthodes pour manipuler la base de données
30$Database->create_tables();
31$Database->date = new DateTimestamp;
32
33require('Zenity.php'); // commande système zenity
30require('zenity_setup.php'); // texte dans les fenêtres ET instanciation (un objet = une commande) 34require('zenity_setup.php'); // texte dans les fenêtres ET instanciation (un objet = une commande)
31 35
32// require('php/latex.php'); 36require('Latex.php'); // générer le code LaTeX
33// require('php/compileLatex.php'); 37require('latexToPdf.php'); // compilation
34 38
35 39
36// boucle principale 40// boucle principale
@@ -41,10 +45,10 @@ while($boucle)
41 $choix_niv1 = exec($MenuPrincipal->get()); 45 $choix_niv1 = exec($MenuPrincipal->get());
42 46
43 // enregistrement 47 // enregistrement
44 if($choix_niv1 == 'Nouvelle prestation') 48 if($choix_niv1 === 'Nouvelle prestation')
45 { 49 {
46 // est ce que le client est déjà dans la base? 50 // est ce que le client est déjà dans la base?
47 if(exec($QuestionNouveauClient->get()) == 0) // $? = 0 signifie oui 51 if(exec($QuestionNouveauClient->get()) === 0) // $? = 0 signifie oui
48 { 52 {
49 // saisie du nom du client et recherche 53 // saisie du nom du client et recherche
50 $client_saisie = exec($RechercheClient->get()); 54 $client_saisie = exec($RechercheClient->get());
@@ -52,7 +56,7 @@ while($boucle)
52 // sélection parmi les résultats 56 // sélection parmi les résultats
53 $ResultatsRechercheClient->set_entries(recherche_client($client_saisie)); 57 $ResultatsRechercheClient->set_entries(recherche_client($client_saisie));
54 $choix_niv2 = exec($ResultatsRechercheClient->get()); 58 $choix_niv2 = exec($ResultatsRechercheClient->get());
55 if($choix_niv2 != '') 59 if($choix_niv2 !== '')
56 { 60 {
57 echo "client trouvé\n"; 61 echo "client trouvé\n";
58 } 62 }
@@ -77,22 +81,22 @@ while($boucle)
77 81
78 } 82 }
79 83
80 // infos sur la prestation 84 // type comptable de prestation
81 $choix_niv2 = exec($MenuEnregistrement->get()); 85 $choix_niv2 = exec($MenuEnregistrement->get());
82 $continuer = true; 86 $continuer = true;
83 if($choix_niv2 == "Devis") 87 if($choix_niv2 === "Devis")
84 { 88 {
85 $type = 'DEVIS'; 89 $type = 'DEVIS';
86 } 90 }
87 elseif($choix_niv2 == "Facture") 91 elseif($choix_niv2 === "Facture")
88 { 92 {
89 $type = 'FACTURE'; 93 $type = 'FACTURE';
90 } 94 }
91 elseif($choix_niv2 == "CESU") 95 elseif($choix_niv2 === "CESU")
92 { 96 {
93 $type = 'CESU'; 97 $type = 'CESU';
94 } 98 }
95 elseif($choix_niv2 == "Pas de prestation") 99 elseif($choix_niv2 === "Pas de prestation")
96 { 100 {
97 $type = ''; 101 $type = '';
98 } 102 }
@@ -101,6 +105,7 @@ while($boucle)
101 $continuer = false; // retour menu principal 105 $continuer = false; // retour menu principal
102 } 106 }
103 107
108 // détail de la prestation
104 if($continuer) 109 if($continuer)
105 { 110 {
106 exec($Calendrier->get()); 111 exec($Calendrier->get());
@@ -108,39 +113,47 @@ while($boucle)
108 // enregistrement date et prestation en BDD 113 // enregistrement date et prestation en BDD
109 exec($CommentairePrestation->get()); 114 exec($CommentairePrestation->get());
110 // enregistrement commentaire en BDD 115 // enregistrement commentaire en BDD
116 // vérification?
117
118 // tableau récaptilatif et demande de confirmation des informations
119 // création fichiers LaTeX et PDF
120
121 // imprimer?
122 //~ $imprimer_facture = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer la facture?"');
123 //~ $imprimer_enveloppe = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer l\'adresse sur une enveloppe? (insérer une enveloppe DL sans fenêtre dans l\'imprimante"');
111 } 124 }
112 } 125 }
113 126
114 elseif($choix_niv1 == 'Fichier clients') 127 elseif($choix_niv1 === 'Fichier clients')
115 { 128 {
116 // quel affichage? un grand tableau avec zenity? une page web? un document LaTeX? 129 // quel affichage? un grand tableau avec zenity? une page web? un document LaTeX?
117 } 130 }
118 131
119 // documents à imprimer 132 // documents à imprimer
120 elseif($choix_niv1 == 'Créer/imprimer un document') 133 elseif($choix_niv1 === 'Créer/imprimer un document')
121 { 134 {
122 $choix_niv2 = exec($MenuDocuments->get()); 135 $choix_niv2 = exec($MenuDocuments->get());
123 if($choix_niv2 == 'Devis') 136 if($choix_niv2 === 'Devis')
124 { 137 {
125 138
126 } 139 }
127 elseif($choix_niv2 == 'Facture') 140 elseif($choix_niv2 === 'Facture')
128 { 141 {
129 142
130 } 143 }
131 elseif($choix_niv2 == 'Lettre avec adresse') 144 elseif($choix_niv2 === 'Lettre avec adresse')
132 { 145 {
133 146
134 } 147 }
135 elseif($choix_niv2 == 'Livre des recettes') 148 elseif($choix_niv2 === 'Livre des recettes')
136 { 149 {
137 150
138 } 151 }
139 elseif($choix_niv2 == "Registre des achats") 152 elseif($choix_niv2 === "Registre des achats")
140 { 153 {
141 154
142 } 155 }
143 elseif($choix_niv2 == "Bilan annuel") 156 elseif($choix_niv2 === "Bilan annuel")
144 { 157 {
145 158
146 } 159 }
@@ -151,18 +164,18 @@ while($boucle)
151 } 164 }
152 165
153 // Supports de communication 166 // Supports de communication
154 elseif($choix_niv1 == 'Communication') 167 elseif($choix_niv1 === 'Communication')
155 { 168 {
156 $choix_niv2 = exec($MenuCommunication->get()); 169 $choix_niv2 = exec($MenuCommunication->get());
157 if($choix_niv2 == 'Flyer (nécessite gimp)') 170 if($choix_niv2 === 'Flyer (nécessite gimp)')
158 { 171 {
159 exec(window_app_command('gimp', $flyer)); 172 exec(window_app_command('gimp', $flyer));
160 } 173 }
161 elseif($choix_niv2 == 'Carte de visite (nécessite scribus)') 174 elseif($choix_niv2 === 'Carte de visite (nécessite scribus)')
162 { 175 {
163 exec(window_app_command('scribus', $business_card)); 176 exec(window_app_command('scribus', $business_card));
164 } 177 }
165 elseif($choix_niv2 == 'Explorateur de fichiers') 178 elseif($choix_niv2 === 'Explorateur de fichiers')
166 { 179 {
167 exec(window_app_command($file_explorer, $pub)); 180 exec(window_app_command($file_explorer, $pub));
168 } 181 }
@@ -173,7 +186,7 @@ while($boucle)
173 } 186 }
174 187
175 // BDD 188 // BDD
176 elseif($choix_niv1 == 'Base de données') 189 elseif($choix_niv1 === 'Base de données')
177 { 190 {
178 if($sqlitebrowser_enable) 191 if($sqlitebrowser_enable)
179 { 192 {
diff --git a/php/saisie.php b/php/saisie.php
deleted file mode 100644
index 1c6563a..0000000
--- a/php/saisie.php
+++ /dev/null
@@ -1,16 +0,0 @@
1<?php
2// saisie.php
3
4// commentaire personnel enregistré à part
5$commentaire = exec('zenity --entry --width=400 --title="Enregistrer une prestation 4/4" --text="Commentaire sur le déroulement de la prestation."');
6var_dump($result);
7// afficher le résultat en LaTeX et demande de confirmation
8// écrire du LaTeX avec PHP
9
10// mise à jour de la base de données
11
12// message de confirmation (si la base a bien été mise à jour), puis demande pour imprimer une facture
13$imprimer_facture = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer la facture?"');
14
15// imprimer une enveloppe
16$imprimer_enveloppe = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer l\'adresse sur une enveloppe? (insérer une enveloppe DL sans fenêtre dans l\'imprimante"');
diff --git a/php/zenity_setup.php b/php/zenity_setup.php
index a16e0a4..b060c32 100644
--- a/php/zenity_setup.php
+++ b/php/zenity_setup.php
@@ -24,14 +24,14 @@ $commentaire_prestation_text = 'Nouvelle prestation 3/3 - Commentaires';
24 24
25// commandes système qui ouvrent les fenêtres zenity, un objet = une commande 25// commandes système qui ouvrent les fenêtres zenity, un objet = une commande
26// s'utilisent comme ceci: exec($Objet->get()); 26// s'utilisent comme ceci: exec($Objet->get());
27$MenuPrincipal = new Zenity_list($menu_principal_text, $menu_principal_entrees); 27$MenuPrincipal = new ZenityList($menu_principal_text, $menu_principal_entrees);
28$QuestionNouveauClient = new Zenity_question($question_nouveau_client_text); 28$QuestionNouveauClient = new ZenityQuestion($question_nouveau_client_text);
29$MenuEnregistrement = new Zenity_list($menu_enregistrement_text, $menu_enregistrement_entrees); 29$MenuEnregistrement = new ZenityList($menu_enregistrement_text, $menu_enregistrement_entrees);
30$MenuDocuments = new Zenity_list($menu_documents_text, $menu_documents_entrees); 30$MenuDocuments = new ZenityList($menu_documents_text, $menu_documents_entrees);
31$MenuCommunication = new Zenity_list($menu_communication_text, $menu_communication_entrees); 31$MenuCommunication = new ZenityList($menu_communication_text, $menu_communication_entrees);
32$RechercheClient = new zenity_entry($recherche_client_text); 32$RechercheClient = new zenityEntry($recherche_client_text);
33$ResultatsRechercheClient = new zenity_list($resultats_recherche_client_text, []); 33$ResultatsRechercheClient = new zenityList($resultats_recherche_client_text, []);
34$NouveauClient = new Zenity_forms($nouveau_client_text, $nouveau_client_entrees); 34$NouveauClient = new ZenityForms($nouveau_client_text, $nouveau_client_entrees);
35$Calendrier = new Zenity_calendar($calendar_text); 35$Calendrier = new ZenityCalendar($calendar_text);
36$FormulairePrestation = new Zenity_forms($formulaire_text, $formulaire_entrees); 36$FormulairePrestation = new ZenityForms($formulaire_text, $formulaire_entrees);
37$CommentairePrestation = new Zenity_entry($commentaire_prestation_text); 37$CommentairePrestation = new ZenityEntry($commentaire_prestation_text);