Update pour Garradin 1.1

This commit is contained in:
Noizette 2021-04-11 14:25:59 +02:00
parent 1bdc2baf82
commit 11974482f2
20 changed files with 43 additions and 39 deletions

View File

@ -2,7 +2,7 @@ nom="Facturation"
description="Permet d'éditer des factures, devis et reçus à ses membres ainsi qu'à une base de clients supplémentaire." description="Permet d'éditer des factures, devis et reçus à ses membres ainsi qu'à une base de clients supplémentaire."
auteur="zou" auteur="zou"
url="https://gitlab.com/ramoloss/garradin-plugin-facturation/" url="https://gitlab.com/ramoloss/garradin-plugin-facturation/"
version="0.4.0" version="0.5.0"
menu=1 menu=1
config=1 config=1
min_version="0.9.2" min_version="1.1.0"

View File

@ -4,11 +4,11 @@
<nav class="tabs"> <nav class="tabs">
<ul> <ul>
<li{if $current == 'index'} class="current"{/if}><a href="{plugin_url file=""}">Liste documents</a></li> <li{if $current == 'index'} class="current"{/if}><a href="{plugin_url file=""}">Liste documents</a></li>
{if $session->canAccess('compta', Membres::DROIT_ECRITURE)} {if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE)}
<li{if $current == 'facture'} class="current"{/if}><a href="{plugin_url file="facture_ajouter.php"}">Nouveau document</a></li> <li{if $current == 'facture'} class="current"{/if}><a href="{plugin_url file="facture_ajouter.php"}">Nouveau document</a></li>
{/if} {/if}
<li{if $current == 'clients'} class="current"{/if}><a href="{plugin_url file="clients.php"}">Liste clients</a></li> <li{if $current == 'clients'} class="current"{/if}><a href="{plugin_url file="clients.php"}">Liste clients</a></li>
{if $session->canAccess('compta', Membres::DROIT_ADMIN)} {if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_ADMIN)}
<li{if $current == 'config'} class="current"{/if}><a href="{plugin_url file="config.php"}">Configuration</a></li> <li{if $current == 'config'} class="current"{/if}><a href="{plugin_url file="config.php"}">Configuration</a></li>
{/if} {/if}
<li{if $current == 'aide'} class="current"{/if}><a href="{plugin_url file="aide.php"}">Aide</a></li> <li{if $current == 'aide'} class="current"{/if}><a href="{plugin_url file="aide.php"}">Aide</a></li>

View File

@ -2,10 +2,10 @@
<ul> <ul>
<li{if $current == 'clients'} class="current"{/if}><a href="{plugin_url file="clients.php"}">Liste clients</a></li> <li{if $current == 'clients'} class="current"{/if}><a href="{plugin_url file="clients.php"}">Liste clients</a></li>
<li{if $current == 'client'} class="current"{/if}><a href="{plugin_url file="client.php"}?id={$client.id}">{$client.nom}</a></li> <li{if $current == 'client'} class="current"{/if}><a href="{plugin_url file="client.php"}?id={$client.id}">{$client.nom}</a></li>
{if $session->canAccess('compta', Membres::DROIT_ECRITURE)} {if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE)}
<li{if $current == 'client_modifier'} class="current"{/if}> <li{if $current == 'client_modifier'} class="current"{/if}>
<a href="{plugin_url file="client_modifier.php"}?id={$client.id}">Modifier</a></li>{/if} <a href="{plugin_url file="client_modifier.php"}?id={$client.id}">Modifier</a></li>{/if}
{if $session->canAccess('compta', Membres::DROIT_ADMIN)} {if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_ADMIN)}
<li{if $current == 'client_supprimer'} class="current"{/if}> <li{if $current == 'client_supprimer'} class="current"{/if}>
<a href="{plugin_url file="client_supprimer.php"}?id={$client.id}">Supprimer</a></li>{/if} <a href="{plugin_url file="client_supprimer.php"}?id={$client.id}">Supprimer</a></li>{/if}
</ul> </ul>

