Fix indent ++

This commit is contained in:
BuildTools 2019-11-03 17:51:31 +01:00
parent d45f81a515
commit 541c5820bc
16 changed files with 415 additions and 417 deletions

View File

@ -3,15 +3,15 @@ namespace Garradin;
$db = DB::getInstance(); $db = DB::getInstance();
var_dump($db->exec(file_get_contents(dirname(__FILE__) . "/data/schema.sql"))); $db->import(dirname(__FILE__) . "/data/schema.sql");
$cfg = new Plugin\Facturation\Config(); $cfg = new Plugin\Facturation\Config();
$cfg->set('footer', '[EXEMPLE] $cfg->set('footer', '[EXEMPLE]
Association exonérée des impôts commerciaux Association exonérée des impôts commerciaux
En cas de retard de paiement, indemnité forfaitaire légale pour frais de recouvrement : 40,00 En cas de retard de paiement, indemnité forfaitaire légale pour frais de recouvrement : 40,00
[Coordonnées bancaires] [Coordonnées bancaires]
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); $cfg->set('validate_cp', true);
$cfg->save(); $cfg->save();

View File

@ -41,7 +41,7 @@ class Client
{ {
throw new UserException('Le champs '.$key.' doit être renseigné.'); throw new UserException('Le champs '.$key.' doit être renseigné.');
} }
if($key == 'ville') if($key == 'ville')
{ {
$data[$key] = mb_strtoupper($data[$key]); $data[$key] = mb_strtoupper($data[$key]);
@ -50,7 +50,7 @@ class Client
{ {
if($this->config['validate_cp'] && !preg_match('/^(F-)?((2[A|B])|[0-9]{2})(\s)?[0-9]{3}$/', $data[$key])) if($this->config['validate_cp'] && !preg_match('/^(F-)?((2[A|B])|[0-9]{2})(\s)?[0-9]{3}$/', $data[$key]))
{ {
throw new UserException('Le code postal est erroné.'); throw new UserException('Le code postal est erroné.');
} }
} }
elseif ($key == "telephone") elseif ($key == "telephone")
@ -80,26 +80,26 @@ class Client
$this->_checkFields($data); $this->_checkFields($data);
if($this->config['unique_client_name'] && isset($data['nom']) && $db->test('plugin_facturation_clients', 'nom = ? COLLATE NOCASE', $data['nom'])) if($this->config['unique_client_name'] && isset($data['nom']) && $db->test('plugin_facturation_clients', 'nom = ? COLLATE NOCASE', $data['nom']))
{ {
throw new UserException('La valeur du champ nom est déjà utilisée, hors ce champ doit être unique à chaque client.'); throw new UserException('La valeur du champ nom est déjà utilisée, hors ce champ doit être unique à chaque client.');
} }
$db->insert('plugin_facturation_clients', $data); $db->insert('plugin_facturation_clients', $data);
return $db->lastInsertRowId(); return $db->lastInsertRowId();
} }
public function get($id) public function get($id)
{ {
$db = DB::getInstance(); $db = DB::getInstance();
return $db->first('SELECT *, strftime(\'%s\', date_creation) AS date_creation return $db->first('SELECT *, strftime(\'%s\', date_creation) AS date_creation
FROM plugin_facturation_clients WHERE id = ? LIMIT 1;', (int)$id); FROM plugin_facturation_clients WHERE id = ? LIMIT 1;', (int)$id);
} }
public function listAll() public function listAll()
{ {
return DB::getInstance()->get('SELECT *, strftime(\'%s\', date_creation) AS date_creation FROM plugin_facturation_clients'); return DB::getInstance()->get('SELECT *, strftime(\'%s\', date_creation) AS date_creation FROM plugin_facturation_clients');
} }
public function edit($id, $data = []) public function edit($id, $data = [])
@ -108,10 +108,10 @@ class Client
$this->_checkFields($data); $this->_checkFields($data);
if($this->config['unique_client_name'] && isset($data['nom']) && $db->test('plugin_facturation_clients', 'nom = ? COLLATE NOCASE AND id != ?', $data['nom'], (int)$id)) if($this->config['unique_client_name'] && isset($data['nom']) && $db->test('plugin_facturation_clients', 'nom = ? COLLATE NOCASE AND id != ?', $data['nom'], (int)$id))
{ {
throw new UserException('La valeur du champ nom est déjà utilisée, hors ce champ doit être unique à chaque client.'); throw new UserException('La valeur du champ nom est déjà utilisée, hors ce champ doit être unique à chaque client.');
} }
return $db->update('plugin_facturation_clients', $data, $db->where('id', (int)$id)); return $db->update('plugin_facturation_clients', $data, $db->where('id', (int)$id));
} }
@ -128,7 +128,7 @@ class Client
{ {
return false; return false;
} }
return DB::getInstance()->delete('plugin_facturation_clients', 'id = '. (int)$id); return DB::getInstance()->delete('plugin_facturation_clients', 'id = '. (int)$id);
} }
} }

