From 92408f663c87a52da2185bd466ab9f0690035a51 Mon Sep 17 00:00:00 2001 From: bohwaz Date: Fri, 17 Dec 2021 14:35:12 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20en=20commun=20du=20code=20entre=20modifi?= =?UTF-8?q?er=20et=20ajouter,=20moins=20de=20duplication=20=C3=A0=20g?= =?UTF-8?q?=C3=A9rer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/_form.tpl | 221 ++++++++++++++++++++++++++++++++ templates/facture_ajouter.tpl | 227 +-------------------------------- templates/facture_modifier.tpl | 222 +------------------------------- www/admin/facture_ajouter.php | 13 +- www/admin/facture_modifier.php | 13 +- 5 files changed, 239 insertions(+), 457 deletions(-) create mode 100644 templates/_form.tpl diff --git a/templates/_form.tpl b/templates/_form.tpl new file mode 100644 index 0000000..e557e2f --- /dev/null +++ b/templates/_form.tpl @@ -0,0 +1,221 @@ +{form_errors} + +
+ +
+ Type d'écriture +
+ {foreach from=$types_details item="type"} +
+ {input type="radio" name="type" value=$type.id source=$radio label=null} + +
+ {/foreach} +
+
+ +
+ Créer un devis + Créer une facture + Créer un reçu fiscal + Créer un reçu de cotisation +
+ + {input type="text" name="numero_facture" maxlength=12 label="Numéro du document" required=1 source=$doc help="Chaque document 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."} + + {input type="date" name="date_emission" default=$date label="Date d'émission" required=1 source=$doc} +
+

Date du versemen du don

+
+
+ {input type="date" name="date_echeance" default=$date label="Date d'échéance" required=1 source=$doc} +
+

Date d'établissement du document

+
+
+ +
+ + {input type="checkbox" name="reglee" value="1" label="Réglée" source=$doc data-types="t1"} +
+ {input type="checkbox" name="archivee" value="1" label="Archivée" source=$doc disabled="disabled"} +
+ +
+
+ +
+ Client + +
+
+ {if !empty($clients)} +
+ {input type="radio" name="base_receveur" value="membre" label="Un·e membre" default=1 source=$doc} + {input type="radio" name="base_receveur" value="client" label="Un·e client·e" source=$doc} +
+ {/if} +
+ +
+ {input type="select" name="membre" label="Membre" options=$membres required=1 source=$doc} +
+ + {if !empty($clients)} +
+ {input type="select" name="client" label="Client" options=$clients required=1 class="type_client" source=$doc} +
+ {else} + + {/if} +
+ +
+ Contenu + +
+ {input type="select" name="moyen_paiement" required=1 label="Moyen de paiement" source=$doc options=$moyens_paiement} + +
+
+ + + + + + + + + + + + + + + {if count($designations) > 0} + + + {money_fac name="prix_tpl[]"} + + + + {foreach from=$designations item=designation key=key} + + + {money_fac value=$prix[$key] user=$from_user} + + + {/foreach} + {else} + + + {money_fac name="prix_tpl[]"} + + + {/if} + + + + + + + + +
DésignationPrix
{button label="Enlever" title="Enlever la ligne" shape="minus" min="2" name="remove_line"}
Total :0.00{button label="Ajouter" title="Ajouter une ligne" id="ajouter_ligne" shape="plus"}
+
+
+
+ +

+ {csrf_field key=$csrf_key} + {button type="submit" name="save" label="Enregistrer" shape="right" class="main"} +

+ +
+ Membre +
+
+
+ {input type="select" name="membre_cotis" label="Membre" options=$membres required=1 source=$doc} +
+
+
+ +

+ {csrf_field key="add_cotis_1"} + {button type="submit" name="select_cotis" label="Sélectionner" shape="right" class="main"} +

+ + +{if $step} +
+ Cotisation + {if count($liste)} +
+
Sélectionnez la cotisation concernée :
+ + + + + + + + + + + + + + {foreach from=$liste item=cotis key=i} + {if !$cotis.paid} + {continue} + {/if} + + + {foreach from=$cotis item=element key=key} + {if $key == 'paid'} + {continue} + {/if} + + {/foreach} + + {/foreach} +
IdIntituléDate d'inscriptionExpiration d'expirationTarifMontantSomme payée
+ {input type="radio" name="cotisation" value="%s"|args:$i} + + +
+ +
+
+ +