View File

@ -14,6 +14,8 @@
<br> <br>
<p>Hésitez pas à faire des retours, proposer meilleures explications, ou quoi, vous pouvez venir en causer soit <a href="https://gitlab.com/ramoloss/garradin-plugin-facturation">sur mon gitlab</a>, soit sur l'adresse d'entraide de garradin. Si vous êtes un peu dev, le code est un peu cracra mais j'espère que ça vous repoussera pas trop à le bidouiller :)</p> <p>Hésitez pas à faire des retours, proposer meilleures explications, ou quoi, vous pouvez venir en causer soit <a href="https://gitlab.com/ramoloss/garradin-plugin-facturation">sur mon gitlab</a>, soit sur l'adresse d'entraide de garradin. Si vous êtes un peu dev, le code est un peu cracra mais j'espère que ça vous repoussera pas trop à le bidouiller :)</p>
<br>
<p><i>Remarque : la gestion de la signature pour les reçus fiscaux a été désactivée temporairement, dû au changements de Garradin 1.1 sur les fichiers</i></p>
</fieldset> </fieldset>

View File

@ -37,7 +37,7 @@
</dd> </dd>
<dt>Date d'ajout</dt> <dt>Date d'ajout</dt>
<dd>{$client.date_creation|date_fr:'d/m/Y'}</dd> <dd>{$client.date_creation|date:'d/m/Y'}</dd>
</dl> </dl>
@ -61,17 +61,17 @@
<tr> <tr>
<td>{$f_obj->types[$facture.type_facture]['label'] }</td> <td>{$f_obj->types[$facture.type_facture]['label'] }</td>
<td><a href="{plugin_url file="facture.php"}?id={$facture.id}">{$facture.numero}</a></td> <td><a href="{plugin_url file="facture.php"}?id={$facture.id}">{$facture.numero}</a></td>
<td>{$facture.date_emission|date_fr:'d/m/Y'}</td> <td>{$facture.date_emission|date:'d/m/Y'}</td>
<td>{$facture.date_echeance|date_fr:'d/m/Y'}</td> <td>{$facture.date_echeance|date:'d/m/Y'}</td>
<td>{$facture.reglee}</td> <td>{$facture.reglee}</td>
<td>{$facture.archivee}</td> <td>{$facture.archivee}</td>
<td>{$facture.moyen_paiement}</td> <td>{$facture.moyen_paiement}</td>
<td> <td>
{foreach from=$facture.contenu item=contenu} {foreach from=$facture.contenu item=contenu}
<p>{$contenu.designation} : {$contenu.prix|escape|html_money}&nbsp;{$config.monnaie}</p> <p>{$contenu.designation} : {$contenu.prix|escape|money}&nbsp;{$config.monnaie}</p>
{/foreach} {/foreach}
</td> </td>
<td>{$facture.total|escape|html_money}&nbsp;{$config.monnaie}</td> <td>{$facture.total|escape|money}&nbsp;{$config.monnaie}</td>
</tr> </tr>
{/foreach} {/foreach}
</tbody> </tbody>

View File