View File

@ -78,113 +78,112 @@ class Config
} }
public function save() public function save()
{ {
if (empty($this->modified)) if (empty($this->modified))
return true; return true;
$values = []; $values = [];
$db = DB::getInstance(); $db = DB::getInstance();
// $db->begin(); // $db->begin();
foreach ($this->modified as $key=>$modified) foreach ($this->modified as $key=>$modified)
{ {
$value = $this->config[$key]; $value = $this->config[$key];
var_dump($value);
if (is_array($value)) if (is_array($value))
{ {
$value = implode(',', $value); $value = implode(',', $value);
} }
elseif (is_object($value)) elseif (is_object($value))
{ {
$value = (string) $value; $value = (string) $value;
} }
$db->exec('INSERT OR REPLACE INTO plugin_facturation_config (cle, valeur) VALUES (\''.$key.'\', \''.$value.'\');'); $db->exec('INSERT OR REPLACE INTO plugin_facturation_config (cle, valeur) VALUES (\''.$key.'\', \''.$value.'\');');
} }
// $db->commit();
$this->modified = []; // $db->commit();
return true; $this->modified = [];
return true;
} }
public function set($key, $value) public function set($key, $value)
{ {
if (!array_key_exists($key, $this->fields_types)) if (!array_key_exists($key, $this->fields_types))
{ {
throw new \OutOfBoundsException('Ce champ est inconnu.'); throw new \OutOfBoundsException('Ce champ est inconnu.');
} }
if (is_array($this->fields_types[$key])) if (is_array($this->fields_types[$key]))
{ {
$value = !empty($value) ? (array) $value : []; $value = !empty($value) ? (array) $value : [];
} }
elseif (is_int($this->fields_types[$key])) elseif (is_int($this->fields_types[$key]))
{ {
$value = (int) $value; $value = (int) $value;
} }
elseif (is_float($this->fields_types[$key])) elseif (is_float($this->fields_types[$key]))
{ {
$value = (float) $value; $value = (float) $value;
} }
elseif (is_bool($this->fields_types[$key])) elseif (is_bool($this->fields_types[$key]))
{ {
$value = (bool) $value; $value = (bool) $value;
} }
elseif (is_string($this->fields_types[$key])) elseif (is_string($this->fields_types[$key]))
{ {
$value = (string) $value; $value = (string) $value;
} }
// switch ($key) // switch ($key)
// { // {
// case 'siret_asso': // case 'siret_asso':
// { // {
// if (!trim($value)) // if (!trim($value))
// { // {
// throw new UserException('Le nom de l\'association ne peut rester vide.'); // throw new UserException('Le nom de l\'association ne peut rester vide.');
// } // }
// break; // break;
// } // }
// case 'footer': // case 'footer':
// break; // break;
// default: // default:
// break; // break;
// } // }
if (!isset($this->config[$key]) || $value !== $this->config[$key]) if (!isset($this->config[$key]) || $value !== $this->config[$key])
{ {
$this->config[$key] = $value; $this->config[$key] = $value;
$this->modified[$key] = true; $this->modified[$key] = true;
} }
return true; return true;
} }
public function get($key) public function get($key)
{ {
if (!array_key_exists($key, $this->fields_types)) if (!array_key_exists($key, $this->fields_types))
{ {
throw new \OutOfBoundsException('Ce champ est inconnu.'); throw new \OutOfBoundsException('Ce champ est inconnu.');
}
if (!array_key_exists($key, $this->config))
{
return null;
}
return $this->config[$key];
} }
if (!array_key_exists($key, $this->config))
{
return null;
}
return $this->config[$key];
}
public function getFieldsTypes() public function getFieldsTypes()
{ {
return $this->fields_types; return $this->fields_types;
} }
public function getConfig() public function getConfig()
{ {
return $this->config; return $this->config;
} }
} }

View File

