From 8adc144bfa9758e6f7ba8470197420c473e47a05 Mon Sep 17 00:00:00 2001 From: Noizette Date: Sat, 24 Oct 2020 07:04:06 +0200 Subject: [PATCH] Modifs ajout {form_field} --- lib/Facture.php | 28 +++++-------- templates/_js.tpl | 43 ++++++++++++++++++++ templates/facture_ajouter.tpl | 45 +-------------------- templates/facture_modifier.tpl | 73 +++++++--------------------------- www/admin/facture_modifier.php | 38 ++++++++++-------- 5 files changed, 93 insertions(+), 134 deletions(-) create mode 100644 templates/_js.tpl diff --git a/lib/Facture.php b/lib/Facture.php index 43fc626..21bf50e 100644 --- a/lib/Facture.php +++ b/lib/Facture.php @@ -55,16 +55,20 @@ class Facture switch($k) { case 'type_facture': - if (!array_key_exists($datas[$k], $this->type)) - { + if (!array_key_exists($datas[$k], $this->type)) { throw new UserException("$k est de type non-attendue ($data)."); } + if ($datas[$k] > 1) { + $recu = true; + } + else { + $recu = false; + } break; case 'receveur_membre': case 'reglee': case 'archivee': - if ($datas[$k] != 1 && $datas[$k] != 0) - { + if ($datas[$k] != 1 && $datas[$k] != 0) { throw new UserException("$k est de valeur non-attendue ($data)."); } break; @@ -94,13 +98,7 @@ class Facture unset($cats); break; case 'contenu': - $tmp = false; - if ($datas['type_facture'] > 1) { - // $datas[$k] = null; - // break; - $tmp = true; - } - if (!$tmp && !is_array($datas[$k]) || empty($datas[$k])) { + if (!$recu && (!is_array($datas[$k]) || empty($datas[$k]))) { throw new UserException("Le contenu du document est vide ($data)."); } $total = 0; @@ -117,18 +115,14 @@ class Facture } $total += $r['prix']; } - if($vide) + if(!$recu && $vide) { throw new UserException("Toutes les désignations/prix sont vides."); } $datas[$k] = json_encode($datas[$k]); break; case 'total': - if ($datas['type_facture'] > 1) { - // $datas[$k] = null; - break; - } - if (!isset($datas['contenu'])) { + if (!$recu && !isset($datas['contenu'])) { throw new UserException("Pas de contenu fourni pour vérifier le total."); } if ($total != $datas[$k]) diff --git a/templates/_js.tpl b/templates/_js.tpl new file mode 100644 index 0000000..fa2d0a1 --- /dev/null +++ b/templates/_js.tpl @@ -0,0 +1,43 @@ + \ No newline at end of file diff --git a/templates/facture_ajouter.tpl b/templates/facture_ajouter.tpl index 4123285..a91588b 100644 --- a/templates/facture_ajouter.tpl +++ b/templates/facture_ajouter.tpl @@ -15,6 +15,7 @@
@@ -138,49 +139,7 @@
- + {include file="%s/templates/_js.tpl"|args:$plugin_root}

{csrf_field key="ajout_facture"} diff --git a/templates/facture_modifier.tpl b/templates/facture_modifier.tpl index ea4a5a6..eeae1ac 100644 --- a/templates/facture_modifier.tpl +++ b/templates/facture_modifier.tpl @@ -15,9 +15,9 @@

@@ -25,7 +25,7 @@
obligatoire et unique
-
+

Chaque facture doit comporter un numéro unique délivré chronologiquement et de façon continue.
Il faut que le système adopté par l'association garantisse que deux factures émises la même année ne peuvent pas porter le même numéro.


@@ -36,10 +36,10 @@
-
+
-
+
@@ -50,20 +50,20 @@
- - + +
obligatoire
- {foreach from=$membres item="membre"} - + {/foreach} - {foreach from=$clients item="client"} - + {/foreach}
@@ -77,8 +77,8 @@
obligatoire
@@ -138,50 +138,7 @@
- + {include file="%s/templates/_js.tpl"|args:$plugin_root}

{csrf_field key="modifier_facture"} diff --git a/www/admin/facture_modifier.php b/www/admin/facture_modifier.php index 8259923..44f1e3c 100644 --- a/www/admin/facture_modifier.php +++ b/www/admin/facture_modifier.php @@ -7,6 +7,7 @@ require_once __DIR__ . '/_inc.php'; $session->requireAccess('compta', Membres::DROIT_ECRITURE); use Garradin\DB; +use stdClass; qv(['id' => 'required|numeric']); $id = (int) qg('id'); @@ -19,9 +20,8 @@ if (!$f) } $cats = new Compta\Categories; -$tpl->assign('moyens_paiement', $cats->listMoyensPaiement()); -$tpl->assign('moyen_paiement', f('moyen_paiement') ?: $f->moyen_paiement); +// Traitement if(f('save')) { @@ -85,12 +85,12 @@ if(f('save')) if (f('base_receveur') == 'client') { $truc['receveur_membre'] = 0; - $truc['receveur_id'] = f('client'); + $truc['receveur_id'] = f('client_id'); } elseif (f('base_receveur') == 'membre') { $truc['receveur_membre'] = 1; - $truc['receveur_id'] = f('membre'); + $truc['receveur_id'] = f('membre_id'); } $r = $facture->edit($id, $truc); @@ -105,16 +105,25 @@ if(f('save')) } } -$tpl->assign('type', $facture->type[$f->type_facture]); -$tpl->assign('numero_facture', f('numero_facture') ?: $f->numero); -$tpl->assign('date_emission', strtotime(f('date_emission')) ?: $f->date_emission); -$tpl->assign('date_echeance', strtotime(f('date_echeance')) ?: $f->date_echeance); -$tpl->assign('reglee', f('reglee') ?: ($f->reglee?'on':'off')); -$tpl->assign('base_receveur', f('base_receveur') ?: ($f->receveur_membre?'membre':'client')); -$tpl->assign('client_id', f('client') ?: $f->receveur_id); -$tpl->assign('membre_id', f('membre') ?: $f->receveur_id); +// Affichage +$doc = new stdClass(); +$doc->moyens_paiement = $cats->listMoyensPaiement(); +$doc->moyen_paiement = $f->moyen_paiement; +$doc->type = $facture->type[$f->type_facture]; +$doc->numero_facture = $f->numero; +$doc->reglee = $f->reglee?'on':'off'; +$doc->base_receveur = $f->receveur_membre?'membre':'client'; +$doc->client_id = $f->receveur_id; +$doc->membre_id = $f->receveur_id; +$tpl->assign('date_emission', strtotime(f('date_emission')) ?: $f->date_emission); // Smarty m'a saoulé pour utiliser form_field|date_fr:--- +$tpl->assign('date_echeance', strtotime(f('date_echeance')) ?: $f->date_echeance); // Du coup j'utilise form_field pour ces champs + +$tpl->assign('doc', $doc); + +// C'est un peu l'équivalent de form_field, mais j'avais écrit ça avant +// et oulala, c'est un peu complexe, faudrait réfléchir keskivomieux if (($d = f('designation')) && ($p = f('prix'))) { foreach($d as $k=>$v) @@ -127,7 +136,7 @@ if (($d = f('designation')) && ($p = f('prix'))) $prix[] = $p[$k]; } } -else/*if ($f->contenu)*/ +else { foreach($f->contenu as $k=>$v) { @@ -140,12 +149,9 @@ else/*if ($f->contenu)*/ } } $tpl->assign('designations', $designations); -// $tpl->assign('designations', [0=>'',1=>'']); $tpl->assign('prix', $prix); -// $tpl->assign('prix', ['','']); $tpl->assign('membres', (array)DB::getInstance()->get('SELECT id, nom FROM membres WHERE id_categorie != -2 NOT IN (SELECT id FROM membres_categories WHERE cacher = 1);')); $tpl->assign('clients', $client->listAll()); -$tpl->assign('facture', $f); $tpl->display(PLUGIN_ROOT . '/templates/facture_modifier.tpl');