summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2023-03-06 12:54:43 +0100
committerpolo <ordipolo@gmx.fr>2023-03-06 12:54:43 +0100
commit1766952a8499919a1275b0214f6ebda8dfc812e2 (patch)
treead5bd20b8c5b29a26d1b63071d18af688a0b0df4
parentb9c74de6d12ef40ab4baf67303ab22a10fcd5b32 (diff)
downloadAppliGestionPHP-1766952a8499919a1275b0214f6ebda8dfc812e2.zip
Config.ini renseigner '' = valeur par défaut
-rw-r--r--README.txt29
-rw-r--r--config.ini12
-rw-r--r--src/Config.php63
-rw-r--r--src/model/Prestations.php1
-rw-r--r--src/view/Zenity.php3
-rw-r--r--structure base de données.odsbin25146 -> 26353 bytes
6 files changed, 50 insertions, 58 deletions
diff --git a/README.txt b/README.txt
index 8845c5e..d454b27 100644
--- a/README.txt
+++ b/README.txt
@@ -14,33 +14,30 @@ pas de version windows prévue
14dépendances obligatoires: 14dé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)
16version minimale de php = 16version 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
23dépendances recommandées: 23dé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
26dépendances optionnelles:
27- sqlitebrowser (interface graphique pour sqlite) 25- sqlitebrowser (interface graphique pour sqlite)
28si absence de sqlitebrowser, le programme essaiera de lancer "sqlite3" dans le terminal "xterm" 26en l'absence de sqlitebrowser, le programme essaiera de lancer "sqlite3" dans le terminal "xterm"
29 27
30 28
31 29
32installation: 30installation:
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é,
39son emplacement est par défaut à la racine de ce programme, tout comme ce fichier README.txt
40
41 36
42configuration: 37configuration:
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
44ATTENTION, si vous ne savez pas ce que vous faîtes, ne faites rien. 41ATTENTION, si vous ne savez pas ce que vous faîtes, ne faites rien.
45Pour réparer la configuration, saisissez une chaîne vide ou la valeur par défaut comme dans les exemples ci-dessous. 42Pour 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:
diff --git a/config.ini b/config.ini
index 903a1c1..8820b5d 100644
--- a/config.ini
+++ b/config.ini
@@ -24,18 +24,6 @@ latex_path = '../data/latex/'
24;pdf_path = '../data/pdf/' 24;pdf_path = '../data/pdf/'
25pdf_path = '../data/pdf/' 25pdf_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/'
40pub_path = '../pub/' ;dossier pub inclu dans l'appli 28pub_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