@ -34,7 +34,7 @@ class Facture
{ {
throw new UserException("Clé inattendue : $k."); throw new UserException("Clé inattendue : $k.");
} }
if(!is_array($data)){ if(!is_array($data)){
$datas[$k] = trim($data); $datas[$k] = trim($data);
} }
@ -46,49 +46,49 @@ class Facture
switch($k) switch($k)
{ {
case 'type_facture': case 'type_facture':
case 'receveur_membre': case 'receveur_membre':
case 'reglee': case 'reglee':
case 'archivee': case 'archivee':
if ($datas[$k] != 1 && $datas[$k] != 0) if ($datas[$k] != 1 && $datas[$k] != 0)
{ {
throw new UserException("$k est de valeur non-attendue ($data)."); throw new UserException("$k est de valeur non-attendue ($data).");
} }
break; break;
case 'receveur_id': case 'receveur_id':
if (!is_numeric($datas[$k]) || $datas[$k] < 0 ) if (!is_numeric($datas[$k]) || $datas[$k] < 0 )
{ {
throw new UserException("L'id du receveur est non-attendu ($data)."); throw new UserException("L'id du receveur est non-attendu ($data).");
} }
break; break;
case 'date_emission': case 'date_emission':
if (!strtotime($datas[$k])) if (!strtotime($datas[$k]))
{ {
throw new UserException("La date d'émission est non-attendue ($data)."); throw new UserException("La date d'émission est non-attendue ($data).");
} }
break; break;
case 'date_echeance': case 'date_echeance':
if (!strtotime($datas[$k])) if (!strtotime($datas[$k]))
{ {
throw new UserException("La date d'émission est non-attendue ($data)."); throw new UserException("La date d'émission est non-attendue ($data).");
} }
if (isset($datas['date_emission']) && (strtotime($datas[$k]) <= strtotime($datas['date_emission']) ) ) if (isset($datas['date_emission']) && (strtotime($datas[$k]) <= strtotime($datas['date_emission']) ) )
{ {
throw new UserException("La date d'échéance est antérieure ou égale à la date d'émission ($data)."); throw new UserException("La date d'échéance est antérieure ou égale à la date d'émission ($data).");
} }
break; break;
case 'moyen_paiement': case 'moyen_paiement':
$cats = new \Garradin\Compta\Categories; $cats = new \Garradin\Compta\Categories;
if(!array_key_exists($datas[$k], $cats->listMoyensPaiement())) if(!array_key_exists($datas[$k], $cats->listMoyensPaiement()))
{ {
throw new UserException("Le moyen de paiement ne correspond pas à la liste interne ($data)."); throw new UserException("Le moyen de paiement ne correspond pas à la liste interne ($data).");
} }
unset($cats); unset($cats);
break; break;
case 'contenu': case 'contenu':
if(!is_array($datas[$k]) || empty($datas[$k])) if(!is_array($datas[$k]) || empty($datas[$k]))
{ {
throw new UserException("Le contenu du document est vide ($data)."); throw new UserException("Le contenu du document est vide ($data).");
} }
$total = 0; $total = 0;
$vide = 1; $vide = 1;
@ -110,10 +110,10 @@ class Facture
} }
$datas[$k] = serialize($datas[$k]); $datas[$k] = serialize($datas[$k]);
break; break;
case 'total': case 'total':
if(!isset($datas['contenu'])) if(!isset($datas['contenu']))
{ {
throw new UserException("Pas de contenu fourni pour vérifier le total."); throw new UserException("Pas de contenu fourni pour vérifier le total.");
} }
if ($total != $datas[$k]) if ($total != $datas[$k])
{ {
@ -132,15 +132,15 @@ class Facture
if(isset($data['numero']) && $db->test('plugin_facturation_factures', 'numero = ? COLLATE NOCASE', $data['numero'])) if(isset($data['numero']) && $db->test('plugin_facturation_factures', 'numero = ? COLLATE NOCASE', $data['numero']))
{ {
throw new UserException('Une facture avec ce numéro existe déjà, hors le numéro doit être unique.'); throw new UserException('Une facture avec ce numéro existe déjà, hors le numéro doit être unique.');
} }
$db->insert('plugin_facturation_factures', $data); $db->insert('plugin_facturation_factures', $data);
return $db->lastInsertRowId(); return $db->lastInsertRowId();
} }
public function get($id) public function get($id)
{ {
$db = DB::getInstance(); $db = DB::getInstance();
$r = $db->first('SELECT *, strftime(\'%s\', date_emission) AS date_emission, $r = $db->first('SELECT *, strftime(\'%s\', date_emission) AS date_emission,
strftime(\'%s\', date_echeance) AS date_echeance strftime(\'%s\', date_echeance) AS date_echeance
@ -150,7 +150,7 @@ class Facture
{ {
throw new UserException("Pas de facture retournée avec cet id."); throw new UserException("Pas de facture retournée avec cet id.");
} }
$r->contenu = unserialize($r->contenu); $r->contenu = unserialize($r->contenu);
return $r; return $r;
@ -161,7 +161,7 @@ class Facture
$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,
strftime(\'%s\', date_echeance) AS date_echeance strftime(\'%s\', date_echeance) AS date_echeance
FROM plugin_facturation_factures'); FROM plugin_facturation_factures');
foreach ($r as $e) foreach ($r as $e)
{ {
$e->contenu = unserialize((string)$e->contenu); $e->contenu = unserialize((string)$e->contenu);
@ -178,7 +178,7 @@ class Facture
if(isset($data['numero']) && $db->test('plugin_facturation_factures', 'numero = ? COLLATE NOCASE AND id != ?', $data['numero'], (int)$id)) if(isset($data['numero']) && $db->test('plugin_facturation_factures', 'numero = ? COLLATE NOCASE AND id != ?', $data['numero'], (int)$id))
{ {
throw new UserException('Une facture avec ce numéro existe déjà, hors le numéro doit être unique.'); throw new UserException('Une facture avec ce numéro existe déjà, hors le numéro doit être unique.');
} }
return $db->update('plugin_facturation_factures', $data, $db->where('id', (int)$id)); return $db->update('plugin_facturation_factures', $data, $db->where('id', (int)$id));
} }
@ -200,15 +200,15 @@ class Facture
} }
$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,
strftime(\'%s\', date_echeance) AS date_echeance strftime(\'%s\', date_echeance) AS date_echeance
FROM plugin_facturation_factures FROM plugin_facturation_factures
WHERE receveur_membre = ? AND receveur_id = ?', (int)$base, (int)$id); WHERE receveur_membre = ? AND receveur_id = ?', (int)$base, (int)$id);
foreach ($r as $e) foreach ($r as $e)
{ {
$e->contenu = unserialize((string)$e->contenu); $e->contenu = unserialize((string)$e->contenu);
} }
return empty($r)?false:$r; return empty($r)?false:$r;
} }

View File

@ -3,4 +3,4 @@ namespace Garradin;
$db = DB::getInstance(); $db = DB::getInstance();
$db->exec(file_get_contents(dirname(__FILE__) . "/data/schema_remove.sql")); $db->exec(file_get_contents(dirname(__FILE__) . "/data/schema_remove.sql"));

View File

@ -9,4 +9,4 @@ use Garradin\Plugin\Facturation\Client;
$cfg = Config::getInstance(); $cfg = Config::getInstance();
$client = new Client; $client = new Client;
$facture = new Facture; $facture = new Facture;

View File

@ -19,4 +19,4 @@ if (!$client)
$tpl->assign('docs', $facture->listUserDoc(0, $id)); $tpl->assign('docs', $facture->listUserDoc(0, $id));
$tpl->assign('client', $client); $tpl->assign('client', $client);
$tpl->display(PLUGIN_ROOT . '/templates/client.tpl'); $tpl->display(PLUGIN_ROOT . '/templates/client.tpl');

View File

@ -26,7 +26,7 @@ if(f('save'))
'telephone' => 'string', 'telephone' => 'string',
'email' => 'email' 'email' => 'email'
]); ]);
if (!$form->hasErrors()) if (!$form->hasErrors())
{ {
try try
@ -39,7 +39,7 @@ if(f('save'))
'telephone' => f('telephone'), 'telephone' => f('telephone'),
'email' => f('email') 'email' => f('email')
]); ]);
$r ? Utils::redirect(PLUGIN_URL . 'client.php?id='.(int)$id):''; $r ? Utils::redirect(PLUGIN_URL . 'client.php?id='.(int)$id):'';
} }
catch (UserException $e) catch (UserException $e)

