Migrate to Paheko 1.3

This commit is contained in:
Noizette 2023-08-01 22:56:38 +02:00
parent 161659acfb
commit 235f8ceeed
31 changed files with 95 additions and 94 deletions

View File

@ -1,4 +1,4 @@
Plugin Facturation pour Garradin Plugin Facturation pour Paheko
Copyright (C) 2019 zou Copyright (C) 2019 zou
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View File

@ -14,7 +14,7 @@ $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE);
use Paheko\DB; use Paheko\DB;
use stdClass; use stdClass;
use const \Garradin\Plugin\Facturation\PATTERNS_LIST; use const \Paheko\Plugin\Facturation\PATTERNS_LIST;
$db = DB::getInstance(); $db = DB::getInstance();
@ -39,7 +39,7 @@ $tpl->assign('natures_don', array('1' => 'Numéraire',
$tpl->assign('textes_don', $facture->listTextesCerfa()); $tpl->assign('textes_don', $facture->listTextesCerfa());
if ( !$target ) { if ( !$target ) {
qv(['id' => 'required|numeric']); f(['id' => 'required|numeric']);
$id = (int) qg('id'); $id = (int) qg('id');
if (!$f = $facture->get($id)) if (!$f = $facture->get($id))
@ -200,13 +200,13 @@ elseif (isset($data))
if ($target) if ($target)
{ {
$id = $facture->add($data, $plugin->getConfig('pattern')); $id = $facture->add($data, $plugin->getConfig('pattern'));
Utils::redirect(PLUGIN_URL . 'facture.php?id='.(int)$id); Utils::redirect(PLUGIN_ADMIN_URL . 'facture.php?id='.(int)$id);
} }
else else
{ {
if ($facture->edit($id, $data)) if ($facture->edit($id, $data))
{ {
Utils::redirect(PLUGIN_URL . 'facture.php?id='.(int)$id); Utils::redirect(PLUGIN_ADMIN_URL . 'facture.php?id='.(int)$id);
} }
throw new UserException('Erreur d\'édition du reçu'); throw new UserException('Erreur d\'édition du reçu');
} }
@ -324,7 +324,7 @@ $tpl->assign('date', $date->format('d/m/Y'));
$tpl->assign(compact('liste', 'radio', 'step', 'designations', 'prix', 'from_user', 'identite', 'csrf_key', 'doc')); $tpl->assign(compact('liste', 'radio', 'step', '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('users', $db->getAssoc('SELECT id, '.$identite.' FROM users 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->assign('require_number', $require_number); $tpl->assign('require_number', $require_number);
$tpl->assign('number_pattern', PATTERNS_LIST[$plugin->getConfig('pattern')]); $tpl->assign('number_pattern', PATTERNS_LIST[$plugin->getConfig('pattern')]);

View File

@ -25,11 +25,11 @@ const PATTERNS_LIST = [
$client = new Client; $client = new Client;
$facture = new Facture; $facture = new Facture;
$tpl->assign('www_url', \Garradin\WWW_URL); $tpl->assign('www_url', \Paheko\WWW_URL);
$tpl->assign('f_obj', $facture); $tpl->assign('f_obj', $facture);
$tpl->assign('plugin_url', Utils::plugin_url());
$identite = (string) Config::getInstance()->get('champ_identite');
$identite = implode( '', \Paheko\Users\DynamicFields::getNameFields());
$tpl->register_function('money_fac', function (array $params) $tpl->register_function('money_fac', function (array $params)
{ {

View File

@ -1,6 +1,6 @@
<?php <?php
namespace Garradin; namespace Paheko;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';

View File

@ -1,12 +1,12 @@
<?php <?php
namespace Garradin; namespace Paheko;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ);
qv(['id' => 'required|numeric']); f(['id' => 'required|numeric']);
$id = (int) qg('id'); $id = (int) qg('id');

View File

@ -1,12 +1,12 @@
<?php <?php
namespace Garradin; namespace Paheko;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE);
qv(['id' => 'required|numeric']); f(['id' => 'required|numeric']);
$id = (int) qg('id'); $id = (int) qg('id');
$c = $client->get($id); $c = $client->get($id);
@ -40,7 +40,7 @@ if(f('save'))
'email' => f('email') 'email' => f('email')
]); ]);
$r ? Utils::redirect(PLUGIN_URL . 'client.php?id='.(int)$id):''; $r ? Utils::redirect(PLUGIN_ADMIN_URL . 'client.php?id='.(int)$id):'';
} }
catch (UserException $e) catch (UserException $e)
{ {

View File

@ -1,12 +1,12 @@
<?php <?php
namespace Garradin; namespace Paheko;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE);
qv(['id' => 'required|numeric']); f(['id' => 'required|numeric']);
$id = (int) qg('id'); $id = (int) qg('id');
@ -21,7 +21,7 @@ $csrf_key = 'delete_client_'.$c->id;
$form->runIf('delete', function () use ($client, $c) { $form->runIf('delete', function () use ($client, $c) {
$client->delete($c->id); $client->delete($c->id);
}, $csrf_key, PLUGIN_URL . 'clients.php'); }, $csrf_key, PLUGIN_ADMIN_URL . 'clients.php');
$tpl->assign('deletable', $client->isDeletable($id)); $tpl->assign('deletable', $client->isDeletable($id));
$tpl->assign('client', $c); $tpl->assign('client', $c);

View File

@ -1,6 +1,6 @@
<?php <?php
namespace Garradin; namespace Paheko;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
@ -30,7 +30,7 @@ if(f('add'))
'email' => f('email') 'email' => f('email')
]); ]);
$id ? Utils::redirect(PLUGIN_URL . 'client.php?id='.(int)$id):''; $id ? Utils::redirect(PLUGIN_ADMIN_URL . 'client.php?id='.(int)$id):'';
} }
catch (UserException $e) catch (UserException $e)
{ {

View File

@ -1,6 +1,6 @@
<?php <?php
namespace Garradin; namespace Paheko;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
@ -32,7 +32,7 @@ if (f('save') && $form->check('facturation_config'))
$plugin->setConfig('pattern', f('pattern')); $plugin->setConfig('pattern', f('pattern'));
Utils::redirect(PLUGIN_URL . 'config.php?ok'); Utils::redirect(PLUGIN_ADMIN_URL . 'config.php?ok');
} }
catch (UserException $e) catch (UserException $e)
{ {
@ -43,6 +43,6 @@ if (f('save') && $form->check('facturation_config'))
$tpl->assign('ok', qg('ok') !== null); $tpl->assign('ok', qg('ok') !== null);
$tpl->assign('patterns', \Garradin\Plugin\Facturation\PATTERNS_LIST); $tpl->assign('patterns', \Paheko\Plugin\Facturation\PATTERNS_LIST);
$tpl->display(PLUGIN_ROOT . '/templates/config.tpl'); $tpl->display(PLUGIN_ROOT . '/templates/config.tpl');

View File

@ -1,16 +1,16 @@
<?php <?php
namespace Garradin; namespace Paheko;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ);
use Garradin\Membres; use Paheko\Users\Users;
$membres = new Membres; $users = new Users;
qv(['id' => 'required|numeric']); f(['id' => 'required|numeric']);
$id = (int) qg('id'); $id = (int) qg('id');
$f = $facture->get($id); $f = $facture->get($id);

View File

@ -1,12 +1,12 @@
<?php <?php
namespace Garradin; namespace Paheko;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE);
qv(['id' => 'required|numeric']); f(['id' => 'required|numeric']);
$id = (int) qg('id'); $id = (int) qg('id');
@ -25,7 +25,7 @@ if (f('delete'))
{ {
try { try {
$facture->delete($f->id); $facture->delete($f->id);
Utils::redirect(PLUGIN_URL . 'index.php'); Utils::redirect(PLUGIN_ADMIN_URL . 'index.php');
} }
catch (UserException $e) catch (UserException $e)
{ {

View File

@ -1,6 +1,6 @@
<?php <?php
namespace Garradin; namespace Paheko;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';

View File

@ -4,10 +4,11 @@ namespace Paheko;
require_once __DIR__ . '/_inc.php'; require_once __DIR__ . '/_inc.php';
$session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ); $session->requireAccess($session::SECTION_ACCOUNTING, $session::ACCESS_READ);
$membres = new Membres; $users = new Users\Users;
qv(['id' => 'required|numeric']); f(['id' => 'required|numeric']);
$id = (int) qg('id'); $id = (int) qg('id');
$id_field = Users\DynamicFields::getNameFieldsSQL();
// Vérification que le document existe // Vérification que le document existe
if (!$f = $facture->get($id)) if (!$f = $facture->get($id))
@ -22,8 +23,8 @@ try
{ {
if ($f->receveur_membre) if ($f->receveur_membre)
{ {
$c = $membres->get($f->receveur_id); $c = $users->get($f->receveur_id);
$c->identite = $c->$identite; $c->$id_field = $c->$identite;
foreach(['ville','code_postal','adresse'] as $v) foreach(['ville','code_postal','adresse'] as $v)
{ {
if($c->$v == '') if($c->$v == '')
@ -35,7 +36,7 @@ try
else else
{ {
$c = $client->get($f->receveur_id); $c = $client->get($f->receveur_id);
$c->identite = $c->nom; $c->$id_field = $c->nom;
} }
} }
catch(UserException $e) catch(UserException $e)
@ -72,7 +73,7 @@ if ($f->type_facture != CERFA)
$asso = $asso =
// 'Émis par :<br><br>'. // 'Émis par :<br><br>'.
'<b>'.$config->get('nom_asso')."</b><br>". '<b>'.$config->get('nom_asso')."</b><br>".
str_replace("\n", '<br>', $config->get('adresse_asso'))."<br>". str_replace("\n", '<br>', $config->get('org_address'))."<br>".
(($t = $plugin->getConfig('rna_asso'))?"RNA : $t<br>":''). (($t = $plugin->getConfig('rna_asso'))?"RNA : $t<br>":'').
(($t = $plugin->getConfig('siret_asso'))?"SIRET : $t<br>":''). (($t = $plugin->getConfig('siret_asso'))?"SIRET : $t<br>":'').
(($t = $config->get('email_asso'))?"Email : $t<br>":''). (($t = $config->get('email_asso'))?"Email : $t<br>":'').

View File

@ -1,12 +1,12 @@
<?php <?php
namespace Garradin\Plugin\Facturation; namespace Paheko\Plugin\Facturation;
use Garradin\DB; use Paheko\DB;
use Garradin\DynamicList; use Paheko\DynamicList;
use Garradin\Plugin; use Paheko\Entities\Plugin;
use Garradin\UserException; use Paheko\UserException;
use Garradin\Utils; use Paheko\Utils;
class Client class Client
{ {

View File

@ -299,7 +299,7 @@ class Facture
public function list(): DynamicList public function list(): DynamicList
{ {
$id_field = Config::getInstance()->champ_identite; $id_field = \Paheko\Users\DynamicFields::getNameFieldsSQL('u');
$columns = [ $columns = [
// Sélectionner cette colonne, mais ne pas la mettre dans la liste des colonnes // Sélectionner cette colonne, mais ne pas la mettre dans la liste des colonnes
@ -324,7 +324,7 @@ class Facture
], ],
'receveur' => [ 'receveur' => [
'label' => 'Receveur', 'label' => 'Receveur',
'select' => sprintf('CASE WHEN receveur_membre THEN u.%s ELSE c.nom END', $id_field), 'select' => sprintf('CASE WHEN receveur_membre THEN %s ELSE c.nom END', $id_field),
], ],
'receveur_adresse' => [ 'receveur_adresse' => [
'label' => 'Son adresse', 'label' => 'Son adresse',
@ -361,7 +361,7 @@ class Facture
$tables = 'plugin_facturation_factures AS f $tables = 'plugin_facturation_factures AS f
INNER JOIN plugin_facturation_paiement AS mp ON mp.code = f.moyen_paiement INNER JOIN plugin_facturation_paiement AS mp ON mp.code = f.moyen_paiement
LEFT JOIN membres AS u ON f.receveur_membre = 1 AND u.id = f.receveur_id LEFT JOIN users AS u ON f.receveur_membre = 1 AND u.id = f.receveur_id
LEFT JOIN plugin_facturation_clients AS c ON f.receveur_membre = 0 AND c.id = f.receveur_id'; LEFT JOIN plugin_facturation_clients AS c ON f.receveur_membre = 0 AND c.id = f.receveur_id';
$list = new DynamicList($columns, $tables); $list = new DynamicList($columns, $tables);
@ -425,7 +425,7 @@ class Facture
} }
else // Si c'est un membre de l'asso else // Si c'est un membre de l'asso
{ {
throw new UserException("Woopsie, g pô encore implémenté l'usage des membres de l'asso comme clients"); throw new UserException("Woopsie, g pô encore implémenté l'usage des users de l'asso comme clients");
} }
$r = (array)DB::getInstance()->get('SELECT *, strftime(\'%s\', date_emission) AS date_emission, $r = (array)DB::getInstance()->get('SELECT *, strftime(\'%s\', date_emission) AS date_emission,
@ -457,7 +457,7 @@ class Facture
} }
else // Si c'est un membre de l'asso else // Si c'est un membre de l'asso
{ {
throw new UserException("Woopsie, g pô encore implémenté l'usage des membres de l'asso comme clients"); throw new UserException("Woopsie, g pô encore implémenté l'usage des users de l'asso comme clients");
} }
return DB::getInstance()->test('plugin_facturation_factures', 'receveur_membre = ? AND receveur_id = ?', $base, $id); return DB::getInstance()->test('plugin_facturation_factures', 'receveur_membre = ? AND receveur_id = ?', $base, $id);
@ -526,6 +526,6 @@ class Facture
public static function menuItem(array $params, array &$list): void public static function menuItem(array $params, array &$list): void
{ {
$list['plugin_facturation'] = sprintf('<a href="%sp/taima/">Facturation</a>', \Garradin\ADMIN_URL); $list['plugin_facturation'] = sprintf('<a href="%sp/facturation/">Facturation</a>', \Paheko\ADMIN_URL);
} }
} }

View File

@ -72,7 +72,7 @@
</dl> </dl>
<dl class="type_membre"> <dl class="type_membre">
{input type="select" name="membre" label="Membre" options=$membres required=1 source=$doc} {input type="select" name="membre" label="Membre" options=$users required=1 source=$doc}
</dl> </dl>
{if !empty($clients)} {if !empty($clients)}
@ -162,7 +162,7 @@
<dl> <dl>
<dt><label>Reçu adressée à :</label></dt> <dt><label>Reçu adressée à :</label></dt>
<dd> <dd>
{input type="select" name="membre_cotis" label="Membre" options=$membres required=1 default=$doc.membre} {input type="select" name="membre_cotis" label="Membre" options=$users required=1 default=$doc.membre}
</dd> </dd>
</dl> </dl>
</fieldset> </fieldset>

View File

@ -4,7 +4,7 @@
<td></td> <td></td>
<td class="tabs" colspan={$colspan}> <td class="tabs" colspan={$colspan}>
<em>PAS FONCTIONNEL - Pour les client·es coché·es :</em> <em>PAS FONCTIONNEL - Pour les client·es coché·es :</em>
{csrf_field key="membres_action"} {csrf_field key="users_action"}
<select name="action"> <select name="action">
<option value="">— Choisir une action à effectuer —</option> <option value="">— Choisir une action à effectuer —</option>
<option value="csv">Exporter en tableau CSV</option> <option value="csv">Exporter en tableau CSV</option>

View File

@ -3,14 +3,14 @@
</style> </style>
<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_admin_url}">Liste documents</a></li>
{if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE)} {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_admin_url}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_admin_url}clients.php">Liste clients</a></li>
{if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_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_admin_url}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_admin_url}aide.php">Aide</a></li>
</ul> </ul>
</nav> </nav>

View File

@ -1,12 +1,12 @@
<nav class="tabs"> <nav class="tabs">
<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_admin_url}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_admin_url}client.php?id={$client.id}">{$client.nom}</a></li>
{if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE)} {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_admin_url}client_modifier.php?id={$client.id}">Modifier</a></li>{/if}
{if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_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_admin_url}client_supprimer.php?id={$client.id}">Supprimer</a></li>{/if}
</ul> </ul>
</nav> </nav>

View File

@ -1,21 +1,21 @@
{include file="admin/_head.tpl" title="Aide — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id} {include file="_head.tpl" title="Aide — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
{include file="%s/templates/_menu.tpl"|args:$plugin_root current="aide"} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="aide"}
<fieldset> <fieldset>
<legend><h2>Quelques remarques et conseils sur l'utilisation du plugin Facturation</h2></legend> <legend><h2>Quelques remarques et conseils sur l'utilisation du plugin Facturation</h2></legend>
<p>Une des premières choses à faire est d'aller dans l'onglet Configuration pour renseigner les valeurs nécessaires à la génération des documents.</p> <p>Une des premières choses à faire est d'aller dans l'onglet Configuration pour renseigner les valeurs nécessaires à la génération des documents.</p>
<p>Pour l'instant, il y a des choses encore brouillonnes. Notamment, dans les factures et devis, c'est l'adresse postale renseignée dans la configuration de Garradin qui fait foi plutôt que celle dans le plugin (qui sert en revanche pour les reçus).</p> <p>Pour l'instant, il y a des choses encore brouillonnes. Notamment, dans les factures et devis, c'est l'adresse postale renseignée dans la configuration de Paheko qui fait foi plutôt que celle dans le plugin (qui sert en revanche pour les reçus).</p>
<p>Pensez à mettre une image en signature (cela sert pour les reçus fiscaux), pour cela uploadez là dans les documents de Garradin, onglet Squelettes du site web, sous plugin/facturation/sign.png. Il est préférable d'avoir un fond transparent. <p>Pensez à mettre une image en signature (cela sert pour les reçus fiscaux), pour cela uploadez là dans les documents de Paheko, onglet Squelettes du site web, sous plugin/facturation/sign.png. Il est préférable d'avoir un fond transparent.
</p> </p>
<br> <br>
<p>- Pour créer un reçu sur une cotisation, il faut pour le moment que cette cotisation soit attachée à la compta.</p> <p>- Pour créer un reçu sur une cotisation, il faut pour le moment que cette cotisation soit attachée à la compta.</p>
<p>- Pour créer un reçu fiscal, l'interface est pour l'instant la même que pour créer une facture/devis. Les champs correspondent mais les noms/labels autour ne sont pas adaptés. Vous pouvez de toutes façons tester, et si le résultat est pas celui attendu, remodifiez derrière :)</p> <p>- Pour créer un reçu fiscal, l'interface est pour l'instant la même que pour créer une facture/devis. Les champs correspondent mais les noms/labels autour ne sont pas adaptés. Vous pouvez de toutes façons tester, et si le résultat est pas celui attendu, remodifiez derrière :)</p>
<p>- La partie « Droit à la réduction d'impôt » peut faire peur, elle correspond simplement à des cases du cerfa pour les reçus fiscaux. Je n'y connais pas grand chose pour le moment, je ne peux vous éclairer davantage, il va falloir se retourner vers légifrance :(</p> <p>- La partie « Droit à la réduction d'impôt » peut faire peur, elle correspond simplement à des cases du cerfa pour les reçus fiscaux. Je n'y connais pas grand chose pour le moment, je ne peux vous éclairer davantage, il va falloir se retourner vers légifrance :(</p>
<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/Paheko-plugin-facturation">sur mon gitlab</a>, soit sur l'adresse d'entraide de Paheko. 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>
</fieldset> </fieldset>
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,4 +1,4 @@
{include file="admin/_head.tpl" title="Client — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id js=0} {include file="_head.tpl" title="Client — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id js=0}
{include file="%s/templates/_menu_client.tpl"|args:$plugin_root current="client"} {include file="%s/templates/_menu_client.tpl"|args:$plugin_root current="client"}
<dl class="describe"> <dl class="describe">
@ -60,7 +60,7 @@
{foreach from=$docs item=facture} {foreach from=$docs item=facture}
<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_admin_url}facture.php?id={$facture.id}">{$facture.numero}</a></td>
<td>{$facture.date_emission|date:'d/m/Y'}</td> <td>{$facture.date_emission|date:'d/m/Y'}</td>
<td>{$facture.date_echeance|date:'d/m/Y'}</td> <td>{$facture.date_echeance|date:'d/m/Y'}</td>
<td>{$facture.reglee}</td> <td>{$facture.reglee}</td>
@ -82,4 +82,4 @@
<p class="alert block">Ce client n'a pas de document associé.</p> <p class="alert block">Ce client n'a pas de document associé.</p>
{/if} {/if}
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,4 +1,4 @@
{include file="admin/_head.tpl" title="Modifier un client — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id js=0} {include file="_head.tpl" title="Modifier un client — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id js=0}
{include file="%s/templates/_menu_client.tpl"|args:$plugin_root current="client_modifier"} {include file="%s/templates/_menu_client.tpl"|args:$plugin_root current="client_modifier"}
{form_errors} {form_errors}
@ -23,4 +23,4 @@
</form> </form>
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,4 +1,4 @@
{include file="admin/_head.tpl" title="Supprimer un client — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id js=0} {include file="_head.tpl" title="Supprimer un client — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id js=0}
{include file="%s/templates/_menu_client.tpl"|args:$plugin_root current="client_supprimer"} {include file="%s/templates/_menu_client.tpl"|args:$plugin_root current="client_supprimer"}
{if !$deletable} {if !$deletable}
@ -12,4 +12,4 @@
{/if} {/if}
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,4 +1,4 @@
{include file="admin/_head.tpl" title="Clients — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id js=1} {include file="_head.tpl" title="Clients — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id js=1}
{include file="%s/templates/_menu.tpl"|args:$plugin_root current="clients"} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="clients"}
{if $list->count()} {if $list->count()}
@ -64,4 +64,4 @@
</form> </form>
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,4 +1,4 @@
{include file="admin/_head.tpl" title="Configuration — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id} {include file="_head.tpl" title="Configuration — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
{include file="%s/templates/_menu.tpl"|args:$plugin_root current="config"} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="config"}
{if $ok && !$form->hasErrors()} {if $ok && !$form->hasErrors()}
@ -96,4 +96,4 @@
</fieldset> </fieldset>
</form> </form>
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,20 +1,20 @@
{include file="admin/_head.tpl" title="Document — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id} {include file="_head.tpl" title="Document — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
{include file="%s/templates/_menu.tpl"|args:$plugin_root current="index"} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="index"}
{form_errors} {form_errors}
{if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE)} {if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_WRITE)}
{linkbutton shape="edit" href="%sfacture_modifier.php?id=%d"|args:$plugin_url,$facture.id label="Modifier ce document"} {linkbutton shape="edit" href="%sfacture_modifier.php?id=%d"|args:$plugin_admin_url,$facture.id label="Modifier ce document"}
{linkbutton shape="plus" href="%sfacture_ajouter.php?copy=%d"|args:$plugin_url,$facture.id label="Dupliquer ce document"} {linkbutton shape="plus" href="%sfacture_ajouter.php?copy=%d"|args:$plugin_admin_url,$facture.id label="Dupliquer ce document"}
{/if} {/if}
{linkbutton shape="download" href="%spdf.php?d&id=%d"|args:$plugin_url,$facture.id label="Télécharger ce document"} {linkbutton shape="download" href="%spdf.php?d&id=%d"|args:$plugin_admin_url,$facture.id label="Télécharger ce document"}
{if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_ADMIN)} {if $session->canAccess($session::SECTION_ACCOUNTING, $session::ACCESS_ADMIN)}
{linkbutton shape="delete" href="%sfacture_supprimer.php?id=%d"|args:$plugin_url,$facture.id label="Supprimer ce document"} {linkbutton shape="delete" href="%sfacture_supprimer.php?id=%d"|args:$plugin_admin_url,$facture.id label="Supprimer ce document"}
{/if} {/if}
<div style="margin-top: 1em; width: min-content;"> <div style="margin-top: 1em; width: min-content;">
<embed src="pdf.php?id={$id}" width="840px" height="1188px" style="max-width: 900px; border: 1px solid black;"> <embed src="pdf.php?id={$id}" width="840px" height="1188px" style="max-width: 900px; border: 1px solid black;">
</div> </div>
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,7 +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="_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"} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="facture"}
{include file="%s/templates/_form.tpl"|args:$plugin_root} {include file="%s/templates/_form.tpl"|args:$plugin_root}
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,6 +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="_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"} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="index"}
{include file="%s/templates/_form.tpl"|args:$plugin_root} {include file="%s/templates/_form.tpl"|args:$plugin_root}
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,4 +1,4 @@
{include file="admin/_head.tpl" title="Supprimer un document — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id js=0} {include file="_head.tpl" title="Supprimer un document — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id js=0}
{include file="%s/templates/_menu.tpl"|args:$plugin_root current="index"} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="index"}
{form_errors} {form_errors}
@ -22,4 +22,4 @@
</form> </form>
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,4 +1,4 @@
{include file="admin/_head.tpl" title="Documents — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id} {include file="_head.tpl" title="Documents — %s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
{include file="%s/templates/_menu.tpl"|args:$plugin_root current="index"} {include file="%s/templates/_menu.tpl"|args:$plugin_root current="index"}
{form_errors} {form_errors}
@ -11,7 +11,7 @@
<td>{$facture.type}</td> <td>{$facture.type}</td>
<th><a href="facture.php?id={$facture.id}">{$facture.numero}</a></th> <th><a href="facture.php?id={$facture.id}">{$facture.numero}</a></th>
{if $facture.receveur_membre} {if $facture.receveur_membre}
<td>{link href="!membres/fiche.php?id=%d"|args:$facture.receveur_id label=$facture.receveur}</td> <td>{link href="!users/details.php?id=%d"|args:$facture.receveur_id label=$facture.receveur}</td>
{else} {else}
<td>{link href="client.php?id=%d"|args:$facture.receveur_id label=$facture.receveur}</td> <td>{link href="client.php?id=%d"|args:$facture.receveur_id label=$facture.receveur}</td>
{/if} {/if}
@ -43,4 +43,4 @@
<p class="help">Aucun document, vous pouvez commencer par {link href="facture_ajouter.php" label="créer un nouveau document"}.</p> <p class="help">Aucun document, vous pouvez commencer par {link href="facture_ajouter.php" label="créer un nouveau document"}.</p>
{/if} {/if}
{include file="admin/_foot.tpl"} {include file="_foot.tpl"}

View File

@ -1,6 +1,6 @@
<?php <?php
namespace Garradin; namespace Paheko;
$db = DB::getInstance(); $db = DB::getInstance();
$db->import(dirname(__FILE__) . "/data/schema_remove.sql"); $db->import(dirname(__FILE__) . "/data/schema_remove.sql");