@ -10,7 +10,7 @@
<table class="list"> <table class="list">
<thead class="userOrder"> <thead class="userOrder">
<tr> <tr>
{if $session->canAccess('membres', Membres::DROIT_ADMIN)}<td class="check"><input type="checkbox" title="Tout cocher / décocher" /></td>{/if} {if $session->canAccess($session::SECTION_USERS, $session::ACCESS_ADMIN)}<td class="check"><input type="checkbox" title="Tout cocher / décocher" /></td>{/if}
{foreach from=$champs key="c" item="champ"} {foreach from=$champs key="c" item="champ"}
<td>{if $c == "numero"}#{else}{$champ.title}{/if} </td> <td>{if $c == "numero"}#{else}{$champ.title}{/if} </td>
{/foreach} {/foreach}
@ -20,7 +20,7 @@
<tbody> <tbody>
{foreach from=$clients item="membre"} {foreach from=$clients item="membre"}
<tr> <tr>
{if $session->canAccess('membres', Membres::DROIT_ADMIN)}<td class="check"> {if $session->canAccess($session::SECTION_USERS, $session::ACCESS_ADMIN)}<td class="check">
{input type="checkbox" name="selected" value=$membre.id default=0} {input type="checkbox" name="selected" value=$membre.id default=0}
</td> </td>
{/if} {/if}
@ -33,12 +33,12 @@
{/foreach} {/foreach}
<td class="tabs"> <td class="tabs">
<a class="icn" href="{plugin_url file="client.php"}?id={$membre.id}" title="Fiche membre">👤</a> <a class="icn" href="{plugin_url file="client.php"}?id={$membre.id}" title="Fiche membre">👤</a>
{if $session->canAccess('membres', Membres::DROIT_ECRITURE)}<a class="icn" href="{plugin_url file="client_modifier.php"}?id={$membre.id}" title="Modifier la fiche membre">✎</a>{/if} {if $session->canAccess($session::SECTION_USERS, $session::ACCESS_WRITE)}<a class="icn" href="{plugin_url file="client_modifier.php"}?id={$membre.id}" title="Modifier la fiche membre">✎</a>{/if}
</td> </td>
</tr> </tr>
{/foreach} {/foreach}
</tbody> </tbody>
{if $session->canAccess('membres', Membres::DROIT_ADMIN)} {if $session->canAccess($session::SECTION_USERS, $session::ACCESS_ADMIN)}
{include file="%s/templates/_list_actions.tpl"|args:$plugin_root colspan=count((array)$champs)} {include file="%s/templates/_list_actions.tpl"|args:$plugin_root colspan=count((array)$champs)}
{/if} {/if}
</table> </table>

View File

@ -72,7 +72,7 @@
</p> </p>
</form> </form>
{*
<form method="post" enctype="multipart/form-data" action="{$self_url|escape}" id="f_upload"> <form method="post" enctype="multipart/form-data" action="{$self_url|escape}" id="f_upload">
<fieldset> <fieldset>
<legend>Signature du responsable</legend> <legend>Signature du responsable</legend>
@ -80,7 +80,7 @@
L'image de la signature doit être au format PNG, d'une taille raisonable et doit être dotée d'un fond transparent. L'image de la signature doit être au format PNG, d'une taille raisonable et doit être dotée d'un fond transparent.
<br> <br>
{* <img src="{$image}" /> *} {* <img src="{$image}" /> * }
<input type="hidden" name="MAX_FILE_SIZE" value="{$max_size|escape}" id="f_maxsize" /> <input type="hidden" name="MAX_FILE_SIZE" value="{$max_size|escape}" id="f_maxsize" />
<dl> <dl>
@ -93,6 +93,6 @@
</p> </p>
</fieldset> </fieldset>
</form> </form>
*}
{include file="admin/_foot.tpl"} {include file="admin/_foot.tpl"}

View File

@ -3,7 +3,7 @@
{form_errors} {form_errors}
{if $session->canAccess('compta', Membres::DROIT_ECRITURE)} {if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE)}
<a href="{plugin_url file="facture_modifier.php"}?id={$facture.id}"> <a href="{plugin_url file="facture_modifier.php"}?id={$facture.id}">
<button type="button" class="btn btn-primary">Modifier ce document</button></a> <button type="button" class="btn btn-primary">Modifier ce document</button></a>
{/if} {/if}

View File