View File

@ -14,27 +14,27 @@ $c = $client->get($id);
if (!$client) if (!$client)
{ {
throw new UserException("Ce client n'existe pas."); throw new UserException("Ce client n'existe pas.");
} }
if (f('delete')) if (f('delete'))
{ {
$form->check('delete_client_'.$c->id); $form->check('delete_client_'.$c->id);
if (!$form->hasErrors()) if (!$form->hasErrors())
{ {
try { try {
var_dump($client->delete($c->id)); $client->delete($c->id);
Utils::redirect(PLUGIN_URL . 'clients.php'); Utils::redirect(PLUGIN_URL . 'clients.php');
} }
catch (UserException $e) catch (UserException $e)
{ {
$form->addError($e->getMessage()); $form->addError($e->getMessage());
} }
} }
} }
$tpl->assign('deletable', $client->isDeletable($id)); $tpl->assign('deletable', $client->isDeletable($id));
$tpl->assign('client', $client->get($id)); $tpl->assign('client', $client->get($id));
$tpl->display(PLUGIN_ROOT . '/templates/client_supprimer.tpl'); $tpl->display(PLUGIN_ROOT . '/templates/client_supprimer.tpl');

View File

@ -8,29 +8,29 @@ $session->requireAccess('compta', Membres::DROIT_ACCES);
if(f('add')) if(f('add'))
{ {
$form->check('add_client', [ $form->check('add_client', [
'nom' => 'required|string', 'nom' => 'required|string',
'adresse' => 'required|string', 'adresse' => 'required|string',
'code_postal' => 'required|string', 'code_postal' => 'required|string',
'ville' => 'required|string', 'ville' => 'required|string',
'telephone' => 'string', 'telephone' => 'string',
'email' => 'email' 'email' => 'email'
]); ]);
if (!$form->hasErrors()) if (!$form->hasErrors())
{ {
try try
{ {
$id = $client->add([ $id = $client->add([
'nom' => f('nom'), 'nom' => f('nom'),
'adresse' => f('adresse'), 'adresse' => f('adresse'),
'code_postal' => f('code_postal'), 'code_postal' => f('code_postal'),
'ville' => f('ville'), 'ville' => f('ville'),
'telephone' => f('telephone'), 'telephone' => f('telephone'),
'email' => f('email') 'email' => f('email')
]); ]);
$id ? Utils::redirect(PLUGIN_URL . 'client.php?id='.(int)$id):''; $id ? Utils::redirect(PLUGIN_URL . 'client.php?id='.(int)$id):'';
} }
catch (UserException $e) catch (UserException $e)
{ {
@ -40,17 +40,16 @@ if(f('add'))
} }
// var_dump($client->listAll());
$tpl->assign('clients', $client->listAll()); $tpl->assign('clients', $client->listAll());
$tpl->assign('champs', $tpl->assign('champs',
[ [
'id' => 'id', 'id' => 'id',
'nom' => 'Nom', 'nom' => 'Nom',
'adresse' => 'Adresse', 'adresse' => 'Adresse',
'code_postal' => 'Code postal', 'code_postal' => 'Code postal',
'ville' => 'Ville', 'ville' => 'Ville',
'telephone' => 'Numéro de téléphone', 'telephone' => 'Numéro de téléphone',
'email' => 'Adresse mail' 'email' => 'Adresse mail'
] ]
); );

View File

@ -8,19 +8,19 @@ $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')); $cfg->set('siret_asso', f('siret_asso'));
$cfg->set('validate_cp', f('validate_cp')); $cfg->set('validate_cp', f('validate_cp'));
$cfg->set('unique_client_name', f('unique_name')); $cfg->set('unique_client_name', f('unique_name'));
$cfg->set('footer', f('footer')); $cfg->set('footer', f('footer'));
$cfg->save(); $cfg->save();
Utils::redirect(PLUGIN_URL . 'config.php?ok'); Utils::redirect(PLUGIN_URL . 'config.php?ok');
} }
catch (UserException $e) catch (UserException $e)
{ {
$form->addError($e->getMessage()); $form->addError($e->getMessage());
} }
} }

