Migration de Facturation\Config à la gestion de conf intégrée à Garradin
This commit is contained in:
parent
4b3fa030d8
commit
33b9f05062
|
@ -32,9 +32,3 @@ CREATE TABLE IF NOT EXISTS plugin_facturation_clients (
|
||||||
-- designation TEXT,
|
-- designation TEXT,
|
||||||
-- valeur_prix REAL
|
-- valeur_prix REAL
|
||||||
-- );
|
-- );
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS plugin_facturation_config (
|
|
||||||
cle TEXT PRIMARY KEY NOT NULL,
|
|
||||||
valeur TEXT NOT NULL
|
|
||||||
);
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
DROP TABLE `plugin_facturation_factures`;
|
DROP TABLE `plugin_facturation_factures`;
|
||||||
DROP TABLE `plugin_facturation_clients`;
|
DROP TABLE `plugin_facturation_clients`;
|
||||||
DROP TABLE `plugin_facturation_config`;
|
|
||||||
-- DROP TABLE `plugin_facturation_produits`;
|
-- DROP TABLE `plugin_facturation_produits`;
|
|
@ -1,8 +1,8 @@
|
||||||
nom="Facturation"
|
nom="Facturation"
|
||||||
description="Permet d'éditer des factures et devis à ses membres et à 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.2.0"
|
version="0.3.0"
|
||||||
menu=1
|
menu=1
|
||||||
config=1
|
config=1
|
||||||
min_version="0.9.2"
|
min_version="0.9.2"
|
|
@ -5,13 +5,10 @@ $db = DB::getInstance();
|
||||||
|
|
||||||
$db->import(dirname(__FILE__) . "/data/schema.sql");
|
$db->import(dirname(__FILE__) . "/data/schema.sql");
|
||||||
|
|
||||||
$cfg = new Plugin\Facturation\Config();
|
$plugin->setConfig('footer', "[EXEMPLE]\n".
|
||||||
$cfg->set('footer', "[EXEMPLE]\n".
|
|
||||||
"Association exonérée des impôts commerciaux\n".
|
"Association exonérée des impôts commerciaux\n".
|
||||||
"En cas de retard de paiement, indemnité forfaitaire légale pour frais de recouvrement : 40,00 €\n".
|
"En cas de retard de paiement, indemnité forfaitaire légale pour frais de recouvrement : 40,00 €\n".
|
||||||
"[Coordonnées bancaires]\n".
|
"[Coordonnées bancaires]\n".
|
||||||
"Association enregistrée en préfecture de XXX au numéro YYY"
|
"Association enregistrée en préfecture de XXX au numéro YYY"
|
||||||
);
|
);
|
||||||
$cfg->set('validate_cp', true);
|
$plugin->setConfig('validate_cp', true);
|
||||||
|
|
||||||
$cfg->save();
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
namespace Garradin\Plugin\Facturation;
|
namespace Garradin\Plugin\Facturation;
|
||||||
|
|
||||||
use Garradin\DB;
|
use Garradin\DB;
|
||||||
|
use Garradin\Plugin;
|
||||||
use Garradin\UserException;
|
use Garradin\UserException;
|
||||||
use Garradin\Utils;
|
use Garradin\Utils;
|
||||||
|
|
||||||
|
@ -24,9 +25,9 @@ class Client
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$cfg = Config::getInstance();
|
$plugin = new Plugin('facturation');
|
||||||
$this->config['unique_client_name'] = $cfg->get('unique_client_name') ?: false;
|
$this->config['unique_client_name'] = $plugin->getConfig('unique_client_name') ?: false;
|
||||||
$this->config['validate_cp'] = $cfg->get('validate_cp') ?: false;
|
$this->config['validate_cp'] = $plugin->getConfig('validate_cp') ?: false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function _checkFields(&$data)
|
public function _checkFields(&$data)
|
||||||
|
|
30
upgrade.php
30
upgrade.php
|
@ -3,11 +3,31 @@
|
||||||
namespace Garradin;
|
namespace Garradin;
|
||||||
|
|
||||||
$db = DB::getInstance();
|
$db = DB::getInstance();
|
||||||
$db->import(dirname(__FILE__) . "/data/schema.sql");
|
$infos = $plugin->getInfos();
|
||||||
|
// Pl il y avait cette ligne ?
|
||||||
|
// $db->import(dirname(__FILE__) . "/data/schema.sql");
|
||||||
|
|
||||||
$r = (array) DB::getInstance()->get('SELECT * FROM plugin_facturation_factures');
|
// 0.2.0 - Stock le contenu en json plutôt qu'en serialized
|
||||||
|
if (version_compare($infos->version, '0.2.0', '<'))
|
||||||
|
{
|
||||||
|
$r = (array) DB::getInstance()->get('SELECT * FROM plugin_facturation_factures');
|
||||||
|
|
||||||
foreach ($r as $e) {
|
foreach ($r as $e) {
|
||||||
$e->contenu =json_encode(unserialize((string) $e->contenu));
|
$e->contenu =json_encode(unserialize((string) $e->contenu));
|
||||||
$db->update('plugin_facturation_factures', $e, $db->where('id', (int)$e->id));
|
$db->update('plugin_facturation_factures', $e, $db->where('id', (int)$e->id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 0.3.0 - Migration Facturation\Config vers la table plugins
|
||||||
|
if (version_compare($infos->version, '0.3.0', '<'))
|
||||||
|
{
|
||||||
|
$conf = $db->getAssoc('SELECT cle, valeur FROM plugin_facturation_config ORDER BY cle;');
|
||||||
|
foreach($conf as $k=>$v)
|
||||||
|
{
|
||||||
|
if(!$plugin->setConfig($k, $v))
|
||||||
|
{
|
||||||
|
throw new UserException('Erreur dans la conversion de la configuration pour la clé : '.$k);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$db->exec('DROP TABLE `plugin_facturation_config`;');
|
||||||
}
|
}
|
|
@ -2,11 +2,8 @@
|
||||||
|
|
||||||
namespace Garradin;
|
namespace Garradin;
|
||||||
|
|
||||||
use Garradin\Plugin\Facturation\Config;
|
|
||||||
use Garradin\Plugin\Facturation\Facture;
|
use Garradin\Plugin\Facturation\Facture;
|
||||||
use Garradin\Plugin\Facturation\Client;
|
use Garradin\Plugin\Facturation\Client;
|
||||||
|
|
||||||
$cfg = Config::getInstance();
|
|
||||||
|
|
||||||
$client = new Client;
|
$client = new Client;
|
||||||
$facture = new Facture;
|
$facture = new Facture;
|
||||||
|
|
|
@ -9,12 +9,10 @@ $session->requireAccess('compta', Membres::DROIT_ADMIN);
|
||||||
if (f('save') && $form->check('facturation_config'))
|
if (f('save') && $form->check('facturation_config'))
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$cfg->set('siret_asso', f('siret_asso'));
|
$plugin->setConfig('siret_asso', f('siret_asso'));
|
||||||
$cfg->set('validate_cp', f('validate_cp'));
|
$plugin->setConfig('validate_cp', f('validate_cp'));
|
||||||
$cfg->set('unique_client_name', f('unique_name'));
|
$plugin->setConfig('unique_client_name', f('unique_name'));
|
||||||
$cfg->set('footer', f('footer'));
|
$plugin->setConfig('footer', f('footer'));
|
||||||
|
|
||||||
$cfg->save();
|
|
||||||
|
|
||||||
Utils::redirect(PLUGIN_URL . 'config.php?ok');
|
Utils::redirect(PLUGIN_URL . 'config.php?ok');
|
||||||
}
|
}
|
||||||
|
@ -23,12 +21,15 @@ if (f('save') && $form->check('facturation_config'))
|
||||||
$form->addError($e->getMessage());
|
$form->addError($e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// var_dump($plugin->getInfos());
|
||||||
|
$infos = $plugin->getInfos();
|
||||||
|
var_dump($infos->version);
|
||||||
|
|
||||||
$tpl->assign('ok', qg('ok') !== null);
|
$tpl->assign('ok', qg('ok') !== null);
|
||||||
|
|
||||||
$tpl->assign('siret_asso', $cfg->get('siret_asso') ?: '');
|
$tpl->assign('siret_asso', $plugin->getConfig('siret_asso') ?: '');
|
||||||
$tpl->assign('footer', $cfg->get('footer') ?: '');
|
$tpl->assign('footer', $plugin->getConfig('footer') ?: '');
|
||||||
$tpl->assign('validate_cp', $cfg->get('validate_cp') ? 'checked':'');
|
$tpl->assign('validate_cp', $plugin->getConfig('validate_cp') ? 'checked':'');
|
||||||
$tpl->assign('unique_name', $cfg->get('unique_client_name') ? 'checked':'');
|
$tpl->assign('unique_name', $plugin->getConfig('unique_client_name') ? 'checked':'');
|
||||||
|
|
||||||
$tpl->display(PLUGIN_ROOT . '/templates/config.tpl');
|
$tpl->display(PLUGIN_ROOT . '/templates/config.tpl');
|
||||||
|
|
|
@ -51,7 +51,7 @@ catch(UserException $e)
|
||||||
}
|
}
|
||||||
|
|
||||||
$tpl->assign('id', $id);
|
$tpl->assign('id', $id);
|
||||||
$tpl->assign('footer', $cfg->get('footer')?:'');
|
$tpl->assign('footer', $plugin->getConfig('footer')?:'');
|
||||||
$tpl->assign('siret_asso', $cfg->get('siret_asso')?:'');
|
$tpl->assign('siret_asso', $plugin->getConfig('siret_asso')?:'');
|
||||||
|
|
||||||
$tpl->display(PLUGIN_ROOT . '/templates/facture.tpl');
|
$tpl->display(PLUGIN_ROOT . '/templates/facture.tpl');
|
||||||
|
|
|
@ -48,56 +48,56 @@ if(f('save'))
|
||||||
if ( count(f('designation')) !== count(f('prix')) )
|
if ( count(f('designation')) !== count(f('prix')) )
|
||||||
{
|
{
|
||||||
throw new UserException('Nombre de désignations et de prix reçus différent.');
|
throw new UserException('Nombre de désignations et de prix reçus différent.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$truc = [
|
$truc = [
|
||||||
'numero' => f('numero_facture'),
|
'numero' => f('numero_facture'),
|
||||||
'date_emission' => f('date_emission'),
|
'date_emission' => f('date_emission'),
|
||||||
'date_echeance' => f('date_echeance'),
|
'date_echeance' => f('date_echeance'),
|
||||||
'reglee' => f('reglee') == 'on'?1:0,
|
'reglee' => f('reglee') == 'on'?1:0,
|
||||||
'archivee' => f('archivee') == 'on'?1:0,
|
'archivee' => f('archivee') == 'on'?1:0,
|
||||||
'moyen_paiement' => f('moyen_paiement'),
|
'moyen_paiement' => f('moyen_paiement'),
|
||||||
'toto' => 0
|
'toto' => 0
|
||||||
];
|
];
|
||||||
|
|
||||||
if (f('type') == 'facture')
|
if (f('type') == 'facture')
|
||||||
{
|
{
|
||||||
$truc['type_facture'] = 1;
|
$truc['type_facture'] = 1;
|
||||||
}
|
}
|
||||||
elseif (f('type') == 'devis')
|
elseif (f('type') == 'devis')
|
||||||
{
|
{
|
||||||
$truc['type_facture'] = 0;
|
$truc['type_facture'] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach(f('designation') as $k=>$value)
|
foreach(f('designation') as $k=>$value)
|
||||||
{
|
{
|
||||||
$truc['contenu'][$k]['designation'] = $value;
|
$truc['contenu'][$k]['designation'] = $value;
|
||||||
$truc['contenu'][$k]['prix'] = f('prix')[$k];
|
$truc['contenu'][$k]['prix'] = f('prix')[$k];
|
||||||
$truc['toto'] += f('prix')[$k];
|
$truc['toto'] += f('prix')[$k];
|
||||||
}
|
}
|
||||||
$truc['total'] = $truc['toto'];
|
$truc['total'] = $truc['toto'];
|
||||||
unset($truc['toto']);
|
unset($truc['toto']);
|
||||||
|
|
||||||
if (f('base_receveur') == 'client')
|
if (f('base_receveur') == 'client')
|
||||||
{
|
{
|
||||||
$truc['receveur_membre'] = 0;
|
$truc['receveur_membre'] = 0;
|
||||||
$truc['receveur_id'] = f('client');
|
$truc['receveur_id'] = f('client');
|
||||||
}
|
}
|
||||||
elseif (f('base_receveur') == 'membre')
|
elseif (f('base_receveur') == 'membre')
|
||||||
{
|
{
|
||||||
$truc['receveur_membre'] = 1;
|
$truc['receveur_membre'] = 1;
|
||||||
$truc['receveur_id'] = f('membre');
|
$truc['receveur_id'] = f('membre');
|
||||||
}
|
}
|
||||||
|
|
||||||
$r = $facture->edit($id, $truc);
|
$r = $facture->edit($id, $truc);
|
||||||
|
|
||||||
Utils::redirect(PLUGIN_URL . 'facture.php?id='.(int)$id);
|
Utils::redirect(PLUGIN_URL . 'facture.php?id='.(int)$id);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch(UserException $e)
|
catch(UserException $e)
|
||||||
{
|
{
|
||||||
$form->addError($e->getMessage());
|
$form->addError($e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ $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('adresse_asso'))."<br>".
|
||||||
(($t = $cfg->get('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>":'').
|
||||||
(($t = $config->get('site_asso'))?"Site web : $t<br>":'');
|
(($t = $config->get('site_asso'))?"Site web : $t<br>":'');
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ $total = number_format($f->total, 2, ',', ' ');
|
||||||
$echeance = date('d/m/Y' ,$f->date_echeance);
|
$echeance = date('d/m/Y' ,$f->date_echeance);
|
||||||
$echeance = ($f->type_facture?'Échéance de paiement':'Échéance du devis')." : ".$echeance;
|
$echeance = ($f->type_facture?'Échéance de paiement':'Échéance du devis')." : ".$echeance;
|
||||||
$reglee = !$f->reglee?'Cette facture est en attente de règlement.':'Cette facture a été reglée.';
|
$reglee = !$f->reglee?'Cette facture est en attente de règlement.':'Cette facture a été reglée.';
|
||||||
$footer = str_replace("\n", '<br>', $cfg->get('footer'));
|
$footer = str_replace("\n", '<br>', $plugin->getConfig('footer'));
|
||||||
|
|
||||||
|
|
||||||
echo <<<EOF
|
echo <<<EOF
|
||||||
|
|
Loading…
Reference in New Issue