+ {csrf_field key="add_cotis_2"} + {button type="submit" name="add_cotis" label="Enregistrer" shape="right" class="main"} +

+ {else} +

Ce membre n'a aucune cotisation payée.

+ + {/if} +{/if} + +
+ +{include file="%s/templates/_js.tpl"|args:$plugin_root} diff --git a/templates/facture_ajouter.tpl b/templates/facture_ajouter.tpl index 9aa9471..6e6ae58 100644 --- a/templates/facture_ajouter.tpl +++ b/templates/facture_ajouter.tpl @@ -1,232 +1,7 @@ {include file="admin/_head.tpl" title="Créer un document — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id js=1} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="facture"} -{form_errors} - -
- -
- Type d'écriture -
- {foreach from=$types_details item="type"} -
- {input type="radio" name="type" value=$type.id source=$radio label=null} - -
- {/foreach} -
-
- -
- Créer un devis - Créer une facture - Créer un reçu fiscal - Créer un reçu de cotisation -
- - {input type="text" name="numero_facture" maxlength=12 label="Numéro du document" required=1 help="Chaque document 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."} - - {input type="date" name="date_emission" default=$date label="Date d'émission" required=1 } -
-

Date du versemen du don

-
-
- {input type="date" name="date_echeance" default=$date label="Date d'échéance" required=1 } -
-

Date d'établissement du document

-
-
- -
- - {input type="checkbox" name="reglee" value="" label="Réglée" data-types="t1"} -
- {input type="checkbox" name="archivee" value="" label="Archivée" disabled="disabled"} -
- -
-
- -
- Client - -
-
- {if !empty($clients)} -
- {input type="radio" name="base_receveur" value="membre" label="Un·e membre" default=1} - {input type="radio" name="base_receveur" value="client" label="Un·e client·e"} -
- {/if} -
- -
- {input type="select" name="membre" label="Membre" options=$membres required=1} -
- - {if !empty($clients)} -
- {input type="select" name="client" label="Client" options=$clients required=1 class="type_client"} -
- {else} - - {/if} -
- -
- Contenu - -
-
obligatoire
-
- -
- -
-
- - - - - - - - - - - - - - - {if count($designations) > 0} - - - {money_fac name="prix_tpl[]"} - - - - {foreach from=$designations item=designation key=key} - - - {money_fac value=$prix[$key] user=$from_user} - - - {/foreach} - {else} - - - {money_fac name="prix_tpl[]"} - - - {/if} - - - - - - - - -
DésignationPrix
{button label="Enlever" title="Enlever la ligne" shape="minus" min="2" name="remove_line"}
Total :0.00{button label="Ajouter" title="Ajouter une ligne" id="ajouter_ligne" shape="plus"}
-
-
-
- -

- {csrf_field key="ajout_facture"} - {button type="submit" name="add" label="Enregistrer" shape="right" class="main"} -

- -
- Membre -
-
-
- {input type="select" name="membre_cotis" label="Membre" options=$membres required=1} -
-
-
- -

- {csrf_field key="add_cotis_1"} - {button type="submit" name="select_cotis" label="Sélectionner" shape="right" class="main"} -

- - -{if $step} -
- Cotisation - {if count($liste)} -
-
Sélectionnez la cotisation concernée :
- - - - - - - - - - - - - - {foreach from=$liste item=cotis key=i} - {if !$cotis.paid} - {continue} - {/if} - - - {foreach from=$cotis item=element key=key} - {if $key == 'paid'} - {continue} - {/if} - - {/foreach} - - {/foreach} -
IdIntituléDate d'inscriptionExpiration d'expirationTarifMontantSomme payée
- {input type="radio" name="cotisation" value="%s"|args:$i} - - -
- -
-
- -

- {csrf_field key="add_cotis_2"} - {button type="submit" name="add_cotis" label="Enregistrer" shape="right" class="main"} -

- {else} -

Ce membre n'a aucune cotisation payée.

- - {/if} -{/if} - -
+{include file="%s/templates/_form.tpl"|args:$plugin_root} {include file="%s/templates/_js.tpl"|args:$plugin_root} diff --git a/templates/facture_modifier.tpl b/templates/facture_modifier.tpl index 195753d..a738782 100644 --- a/templates/facture_modifier.tpl +++ b/templates/facture_modifier.tpl @@ -1,226 +1,6 @@ {include file="admin/_head.tpl" title="Modifier un document — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id js=1} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="index"} -{form_errors} - -
- -
- Type d'écriture -
- {foreach from=$types_details item="type"} -
- {input type="radio" name="type" value=$type.id source=$radio label=null} - -
- {/foreach} -
-
- -
- Créer un devis - Créer une facture - Créer un reçu fiscal - Créer un reçu de cotisation -
- - {input type="text" name="numero_facture" maxlength=12 label="Numéro du document" required=1 source=$doc help="Chaque document 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."} - - {input type="date" name="date_emission" default=$date label="Date d'émission" required=1 source=$doc} -
-

Date du versemen du don

-
-
- {input type="date" name="date_echeance" default=$date label="Date d'échéance" required=1 source=$doc} -
-

Date d'établissement du document

-
-
- -
- - {input type="checkbox" name="reglee" value="1" label="Réglée" source=$doc data-types="t1"} -
- {input type="checkbox" name="archivee" value="1" label="Archivée" source=$doc disabled="disabled"} -
- -
-
- -
- Client - -
-
- {if !empty($clients)} -
- {input type="radio" name="base_receveur" value="membre" label="Un·e membre" default=1 source=$doc} - {input type="radio" name="base_receveur" value="client" label="Un·e client·e" source=$doc} -
- {/if} -
- -
- {input type="select" name="membre" label="Membre" options=$membres required=1 source=$doc} -
- - {if !empty($clients)} -
- {input type="select" name="client" label="Client" options=$clients required=1 class="type_client" source=$doc} -
- {else} - - {/if} -
- -
- Contenu - -
- {input type="select" name="moyen_paiement" required=1 label="Moyen de paiement" source=$doc options=$doc.moyens_paiement} - -
-
- - - - - - - - - - - - - - - {if count($designations) > 0} - - - {money_fac name="prix_tpl[]"} - - - - {foreach from=$designations item=designation key=key} - - - {money_fac value=$prix[$key] user=$from_user} - - - {/foreach} - {else} - - - {money_fac name="prix_tpl[]"} - - - {/if} - - - - - - - - -
DésignationPrix
{button label="Enlever" title="Enlever la ligne" shape="minus" min="2" name="remove_line"}
Total :0.00{button label="Ajouter" title="Ajouter une ligne" id="ajouter_ligne" shape="plus"}
-
-
-
- -

- {csrf_field key="modifier_facture"} - {button type="submit" name="save" label="Enregistrer" shape="right" class="main"} -

- -
- Membre -
-
-
- {input type="select" name="membre_cotis" label="Membre" options=$membres required=1 source=$doc} -
-
-
- -

- {csrf_field key="add_cotis_1"} - {button type="submit" name="select_cotis" label="Sélectionner" shape="right" class="main"} -

- - -{if $step} -
- Cotisation - {if count($liste)} -
-
Sélectionnez la cotisation concernée :
- - - - - - - - - - - - - - {foreach from=$liste item=cotis key=i} - {if !$cotis.paid} - {continue} - {/if} - - - {foreach from=$cotis item=element key=key} - {if $key == 'paid'} - {continue} - {/if} - - {/foreach} - - {/foreach} -
IdIntituléDate d'inscriptionExpiration d'expirationTarifMontantSomme payée
- {input type="radio" name="cotisation" value="%s"|args:$i} - - -
- -
-
- -

- {csrf_field key="add_cotis_2"} - {button type="submit" name="add_cotis" label="Enregistrer" shape="right" class="main"} -

- {else} -

Ce membre n'a aucune cotisation payée.

- - {/if} -{/if} - -
- -{include file="%s/templates/_js.tpl"|args:$plugin_root} +{include file="%s/templates/_form.tpl"|args:$plugin_root} {include file="admin/_foot.tpl"} diff --git a/www/admin/facture_ajouter.php b/www/admin/facture_ajouter.php index 903d6f3..880d2a0 100644 --- a/www/admin/facture_ajouter.php +++ b/www/admin/facture_ajouter.php @@ -14,14 +14,19 @@ $db = DB::getInstance(); $step = $radio = false; $liste = []; +$csrf_key = 'ajout_facture'; $fields = $facture->recu_fields; -$tpl->assign('moyens_paiement', $facture->listMoyensPaiement()); +$moyens_paiement = $facture->listMoyensPaiement(true); + +$doc = null; + +$tpl->assign('moyens_paiement', $moyens_paiement); $tpl->assign('moyen_paiement', f('moyen_paiement') ?: 'ES'); if (f('add')) { - $form->check('ajout_facture', [ + $form->check($csrf_key, [ 'type' => 'required|in:'.implode(',', [DEVIS, FACT, CERFA]), 'numero_facture' => 'required|string', 'date_emission' => 'required|date_format:d/m/Y', @@ -31,7 +36,7 @@ if (f('add')) 'base_receveur' => 'required|in:membre,client', // 'client' => '', // 'membre' => '', - 'moyen_paiement' => 'required|in:' . implode(',', array_keys($facture->listMoyensPaiement())), + 'moyen_paiement' => 'required|in:' . implode(',', array_keys($moyens_paiement)), 'designation' => 'array|required', 'prix' => 'array|required' ]); @@ -214,7 +219,7 @@ $date = new \DateTime; $date->setTimestamp(time()); $tpl->assign('date', $date->format('d/m/Y')); -$tpl->assign(compact('designations', 'prix', 'from_user', 'identite')); +$tpl->assign(compact('designations', 'prix', 'from_user', 'identite', 'csrf_key', 'doc')); $tpl->assign('membres', $db->getAssoc('SELECT id, '.$identite.' FROM membres WHERE id_category != -2 NOT IN (SELECT id FROM users_categories WHERE hidden = 1);')); $tpl->assign('clients', $db->getAssoc('SELECT id, nom FROM plugin_facturation_clients;')); diff --git a/www/admin/facture_modifier.php b/www/admin/facture_modifier.php index 013be9e..b0d34f6 100644 --- a/www/admin/facture_modifier.php +++ b/www/admin/facture_modifier.php @@ -13,9 +13,9 @@ $db = DB::getInstance(); $step = false; $liste = []; -$fields = $facture->recu_fields; +$moyens_paiement = $facture->listMoyensPaiement(true); -$tpl->assign('moyens_paiement', $facture->listMoyensPaiement()); +$tpl->assign('moyens_paiement', $moyens_paiement); $tpl->assign('moyen_paiement', f('moyen_paiement') ?: 'ES'); qv(['id' => 'required|numeric']); @@ -26,11 +26,13 @@ if (!$f = $facture->get($id)) throw new UserException("Ce document n'existe pas."); } +$csrf_key = 'modifier_facture'; + // Traitement if(f('save')) { - $form->check('modifier_facture', [ + $form->check($csrf_key, [ 'type' => 'required|in:'.implode(',', [DEVIS, FACT, CERFA]), 'numero_facture' => 'required|string', 'date_emission' => 'required|date_format:d/m/Y', @@ -40,7 +42,7 @@ if(f('save')) 'base_receveur' => 'required|in:membre,client', // 'client' => '', // 'membre' => '', - 'moyen_paiement' => 'required|in:' . implode(',', array_keys($facture->listMoyensPaiement())), + 'moyen_paiement' => 'required|in:' . implode(',', array_keys($moyens_paiement)), 'designation' => 'array|required', 'prix' => 'array|required' ]); @@ -193,7 +195,6 @@ if ($step) // Affichage -$doc['moyens_paiement'] = $facture->listMoyensPaiement(true); // $doc['moyen_paiement'] = $doc['moyens_paiement'][$f->moyen_paiement]; $doc['moyen_paiement'] = $f->moyen_paiement; $doc['type'] = $f->type_facture; @@ -253,7 +254,7 @@ if ($f->type_facture != COTIS) } -$tpl->assign(compact('designations', 'prix', 'from_user', 'identite')); +$tpl->assign(compact('designations', 'prix', 'from_user', 'identite', 'csrf_key')); $tpl->assign('membres', $db->getAssoc('SELECT id, '.$identite.' FROM membres WHERE id_category != -2 NOT IN (SELECT id FROM users_categories WHERE hidden = 1);')); $tpl->assign('clients', $db->getAssoc('SELECT id, nom FROM plugin_facturation_clients;'));