View File

@ -26,20 +26,20 @@ $tpl->assign('moyen_paiement', $cats->getMoyenPaiement($f->moyen_paiement));
try try
{ {
if ($f->receveur_membre) if ($f->receveur_membre)
{ {
$c = $membres->get($f->receveur_id); $c = $membres->get($f->receveur_id);
foreach(['ville','code_postal','adresse'] as $v) foreach(['ville','code_postal','adresse'] as $v)
{ {
if($c->$v == '') if($c->$v == '')
{ {
$c->$v = '[A RENSEIGNER DANS LA FICHE MEMBRE]'; $c->$v = '[A RENSEIGNER DANS LA FICHE MEMBRE]';
} }
} }
} }
else else
{ {
$c = $client->get($f->receveur_id); $c = $client->get($f->receveur_id);
} }
$tpl->assign('facture', $f); $tpl->assign('facture', $f);
@ -47,11 +47,11 @@ try
} }
catch(UserException $e) catch(UserException $e)
{ {
$form->addError("Pas de document correspondant à cet id trouvée."); $form->addError("Pas de document correspondant à cet id trouvée.");
} }
$tpl->assign('id', $id); $tpl->assign('id', $id);
$tpl->assign('footer', $cfg->get('footer')?:''); $tpl->assign('footer', $cfg->get('footer')?:'');
$tpl->assign('siret_asso', $cfg->get('siret_asso')?:''); $tpl->assign('siret_asso', $cfg->get('siret_asso')?:'');
$tpl->display(PLUGIN_ROOT . '/templates/facture.tpl'); $tpl->display(PLUGIN_ROOT . '/templates/facture.tpl');

View File

