diff options
Diffstat (limited to 'src/sections/2_service.php')
-rw-r--r-- | src/sections/2_service.php | 118 |
1 files changed, 62 insertions, 56 deletions
diff --git a/src/sections/2_service.php b/src/sections/2_service.php index 1d58606..9683ef9 100644 --- a/src/sections/2_service.php +++ b/src/sections/2_service.php | |||
@@ -8,13 +8,14 @@ function newService($Client): array // $Client est un Client ou null | |||
8 | // fenêtres | 8 | // fenêtres |
9 | $MenuEnregistrement = new ZenityList(ZenitySetup::$menu_enregistrement_text, ZenitySetup::$menu_enregistrement_entrees); | 9 | $MenuEnregistrement = new ZenityList(ZenitySetup::$menu_enregistrement_text, ZenitySetup::$menu_enregistrement_entrees); |
10 | $Calendrier = new ZenityCalendar(ZenitySetup::$calendar['section2']); | 10 | $Calendrier = new ZenityCalendar(ZenitySetup::$calendar['section2']); |
11 | $FormulaireDevis = new ZenityForms(ZenitySetup::$formulaire_text, ZenitySetup::$formulaire_devis_entrees); | 11 | $FormulaireDevis = new ZenityForms(ZenitySetup::$formulaire['text'], ZenitySetup::$formulaire['devis_entrees']); |
12 | $FormulaireFacture = new ZenityForms(ZenitySetup::$formulaire_text, ZenitySetup::$formulaire_facture_entrees); | 12 | $FormulaireFacture = new ZenityForms(ZenitySetup::$formulaire['text'], ZenitySetup::$formulaire['facture_entrees']); |
13 | $FormulaireCesu = new ZenityForms(ZenitySetup::$formulaire_text, ZenitySetup::$formulaire_cesu_entrees); | 13 | $FormulaireFactureReduit = new ZenityForms(ZenitySetup::$formulaire['text'], ZenitySetup::$formulaire['facture_entrees_reduit']); |
14 | $FormulaireLocation = new ZenityForms(ZenitySetup::$formulaire_text, ZenitySetup::$formulaire_location_entrees); | 14 | $FormulaireCesu = new ZenityForms(ZenitySetup::$formulaire['text'], ZenitySetup::$formulaire['cesu_entrees']); |
15 | $FormulaireLocation = new ZenityForms(ZenitySetup::$formulaire['text'], ZenitySetup::$formulaire['location_entrees']); | ||
15 | $CommentairePrestation = new ZenityEntry(ZenitySetup::$commentaire_prestation_text); | 16 | $CommentairePrestation = new ZenityEntry(ZenitySetup::$commentaire_prestation_text); |
16 | //$Recapitulatif = new ZenityList(ZenitySetup::$recapitulatif_text, ZenitySetup::$recapitulatif_entrees); // tableau à multiples colonnes | 17 | //$Recapitulatif = new ZenityList(ZenitySetup::$recapitulatif_text, ZenitySetup::$recapitulatif_entrees); // tableau à multiples colonnes |
17 | $FinSection2 = new ZenityList(ZenitySetup::$fin_section_2_text, ZenitySetup::$fin_section_2_entrees); | 18 | $FinSection2 = new ZenityList(ZenitySetup::$fin_section_2['text'], ZenitySetup::$fin_section_2['entrees']); |
18 | 19 | ||
19 | 20 | ||
20 | // -- partie 1: le client -- | 21 | // -- partie 1: le client -- |
@@ -57,44 +58,38 @@ function newService($Client): array // $Client est un Client ou null | |||
57 | case ZenitySetup::$menu_enregistrement_entrees[0]: // "Devis" | 58 | case ZenitySetup::$menu_enregistrement_entrees[0]: // "Devis" |
58 | $PrestaDetails = new DevisFactures('devis'); | 59 | $PrestaDetails = new DevisFactures('devis'); |
59 | $Presta->setTypePresta('devis'); | 60 | $Presta->setTypePresta('devis'); |
60 | $input = exec($FormulaireDevis->get()); | 61 | $answers = exec($FormulaireDevis->get()); |
61 | break; | 62 | break; |
62 | case ZenitySetup::$menu_enregistrement_entrees[1]: // "Facture" | 63 | case ZenitySetup::$menu_enregistrement_entrees[1]: // "Facture" |
64 | $PrestaDetails = new DevisFactures('factures'); // attention! type "facture" mais table "factures" | ||
65 | $Presta->setTypePresta('facture'); | ||
66 | $answers = exec($FormulaireFacture->get()); | ||
67 | break; | ||
68 | case ZenitySetup::$menu_enregistrement_entrees[2]: // "Facture à partir d'un devis" | ||
69 | // recherche du devis | ||
70 | $Quotation = getServices($Client, 'devis'); // rechercher un devis, type 'devis' spécifié pour $Presta->getIDsByIdClient() | ||
71 | if(!is_object($Quotation) || get_class($Quotation) != 'Prestations' || $Quotation->getTypePresta() != 'devis') | ||
72 | { | ||
73 | echo "debug: annulation sélection client\n"; | ||
74 | return [2, $Client]; // menu précédent | ||
75 | } | ||
76 | $QuotationDetails = new DevisFactures('devis'); | ||
77 | // facture: objet vide et formulaire | ||
63 | $PrestaDetails = new DevisFactures('factures'); | 78 | $PrestaDetails = new DevisFactures('factures'); |
64 | $Presta->setTypePresta('facture'); | 79 | $Presta->setTypePresta('facture'); |
65 | $input =exec($FormulaireFacture->get()); | 80 | $answers = exec($FormulaireFactureReduit->get()); |
81 | //$answers = '' + answers[0], answers[1], answers[2], answers[3], '', '', '', '', '', answers[4]; | ||
82 | //var_dump($answers); | ||
66 | break; | 83 | break; |
67 | |||
68 | //~ case ZenitySetup::$menu_enregistrement_entrees[2]: // "Facture à partir d'un devis" | ||
69 | //~ $PrestaDetails = new DevisFactures('facture'); | ||
70 | //~ $Presta->setTypePresta('facture'); | ||
71 | // 1 choix d'un devis | ||
72 | //makeObjectService(); // liste les devis existants pour ce client | ||
73 | // | ||
74 | // 2 hydratation | ||
75 | // | ||
76 | // 3 préremplissage du formulaire | ||
77 | //$FormulaireFacture->set($Data) | ||
78 | // | ||
79 | // et plus loin: | ||
80 | // 4 édition de la facture | ||
81 | //$input = exec($FormulaireFacture->get()); | ||
82 | // | ||
83 | // 5 hydratation avec les changements | ||
84 | // | ||
85 | //echo $FormulaireFacture->get() . "\n"; | ||
86 | //~ $input = exec($FormulaireFacture->get()); | ||
87 | //~ break; | ||
88 | |||
89 | case ZenitySetup::$menu_enregistrement_entrees[3]: // "CESU" | 84 | case ZenitySetup::$menu_enregistrement_entrees[3]: // "CESU" |
90 | $PrestaDetails = new CESU(); | 85 | $PrestaDetails = new CESU(); |
91 | $Presta->setTypePresta('cesu'); | 86 | $Presta->setTypePresta('cesu'); |
92 | $input = exec($FormulaireCesu->get()); | 87 | $answers = exec($FormulaireCesu->get()); |
93 | break; | 88 | break; |
94 | case ZenitySetup::$menu_enregistrement_entrees[4]: // "Location" | 89 | case ZenitySetup::$menu_enregistrement_entrees[4]: // "Location" |
95 | $PrestaDetails = new Locations(); | 90 | $PrestaDetails = new Locations(); |
96 | $Presta->setTypePresta('location'); | 91 | $Presta->setTypePresta('location'); |
97 | $input = exec($FormulaireLocation->get()); | 92 | $answers = exec($FormulaireLocation->get()); |
98 | break; | 93 | break; |
99 | case ZenitySetup::$menu_enregistrement_entrees[5]: // "Prestation non vendue" | 94 | case ZenitySetup::$menu_enregistrement_entrees[5]: // "Prestation non vendue" |
100 | $Presta->setTypePresta('non_vendue'); | 95 | $Presta->setTypePresta('non_vendue'); |
@@ -106,28 +101,12 @@ function newService($Client): array // $Client est un Client ou null | |||
106 | 101 | ||
107 | $Presta->makeCodePresta($Date, $Client->getCodeClient()); // d'un objet à l'autre | 102 | $Presta->makeCodePresta($Date, $Client->getCodeClient()); // d'un objet à l'autre |
108 | 103 | ||
109 | // hydratation ou saut étape 3/3 si presta non vendu | ||
110 | if($choix_niv2 != ZenitySetup::$menu_enregistrement_entrees[5]) | ||
111 | { | ||
112 | if($input == '') // annulation | ||
113 | { | ||
114 | echo "debug: annulation lors de l'enregistrement des détails de la prestation\n"; | ||
115 | return [0, null]; | ||
116 | } | ||
117 | elseif(isset($PrestaDetails) && !$PrestaDetails->hydrateFromForm($input, $Presta)) // echec de l'hydratation | ||
118 | { | ||
119 | echo "debug: erreur de hydrateFromForm()\n"; // messages d'erreur à mettre ici ou dans hydrateFromForm()? | ||
120 | return [0, null]; | ||
121 | } | ||
122 | unset($input); | ||
123 | } | ||
124 | |||
125 | // commentaire - étape 3/3 | 104 | // commentaire - étape 3/3 |
126 | $input = exec($CommentairePrestation->get()); | 105 | $comment = exec($CommentairePrestation->get()); |
127 | if($input == '') | 106 | if($comment == '') |
128 | { | 107 | { |
129 | echo "debug: pas de commentaire saisi\n"; | 108 | echo "debug: pas de commentaire saisi\n"; |
130 | // on n'interrompt pas le script et on enregistre dans tous les cas (annulatation, chaîne vide) | 109 | // on n'interrompt pas le script et on enregistre dans tous les cas (annulatation comprise) |
131 | } | 110 | } |
132 | // Cliquer sur annuler (ou appuyer sur échap) revient dont à valider avec une chaîne vide et enregistrer la prestation | 111 | // Cliquer sur annuler (ou appuyer sur échap) revient dont à valider avec une chaîne vide et enregistrer la prestation |
133 | // la commande 'echo $?' ($? est le code de sortie de la commande précédente) renvoit 1 si on annule avec la touche échap () | 112 | // la commande 'echo $?' ($? est le code de sortie de la commande précédente) renvoit 1 si on annule avec la touche échap () |
@@ -140,13 +119,39 @@ function newService($Client): array // $Client est un Client ou null | |||
140 | //~ echo "debug: annulation à la saisie d'un commentaire\n"; | 119 | //~ echo "debug: annulation à la saisie d'un commentaire\n"; |
141 | //~ return 0; | 120 | //~ return 0; |
142 | //~ } | 121 | //~ } |
143 | $Presta->setCommentaires($input); | 122 | $Presta->setCommentaires($comment); |
144 | unset($input); | 123 | |
124 | // hydratation d'une facture à partir d'un devis | ||
125 | if($choix_niv2 === ZenitySetup::$menu_enregistrement_entrees[2]) // cas: facture à partir d'un devis | ||
126 | { | ||
127 | // devis retrouvé ($Quotation est déjà hydraté) | ||
128 | $QuotationDetails->setIDPresta($Quotation->getID()); | ||
129 | $QuotationDetails->hydrate($QuotationDetails->getDetailsByIdPresta()); | ||
130 | |||
131 | // facture avec le devis | ||
132 | $QuotationDetails->hydrateReceiptWithQuotation($PrestaDetails); | ||
133 | } | ||
134 | |||
135 | // hydratation avec la saisie du formulaire | ||
136 | if($choix_niv2 != ZenitySetup::$menu_enregistrement_entrees[5]) // cas: tous les cas sauf presta non vendue | ||
137 | { | ||
138 | if($answers == '') // annulation | ||
139 | { | ||
140 | echo "debug: annulation lors de l'enregistrement des détails de la prestation\n"; | ||
141 | return [0, null]; | ||
142 | } | ||
143 | elseif(isset($PrestaDetails) && !$PrestaDetails->hydrateFromForm($answers, $Presta)) // echec de l'hydratation | ||
144 | { | ||
145 | echo "debug: erreur de hydrateFromForm()\n"; // messages d'erreur à mettre ici ou dans hydrateFromForm()? | ||
146 | return [0, null]; | ||
147 | } | ||
148 | } | ||
145 | 149 | ||
150 | // mise à jour base de données | ||
146 | $Presta->create(); | 151 | $Presta->create(); |
147 | $Presta->setID(); // sans paramètre, exécute un $this->db->lastInsertId() | 152 | $Presta->setID(); // sans paramètre, exécute un $this->db->lastInsertId() |
148 | 153 | ||
149 | if(isset($PrestaDetails)) // presta non vendue | 154 | if(isset($PrestaDetails)) // presta vendue |
150 | { | 155 | { |
151 | $PrestaDetails->setIDPresta($Presta->getID()); // d'un objet à l'autre | 156 | $PrestaDetails->setIDPresta($Presta->getID()); // d'un objet à l'autre |
152 | $PrestaDetails->create(); | 157 | $PrestaDetails->create(); |
@@ -210,18 +215,19 @@ function newService($Client): array // $Client est un Client ou null | |||
210 | //~ $imprimer_facture = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer la facture?"'); | 215 | //~ $imprimer_facture = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer la facture?"'); |
211 | //~ $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"'); | 216 | //~ $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"'); |
212 | 217 | ||
218 | // ? modifications avec le menu de la section 3 obtenu avec makeModifyCustomerWindow() | ||
213 | 219 | ||
214 | // -- partie 5: on fait quoi maintenant -- | 220 | // -- partie 5: on fait quoi maintenant -- |
215 | $choix_niv2 = exec($FinSection2->get()); | 221 | $choix_niv2 = exec($FinSection2->get()); |
216 | if($choix_niv2 === ZenitySetup::$fin_section_2_entrees[0]) | 222 | if($choix_niv2 === ZenitySetup::$fin_section_2['entrees'][0]) // afficher le document |
217 | { | 223 | { |
218 | return [4, null]; // section 4: getDocument() | 224 | return [4, null]; // section 4: getDocument() |
219 | } | 225 | } |
220 | elseif($choix_niv2 === ZenitySetup::$fin_section_2_entrees[1]) | 226 | elseif($choix_niv2 === ZenitySetup::$fin_section_2['entrees'][1]) // modifier les informations |
221 | { | 227 | { |
222 | return [3, $Client]; // section 3: modifyData() | 228 | return [3, $Client]; // section 3: modifyData() |
223 | } | 229 | } |
224 | elseif($choix_niv2 === ZenitySetup::$fin_section_2_entrees[2]) | 230 | elseif($choix_niv2 === ZenitySetup::$fin_section_2['entrees'][2]) // enregistrer une autre prestation |
225 | { | 231 | { |
226 | return [2, null]; // relancer section 2: newService() | 232 | return [2, null]; // relancer section 2: newService() |
227 | } | 233 | } |