From ba5096bfb2577d56d6902b1588d34b75923843dc Mon Sep 17 00:00:00 2001 From: Noizette Date: Sat, 24 Oct 2020 07:28:31 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20re=C3=A7u=20fiscal=20sur=20Nouveau=20do?= =?UTF-8?q?cument?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/Facture.php | 3 +++ www/admin/facture_ajouter.php | 30 +++++++++++++++++++----------- www/admin/facture_modifier.php | 23 +++++++++++------------ 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/lib/Facture.php b/lib/Facture.php index 21bf50e..7b4a643 100644 --- a/lib/Facture.php +++ b/lib/Facture.php @@ -122,6 +122,9 @@ class Facture $datas[$k] = json_encode($datas[$k]); break; case 'total': + if ($recu && $datas[$k] < 1) { + throw new UserException('Le total ne peut être inférieur à 1€ pour les reçus (bug encore non résolu).'); + } if (!$recu && !isset($datas['contenu'])) { throw new UserException("Pas de contenu fourni pour vérifier le total."); } diff --git a/www/admin/facture_ajouter.php b/www/admin/facture_ajouter.php index 7e022b8..507d2b6 100644 --- a/www/admin/facture_ajouter.php +++ b/www/admin/facture_ajouter.php @@ -15,7 +15,7 @@ $tpl->assign('moyen_paiement', f('moyen_paiement') ?: 'ES'); if (f('add')) { $form->check('ajout_facture', [ - 'type' => 'required|in:facture,devis', + 'type' => 'required|in:facture,devis,cerfa,cotis', 'numero_facture' => 'required|string', 'date_emission' => 'required|date', 'date_echeance' => 'required|date', @@ -48,15 +48,19 @@ if (f('add')) 'toto' => 0 ]; - if (f('type') == 'facture') - { - $truc['type_facture'] = 1; - } - elseif (f('type') == 'devis') - { - $truc['type_facture'] = 0; - } - + if (f('type') == 'devis') + { + $truc['type_facture'] = 0; + } + elseif (f('type') == 'facture') + { + $truc['type_facture'] = 1; + } + elseif (f('type') == 'cerfa') + { + $truc['type_facture'] = 2; + } + foreach(f('designation') as $k=>$value) { $truc['contenu'][$k]['designation'] = $value; @@ -96,7 +100,7 @@ $tpl->assign('membre_id', f('membre') ?: -1); $designations = []; $prix = []; -if (($d = f('designation')) && ($p = f('prix'))) +if (($d = f('designation')) && ($p = f('prix')) && implode($d)) { foreach($d as $k=>$v) { @@ -108,6 +112,10 @@ if (($d = f('designation')) && ($p = f('prix'))) $prix[] = $p[$k]; } } +else { + $designations = ['Exemple']; + $prix = [1.5]; +} $tpl->assign('designations', $designations); $tpl->assign('prix', $prix); diff --git a/www/admin/facture_modifier.php b/www/admin/facture_modifier.php index 44f1e3c..9f3167e 100644 --- a/www/admin/facture_modifier.php +++ b/www/admin/facture_modifier.php @@ -7,7 +7,6 @@ require_once __DIR__ . '/_inc.php'; $session->requireAccess('compta', Membres::DROIT_ECRITURE); use Garradin\DB; -use stdClass; qv(['id' => 'required|numeric']); $id = (int) qg('id'); @@ -107,20 +106,20 @@ if(f('save')) // 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; +$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('doc', $doc); $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 @@ -154,4 +153,4 @@ $tpl->assign('prix', $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->display(PLUGIN_ROOT . '/templates/facture_modifier.tpl'); +$tpl->display(PLUGIN_ROOT . '/templates/facture_modifier.tpl'); \ No newline at end of file