@ -44,17 +44,17 @@
{/if} {/if}
<td>{$facture.receveur.adresse}</td> <td>{$facture.receveur.adresse}</td>
<td>{$facture.receveur.ville}</td> <td>{$facture.receveur.ville}</td>
<td>{$facture.date_emission|date_fr:'d/m/Y'}</td> <td>{$facture.date_emission|date:'d/m/Y'}</td>
<td>{$facture.date_echeance|date_fr:'d/m/Y'}</td> <td>{$facture.date_echeance|date:'d/m/Y'}</td>
<td><?= $facture->reglee?'Réglée':'Non' ?></td> <td><?= $facture->reglee?'Réglée':'Non' ?></td>
<td><?= $facture->archivee?'Archivée':'Non' ?></td> <td><?= $facture->archivee?'Archivée':'Non' ?></td>
<td>{$facture.moyen_paiement}</td> <td>{$facture.moyen_paiement}</td>
<td> <td>
{foreach from=$facture.contenu item=contenu} {foreach from=$facture.contenu item=contenu}
<p>{$contenu.designation} : {$contenu.prix|escape|html_money}&nbsp;{$config.monnaie}</p> <p>{$contenu.designation} : {$contenu.prix|escape|money}&nbsp;{$config.monnaie}</p>
{/foreach} {/foreach}
</td> </td>
<td>{$facture.total|escape|html_money}&nbsp;{$config.monnaie}</td> <td>{$facture.total|escape|money}&nbsp;{$config.monnaie}</td>
</tr> </tr>
{/foreach} {/foreach}
</tbody> </tbody>

View File

@ -4,6 +4,6 @@ namespace Garradin;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess('compta', Membres::DROIT_ACCES); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ);
$tpl->display(PLUGIN_ROOT . '/templates/aide.tpl'); $tpl->display(PLUGIN_ROOT . '/templates/aide.tpl');

View File

@ -4,7 +4,7 @@ namespace Garradin;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess('compta', Membres::DROIT_ACCES); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ);
qv(['id' => 'required|numeric']); qv(['id' => 'required|numeric']);

View File

@ -4,7 +4,7 @@ namespace Garradin;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess('compta', Membres::DROIT_ECRITURE); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE);
qv(['id' => 'required|numeric']); qv(['id' => 'required|numeric']);
$id = (int) qg('id'); $id = (int) qg('id');

View File

@ -4,7 +4,7 @@ namespace Garradin;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess('compta', Membres::DROIT_ADMIN); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE);
qv(['id' => 'required|numeric']); qv(['id' => 'required|numeric']);

View File

