diff options
author | polo <ordipolo@gmx.fr> | 2023-03-06 12:54:43 +0100 |
---|---|---|
committer | polo <ordipolo@gmx.fr> | 2023-03-06 12:54:43 +0100 |
commit | 1766952a8499919a1275b0214f6ebda8dfc812e2 (patch) | |
tree | ad5bd20b8c5b29a26d1b63071d18af688a0b0df4 | |
parent | b9c74de6d12ef40ab4baf67303ab22a10fcd5b32 (diff) | |
download | AppliGestionPHP-1766952a8499919a1275b0214f6ebda8dfc812e2.zip |
Config.ini renseigner '' = valeur par défaut
-rw-r--r-- | README.txt | 29 | ||||
-rw-r--r-- | config.ini | 12 | ||||
-rw-r--r-- | src/Config.php | 63 | ||||
-rw-r--r-- | src/model/Prestations.php | 1 | ||||
-rw-r--r-- | src/view/Zenity.php | 3 | ||||
-rw-r--r-- | structure base de données.ods | bin | 25146 -> 26353 bytes |
6 files changed, 50 insertions, 58 deletions
@@ -14,33 +14,30 @@ pas de version windows prévue | |||
14 | dépendances obligatoires: | 14 | dépendances obligatoires: |
15 | - php-cli (certaines distributions (= debian) séparent php serveur web de php ligne de commande, installer le paquet php-cli) | 15 | - php-cli (certaines distributions (= debian) séparent php serveur web de php ligne de commande, installer le paquet php-cli) |
16 | version minimale de php = | 16 | version minimale de php = |
17 | - php-sqlite (moteur de base de données, activer si nécessaire le module pdo-sqlite dans le php.ini) | 17 | - php-sqlite (le moteur de base de données dans une extension php, si nécessaire activer pdo-sqlite dans le php.ini) |
18 | - un environnement graphique | 18 | - un environnement graphique (pas de mode console pure) |
19 | - zenity (fenêtres GTK pour scripts console) | 19 | - zenity (fenêtres GTK pour scripts bash) |
20 | - une distribution LaTeX permettant la compilation en PDF à l'aide de la commande pdflatex (j'utilise TeX Live) | 20 | - une distribution LaTeX, on a besoin de la commande pdflatex (j'utilise TeX Live) |
21 | - interpréteurs supportés: sh, bash, ksh, csh, tcsh | 21 | - interpréteurs supportés: sh, bash, ksh, csh, tcsh |
22 | 22 | ||
23 | dépendances recommandées: | 23 | dépendances optionnelles mais vivement recommandées: |
24 | - sqlite (tellement d'applications en ont besoin qu'il serait surprenant qu'il soit absent | 24 | - sqlite (= la version CLI du moteur, sqlite est une dépendance de nombreuses applications, il est probablement déjà installé sur votre PC) |
25 | |||
26 | dépendances optionnelles: | ||
27 | - sqlitebrowser (interface graphique pour sqlite) | 25 | - sqlitebrowser (interface graphique pour sqlite) |
28 | si absence de sqlitebrowser, le programme essaiera de lancer "sqlite3" dans le terminal "xterm" | 26 | en l'absence de sqlitebrowser, le programme essaiera de lancer "sqlite3" dans le terminal "xterm" |
29 | 27 | ||
30 | 28 | ||
31 | 29 | ||
32 | installation: | 30 | installation: |
33 | - placer ce dossier où vous le souhaitez | 31 | - placer ce dossier où vous le souhaitez |
34 | - vérifier les autorisations du dossier "data" et de tout son contenu (normallement il n'y a rien à faire) | 32 | - il est possible de placer les données ailleurs, renseigner donc le config.ini |
35 | - ouvrir le fichier "logiciel compta.desktop" avec un éditeur de texte et adapter les chemins | 33 | - même chose pour le dossier "pub" |
36 | - copier le fichier"logiciel compta.desktop" dans le dossier système des entrées du menu ou/et sur le bureau | 34 | - n'utilisant pas de serveur web, vous ne devriez pas avoir de problème de permission, dans le cas contraire les messages d'erreur concerneront le dossier "data" |
37 | - ouvrir le fichier config.php et corriger si nécessaire: $business_name, $db_name, $flyer, $business_card | 35 | - le ficher "logiciel compta" ou "logiciel compta.desktop" est un lanceur pour bureau linux, vous pouvez le copier-coller sur votre bureau ou dans le dossier système concerné, puis ouvrez le nouveau fichier avec un éditeur de texte et modifiez les chemins |
38 | - $db_name renvoit au fichier de données! ne pas écrire l'extension .sqlite qui est implicité, | ||
39 | son emplacement est par défaut à la racine de ce programme, tout comme ce fichier README.txt | ||
40 | |||
41 | 36 | ||
42 | configuration: | 37 | configuration: |
43 | - ça se passe dans le fichier config.ini | 38 | - ça se passe dans le fichier config.ini |
39 | - la syntaxe à respecter est simple, une ligne est un paramètre, les seuls "mots-clés" sont =, ; (pour les commentaires) et les ' délimitent les chaines de caractères lorsqu'elles comportent plusieurs mots | ||
40 | - la racine du programme est le dossier "src", les chemins commencent ainsi par "../" puisqu'il fut remonter | ||
44 | ATTENTION, si vous ne savez pas ce que vous faîtes, ne faites rien. | 41 | ATTENTION, si vous ne savez pas ce que vous faîtes, ne faites rien. |
45 | Pour réparer la configuration, saisissez une chaîne vide ou la valeur par défaut comme dans les exemples ci-dessous. | 42 | Pour réparer la configuration, saisissez une chaîne vide ou la valeur par défaut comme dans les exemples ci-dessous. |
46 | chaîne vide: | 43 | chaîne vide: |
@@ -24,18 +24,6 @@ latex_path = '../data/latex/' | |||
24 | ;pdf_path = '../data/pdf/' | 24 | ;pdf_path = '../data/pdf/' |
25 | pdf_path = '../data/pdf/' | 25 | pdf_path = '../data/pdf/' |
26 | 26 | ||
27 | ;receipts_latex = '../data/latex/' | ||
28 | ;receipts_pdf = '../data/pdf/' | ||
29 | |||
30 | ;quotations_latex = '../data/latex/' | ||
31 | ;quotations_pdf = '../data/pdf/' | ||
32 | |||
33 | ;envelopes_latex = '../data/latex/' | ||
34 | ;envelopes_pdf = '../data/pdf/' | ||
35 | |||
36 | ;rental_latex = '../data/latex/' | ||
37 | ;rental_pdf = '../data/pdf/' | ||
38 | |||
39 | ;pub = '../pub/' | 27 | ;pub = '../pub/' |
40 | pub_path = '../pub/' ;dossier pub inclu dans l'appli | 28 | pub_path = '../pub/' ;dossier pub inclu dans l'appli |
41 | 29 | ||
diff --git a/src/Config.php b/src/Config.php index 1557705..3e2b204 100644 --- a/src/Config.php +++ b/src/Config.php | |||
@@ -36,6 +36,41 @@ class Config | |||
36 | self::$raw_data = parse_ini_file($file_path); | 36 | self::$raw_data = parse_ini_file($file_path); |
37 | } | 37 | } |
38 | 38 | ||
39 | static public function hydrate() | ||
40 | { | ||
41 | foreach(self::$raw_data as $field => $value) | ||
42 | { | ||
43 | if($value != '') // valeur par défaut | ||
44 | { | ||
45 | if(isset(self::$$field)) // vérification du nom du champ | ||
46 | { | ||
47 | // vérification du contenu | ||
48 | if(self::fieldIsPath($field)) // cas où le champ db_path, latex_path, pdf_path ou pub_path | ||
49 | { | ||
50 | if(self::checkPath($field, $value)) | ||
51 | { | ||
52 | $value = self::slashAtEndOfPath($value); | ||
53 | self::$$field = $value; | ||
54 | } | ||
55 | } | ||
56 | else // tester le reste? | ||
57 | { | ||
58 | self::$$field = $value; | ||
59 | } | ||
60 | // else: la valeur par défaut est conservée | ||
61 | } | ||
62 | else | ||
63 | { | ||
64 | echo "debug: le fichier config.ini comporte une erreur, le champ: " . $field . " est incorrect,\nl'information contenue sur cette ligne ne sera pas utilisée\n"; | ||
65 | } | ||
66 | } | ||
67 | else | ||
68 | { | ||
69 | echo "debug: le champ " . $field . " est vide, la valeur par défaut " . self::$$field . " sera utilisée.\n"; | ||
70 | } | ||
71 | } | ||
72 | } | ||
73 | |||
39 | static private function fieldIsPath($field): bool | 74 | static private function fieldIsPath($field): bool |
40 | { | 75 | { |
41 | if($field === 'db_path' || $field === 'latex_path' || $field === 'pdf_path' || $field === 'pub_path') | 76 | if($field === 'db_path' || $field === 'latex_path' || $field === 'pdf_path' || $field === 'pub_path') |
@@ -82,34 +117,6 @@ class Config | |||
82 | } | 117 | } |
83 | } | 118 | } |
84 | 119 | ||
85 | static public function hydrate() | ||
86 | { | ||
87 | foreach(self::$raw_data as $field => $value) | ||
88 | { | ||
89 | if(isset(self::$$field)) // vérification du nom du champ | ||
90 | { | ||
91 | // vérification du contenu | ||
92 | if(self::fieldIsPath($field)) // cas où le champ db_path, latex_path, pdf_path ou pub_path | ||
93 | { | ||
94 | if(self::checkPath($field, $value)) | ||
95 | { | ||
96 | $value = self::slashAtEndOfPath($value); | ||
97 | self::$$field = $value; | ||
98 | } | ||
99 | } | ||
100 | else // tester le reste? | ||
101 | { | ||
102 | self::$$field = $value; | ||
103 | } | ||
104 | // else: la valeur par défaut est conservée | ||
105 | } | ||
106 | else | ||
107 | { | ||
108 | echo "debug: le fichier config.ini comporte une erreur, le champ: " . $field . " est incorrect,\nl'information contenue sur cette ligne ne sera pas utilisée\n"; | ||
109 | } | ||
110 | } | ||
111 | } | ||
112 | |||
113 | // à faire plus tard | 120 | // à faire plus tard |
114 | // transformer les chemins pour qu'ils soient relatifs au dossier 'src' où s'exécute le programme | 121 | // transformer les chemins pour qu'ils soient relatifs au dossier 'src' où s'exécute le programme |
115 | static private function adjustRelativePath($input) | 122 | static private function adjustRelativePath($input) |
diff --git a/src/model/Prestations.php b/src/model/Prestations.php index 2011dbe..d246a3d 100644 --- a/src/model/Prestations.php +++ b/src/model/Prestations.php | |||
@@ -93,6 +93,7 @@ class Prestations extends Model | |||
93 | public function makeCodePresta(Dates $Date, string $code_client) | 93 | public function makeCodePresta(Dates $Date, string $code_client) |
94 | { | 94 | { |
95 | // on récupère un tableau contenant toutes les prestations d'un client tous types confondus (devis, facture, cesu, location, enregistrement sans vente) | 95 | // on récupère un tableau contenant toutes les prestations d'un client tous types confondus (devis, facture, cesu, location, enregistrement sans vente) |
96 | // inconvénient: il peut y avoir plusieurs prestations avec le même numéro au compteur, à améliorer | ||
96 | $combientieme_fois = count($this->find(['ID_client' => $this->ID_client])) + 1; | 97 | $combientieme_fois = count($this->find(['ID_client' => $this->ID_client])) + 1; |
97 | 98 | ||
98 | $array_code = [$Date->getYear(), $Date->getMonth(), $Date->getDay(), $code_client, $this->type_presta, $combientieme_fois]; | 99 | $array_code = [$Date->getYear(), $Date->getMonth(), $Date->getDay(), $code_client, $this->type_presta, $combientieme_fois]; |
diff --git a/src/view/Zenity.php b/src/view/Zenity.php index 72d5eed..091a2c0 100644 --- a/src/view/Zenity.php +++ b/src/view/Zenity.php | |||
@@ -9,7 +9,6 @@ abstract class ZenityCmd | |||
9 | protected $command = 'zenity'; | 9 | protected $command = 'zenity'; |
10 | protected $command_type = ''; | 10 | protected $command_type = ''; |
11 | protected $rows = []; | 11 | protected $rows = []; |
12 | private $title = 'ORDIPOLO'; | ||
13 | protected $text = ''; | 12 | protected $text = ''; |
14 | protected $width = 300; | 13 | protected $width = 300; |
15 | protected $height = 200; // recalculée en fonction du contenu, vaut au minimum 150 | 14 | protected $height = 200; // recalculée en fonction du contenu, vaut au minimum 150 |
@@ -19,7 +18,7 @@ abstract class ZenityCmd | |||
19 | $this->text = $text; | 18 | $this->text = $text; |
20 | $this->rows= $rows; | 19 | $this->rows= $rows; |
21 | $this->command .= $this->command_type; | 20 | $this->command .= $this->command_type; |
22 | $this->command .= ' --title="' . $this->title . '"'; | 21 | $this->command .= ' --title="' . Config::$business_name . '"'; |
23 | $this->command .= ' --text="' . $this->text . '"'; | 22 | $this->command .= ' --text="' . $this->text . '"'; |
24 | } | 23 | } |
25 | 24 | ||
diff --git a/structure base de données.ods b/structure base de données.ods index 703487c..c050af8 100644 --- a/structure base de données.ods +++ b/structure base de données.ods | |||
Binary files differ | |||