From b6bb4fd80da8c5b14b6bab8816b96d8a76ec21fe Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 11 Jan 2024 20:41:19 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20num=C3=A9ro=20SIREN/SIRET=20pour=20un?= =?UTF-8?q?=20client?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG | 2 ++ admin/client_modifier.php | 1 + admin/clients.php | 1 + admin/pdf.php | 3 ++- data/schema.sql | 2 +- lib/Client.php | 12 ++++++++++-- lib/Facture.php | 2 +- plugin.ini | 2 +- templates/client.tpl | 6 ++++++ templates/client_modifier.tpl | 1 + templates/clients.tpl | 4 ++++ upgrade.php | 35 +++++++++++++++++++++++++++++++++++ 12 files changed, 65 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index a29df4d..35d29cf 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +0.8.5 +- Ajout numéro SIREN/SIRET pour les clients 0.8.4 - Correction bug si identité définie par plusieurs champs - Correction bug oubli choix receveur diff --git a/admin/client_modifier.php b/admin/client_modifier.php index 1f81804..644b5dd 100644 --- a/admin/client_modifier.php +++ b/admin/client_modifier.php @@ -26,6 +26,7 @@ $form->runIf(f('save') && !$form->hasErrors(), 'adresse' => f('adresse'), 'code_postal' => f('code_postal'), 'ville' => f('ville'), + 'siret' => f('siret'), 'telephone' => f('telephone'), 'email' => f('email') ]); diff --git a/admin/clients.php b/admin/clients.php index b2193a3..9d075ce 100644 --- a/admin/clients.php +++ b/admin/clients.php @@ -16,6 +16,7 @@ $form->runIf(f('add') && !$form->hasErrors(), 'adresse' => f('adresse'), 'code_postal' => f('code_postal'), 'ville' => f('ville'), + 'siret' => f('siret'), 'telephone' => f('telephone'), 'email' => f('email') ]); diff --git a/admin/pdf.php b/admin/pdf.php index 02a29f7..38c2d50 100644 --- a/admin/pdf.php +++ b/admin/pdf.php @@ -92,7 +92,7 @@ if ($f->type_facture != CERFA) ''.$config->get('org_name')."
". $adresse ."
". (($t = $plugin->getConfig('rna_asso'))?"RNA : $t
":''). - (($t = $plugin->getConfig('siret_asso'))?"SIRET : $t
":''). + (($t = $plugin->getConfig('siret_asso'))?"SIRET : " . implode(' ', str_split($t, 3)) . "
":''). (($t = $config->get('email_asso'))?"Email : $t
":''). (($t = $config->get('site_asso'))?"Site web : $t
":''); @@ -101,6 +101,7 @@ if ($f->type_facture != CERFA) ''.$c->nom.'
'. $c->adresse."
". $c->code_postal.' '.$c->ville."
". + (($t = $c->siret)?"SIREN/SIRET : " . implode(' ', str_split($t, 3)) . "
":''). (($t = $c->email)?"Email : $t
":''). (($t = $c->telephone)?"Tel : $t
":''); diff --git a/data/schema.sql b/data/schema.sql index b108bb3..37097b9 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -21,7 +21,7 @@ CREATE TABLE IF NOT EXISTS plugin_facturation_clients ( adresse TEXT NOT NULL, code_postal TEXT NOT NULL, ville TEXT NOT NULL, - -- date_creation INTEGER NOT NULL, + siret TEXT NOT NULL, date_creation TEXT NOT NULL DEFAULT CURRENT_DATE CHECK (date(date_creation) IS NOT NULL AND date(date_creation) = date_creation), -- Date d\'inscription telephone TEXT, email TEXT diff --git a/lib/Client.php b/lib/Client.php index 5fc6044..e1bd682 100644 --- a/lib/Client.php +++ b/lib/Client.php @@ -15,6 +15,7 @@ class Client 'adresse', 'code_postal', 'ville', + 'siret', 'telephone', 'email' ]; @@ -55,6 +56,10 @@ class Client throw new UserException('Le code postal est erroné.'); } } + elseif ($key == "siret") + { + $data[$key] = str_replace(' ', '', $data[$key]); + } elseif ($key == "telephone") { $data[$key] = Utils::normalizePhoneNumber($data[$key]); @@ -84,7 +89,7 @@ class Client 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, or ce champ doit être unique à chaque client.'); } $db->insert('plugin_facturation_clients', $data); @@ -122,6 +127,9 @@ class Client 'ville' => [ 'label' => 'Ville', ], + 'siret' => [ + 'label' => 'Siret', + ], 'telephone' => [ 'label' => 'Téléphone', ], @@ -150,7 +158,7 @@ class Client 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, or ce champ doit être unique à chaque client.'); } return $db->update('plugin_facturation_clients', $data, $db->where('id', (int)$id)); diff --git a/lib/Facture.php b/lib/Facture.php index fdf3a4f..28c1df8 100644 --- a/lib/Facture.php +++ b/lib/Facture.php @@ -432,7 +432,7 @@ class Facture if(isset($data['numero']) && $db->test('plugin_facturation_factures', 'numero = ? COLLATE NOCASE AND id != ?', $data['numero'], (int)$id)) { - throw new UserException('Un document avec ce numéro existe déjà, hors le numéro doit être unique.'); + throw new UserException('Un document avec ce numéro existe déjà, or le numéro doit être unique.'); } return $db->update('plugin_facturation_factures', $data, $db->where('id', (int)$id)); } diff --git a/plugin.ini b/plugin.ini index 5a9256f..3bf1573 100644 --- a/plugin.ini +++ b/plugin.ini @@ -2,7 +2,7 @@ name="Facturation" description="Permet d'éditer des factures, devis et reçus à ses membres ainsi qu'à une base de clients supplémentaire." author="zou ; adapté par jce" url="https://git.roflcopter.fr/lesanges/paheko-plugin-facturation" -version="0.8.3" +version="0.8.5" menu=true restrict_section="accounting" restrict_level="read" diff --git a/templates/client.tpl b/templates/client.tpl index f1ad8ae..cc6f6f4 100644 --- a/templates/client.tpl +++ b/templates/client.tpl @@ -18,6 +18,12 @@
Code postal
{$client.code_postal|escape|rtrim|nl2br}
+
SIREN/SIRET
+ siret, 3)); + ?> +
{$siret|escape|trim}
+
Adresse électronique
{if empty($client.email)} diff --git a/templates/client_modifier.tpl b/templates/client_modifier.tpl index d3a3f38..08f16aa 100644 --- a/templates/client_modifier.tpl +++ b/templates/client_modifier.tpl @@ -11,6 +11,7 @@ {input type="text" name="adresse" label="Adresse" required=true source=$client} {input type="text" name="code_postal" label="Code postal" required=true source=$client} {input type="text" name="ville" label="Ville" required=true source=$client} + {input type="text" name="siret" label="SIREN/SIRET" required=true source=$client} {input type="tel" name="telephone" label="Téléphone" source=$client} {input type="email" name="email" label="Adresse e-mail" source=$client} diff --git a/templates/clients.tpl b/templates/clients.tpl index 6c6bb9d..47ccce2 100644 --- a/templates/clients.tpl +++ b/templates/clients.tpl @@ -13,6 +13,9 @@ {if $key == 'id' || $key == 'nom'} {/if} + {if $key == 'siret'} + + {/if} {$value} {/foreach} @@ -52,6 +55,7 @@ {input type="text" name="adresse" label="Adresse" required=true} {input type="text" name="code_postal" label="Code postal" required=true} {input type="text" name="ville" label="Ville" required=true} + {input type="text" name="siret" label="SIREN/SIRET" required=true} {input type="tel" name="telephone" label="Téléphone"} {input type="email" name="email" label="Adresse e-mail"} diff --git a/upgrade.php b/upgrade.php index ec88e50..6cd4ff5 100644 --- a/upgrade.php +++ b/upgrade.php @@ -209,3 +209,38 @@ if (version_compare($old_version, '0.8.1', '<')) { $plugin->unregisterSignal('menu.item'); } + +// 0.8.5 Ajout champs SIREN/SIRET à la table clients + +if (version_compare($old_version, '0.8.5', '<')) +{ + $db->exec(<<iterate($sql) as $client) + { + $client->siret = ""; + $db->insert('plugin_facturation_clients_tmp', $client); + } + // remplacer l'ancienne table par la nouvelle + $db->exec(<<