diff options
author | polo <ordipolo@gmx.fr> | 2022-11-25 03:59:32 +0100 |
---|---|---|
committer | polo <ordipolo@gmx.fr> | 2022-11-25 03:59:32 +0100 |
commit | efe371fd6e883dde99ca6d90a7aae99eb4aeadea (patch) | |
tree | 54b342e58e4e3908abf5f42c85680d32540dd7f3 | |
download | AppliGestionPHP-efe371fd6e883dde99ca6d90a7aae99eb4aeadea.zip |
première sauvegarde git
-rw-r--r-- | LaTeX/devis.tex | 79 | ||||
-rw-r--r-- | LaTeX/enveloppe_recto.tex | 21 | ||||
-rw-r--r-- | LaTeX/enveloppe_verso.tex | 13 | ||||
-rw-r--r-- | LaTeX/facture.tex | 80 | ||||
-rw-r--r-- | LaTeX/location.tex | 44 | ||||
-rw-r--r-- | LaTeX/ordipolo.png | bin | 0 -> 46751 bytes | |||
-rw-r--r-- | README.txt | 26 | ||||
-rw-r--r-- | config.php | 44 | ||||
-rwxr-xr-x | index.php | 203 | ||||
-rwxr-xr-x | logiciel compta.desktop | 10 | ||||
-rw-r--r-- | ordipolo.sqlite | 0 | ||||
-rw-r--r-- | php/Database.php | 26 | ||||
-rw-r--r-- | php/ZenityClasses.php | 111 | ||||
-rw-r--r-- | php/compileLatex.php | 30 | ||||
-rw-r--r-- | php/dependances.php | 100 | ||||
-rw-r--r-- | php/functions.php | 26 | ||||
-rw-r--r-- | php/saisie.php | 59 | ||||
-rw-r--r-- | php/zenity_text.php | 21 | ||||
-rw-r--r-- | pub/carte ordipolo.png | bin | 0 -> 2517728 bytes | |||
-rw-r--r-- | pub/carte.sla | 107 | ||||
-rw-r--r-- | pub/flyer.pdf | bin | 0 -> 7977278 bytes | |||
-rw-r--r-- | pub/flyer.xcf | bin | 0 -> 15707907 bytes |
22 files changed, 1000 insertions, 0 deletions
diff --git a/LaTeX/devis.tex b/LaTeX/devis.tex new file mode 100644 index 0000000..debcdc5 --- /dev/null +++ b/LaTeX/devis.tex | |||
@@ -0,0 +1,79 @@ | |||
1 | \documentclass{report} | ||
2 | |||
3 | \usepackage[french]{babel} | ||
4 | \usepackage{lmodern} % police latin modern | ||
5 | \usepackage[utf8]{inputenc} % encodage d'entrée (document) | ||
6 | \usepackage[T1]{fontenc} % encodage de sortie (rendu) | ||
7 | \usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry} % marges | ||
8 | \usepackage{graphicx} % insertions d'images | ||
9 | \usepackage{textcomp} % pour N° | ||
10 | \usepackage{xcolor} % texte en couleur | ||
11 | \usepackage{tabularx} % dimensions des tableaux automatique | ||
12 | \usepackage{tikz} % le rectangle | ||
13 | |||
14 | \begin{document} | ||
15 | \setlength{\parindent}{0cm} % supprimer les alinéas | ||
16 | \large{} | ||
17 | \pagestyle{empty} % en-tête et pied de page vides | ||
18 | \definecolor{vert}{rgb}{0.07, 0.46, 0.13} % saisie en vert | ||
19 | |||
20 | \begin{center} | ||
21 | \includegraphics{ordipolo.png}\\ | ||
22 | \Large\textbf{Dépannage informatique - Assistance à domicile} | ||
23 | \end{center} | ||
24 | |||
25 | 2 A rue de l'île de Man, 29000 Quimper | ||
26 | |||
27 | SIRET : 814 320 610 00011 | ||
28 | |||
29 | \begin{tabularx}{0.67\linewidth}{@{}X@{}@{}X@{}} | ||
30 | Tel : 06.63.85.48.82 & Courriel : ordipolo@gmx.fr | ||
31 | \end{tabularx} | ||
32 | |||
33 | Plus d'infos sur le site web: https\string://ordipolo.fr\\ | ||
34 | % \string supprime l'espace devant les : | ||
35 | |||
36 | \begin{center} | ||
37 | \large\textbf{DEVIS} | ||
38 | \end{center} | ||
39 | |||
40 | CLIENT\\ | ||
41 | |||
42 | \begin{tabularx}{\linewidth}{@{}X@{}@{}X@{}} | ||
43 | Mme, M : \textcolor{vert}{} & | ||
44 | Date du devis : \textcolor{vert}{}\\ | ||
45 | Adresse : \textcolor{vert}{} & | ||
46 | Delai de livraison : \textcolor{vert}{}\\ | ||
47 | \end{tabularx}\\\\ | ||
48 | |||
49 | PRESTATION\\ | ||
50 | |||
51 | \textcolor{vert}{} | ||
52 | |||
53 | Total main d'oeuvre : \textcolor{vert}{}\\ | ||
54 | |||
55 | PIÈCES\\ | ||
56 | |||
57 | \textcolor{vert}{} | ||
58 | |||
59 | Total pièces : \textcolor{vert}{}\\ | ||
60 | |||
61 | TOTAL\\ | ||
62 | |||
63 | Déplacement : \textcolor{vert}{} | ||
64 | |||
65 | Total HT : \textcolor{vert}{} | ||
66 | |||
67 | \textit{(TVA non applicable, article 293B du code général des impôts)} | ||
68 | |||
69 | Référence du devis : \textcolor{vert}{}\\ | ||
70 | |||
71 | Devis reçu avant l'exécution des travaux, signature du client :\\ | ||
72 | \begin{tikzpicture} | ||
73 | \draw (0,0) rectangle (4,2); | ||
74 | \end{tikzpicture}\\ | ||
75 | |||
76 | \small{}NOTA BENE\\ | ||
77 | |||
78 | Si le délai de livraison n’est pas précisé, c’est naturellement le délai légal de 30 jours qui est appliqué. Lorsqu'Ordi Polo garde (ou prête) un ordinateur le temps nécessaire à la réparation, le prêt peut être formalisé par un document signé par les deux parties. Le dépannage inclut principalement l'intervention sur les logiciels et si nécessaire le démontage et remontage de la machine nécessaires au nettoyage de la poussière ou au remplacement d'une pièce. Ordi Polo ne répare pas les composants électroniques défectueux et n'est pas responsable des dysfonctionnements de l'ordinateur dont l'origine est matérielle. Ordi Polo ne vend pas de matériel mais peut conseiller ou réaliser les démarches d’un achat. | ||
79 | \end{document} \ No newline at end of file | ||
diff --git a/LaTeX/enveloppe_recto.tex b/LaTeX/enveloppe_recto.tex new file mode 100644 index 0000000..d1f3f43 --- /dev/null +++ b/LaTeX/enveloppe_recto.tex | |||
@@ -0,0 +1,21 @@ | |||
1 | \documentclass[]{report} | ||
2 | |||
3 | \usepackage[french]{babel} | ||
4 | \usepackage{lmodern} % police latin modern | ||
5 | \usepackage[utf8]{inputenc} % encodage d'entrée (document) | ||
6 | \usepackage[T1]{fontenc} % encodage de sortie (rendu) | ||
7 | \usepackage{graphicx} % insertions d'images | ||
8 | \usepackage[papersize={22cm, 11cm}, top=1cm, left=1cm, bottom=1cm]{geometry} | ||
9 | \pagestyle{empty} | ||
10 | |||
11 | \begin{document} | ||
12 | \setlength{\parindent}{0cm} | ||
13 | \includegraphics{ordipolo.png}\\ | ||
14 | \large\textbf{Dépannage informatique - Assistance à domicile} | ||
15 | |||
16 | \setlength{\parindent}{7,9cm} | ||
17 | \begin{minipage}[b][5,8cm]{12cm} | ||
18 | \LARGE{M. Truc\\3, rue Machin\\\\\\} | ||
19 | \LARGE{2 \ 9 \ 0 \ 0 \ 0 \ \ \ \ QUIMPER} | ||
20 | \end{minipage} | ||
21 | \end{document} \ No newline at end of file | ||
diff --git a/LaTeX/enveloppe_verso.tex b/LaTeX/enveloppe_verso.tex new file mode 100644 index 0000000..24baa8a --- /dev/null +++ b/LaTeX/enveloppe_verso.tex | |||
@@ -0,0 +1,13 @@ | |||
1 | \documentclass[]{report} | ||
2 | |||
3 | \usepackage[french]{babel} | ||
4 | \usepackage{lmodern} % police latin modern | ||
5 | \usepackage[utf8]{inputenc} % encodage d'entrée (document) | ||
6 | \usepackage[T1]{fontenc} % encodage de sortie (rendu) | ||
7 | \usepackage[papersize={22cm, 11cm}, top=0.6cm, left=4.5cm]{geometry} | ||
8 | \pagestyle{empty} | ||
9 | |||
10 | \begin{document} | ||
11 | \setlength{\parindent}{0cm} | ||
12 | \Large{Paul Jusot\\2A, rue de l'île de Man\\29000 QUIMPER} | ||
13 | \end{document} \ No newline at end of file | ||
diff --git a/LaTeX/facture.tex b/LaTeX/facture.tex new file mode 100644 index 0000000..babb2ab --- /dev/null +++ b/LaTeX/facture.tex | |||
@@ -0,0 +1,80 @@ | |||
1 | \documentclass{report} | ||
2 | |||
3 | \usepackage[french]{babel} | ||
4 | \usepackage{lmodern} % police latin modern | ||
5 | \usepackage[utf8]{inputenc} % encodage d'entrée (document) | ||
6 | \usepackage[T1]{fontenc} % encodage de sortie (rendu) | ||
7 | \usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry} % marges | ||
8 | \usepackage{graphicx} % insertions d'images | ||
9 | \usepackage{textcomp} % pour N° | ||
10 | \usepackage{xcolor} % texte en couleur | ||
11 | \usepackage{tabularx} % dimensions des tableaux automatique | ||
12 | |||
13 | \begin{document} | ||
14 | \setlength{\parindent}{0cm} % supprimer les alinéas | ||
15 | \large{} | ||
16 | \pagestyle{empty} % en-tête et pied de page vides | ||
17 | \definecolor{vert}{rgb}{0.07, 0.46, 0.13} % saisie en vert | ||
18 | |||
19 | \begin{center} | ||
20 | \includegraphics{ordipolo.png}\\ | ||
21 | \Large\textbf{Dépannage informatique - Assistance à domicile} | ||
22 | \end{center} | ||
23 | |||
24 | 2 A rue de l'île de Man, 29000 Quimper | ||
25 | |||
26 | SIRET : 814 320 610 00011 | ||
27 | |||
28 | \begin{tabularx}{0.67\linewidth}{@{}X@{}@{}X@{}} | ||
29 | Tel : 06.63.85.48.82 & Courriel : ordipolo@gmx.fr | ||
30 | \end{tabularx} | ||
31 | |||
32 | Plus d'infos sur le site web: https\string://ordipolo.fr\\ | ||
33 | % \string supprime l'espace devant les : | ||
34 | |||
35 | \begin{center} | ||
36 | \large\textbf{FACTURE} | ||
37 | \end{center} | ||
38 | |||
39 | CLIENT\\ | ||
40 | |||
41 | \begin{tabularx}{\linewidth}{@{}X@{}@{}X@{}} | ||
42 | Mme, M : \textcolor{vert}{} & | ||
43 | Date : \textcolor{vert}{}\\ | ||
44 | \end{tabularx}\\ | ||
45 | Adresse : \textcolor{vert}{}\\ | ||
46 | |||
47 | PRESTATION\\ | ||
48 | |||
49 | \textcolor{vert}{} | ||
50 | |||
51 | Modèle de l'ordinateur : \textcolor{vert}{} | ||
52 | |||
53 | Système d'exploitation : \textcolor{vert}{} | ||
54 | |||
55 | Données à conserver : \textcolor{vert}{} | ||
56 | |||
57 | Clé d'activation : \textcolor{vert}{}\\ | ||
58 | |||
59 | Total main d'oeuvre : \textcolor{vert}{}\\ | ||
60 | |||
61 | PIÈCES\\ | ||
62 | |||
63 | \textcolor{vert}{} | ||
64 | |||
65 | Total pièces : \textcolor{vert}{}\\ | ||
66 | |||
67 | TOTAL\\ | ||
68 | |||
69 | Déplacement : \textcolor{vert}{} | ||
70 | |||
71 | Total HT : \textcolor{vert}{} | ||
72 | |||
73 | \textit{(TVA non applicable, article 293B du code général des impôts)} | ||
74 | |||
75 | Référence de la facture : \textcolor{vert}{}\\ | ||
76 | |||
77 | \small{}NOTA BENE\\ | ||
78 | |||
79 | Lorsqu'Ordi Polo garde (ou prête) un ordinateur le temps nécessaire à la réparation, le prêt peut être formalisé par un document signé par les deux parties. Le dépannage inclut principalement l'intervention sur les logiciels et si nécessaire le démontage et remontage de la machine nécessaires au nettoyage de la poussière ou au remplacement d'une pièce. Ordi Polo ne répare pas les composants électroniques défectueux et n'est pas responsable des dysfonctionnements de l'ordinateur dont l'origine est matérielle. Ordi Polo ne vend pas de matériel mais peut conseiller ou réaliser les démarches d’un achat. | ||
80 | \end{document} \ No newline at end of file | ||
diff --git a/LaTeX/location.tex b/LaTeX/location.tex new file mode 100644 index 0000000..bcfb1e5 --- /dev/null +++ b/LaTeX/location.tex | |||
@@ -0,0 +1,44 @@ | |||
1 | \documentclass{report} | ||
2 | |||
3 | \usepackage[french]{babel} | ||
4 | \usepackage{lmodern} % police latin modern | ||
5 | \usepackage[utf8]{inputenc} % encodage d'entrée (document) | ||
6 | \usepackage[T1]{fontenc} % encodage de sortie (rendu) | ||
7 | \usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry} % marges | ||
8 | \usepackage{graphicx} % insertions d'images | ||
9 | \usepackage{textcomp} % pour N° | ||
10 | \usepackage{xcolor} % texte en couleur | ||
11 | %\usepackage{wrapfig} % placer texte et image côte-à-côte | ||
12 | \usepackage{tabularx} % dimensions des tableaux automatique | ||
13 | |||
14 | \begin{document} | ||
15 | \setlength{\parindent}{0cm} % supprimer les alinéas | ||
16 | \large{} | ||
17 | \pagestyle{empty} % en-tête et pied de page vides | ||
18 | \definecolor{vert}{rgb}{0.07, 0.46, 0.13} % saisie en vert | ||
19 | |||
20 | \begin{center} | ||
21 | \includegraphics{ordipolo.png}\\ | ||
22 | \Large\textbf{Dépannage informatique - Assistance à domicile} | ||
23 | \end{center} | ||
24 | |||
25 | 2 A rue de l'île de Man, 29000 Quimper | ||
26 | |||
27 | SIRET : 814 320 610 00011 | ||
28 | |||
29 | \begin{tabularx}{0.67\linewidth}{@{}X@{}@{}X@{}} | ||
30 | Tel : 06.63.85.48.82 & Courriel : ordipolo@gmx.fr | ||
31 | \end{tabularx} | ||
32 | |||
33 | Plus d'infos sur le site web: https\string://ordipolo.fr\\ | ||
34 | % \string supprime l'espace devant les : | ||
35 | |||
36 | CLIENT\\ | ||
37 | |||
38 | \begin{tabularx}{\linewidth}{@{}X@{}@{}X@{}} | ||
39 | Mme, M : \textcolor{vert}{} & | ||
40 | Date : \textcolor{vert}{}\\ | ||
41 | \end{tabularx}\\ | ||
42 | Adresse : \textcolor{vert}{}\\ | ||
43 | |||
44 | \end{document} \ No newline at end of file | ||
diff --git a/LaTeX/ordipolo.png b/LaTeX/ordipolo.png new file mode 100644 index 0000000..2acd67d --- /dev/null +++ b/LaTeX/ordipolo.png | |||
Binary files differ | |||
diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..b3f5904 --- /dev/null +++ b/README.txt | |||
@@ -0,0 +1,26 @@ | |||
1 | OS compatible: | ||
2 | linux! | ||
3 | bsd et mac sont probablement compatibles si les dépendances requises sont disponibles | ||
4 | pas de version windows prévue | ||
5 | |||
6 | dépendances obligatoires: | ||
7 | - php-cli (si votre distribution sépare php serveur web de php ligne de commande, installer le paquet php-cli) | ||
8 | version minimale de php = | ||
9 | - php-sqlite (moteur de base de données, activer si nécessaire le module pdo-sqlite dans le php.ini) | ||
10 | - zenity (fenêtres GTK pour scripts console) | ||
11 | - une distribution LaTeX pour le compiler en fichiers PDF à l'aide de la commande pdflatex (j'utilise TeX Live) | ||
12 | - interpréteurs sh, bash, ksh, csh, tcsh | ||
13 | |||
14 | dépendances optionnelles: | ||
15 | - sqlitebrowser (interface graphique pour sqlite) | ||
16 | si absent, le script essaie de lancer "sqlite3" dans "xterm" | ||
17 | |||
18 | |||
19 | configuration: | ||
20 | - veuillez modifier les variables dans config.php | ||
21 | ATTENTION, si vous ne savez pas ce que vous faîtes, ne faites rien. | ||
22 | Pour réparer la configuration, saisissez une chaîne vide ou la valeur par défaut comme dans les exemples ci-dessous. | ||
23 | chaîne vide: | ||
24 | $receipts = ''; | ||
25 | valeur par défaut: | ||
26 | $receipts = '~/ORDIPOLO/factures/'; | ||
diff --git a/config.php b/config.php new file mode 100644 index 0000000..c34309d --- /dev/null +++ b/config.php | |||
@@ -0,0 +1,44 @@ | |||
1 | <?php | ||
2 | // config.php | ||
3 | |||
4 | // fichier à modifier soi-même | ||
5 | // les lignes commentées correspondent aux réglages par défaut | ||
6 | |||
7 | $business_name = 'ORDIPOLO'; | ||
8 | |||
9 | // $receipts = '~/ORDIPOLO/Applis_PHP/LaTeX/'; | ||
10 | $receipts = 'LaTeX/'; | ||
11 | |||
12 | // $quotations = '~/ORDIPOLO/Applis_PHP/LaTeX/'; | ||
13 | $quotations = 'LaTeX/'; | ||
14 | |||
15 | // $pub = "~/ORDIPOLO/PUB/"; | ||
16 | $pub = "pub/"; | ||
17 | |||
18 | // $flyer = "flyer.xcf"; | ||
19 | $flyer = "flyer.xcf"; | ||
20 | |||
21 | // $business_card = "carte.sla"; | ||
22 | $business_card = "carte.sla"; | ||
23 | |||
24 | // $envelopes = '~/ORDIPOLO/Applis_PHP/LaTeX/'; | ||
25 | $envelopes = 'LaTeX/'; | ||
26 | |||
27 | // $db_name = "ordipolo"; | ||
28 | $db_name = "ordipolo"; | ||
29 | |||
30 | // $db_place = '~/ORDIPOLO/Appli_PHP/'; | ||
31 | $db_place = ''; | ||
32 | |||
33 | // $image_editor = 'gimp'; | ||
34 | $image_editor = 'gimp'; | ||
35 | |||
36 | // $publishing = 'scribus'; | ||
37 | $publishing = 'scribus'; | ||
38 | |||
39 | // $x_terminal = 'xterm'; | ||
40 | //$x_terminal = 'xterm'; | ||
41 | // les terminaux disponibles sont: xterm... | ||
42 | |||
43 | // vérification des variables | ||
44 | // dans config_check.php | ||
diff --git a/index.php b/index.php new file mode 100755 index 0000000..cf54199 --- /dev/null +++ b/index.php | |||
@@ -0,0 +1,203 @@ | |||
1 | #!/bin/php | ||
2 | <?php | ||
3 | // index.php | ||
4 | |||
5 | // configuration du programme par l'utilisateur | ||
6 | require('config.php'); // fichier de l'utilisateur | ||
7 | //require('config_check.php'); // contrôle de config.php | ||
8 | |||
9 | // variables diverses, certaines utilisent les variables de config.php | ||
10 | $exec_mode = 'gui'; // les versions pure console (CLI) et serveur web (CGI) de ce programme ne sont pas prévues pour l'instant | ||
11 | $file_explorer = 'xdg-open'; // ouvre l'explorateur de fichiers par défaut quand suivi d'un chemin en paramètre | ||
12 | $flyer = $pub . $flyer; | ||
13 | $business_card = $pub . $business_card; | ||
14 | $db_place .= $db_name . '.sqlite'; | ||
15 | $sqlitebrowser_enable = false; | ||
16 | $sqlite_cli = ''; // commande sqlite ou sqlite3 | ||
17 | $x_term_command = ''; // commande terminal en mode graphique | ||
18 | |||
19 | require('php/dependances.php'); // vérification des dépendances | ||
20 | require('php/functions.php'); | ||
21 | |||
22 | require('php/ZenityClasses.php'); // créer les commandes | ||
23 | require('php/zenity_text.php'); // texte dans les fenêtres | ||
24 | |||
25 | require('php/Database.php'); // connexion à la base et création de la base et des tables si elles n'existent pas déjà | ||
26 | $Database = new SQL; | ||
27 | SQL::create_tables(); | ||
28 | |||
29 | // require('php/latex.php'); | ||
30 | // require('php/compileLatex.php'); | ||
31 | |||
32 | // commandes système qui ouvrent les fenêtres zenity | ||
33 | // s'utilisent comme ceci: exec($Objet->get()); | ||
34 | $MenuPrincipal = new Zenity_list($menu_principal_text, $menu_principal_entrees); | ||
35 | $QuestionNouveauClient = new Zenity_question($question_nouveau_client_text); | ||
36 | $MenuEnregistrement = new Zenity_list($menu_enregistrement_text, $menu_enregistrement_entrees); | ||
37 | $MenuDocuments = new Zenity_list($menu_documents_text, $menu_documents_entrees); | ||
38 | $MenuCommunication = new Zenity_list($menu_communication_text, $menu_communication_entrees); | ||
39 | $RechercheClient = new zenity_entry($recherche_client_text); | ||
40 | $ResultatsRechercheClient = new zenity_list($resultats_recherche_client_text, []); | ||
41 | $NouveauClient = new Zenity_forms($nouveau_client_text, $nouveau_client_entrees); | ||
42 | $Calendrier = new Zenity_calendar($calendar_text); | ||
43 | $FormulairePrestation = new Zenity_forms($formulaire_text, $formulaire_entrees); | ||
44 | $CommentairePrestation = new Zenity_entry($commentaire_prestation_text); | ||
45 | |||
46 | // boucle principale | ||
47 | $boucle = true; | ||
48 | while($boucle) | ||
49 | { | ||
50 | // menu principal | ||
51 | $choix_niv1 = exec($MenuPrincipal->get()); | ||
52 | |||
53 | // enregistrement | ||
54 | if($choix_niv1 == 'Nouvelle prestation') | ||
55 | { | ||
56 | // est ce que le client est déjà dans la base? | ||
57 | if(exec($QuestionNouveauClient->get()) == 0) // $? = 0 signifie oui | ||
58 | { | ||
59 | // saisie du nom du client et recherche | ||
60 | $client_saisie = exec($RechercheClient->get()); | ||
61 | |||
62 | // sélection parmi les résultats | ||
63 | $ResultatsRechercheClient->set_entries(recherche_client($client_saisie)); | ||
64 | $choix_niv2 = exec($ResultatsRechercheClient->get()); | ||
65 | if($choix_niv2 != '') | ||
66 | { | ||
67 | echo "client trouvé\n"; | ||
68 | } | ||
69 | else // chaîne vide | ||
70 | { | ||
71 | echo "client pas trouvé\n"; | ||
72 | exec($NouveauClient->get()); | ||
73 | |||
74 | // enregistrement dans la BDD | ||
75 | |||
76 | } | ||
77 | |||
78 | // récupération des infos dans la BDD | ||
79 | |||
80 | } | ||
81 | else | ||
82 | { | ||
83 | echo "nouveau client\n"; | ||
84 | exec($NouveauClient->get()); | ||
85 | |||
86 | // enregistrement dans la BDD | ||
87 | |||
88 | } | ||
89 | |||
90 | // infos sur la prestation | ||
91 | $choix_niv2 = exec($MenuEnregistrement->get()); | ||
92 | $continuer = true; | ||
93 | if($choix_niv2 == "Devis") | ||
94 | { | ||
95 | $type = 'DEVIS'; | ||
96 | } | ||
97 | elseif($choix_niv2 == "Facture") | ||
98 | { | ||
99 | $type = 'FACTURE'; | ||
100 | } | ||
101 | elseif($choix_niv2 == "CESU") | ||
102 | { | ||
103 | $type = 'CESU'; | ||
104 | } | ||
105 | elseif($choix_niv2 == "Pas de prestation") | ||
106 | { | ||
107 | $type = ''; | ||
108 | } | ||
109 | else | ||
110 | { | ||
111 | $continuer = false; // retour menu principal | ||
112 | } | ||
113 | |||
114 | if($continuer) | ||
115 | { | ||
116 | exec($Calendrier->get()); | ||
117 | exec($FormulairePrestation->get()); | ||
118 | // enregistrement date et prestation en BDD | ||
119 | exec($CommentairePrestation->get()); | ||
120 | // enregistrement commentaire en BDD | ||
121 | } | ||
122 | } | ||
123 | |||
124 | elseif($choix_niv1 == 'Fichier clients') | ||
125 | { | ||
126 | // quel affichage? un grand tableau avec zenity? une page web? un document LaTeX? | ||
127 | } | ||
128 | |||
129 | // documents à imprimer | ||
130 | elseif($choix_niv1 == 'Créer/imprimer un document') | ||
131 | { | ||
132 | $choix_niv2 = exec($MenuDocuments->get()); | ||
133 | if($choix_niv2 == 'Devis') | ||
134 | { | ||
135 | |||
136 | } | ||
137 | elseif($choix_niv2 == 'Facture') | ||
138 | { | ||
139 | |||
140 | } | ||
141 | elseif($choix_niv2 == 'Lettre avec adresse') | ||
142 | { | ||
143 | |||
144 | } | ||
145 | elseif($choix_niv2 == 'Livre des recettes') | ||
146 | { | ||
147 | |||
148 | } | ||
149 | elseif($choix_niv2 == "Registre des achats") | ||
150 | { | ||
151 | |||
152 | } | ||
153 | elseif($choix_niv2 == "Bilan annuel") | ||
154 | { | ||
155 | |||
156 | } | ||
157 | else | ||
158 | { | ||
159 | // retour menu principal | ||
160 | } | ||
161 | } | ||
162 | |||
163 | // Supports de communication | ||
164 | elseif($choix_niv1 == 'Communication') | ||
165 | { | ||
166 | $choix_niv2 = exec($MenuCommunication->get()); | ||
167 | if($choix_niv2 == 'Flyer (nécessite gimp)') | ||
168 | { | ||
169 | exec(window_app_command('gimp', $flyer)); | ||
170 | } | ||
171 | elseif($choix_niv2 == 'Carte de visite (nécessite scribus)') | ||
172 | { | ||
173 | exec(window_app_command('scribus', $business_card)); | ||
174 | } | ||
175 | elseif($choix_niv2 == 'Explorateur de fichiers') | ||
176 | { | ||
177 | exec(window_app_command($file_explorer, $pub)); | ||
178 | } | ||
179 | else | ||
180 | { | ||
181 | // retour menu principal | ||
182 | } | ||
183 | } | ||
184 | |||
185 | // BDD | ||
186 | elseif($choix_niv1 == 'Base de données') | ||
187 | { | ||
188 | if($sqlitebrowser_enable) | ||
189 | { | ||
190 | exec(window_app_command('sqlitebrowser', $db_place)); | ||
191 | } | ||
192 | else | ||
193 | { | ||
194 | exec($x_term_command . ' ' . $sqlite_cli . ' ' . $db_place); // correpond à priori à: xterm -e sqlite3 ~/ORDIPOLO/Appli_PHP/ordipolo.sqlite | ||
195 | } | ||
196 | } | ||
197 | else | ||
198 | { | ||
199 | $boucle = false; // byebye | ||
200 | } | ||
201 | } | ||
202 | |||
203 | // sauvegarder la base de données | ||
diff --git a/logiciel compta.desktop b/logiciel compta.desktop new file mode 100755 index 0000000..37ac1f3 --- /dev/null +++ b/logiciel compta.desktop | |||
@@ -0,0 +1,10 @@ | |||
1 | [Desktop Entry] | ||
2 | Version=1.0 | ||
3 | Type=Application | ||
4 | Name=logiciel compta | ||
5 | Comment= | ||
6 | Exec=/home/paulo/ORDIPOLO/Appli_PHP/index.php | ||
7 | Icon=/home/paulo/ORDIPOLO/PUB/logo.png | ||
8 | Path=/home/paulo/ORDIPOLO/Appli_PHP | ||
9 | Terminal=false | ||
10 | StartupNotify=false | ||
diff --git a/ordipolo.sqlite b/ordipolo.sqlite new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/ordipolo.sqlite | |||
diff --git a/php/Database.php b/php/Database.php new file mode 100644 index 0000000..81ce669 --- /dev/null +++ b/php/Database.php | |||
@@ -0,0 +1,26 @@ | |||
1 | <?php | ||
2 | // php/Database.php | ||
3 | |||
4 | // connexion avec PDO_sqlite | ||
5 | try | ||
6 | { | ||
7 | $db = new PDO('sqlite:' . $db_name . '.sqlite'); | ||
8 | $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | ||
9 | } | ||
10 | catch (Exception $e) | ||
11 | { | ||
12 | die('Erreur : '.$e->getMessage()); | ||
13 | } | ||
14 | |||
15 | |||
16 | // requêtes SQL | ||
17 | class SQL | ||
18 | { | ||
19 | // créer les tables si elles n'existent pas encore | ||
20 | static function create_tables() | ||
21 | { | ||
22 | //$db->exec("CREATE TABLE IF NOT EXISTS matable (ID INTEGER PRIMARY KEY, champ1 INTEGER, champ2 TEXT);"); | ||
23 | // | ||
24 | // | ||
25 | } | ||
26 | } | ||
diff --git a/php/ZenityClasses.php b/php/ZenityClasses.php new file mode 100644 index 0000000..c286d14 --- /dev/null +++ b/php/ZenityClasses.php | |||
@@ -0,0 +1,111 @@ | |||
1 | <?php | ||
2 | // php/ZenityClasses.php | ||
3 | // | ||
4 | // commande système zenity | ||
5 | |||
6 | abstract class Zenity_cmd | ||
7 | { | ||
8 | protected $command = 'zenity'; | ||
9 | protected $command_type = ''; | ||
10 | protected $rows = []; | ||
11 | private $title = 'ORDIPOLO'; | ||
12 | private $text = ''; | ||
13 | protected $width = 300; | ||
14 | protected $height = 200; // recalculée en fonction du contenu, vaut au minimum 150 | ||
15 | |||
16 | |||
17 | protected function __construct($text, array $rows = []) // $rows est optionnel | ||
18 | { | ||
19 | $this->text = $text; | ||
20 | $this->rows= $rows; | ||
21 | $this->command .= $this->command_type; | ||
22 | $this->command .= ' --title="' . $this->title . '"'; | ||
23 | $this->command .= ' --text="' . $this->text . '"'; | ||
24 | } | ||
25 | |||
26 | public function get() | ||
27 | { | ||
28 | return($this->command); | ||
29 | } | ||
30 | } | ||
31 | |||
32 | |||
33 | class Zenity_list extends Zenity_cmd | ||
34 | { | ||
35 | public function __construct($text, array $rows) | ||
36 | { | ||
37 | $this->command_type = ' --list'; | ||
38 | parent::__construct($text, $rows); | ||
39 | $this->height = 80 + count($this->rows) * 25; | ||
40 | $this->command .= ' --width=' . $this->width; | ||
41 | $this->command .= ' --height=' . $this->height; | ||
42 | $this->command .= ' --hide-header'; // ligne inutile, il y a déjà le --text | ||
43 | self::one_column_zenity_list($this->rows); | ||
44 | } | ||
45 | |||
46 | public function set_entries($rows_set) // variable renseignée après la construction | ||
47 | { | ||
48 | $this->rows = $rows_set; | ||
49 | } | ||
50 | |||
51 | private function one_column_zenity_list($rows) | ||
52 | { | ||
53 | $output = ' --column=""'; | ||
54 | foreach($rows as $entry) | ||
55 | { | ||
56 | $output .= ' "' . $entry . '"'; // forme: ' "choix 1" "choix 2"' | ||
57 | } | ||
58 | $this->command .= $output; | ||
59 | } | ||
60 | } | ||
61 | |||
62 | class Zenity_question extends Zenity_cmd | ||
63 | { | ||
64 | public function __construct($text) | ||
65 | { | ||
66 | $this->command_type = ' --question'; | ||
67 | parent::__construct($text); | ||
68 | $this->command .= ' && echo $?'; | ||
69 | // la sortie de "zenity --question" est le statut de sortie "$?" | ||
70 | // $? vaut 0 pour oui, 1 pour non, à ceci près que pour non zenity ne renvoie rien | ||
71 | } | ||
72 | } | ||
73 | |||
74 | class Zenity_forms extends Zenity_cmd | ||
75 | { | ||
76 | public function __construct($text, array $rows) | ||
77 | { | ||
78 | $this->command_type = ' --forms'; | ||
79 | parent::__construct($text, $rows); | ||
80 | //$this->height = 80 + count($this->rows) * 25; // à tester, mais devrait produire le rendu attendu | ||
81 | self::entries_zenity_forms($this->rows); | ||
82 | } | ||
83 | |||
84 | private function entries_zenity_forms($entries) | ||
85 | { | ||
86 | $output = ''; | ||
87 | foreach($entries as $one_entry) | ||
88 | { | ||
89 | $output .= ' --add-entry="' . $one_entry . '"'; // forme: ' "choix 1" "choix 2"' | ||
90 | } | ||
91 | $this->command .= $output; | ||
92 | } | ||
93 | } | ||
94 | |||
95 | class Zenity_calendar extends Zenity_cmd | ||
96 | { | ||
97 | public function __construct($text) | ||
98 | { | ||
99 | $this->command_type = ' --calendar'; | ||
100 | parent::__construct($text); | ||
101 | } | ||
102 | } | ||
103 | |||
104 | class Zenity_entry extends Zenity_cmd | ||
105 | { | ||
106 | public function __construct($text) | ||
107 | { | ||
108 | $this->command_type = ' --entry'; | ||
109 | parent::__construct($text); | ||
110 | } | ||
111 | } | ||
diff --git a/php/compileLatex.php b/php/compileLatex.php new file mode 100644 index 0000000..ccd9dab --- /dev/null +++ b/php/compileLatex.php | |||
@@ -0,0 +1,30 @@ | |||
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+"); | ||
19 | fputs($fichier, $codeLaTeX); | ||
20 | fclose($fichier); | ||
21 | |||
22 | // compilation | ||
23 | exec('pdflatex latex.tex'); | ||
24 | |||
25 | // nettoyage | ||
26 | unlink("latex.aux"); | ||
27 | unlink("latex.log"); | ||
28 | unlink("latex.tex"); | ||
29 | |||
30 | exec('xdg-open latex.pdf'); | ||
diff --git a/php/dependances.php b/php/dependances.php new file mode 100644 index 0000000..4a5667e --- /dev/null +++ b/php/dependances.php | |||
@@ -0,0 +1,100 @@ | |||
1 | <?php | ||
2 | // php/dependances.php | ||
3 | // Vérification des dépendances nécessaires au fonctionnement de ce programmes. | ||
4 | |||
5 | // Environnement dans lequel ce programmes a été créé: | ||
6 | // - système archlinux avec l'interpréteur bash | ||
7 | // - PHP 8.1 + paquet php-sqlite | ||
8 | // - module pdo_sqlite activé dans le fichier php.ini | ||
9 | // - sqlitebrowser (interface graphique pour sqlite) | ||
10 | // - distribution LaTeX texlive | ||
11 | // - zenity | ||
12 | |||
13 | // zenity disponible | ||
14 | if(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 | { | ||
16 | printf("Impossible de lancer zenity. Veuillez installer le paquet zenity\n"); | ||
17 | exit(); | ||
18 | } | ||
19 | |||
20 | // compilateur pdflatex disponible | ||
21 | if(exec("pdflatex -version 2> /dev/null") == '') // erreur si la chaine est vide parce que la sortie d'erreur va dans /dev/null | ||
22 | { | ||
23 | printf("Impossible de lancer pdflatex. Veuillez installer une distribution LaTeX.\n"); | ||
24 | exit(); | ||
25 | } | ||
26 | |||
27 | // test de la présence du paquet php-sqlite | ||
28 | // compliqué? dépend de l'OS? | ||
29 | // note: l'erreur se produit dès le démarrage de PHP si le php.ini est bon mais qu'il manque le paquet | ||
30 | |||
31 | // module pdo_sqlite de PHP activé? | ||
32 | if(!extension_loaded("pdo_sqlite")) | ||
33 | { | ||
34 | printf("Impossible d'utiliser la base de données. Veuillez installer le paquet php-sqlite ET activer l'extension pdo_sqlite dans le fichier php.ini.\n"); | ||
35 | exit(); | ||
36 | } | ||
37 | |||
38 | |||
39 | // client sqlite | ||
40 | if($exec_mode == 'gui') | ||
41 | { | ||
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 | ||
44 | { | ||
45 | $sqlitebrowser_enable = true; | ||
46 | } | ||
47 | // terminal en mode graphique disponible, permettra d'y utiliser sqlite dans la console | ||
48 | else | ||
49 | { | ||
50 | printf("Sqlitebrowser n'est pas disponible. J'espère que vous maîtrisez le SQL.\n"); | ||
51 | |||
52 | if(exec("which xterm 2> /dev/null") != '' && exec("xterm -v 2> /dev/null") != '') | ||
53 | { | ||
54 | $x_term_ccommand = 'xterm -e'; | ||
55 | } | ||
56 | elseif(exec("which urxvt 2> /dev/null") != '') | ||
57 | { | ||
58 | $x_term_ccommand = 'urxvt -e'; | ||
59 | } | ||
60 | elseif(exec("which lxterminal 2> /dev/null") != '' && exec("lxterminal -v 2> /dev/null") != '') | ||
61 | { | ||
62 | $x_term_ccommand = 'lxterminal -e'; | ||
63 | } | ||
64 | elseif(exec("which xfce4-terminal 2> /dev/null") != '' && exec("xfce4-terminal -V 2> /dev/null") != '') | ||
65 | { | ||
66 | $x_term_ccommand = 'xfce4-terminal -x'; | ||
67 | } | ||
68 | elseif(exec("which gnome-terminal 2> /dev/null") != '') | ||
69 | { | ||
70 | $x_term_ccommand = 'gnome-terminal --'; | ||
71 | } | ||
72 | elseif(exec("which konsole 2> /dev/null") != '' && exec("konsole -v 2> /dev/null") != '') | ||
73 | { | ||
74 | $x_term_ccommand = 'konsole -e'; | ||
75 | } | ||
76 | // pour MAC - NON TESTÉ !! (possibilité de détecter le système avec uname?) | ||
77 | //~ elseif(exec("which Terminal 2> /dev/null") != '') | ||
78 | //~ { | ||
79 | //~ $x_term_ccommand = 'open -a Terminal -e'; // ne marche probablement pas | ||
80 | //~ } | ||
81 | else | ||
82 | { | ||
83 | printf("Impossible d'ouvrir un terminal pour y lancer sqlite. Veuillez installer un terminal en mode graphique (par exemple xterm).\n"); | ||
84 | } | ||
85 | } | ||
86 | } | ||
87 | |||
88 | // sqlite CLI disponible | ||
89 | if(exec("which sqlite 2> /dev/null") != '' && exec("sqlite --version 2> /dev/null") != '') | ||
90 | { | ||
91 | $sqlite_cli = 'sqlite'; | ||
92 | } | ||
93 | elseif(exec("which sqlite3 2> /dev/null") != '' && exec("sqlite3 --version 2> /dev/null") != '') | ||
94 | { | ||
95 | $sqlite_cli = 'sqlite3'; | ||
96 | } | ||
97 | else | ||
98 | { | ||
99 | printf("Impossible de lancer sqlite dans le terminal en utilisant la commande ' . $sqlite_cli . '\n"); | ||
100 | } | ||
diff --git a/php/functions.php b/php/functions.php new file mode 100644 index 0000000..61bc13e --- /dev/null +++ b/php/functions.php | |||
@@ -0,0 +1,26 @@ | |||
1 | <?php | ||
2 | // php/functions.php | ||
3 | |||
4 | // commande pour lancer une application graphique en ouvrant un fichier | ||
5 | function window_app_command(string $app, string $path = ''): string | ||
6 | { | ||
7 | $command = 'nohup ' . $app; // détache l'appli du script PHP | ||
8 | if($path != '') | ||
9 | { | ||
10 | $command .= ' ' . $path; | ||
11 | } | ||
12 | $command .= ' > /dev/null 2>&1 &'; | ||
13 | // stdout > /dev/null et & permettent de rendre la main à PHP | ||
14 | // stderr > stdout pour cacher un message inutile | ||
15 | return $command; | ||
16 | } | ||
17 | |||
18 | function recherche_client(string $saisie): array | ||
19 | { | ||
20 | $resultats = []; | ||
21 | |||
22 | // recherche dans la BDD | ||
23 | |||
24 | |||
25 | return($resultats); | ||
26 | } | ||
diff --git a/php/saisie.php b/php/saisie.php new file mode 100644 index 0000000..4b41fbf --- /dev/null +++ b/php/saisie.php | |||
@@ -0,0 +1,59 @@ | |||
1 | <?php | ||
2 | // saisie.php | ||
3 | |||
4 | $date = exec('zenity --calendar --width=320 --title="Enregistrer une prestation avec un nouveau client 1/2" --text="Choisir une date."'); | ||
5 | var_dump($date); | ||
6 | |||
7 | $start_command = 'zenity --forms'; | ||
8 | $title = ' --title="Enregistrer une prestation avec un nouveau client 2/2"'; | ||
9 | $text = ' --text="Nouveau client"'; | ||
10 | $name = ' --add-entry="Prénom Nom:"'; | ||
11 | $adresse = ' --add-entry="Adresse:"'; | ||
12 | $prestation_type = ' --add-entry="Type de prestation:"'; | ||
13 | $tasks = ' --add-entry="Tâches effectuées:"'; | ||
14 | $computer_model = ' --add-entry="Modèle du PC:"'; | ||
15 | $system = ' --add-entry="OS:"'; | ||
16 | $computer_data = ' --add-entry="Données sauvegardées:"'; | ||
17 | $activation_keys = ' --add-entry="Clés d\'activation:"'; | ||
18 | $labour_time = ' --add-entry="Temps main d\'oeuvre (heures):"'; | ||
19 | $total_labour = ' --add-entry="Total main d\'oeuvre (euros):"'; | ||
20 | $total_parts = ' --add-entry="Total pièces (euros):"'; | ||
21 | $trip = ' --add-entry="Déplacement (euros)"'; | ||
22 | $total = ' --add-entry="Total HT (euros):"'; | ||
23 | $comments = ' --add-entry="Commentaires:"'; | ||
24 | |||
25 | $command = $start_command . $title . $text . $name . $adresse . $prestation_type . $tasks. $computer_model . $system . $computer_data . $activation_keys . $labour_time . $total_labour . $total_parts . $trip . $total . $comments; | ||
26 | //$result = explode('|', "alain dubois|2 rue foch, rennes|assistance|boum le PC !!|tour acer|win 10|sur DD externe|dans le BIOS|2h, 80€|15,80€|10€|105,80€|client chiant"); | ||
27 | $result = explode('|', exec($command)); | ||
28 | var_dump($result); | ||
29 | //exit(); | ||
30 | |||
31 | // nouveau client | ||
32 | #$choix = exec('zenity --forms --title="Enregistrer une prestation 1/4" --text="Nouveau client" --add-entry="Prénom, nom:" --add-entry="Adresse:" --add-calendar="Date: (ici ou fenêtre suivante?)" --add-entry="Type de prestation:" --add-entry="Prix prestation:" --add-entry="Prix déplacement:" --add-entry="Total HT:"'); | ||
33 | |||
34 | // date | ||
35 | #$date = exec('zenity --calendar --width=320 --title="Enregistrer une prestation 2/4" --text="Choisir une date."'); | ||
36 | // date sous la forme jj/mm/aaaa | ||
37 | // utiliser ensuite cette option: --forms-date-format=MODÈLE Définit le format de la date retournée | ||
38 | |||
39 | // détail prestation | ||
40 | #$prestation = exec('zenity --forms --title="Enregistrer une prestation 3/4" --text="Tâches effectuées" --add-entry="Détails:" --add-entry="Modèle de l\'ordinateur:" --add-entry="OS:" --add-entry="Sauvegarde:" --add-entry="Clé d\'activation"'); | ||
41 | // infos saisies sous la forme aaa|bbb|ccc|ddd|eee | ||
42 | |||
43 | // Prix total calculé automatiquement | ||
44 | |||
45 | // référence de la facture avec format automatique par concaténation | ||
46 | |||
47 | // commentaire personnel enregistré à part | ||
48 | $commentaire = exec('zenity --entry --width=400 --title="Enregistrer une prestation 4/4" --text="Commentaire sur le déroulement de la prestation."'); | ||
49 | var_dump($result); | ||
50 | // afficher le résultat en LaTeX et demande de confirmation | ||
51 | // écrire du LaTeX avec PHP | ||
52 | |||
53 | // mise à jour de la base de données | ||
54 | |||
55 | // message de confirmation (si la base a bien été mise à jour), puis demande pour imprimer une facture | ||
56 | $imprimer_facture = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer la facture?"'); | ||
57 | |||
58 | // imprimer une enveloppe | ||
59 | $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_text.php b/php/zenity_text.php new file mode 100644 index 0000000..2246463 --- /dev/null +++ b/php/zenity_text.php | |||
@@ -0,0 +1,21 @@ | |||
1 | <?php | ||
2 | // php/zenity_text.php | ||
3 | |||
4 | // contenu des fenêtres zenity | ||
5 | $menu_principal_text = "Gestion d'une micro-entreprise"; | ||
6 | $menu_principal_entrees = ["Nouvelle prestation", "Fichier clients", "Créer/imprimer un document", "Communication", "Base de données"]; | ||
7 | $question_nouveau_client_text = "Ce client figure t\'il déjà dans le fichier clients?"; | ||
8 | $menu_enregistrement_text = "Type d\'enregistrement?"; | ||
9 | $menu_enregistrement_entrees = ["Devis", "Facture", "CESU", "Pas de prestation"]; | ||
10 | $menu_documents_text = "Création de documents LaTeX"; | ||
11 | $menu_documents_entrees = ["Devis", "Facture", "Lettre avec adresse", "Livre des recettes", "Registre des achats", "Bilan annuel"]; | ||
12 | $menu_communication_text = "Imprimer un support de communication"; | ||
13 | $menu_communication_entrees = ["Flyer (nécessite gimp)", "Carte de visite (nécessite scribus)", "Explorateur de fichiers"]; | ||
14 | $recherche_client_text = "Recherche d'un client avec son nom ou son code client"; | ||
15 | $resultats_recherche_client_text = "Résultats de la recherche, sélectionner un client"; | ||
16 | $nouveau_client_text = "Nouveau client"; | ||
17 | $nouveau_client_entrees = ["Prénom Nom:", "Adresse:", "Code client, type: J.P.Duchmol"]; | ||
18 | $calendar_text = 'Nouvelle prestation étape 1/3 - Choisir une date'; | ||
19 | $formulaire_text = 'Nouvelle prestation 2/3 - Détail des travaux'; | ||
20 | $formulaire_entrees = ["Tâches effectuées:", "Modèle du PC:", "OS:", "Données sauvegardées:", "Clés d\'activation:", "Temps main d\'oeuvre (heures):", "Total main d\'oeuvre (euros):", "Total pièces (euros):", "Déplacement (euros)", "Total HT (euros):",]; | ||
21 | $commentaire_prestation_text = 'Nouvelle prestation 3/3 - Commentaires'; | ||
diff --git a/pub/carte ordipolo.png b/pub/carte ordipolo.png new file mode 100644 index 0000000..3582ccf --- /dev/null +++ b/pub/carte ordipolo.png | |||
Binary files differ | |||
diff --git a/pub/carte.sla b/pub/carte.sla new file mode 100644 index 0000000..98145e6 --- /dev/null +++ b/pub/carte.sla | |||
@@ -0,0 +1,107 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <SCRIBUSUTF8NEW Version="1.5.5"> | ||
3 | <DOCUMENT ANZPAGES="1" PAGEWIDTH="595.28125984252" PAGEHEIGHT="841.889763779528" BORDERLEFT="42.5196850393701" BORDERRIGHT="42.5196850393701" BORDERTOP="65.1968503937008" BORDERBOTTOM="68.0314960629921" PRESET="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" ORIENTATION="0" PAGESIZE="A4" FIRSTNUM="1" BOOK="0" AUTOSPALTEN="1" ABSTSPALTEN="3.881" UNITS="1" DFONT="Arial Regular" DSIZE="12" DCOL="1" DGAP="0" TabFill="" TabWidth="36" TextDistLeft="0" TextDistRight="0" TextDistBottom="0" TextDistTop="0" AUTHOR="" COMMENTS="" KEYWORDS="" PUBLISHER="" DOCDATE="" DOCTYPE="" DOCFORMAT="" DOCIDENT="" DOCSOURCE="" DOCLANGINFO="" DOCRELATION="" DOCCOVER="" DOCRIGHTS="" DOCCONTRIB="" TITLE="" SUBJECT="" VHOCH="33" VHOCHSC="66" VTIEF="33" VTIEFSC="66" VKAPIT="75" BASEGRID="14.4" BASEO="0" AUTOL="100" UnderlinePos="-1" UnderlineWidth="-1" StrikeThruPos="-1" StrikeThruWidth="-1" GROUPC="1" HCMS="1" DPSo="0" DPSFo="0" DPuse="1" DPgam="0" DPbla="1" DPPr="Fogra27L CMYK Coated Press" DPIn="sRGB IEC61966-2.1" DPInCMYK="Fogra27L CMYK Coated Press" DPIn2="sRGB IEC61966-2.1" DPIn3="Fogra27L CMYK Coated Press" DISc="1" DIIm="0" ALAYER="0" LANGUAGE="fr" AUTOMATIC="1" AUTOCHECK="0" GUIDELOCK="0" SnapToGuides="0" SnapToGrid="0" SnapToElement="0" MINGRID="20" MAJGRID="100" SHOWGRID="0" SHOWGUIDES="1" showcolborders="1" SHOWFRAME="1" SHOWControl="0" SHOWLAYERM="0" SHOWMARGIN="1" SHOWBASE="0" SHOWPICT="1" SHOWLINK="0" rulerMode="1" showrulers="1" showBleed="1" rulerXoffset="0" rulerYoffset="0" GuideRad="10" GRAB="4" POLYC="4" POLYF="0.5" POLYR="0" POLYIR="0" POLYCUR="0" POLYOCUR="0" POLYS="0" arcStartAngle="30" arcSweepAngle="300" spiralStartAngle="0" spiralEndAngle="1080" spiralFactor="1.2" AutoSave="1" AutoSaveTime="600000" AutoSaveCount="1" AutoSaveKeep="0" AUtoSaveInDocDir="1" AutoSaveDir="" ScratchBottom="20" ScratchLeft="100" ScratchRight="100" ScratchTop="20" GapHorizontal="0" GapVertical="40" StartArrow="0" EndArrow="0" PEN="Black" BRUSH="None" PENLINE="d" PENTEXT="Black" StrokeText="Black" TextBackGround="None" TextLineColor="None" TextBackGroundShade="100" TextLineShade="100" TextPenShade="100" TextStrokeShade="100" STIL="1" STILLINE="1" WIDTH="1" WIDTHLINE="1" PENSHADE="100" LINESHADE="100" BRUSHSHADE="100" CPICT="None" PICTSHADE="100" CSPICT="None" PICTSSHADE="100" PICTSCX="1" PICTSCY="1" PSCALE="1" PASPECT="1" EmbeddedPath="0" HalfRes="1" dispX="10" dispY="10" constrain="15" MINORC="#00ff00" MAJORC="#00ff00" GuideC="#000080" BaseC="#c0c0c0" renderStack="0 1 2 3 4" GridType="0" PAGEC="#ffffff" MARGC="#0000ff" RANDF="0" currentProfile="PostScript" calligraphicPenFillColor="Black" calligraphicPenLineColor="Black" calligraphicPenFillColorShade="100" calligraphicPenLineColorShade="100" calligraphicPenLineWidth="1" calligraphicPenAngle="0" calligraphicPenWidth="10" calligraphicPenStyle="1"> | ||
4 | <CheckProfile Name="PDF 1.3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="0" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/> | ||
5 | <CheckProfile Name="PDF 1.4" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="0" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/> | ||
6 | <CheckProfile Name="PDF 1.5" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="0" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/> | ||
7 | <CheckProfile Name="PDF/X-1a" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="0" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/> | ||
8 | <CheckProfile Name="PDF/X-3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="0" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/> | ||
9 | <CheckProfile Name="PDF/X-4" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="1" checkFontNotEmbedded="1" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/> | ||
10 | <CheckProfile Name="PostScript" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="0" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/> | ||
11 | <COLOR NAME="Black" SPACE="CMYK" C="0" M="0" Y="0" K="100"/> | ||
12 | <COLOR NAME="Blue" SPACE="RGB" R="0" G="0" B="255"/> | ||
13 | <COLOR NAME="Cool Black" SPACE="CMYK" C="60" M="0" Y="0" K="100"/> | ||
14 | <COLOR NAME="Cyan" SPACE="CMYK" C="100" M="0" Y="0" K="0"/> | ||
15 | <COLOR NAME="Green" SPACE="RGB" R="0" G="255" B="0"/> | ||
16 | <COLOR NAME="Magenta" SPACE="CMYK" C="0" M="100" Y="0" K="0"/> | ||
17 | <COLOR NAME="Red" SPACE="RGB" R="255" G="0" B="0"/> | ||
18 | <COLOR NAME="Registration" SPACE="CMYK" C="100" M="100" Y="100" K="100" Register="1"/> | ||
19 | <COLOR NAME="Rich Black" SPACE="CMYK" C="60" M="40" Y="40" K="100"/> | ||
20 | <COLOR NAME="Warm Black" SPACE="CMYK" C="0" M="60" Y="29.8039215686275" K="100"/> | ||
21 | <COLOR NAME="White" SPACE="CMYK" C="0" M="0" Y="0" K="0"/> | ||
22 | <COLOR NAME="Yellow" SPACE="CMYK" C="0" M="0" Y="100" K="0"/> | ||
23 | <HYPHEN/> | ||
24 | <STYLE NAME="Default Paragraph Style" DefaultStyle="1" ALIGN="0" LINESPMode="0" LINESP="15" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="0" ParagraphEffectOffset="0" DROP="0" DROPLIN="2"/> | ||
25 | <CHARSTYLE CNAME="Default Character Style" DefaultStyle="1" FONT="DejaVu Sans Book" FONTSIZE="12" FEATURES="inherit" FCOLOR="Black" FSHADE="100" SCOLOR="Black" SSHADE="100" TXTSHX="5" TXTSHY="-5" TXTOUT="1" TXTULP="-0.1" TXTULW="-0.1" TXTSTP="-0.1" TXTSTW="-0.1" SCALEH="100" SCALEV="100" BASEO="0" KERN="0" LANGUAGE="fr"/> | ||
26 | <TableStyle NAME="Default Table Style" DefaultStyle="1" FillColor="None" FillShade="100"> | ||
27 | <TableBorderLeft> | ||
28 | <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/> | ||
29 | </TableBorderLeft> | ||
30 | <TableBorderRight> | ||
31 | <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/> | ||
32 | </TableBorderRight> | ||
33 | <TableBorderTop> | ||
34 | <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/> | ||
35 | </TableBorderTop> | ||
36 | <TableBorderBottom> | ||
37 | <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/> | ||
38 | </TableBorderBottom> | ||
39 | </TableStyle> | ||
40 | <CellStyle NAME="Default Cell Style" DefaultStyle="1" FillColor="None" FillShade="100" LeftPadding="1" RightPadding="1" TopPadding="1" BottomPadding="1"> | ||
41 | <TableBorderLeft> | ||
42 | <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/> | ||
43 | </TableBorderLeft> | ||
44 | <TableBorderRight> | ||
45 | <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/> | ||
46 | </TableBorderRight> | ||
47 | <TableBorderTop> | ||
48 | <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/> | ||
49 | </TableBorderTop> | ||
50 | <TableBorderBottom> | ||
51 | <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/> | ||
52 | </TableBorderBottom> | ||
53 | </CellStyle> | ||
54 | <LAYERS NUMMER="0" LEVEL="0" NAME="Fond de page" SICHTBAR="1" DRUCKEN="1" EDIT="1" SELECT="0" FLOW="1" TRANS="1" BLEND="0" OUTL="0" LAYERC="#000000"/> | ||
55 | <Printer firstUse="0" toFile="0" useAltPrintCommand="0" outputSeparations="0" useSpotColors="1" useColor="1" mirrorH="0" mirrorV="0" useICC="1" doGCR="0" doClip="0" setDevParam="0" useDocBleeds="1" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" includePDFMarks="0" PSLevel="3" PDLanguage="3" markLength="20.0012598425197" markOffset="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" printer="HP-Officejet-Pro-8600" filename="" separationName="All" printerCommand=""> | ||
56 | <Separation Name="Cyan"/> | ||
57 | <Separation Name="Magenta"/> | ||
58 | <Separation Name="Jaune"/> | ||
59 | <Separation Name="Noir"/> | ||
60 | </Printer> | ||
61 | <PDF firstUse="1" Thumbnails="0" Articles="0" Bookmarks="0" Compress="1" CMethod="0" Quality="0" EmbedPDF="0" MirrorH="0" MirrorV="0" Clip="0" rangeSel="0" rangeTxt="" RotateDeg="0" PresentMode="0" RecalcPic="0" FontEmbedding="0" Grayscale="0" RGBMode="1" UseProfiles="0" UseProfiles2="0" Binding="0" PicRes="300" Resolution="300" Version="14" Intent="1" Intent2="0" SolidP="sRGB IEC61966-2.1" ImageP="sRGB IEC61966-2.1" PrintP="Fogra27L CMYK Coated Press" InfoString="" BTop="0" BLeft="0" BRight="0" BBottom="0" useDocBleeds="1" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" docInfoMarks="0" markLength="0" markOffset="0" ImagePr="0" PassOwner="" PassUser="" Permissions="-4" Encrypt="0" UseLayers="0" UseLpi="0" UseSpotColors="1" doMultiFile="0" displayBookmarks="0" displayFullscreen="0" displayLayers="0" displayThumbs="0" hideMenuBar="0" hideToolBar="0" fitWindow="0" openAfterExport="0" PageLayout="0" openAction=""> | ||
62 | <LPI Color="Black" Frequency="133" Angle="45" SpotFunction="3"/> | ||
63 | <LPI Color="Cyan" Frequency="133" Angle="105" SpotFunction="3"/> | ||
64 | <LPI Color="Magenta" Frequency="133" Angle="75" SpotFunction="3"/> | ||
65 | <LPI Color="Yellow" Frequency="133" Angle="90" SpotFunction="3"/> | ||
66 | </PDF> | ||
67 | <DocItemAttributes/> | ||
68 | <TablesOfContents/> | ||
69 | <NotesStyles> | ||
70 | <notesStyle Name="Default" Start="1" Endnotes="0" Type="Type_1_2_3" Range="0" Prefix="" Suffix=")" AutoHeight="1" AutoWidth="1" AutoRemove="1" AutoWeld="1" SuperNote="1" SuperMaster="1" MarksStyle="" NotesStyle=""/> | ||
71 | </NotesStyles> | ||
72 | <NotesFrames/> | ||
73 | <PageSets> | ||
74 | <Set Name="Single Page" FirstPage="0" Rows="1" Columns="1"/> | ||
75 | <Set Name="Double Sided" FirstPage="1" Rows="1" Columns="2"> | ||
76 | <PageNames Name="Left Page"/> | ||
77 | <PageNames Name="Right Page"/> | ||
78 | </Set> | ||
79 | <Set Name="3-Fold" FirstPage="0" Rows="1" Columns="3"> | ||
80 | <PageNames Name="Left Page"/> | ||
81 | <PageNames Name="Middle"/> | ||
82 | <PageNames Name="Right Page"/> | ||
83 | </Set> | ||
84 | <Set Name="4-Fold" FirstPage="0" Rows="1" Columns="4"> | ||
85 | <PageNames Name="Left Page"/> | ||
86 | <PageNames Name="Middle Left"/> | ||
87 | <PageNames Name="Middle Right"/> | ||
88 | <PageNames Name="Right Page"/> | ||
89 | </Set> | ||
90 | </PageSets> | ||
91 | <Sections> | ||
92 | <Section Number="0" Name="0" From="0" To="0" Type="Type_1_2_3" Start="1" Reversed="0" Active="1" FillChar="0" FieldWidth="0"/> | ||
93 | </Sections> | ||
94 | <MASTERPAGE PAGEXPOS="100" PAGEYPOS="20" PAGEWIDTH="595.28125984252" PAGEHEIGHT="841.889763779528" BORDERLEFT="42.5196850393701" BORDERRIGHT="42.5196850393701" BORDERTOP="65.1968503937008" BORDERBOTTOM="68.0314960629921" NUM="0" NAM="Normal" MNAM="" Size="Custom" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/> | ||
95 | <PAGE PAGEXPOS="100" PAGEYPOS="20" PAGEWIDTH="595.28125984252" PAGEHEIGHT="841.889763779528" BORDERLEFT="42.5196850393701" BORDERRIGHT="42.5196850393701" BORDERTOP="65.1968503937008" BORDERBOTTOM="68.0314960629921" NUM="0" NAM="" MNAM="Normal" Size="Custom" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="42.5197 552.756 " HorizontalGuides="206.929 773.858 65.1969 " AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="4" AGverticalAutoCount="1" AGhorizontalAutoRefer="1" AGverticalAutoRefer="1" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/> | ||
96 | <PAGEOBJECT XPOS="142.787401574803" YPOS="84.8976377952755" OwnPage="0" ItemID="763541413" PTYPE="2" WIDTH="255.118110236221" HEIGHT="141.732283464567" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="0.239817738518726" LOCALSCY="0.239817738518726" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="0" RATIO="1" Pagenumber="0" PFILE="carte ordipolo.png" PRFILE="sRGB IEC61966-2.1" IRENDER="0" EMBEDDED="0" path="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" copath="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" gXpos="0.26771653543307" gYpos="-0.29921259842519" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1"/> | ||
97 | <PAGEOBJECT XPOS="398.017716535433" YPOS="85.1259842519684" OwnPage="0" ItemID="763258741" PTYPE="2" WIDTH="255.1181102" HEIGHT="141.7322835" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="0.23981773857868" LOCALSCY="0.23981773857868" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="0" RATIO="1" Pagenumber="0" PFILE="carte ordipolo.png" PRFILE="sRGB IEC61966-2.1" IRENDER="0" EMBEDDED="0" path="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" copath="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" gXpos="0.26771653543307" gYpos="-0.29921259842519" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1"/> | ||
98 | <PAGEOBJECT XPOS="398.017716535433" YPOS="227.950787401575" OwnPage="0" ItemID="763533781" PTYPE="2" WIDTH="255.1181102" HEIGHT="141.7322835" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="0.23981773857868" LOCALSCY="0.23981773857868" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="0" RATIO="1" Pagenumber="0" PFILE="carte ordipolo.png" PRFILE="sRGB IEC61966-2.1" IRENDER="0" EMBEDDED="0" path="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" copath="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" gXpos="0.26771653543307" gYpos="0.70078740157481" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1"/> | ||
99 | <PAGEOBJECT XPOS="143.017716535433" YPOS="227.200787401575" OwnPage="0" ItemID="763299093" PTYPE="2" WIDTH="255.1181102" HEIGHT="141.7322835" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="0.23981773857868" LOCALSCY="0.23981773857868" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="0" RATIO="1" Pagenumber="0" PFILE="carte ordipolo.png" PRFILE="sRGB IEC61966-2.1" IRENDER="0" EMBEDDED="0" path="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" copath="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" gXpos="0.26771653543307" gYpos="-0.29921259842519" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1"/> | ||
100 | <PAGEOBJECT XPOS="397.517716535433" YPOS="369.450787401574" OwnPage="0" ItemID="769390165" PTYPE="2" WIDTH="255.1181102" HEIGHT="141.7322835" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="0.23981773857868" LOCALSCY="0.23981773857868" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="0" RATIO="1" Pagenumber="0" PFILE="carte ordipolo.png" PRFILE="sRGB IEC61966-2.1" IRENDER="0" EMBEDDED="0" path="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" copath="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" gXpos="-0.73228346456693" gYpos="0.70078740157481" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1"/> | ||
101 | <PAGEOBJECT XPOS="143.017716535433" YPOS="368.950787401574" OwnPage="0" ItemID="769428293" PTYPE="2" WIDTH="255.1181102" HEIGHT="141.7322835" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="0.23981773857868" LOCALSCY="0.23981773857868" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="0" RATIO="1" Pagenumber="0" PFILE="carte ordipolo.png" PRFILE="sRGB IEC61966-2.1" IRENDER="0" EMBEDDED="0" path="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" copath="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" gXpos="0.267716535433067" gYpos="-0.299212598425189" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1"/> | ||
102 | <PAGEOBJECT XPOS="397.834645669291" YPOS="511.11811023622" OwnPage="0" ItemID="763245205" PTYPE="2" WIDTH="255.1181102" HEIGHT="141.7322835" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="0.23981773857868" LOCALSCY="0.23981773857868" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="0" RATIO="1" Pagenumber="0" PFILE="carte ordipolo.png" PRFILE="sRGB IEC61966-2.1" IRENDER="0" EMBEDDED="0" path="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" copath="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" gXpos="0.26771653543307" gYpos="0.70078740157481" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1"/> | ||
103 | <PAGEOBJECT XPOS="142.517716535433" YPOS="510.700787401574" OwnPage="0" ItemID="763482469" PTYPE="2" WIDTH="255.1181102" HEIGHT="141.7322835" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="0.23981773857868" LOCALSCY="0.23981773857868" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="0" RATIO="1" Pagenumber="0" PFILE="carte ordipolo.png" PRFILE="sRGB IEC61966-2.1" IRENDER="0" EMBEDDED="0" path="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" copath="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" gXpos="0.26771653543307" gYpos="-0.29921259842519" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1"/> | ||
104 | <PAGEOBJECT XPOS="397.874015748031" YPOS="651.950787401574" OwnPage="0" ItemID="768344293" PTYPE="2" WIDTH="255.1181102" HEIGHT="141.7322835" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="0.23981773857868" LOCALSCY="0.23981773857868" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="0" RATIO="1" Pagenumber="0" PFILE="carte ordipolo.png" PRFILE="sRGB IEC61966-2.1" IRENDER="0" EMBEDDED="0" path="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" copath="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" gXpos="0.26771653543307" gYpos="-0.299212598425189" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1"/> | ||
105 | <PAGEOBJECT XPOS="142.602362204724" YPOS="651.700787401574" OwnPage="0" ItemID="763041925" PTYPE="2" WIDTH="255.1181102" HEIGHT="141.7322835" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="0.23981773857868" LOCALSCY="0.23981773857868" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="0" RATIO="1" Pagenumber="0" PFILE="carte ordipolo.png" PRFILE="sRGB IEC61966-2.1" IRENDER="0" EMBEDDED="0" path="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" copath="M0 0 L255.118 0 L255.118 141.732 L0 141.732 L0 0 Z" gXpos="0.26771653543307" gYpos="-0.299212598425189" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1"/> | ||
106 | </DOCUMENT> | ||
107 | </SCRIBUSUTF8NEW> | ||
diff --git a/pub/flyer.pdf b/pub/flyer.pdf new file mode 100644 index 0000000..87c4426 --- /dev/null +++ b/pub/flyer.pdf | |||
Binary files differ | |||
diff --git a/pub/flyer.xcf b/pub/flyer.xcf new file mode 100644 index 0000000..c8cb7f3 --- /dev/null +++ b/pub/flyer.xcf | |||
Binary files differ | |||