@ -14,78 +14,78 @@ $tpl->assign('moyen_paiement', f('moyen_paiement') ?: 'ES');
if (f('add')) if (f('add'))
{ {
$form->check('ajout_facture', [ $form->check('ajout_facture', [
'type' => 'required|in:facture,devis', 'type' => 'required|in:facture,devis',
'numero_facture' => 'required|string', 'numero_facture' => 'required|string',
'date_emission' => 'required|date', 'date_emission' => 'required|date',
'date_echeance' => 'required|date', 'date_echeance' => 'required|date',
// 'reglee' => '', // 'reglee' => '',
// 'archivee' => '', // 'archivee' => '',
'base_receveur' => 'required|in:membre,client', 'base_receveur' => 'required|in:membre,client',
// 'client' => '', // 'client' => '',
// 'membre' => '', // 'membre' => '',
'moyen_paiement' => 'required|in:' . implode(',', array_keys($cats->listMoyensPaiement())), 'moyen_paiement' => 'required|in:' . implode(',', array_keys($cats->listMoyensPaiement())),
'designation' => 'array|required', 'designation' => 'array|required',
'prix' => 'array|required' 'prix' => 'array|required'
]); ]);
if (!$form->hasErrors()) if (!$form->hasErrors())
{ {
try try
{ {
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 = [
'numero' =>f('numero_facture'),
'date_emission' => f('date_emission'),
'date_echeance' => f('date_echeance'),
'reglee' => f('reglee') == 'on'?1:0,
'archivee' => f('archivee') == 'on'?1:0,
'moyen_paiement' => f('moyen_paiement'),
'toto' => 0
];
if (f('type') == 'facture')
{
$truc['type_facture'] = 1;
}
elseif (f('type') == 'devis')
{
$truc['type_facture'] = 0;
}
foreach(f('designation') as $k=>$value) $truc = [
{ 'numero' =>f('numero_facture'),
$truc['contenu'][$k]['designation'] = $value; 'date_emission' => f('date_emission'),
$truc['contenu'][$k]['prix'] = f('prix')[$k]; 'date_echeance' => f('date_echeance'),
$truc['toto'] += f('prix')[$k]; 'reglee' => f('reglee') == 'on'?1:0,
} 'archivee' => f('archivee') == 'on'?1:0,
$truc['total'] = $truc['toto']; 'moyen_paiement' => f('moyen_paiement'),
unset($truc['toto']); 'toto' => 0
];
if (f('base_receveur') == 'client')
{
$truc['receveur_membre'] = 0;
$truc['receveur_id'] = f('client');
}
elseif (f('base_receveur') == 'membre')
{
$truc['receveur_membre'] = 1;
$truc['receveur_id'] = f('membre');
}
$id = $facture->add($truc); if (f('type') == 'facture')
{
$truc['type_facture'] = 1;
}
elseif (f('type') == 'devis')
{
$truc['type_facture'] = 0;
}
Utils::redirect(PLUGIN_URL . 'facture.php?id='.(int)$id); foreach(f('designation') as $k=>$value)
{
$truc['contenu'][$k]['designation'] = $value;
$truc['contenu'][$k]['prix'] = f('prix')[$k];
$truc['toto'] += f('prix')[$k];
}
$truc['total'] = $truc['toto'];
unset($truc['toto']);
} if (f('base_receveur') == 'client')
catch(UserException $e) {
{ $truc['receveur_membre'] = 0;
$form->addError($e->getMessage()); $truc['receveur_id'] = f('client');
} }
elseif (f('base_receveur') == 'membre')
{
$truc['receveur_membre'] = 1;
$truc['receveur_id'] = f('membre');
}
$id = $facture->add($truc);
Utils::redirect(PLUGIN_URL . 'facture.php?id='.(int)$id);
}
catch(UserException $e)
{
$form->addError($e->getMessage());
}
} }
} }
@ -119,4 +119,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('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->assign('clients', $client->listAll());
$tpl->display(PLUGIN_ROOT . '/templates/facture_ajouter.tpl'); $tpl->display(PLUGIN_ROOT . '/templates/facture_ajouter.tpl');

View File

@ -26,78 +26,78 @@ $tpl->assign('moyen_paiement', f('moyen_paiement') ?: $f->moyen_paiement);
if(f('save')) if(f('save'))
{ {
$form->check('modifier_facture', [ $form->check('modifier_facture', [
'type' => 'required|in:facture,devis', 'type' => 'required|in:facture,devis',
'numero_facture' => 'required|string', 'numero_facture' => 'required|string',
'date_emission' => 'required|date', 'date_emission' => 'required|date',
'date_echeance' => 'required|date', 'date_echeance' => 'required|date',
// 'reglee' => '', // 'reglee' => '',
// 'archivee' => '', // 'archivee' => '',
'base_receveur' => 'required|in:membre,client', 'base_receveur' => 'required|in:membre,client',
// 'client' => '', // 'client' => '',
// 'membre' => '', // 'membre' => '',
'moyen_paiement' => 'required|in:' . implode(',', array_keys($cats->listMoyensPaiement())), 'moyen_paiement' => 'required|in:' . implode(',', array_keys($cats->listMoyensPaiement())),
'designation' => 'array|required', 'designation' => 'array|required',
'prix' => 'array|required' 'prix' => 'array|required'
]); ]);
if (!$form->hasErrors()) if (!$form->hasErrors())
{ {
try
{
if ( count(f('designation')) !== count(f('prix')) )
{
throw new UserException('Nombre de désignations et de prix reçus différent.');
}
$truc = [
'numero' => f('numero_facture'),
'date_emission' => f('date_emission'),
'date_echeance' => f('date_echeance'),
'reglee' => f('reglee') == 'on'?1:0,
'archivee' => f('archivee') == 'on'?1:0,
'moyen_paiement' => f('moyen_paiement'),
'toto' => 0
];
if (f('type') == 'facture')
{
$truc['type_facture'] = 1;
}
elseif (f('type') == 'devis')
{
$truc['type_facture'] = 0;
}
foreach(f('designation') as $k=>$value) try
{ {
$truc['contenu'][$k]['designation'] = $value; if ( count(f('designation')) !== count(f('prix')) )
$truc['contenu'][$k]['prix'] = f('prix')[$k]; {
$truc['toto'] += f('prix')[$k]; throw new UserException('Nombre de désignations et de prix reçus différent.');
} }
$truc['total'] = $truc['toto'];
unset($truc['toto']);
if (f('base_receveur') == 'client')
{
$truc['receveur_membre'] = 0;
$truc['receveur_id'] = f('client');
}
elseif (f('base_receveur') == 'membre')
{
$truc['receveur_membre'] = 1;
$truc['receveur_id'] = f('membre');
}
$r = $facture->edit($id, $truc); $truc = [
'numero' => f('numero_facture'),
'date_emission' => f('date_emission'),
'date_echeance' => f('date_echeance'),
'reglee' => f('reglee') == 'on'?1:0,
'archivee' => f('archivee') == 'on'?1:0,
'moyen_paiement' => f('moyen_paiement'),
'toto' => 0
];
Utils::redirect(PLUGIN_URL . 'facture.php?id='.(int)$id); if (f('type') == 'facture')
{
$truc['type_facture'] = 1;
}
elseif (f('type') == 'devis')
{
$truc['type_facture'] = 0;
}
} foreach(f('designation') as $k=>$value)
catch(UserException $e) {
{ $truc['contenu'][$k]['designation'] = $value;
$form->addError($e->getMessage()); $truc['contenu'][$k]['prix'] = f('prix')[$k];
} $truc['toto'] += f('prix')[$k];
}
$truc['total'] = $truc['toto'];
unset($truc['toto']);
if (f('base_receveur') == 'client')
{
$truc['receveur_membre'] = 0;
$truc['receveur_id'] = f('client');
}
elseif (f('base_receveur') == 'membre')
{
$truc['receveur_membre'] = 1;
$truc['receveur_id'] = f('membre');
}
$r = $facture->edit($id, $truc);
Utils::redirect(PLUGIN_URL . 'facture.php?id='.(int)$id);
}
catch(UserException $e)
{
$form->addError($e->getMessage());
}
} }
} }

View File

@ -49,8 +49,8 @@ catch(UserException $e)
$pdf = new \Mpdf\Mpdf([ $pdf = new \Mpdf\Mpdf([
'default_font_size' => 10, 'default_font_size' => 10,
'default_font' => 'dejavusans', 'default_font' => 'dejavusans',
// 'tempDir' => PLUGINS_ROOT . '/mpdf-tmp/' // 'tempDir' => PLUGINS_ROOT . '/mpdf-tmp/'
]); ]);
$pdf->SetAuthor($config->get('nom_asso')); $pdf->SetAuthor($config->get('nom_asso'));
@ -61,20 +61,20 @@ $emission = date('d/m/Y' ,$f->date_emission);
$pdf->SetTitle($doc.' - '.$emission); $pdf->SetTitle($doc.' - '.$emission);
$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('adresse_asso'))."<br>".
(($t = $cfg->get('siret_asso'))?"SIRET : $t<br>":''). (($t = $cfg->get('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>":'');
$receveur = $receveur =
'Adressé à :<br><br>'. 'Adressé à :<br><br>'.
'<b>'.$c->nom.'</b><br>'. '<b>'.$c->nom.'</b><br>'.
$c->adresse."<br>". $c->adresse."<br>".
$c->code_postal.' '.$c->ville."<br>". $c->code_postal.' '.$c->ville."<br>".
(($t = $c->email)?"Email : $t<br>":''). (($t = $c->email)?"Email : $t<br>":'').
(($t = $c->telephone)?"Tel : $t<br>":''); (($t = $c->telephone)?"Tel : $t<br>":'');
$total = number_format($f->total, 2, ',', ' '); $total = number_format($f->total, 2, ',', ' ');
$echeance = date('d/m/Y' ,$f->date_echeance); $echeance = date('d/m/Y' ,$f->date_echeance);
@ -88,58 +88,58 @@ echo <<<EOF
<style> <style>
.titre { .titre {
text-align: center; text-align: center;
font-size: 8pt; font-size: 8pt;
position: absolute; position: absolute;
top: 6mm; top: 6mm;
width: 180mm; width: 180mm;
} }
.h2 { .h2 {
margin: 25 20 0 20; margin: 25 20 0 20;
} }
.h2 span { .h2 span {
font-weight: bold; font-weight: bold;
font-size: 15pt; font-size: 15pt;
} }
hr { hr {
margin: 5 0 20 0; margin: 5 0 20 0;
} }
.adressage { .adressage {
font-size: 11pt; font-size: 11pt;
} }
.adressage td { .adressage td {
width: 95mm; width: 95mm;
vertical-align: top; vertical-align: top;
} }
.contenu td, .contenu th { .contenu td, .contenu th {
vertical-align: top; vertical-align: top;
padding: 8 10; padding: 8 10;
margin : 0; margin : 0;
border-collapse: collapse; border-collapse: collapse;
} }
.contenu tr th, .contenu tr td { .contenu tr th, .contenu tr td {
text-align: right; text-align: right;
width: 16%; width: 16%;
} }
.contenu tr td:nth-child(1), .contenu tr th:nth-child(1) { .contenu tr td:nth-child(1), .contenu tr th:nth-child(1) {
text-align: left; text-align: left;
width: 84%; width: 84%;
} }
.contenu thead tr, .contenu tfoot tr { .contenu thead tr, .contenu tfoot tr {
background-color: #CCE; background-color: #CCE;
border: 10px solid black; border: 10px solid black;
} }
.contenu tbody tr:nth-child(even) { .contenu tbody tr:nth-child(even) {
background-color: #DDF; background-color: #DDF;
} }
footer { footer {
position: absolute; position: absolute;
bottom: 0; bottom: 0;
margin: 14mm 0; margin: 14mm 0;
} }
</style> </style>
@ -152,8 +152,8 @@ $doc - Émis le $emission
<table class="adressage"> <table class="adressage">
<tr> <tr>
<td>$asso</td> <td>$asso</td>
<td>$receveur</td> <td>$receveur</td>
</tr> </tr>
</table> </table>
@ -166,14 +166,14 @@ $doc - Émis le $emission
<table class="contenu"> <table class="contenu">
<thead> <thead>
<tr> <tr>
<th> <th>
Désignations Désignations
</th> </th>
<th> <th>
Prix Prix
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
EOF; EOF;
@ -181,21 +181,21 @@ EOF;
$i = 1; $i = 1;
foreach($f->contenu as $k=>$v) foreach($f->contenu as $k=>$v)
{ {
echo '<tr><td>'; echo '<tr><td>';
echo str_replace("\n", '<br>', $v['designation']); echo str_replace("\n", '<br>', $v['designation']);
echo '</td><td>'; echo '</td><td>';
echo number_format($v['prix'], 2, ',', ' ').'€'; echo number_format($v['prix'], 2, ',', ' ').'€';
echo '</td></tr>'; echo '</td></tr>';
$i++; $i++;
} }
echo <<<EOF echo <<<EOF
</tbody> </tbody>
<tfoot> <tfoot>
<tr> <tr>
<td><h3>Total</h3>Net à payer</td> <td><h3>Total</h3>Net à payer</td>
<td><b>$total </b> (HT)</td> <td><b>$total </b> (HT)</td>
</tr> </tr>
</tfoot> </tfoot>
</table> </table>
@ -209,7 +209,7 @@ echo <<<EOF
Moyen de paiement : $moyen_paiement Moyen de paiement : $moyen_paiement
<p> <p>
$footer $footer
</p> </p>
</footer> </footer>
@ -221,13 +221,13 @@ $pdf->WriteHTML($html);
if(qg('d') !== null) if(qg('d') !== null)
{ {
$t = \Mpdf\Output\Destination::DOWNLOAD; $t = \Mpdf\Output\Destination::DOWNLOAD;
} }
else else
{ {
$t = \Mpdf\Output\Destination::INLINE; $t = \Mpdf\Output\Destination::INLINE;
} }
$pdf->Output( $pdf->Output(
($f->type_facture?'Facture':'Devis').' '.$f->numero ($f->type_facture?'Facture':'Devis').' '.$f->numero
. ' du '.date('d-m-Y' ,$f->date_emission) . ' du '.date('d-m-Y' ,$f->date_emission)
.'.pdf', $t); .'.pdf', $t);

View File

@ -13,8 +13,8 @@ $tpl->assign('moyens_paiement', $cats->listMoyensPaiement());
foreach($factures = $facture->listAll() as $k=>$f) foreach($factures = $facture->listAll() as $k=>$f)
{ {
$factures[$k]->receveur = $f->receveur_membre? $membres->get($f->receveur_id) : $client->get($f->receveur_id); $factures[$k]->receveur = $f->receveur_membre? $membres->get($f->receveur_id) : $client->get($f->receveur_id);
$factures[$k]->moyen_paiement = $cats->getMoyenPaiement($f->moyen_paiement); $factures[$k]->moyen_paiement = $cats->getMoyenPaiement($f->moyen_paiement);
} }
$tpl->assign('factures', $factures); $tpl->assign('factures', $factures);