@ -4,7 +4,7 @@ namespace Garradin;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess('compta', Membres::DROIT_ACCES); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ);
if(f('add')) if(f('add'))
{ {

View File

@ -4,7 +4,7 @@ namespace Garradin;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess('compta', Membres::DROIT_ADMIN); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_ADMIN);
if (f('save') && $form->check('facturation_config')) if (f('save') && $form->check('facturation_config'))
{ {
@ -39,6 +39,7 @@ if (f('save') && $form->check('facturation_config'))
// Traitement de l'image de signature // Traitement de l'image de signature
// Copié du plugin de nfrery // Copié du plugin de nfrery
/*
if (f('upload') || isset($_POST['uploadHelper_status'])) if (f('upload') || isset($_POST['uploadHelper_status']))
{ {
$form->check('signature_config'); $form->check('signature_config');
@ -115,12 +116,12 @@ else
{ {
$tpl->assign('image', false); $tpl->assign('image', false);
} }
*/
$tpl->assign('ok', qg('ok') !== null); $tpl->assign('ok', qg('ok') !== null);
$tpl->assign('max_size', Utils::getMaxUploadSize()); // $tpl->assign('max_size', Utils::getMaxUploadSize());
$tpl->display(PLUGIN_ROOT . '/templates/config.tpl'); $tpl->display(PLUGIN_ROOT . '/templates/config.tpl');

View File

@ -4,7 +4,7 @@ namespace Garradin;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess('compta', Membres::DROIT_ACCES); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ);
use Garradin\Membres; use Garradin\Membres;

View File

@ -4,7 +4,7 @@ namespace Garradin;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess('compta', Membres::DROIT_ECRITURE); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE);
use Garradin\DB; use Garradin\DB;
use stdClass; use stdClass;
@ -223,7 +223,7 @@ $tpl->assign('date', $date->format('d/m/Y'));
$tpl->assign('designations', $designations); $tpl->assign('designations', $designations);
$tpl->assign('prix', $prix); $tpl->assign('prix', $prix);
$tpl->assign('identite', $identite); $tpl->assign('identite', $identite);
$tpl->assign('membres', $db->getAssoc('SELECT id, '.$identite.' FROM membres WHERE id_categorie != -2 NOT IN (SELECT id FROM membres_categories WHERE cacher = 1);')); $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;')); $tpl->assign('clients', $db->getAssoc('SELECT id, nom FROM plugin_facturation_clients;'));
$tpl->display(PLUGIN_ROOT . '/templates/facture_ajouter.tpl'); $tpl->display(PLUGIN_ROOT . '/templates/facture_ajouter.tpl');

View File

@ -4,7 +4,7 @@ namespace Garradin;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess('compta', Membres::DROIT_ECRITURE); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE);
use Garradin\DB; use Garradin\DB;
@ -262,7 +262,7 @@ if ($f->type_facture != COTIS)
$tpl->assign('designations', $designations??[]); $tpl->assign('designations', $designations??[]);
$tpl->assign('prix', $prix??[]); $tpl->assign('prix', $prix??[]);
$tpl->assign('identite', $identite); $tpl->assign('identite', $identite);
$tpl->assign('membres', $db->getAssoc('SELECT id, '.$identite.' FROM membres WHERE id_categorie != -2 NOT IN (SELECT id FROM membres_categories WHERE cacher = 1);')); $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;')); $tpl->assign('clients', $db->getAssoc('SELECT id, nom FROM plugin_facturation_clients;'));
$date = new \DateTime; $date = new \DateTime;

View File

@ -5,7 +5,7 @@ namespace Garradin;
require_once __DIR__ . '/_upgrade_trick.php'; require_once __DIR__ . '/_upgrade_trick.php';
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess('compta', Membres::DROIT_ACCES); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ);
$membres = new Membres; $membres = new Membres;

View File

@ -5,7 +5,7 @@ namespace Garradin;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
require_once PLUGIN_ROOT . '/lib/MPDF/vendor/autoload.php'; require_once PLUGIN_ROOT . '/lib/MPDF/vendor/autoload.php';
$session->requireAccess('compta', Membres::DROIT_ACCES); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ);
$membres = new Membres; $membres = new Membres;
@ -306,6 +306,7 @@ elseif ($f->type_facture == 2)
$pdf->WriteText(160, 246.2, utf8_decode($f->date_echeance->format('Y'))); $pdf->WriteText(160, 246.2, utf8_decode($f->date_echeance->format('Y')));
// Signature // Signature
/*
$img = new Fichiers($plugin->getConfig('signaturetxt')); $img = new Fichiers($plugin->getConfig('signaturetxt'));
$cache_id = 'fichiers.' . $img->id_contenu; $cache_id = 'fichiers.' . $img->id_contenu;
if (!Static_Cache::exists($cache_id)) if (!Static_Cache::exists($cache_id))
@ -316,7 +317,7 @@ elseif ($f->type_facture == 2)
} }
$uri = Static_Cache::getPath($cache_id); $uri = Static_Cache::getPath($cache_id);
$pdf->Image($uri, 150, 245, 32, 0, 'PNG' ); // Emplacement de la signature avec restriction de largeur pour tenir dans sur la case. $pdf->Image($uri, 150, 245, 32, 0, 'PNG' ); // Emplacement de la signature avec restriction de largeur pour tenir dans sur la case.
*/
} // End if cerfa } // End if cerfa
elseif ($f->type_facture == 3) elseif ($f->type_facture == 3)
{ {