Ajout numéro SIREN/SIRET pour un client
This commit is contained in:
parent
438e9c6116
commit
b6bb4fd80d
|
@ -1,3 +1,5 @@
|
||||||
|
0.8.5
|
||||||
|
- Ajout numéro SIREN/SIRET pour les clients
|
||||||
0.8.4
|
0.8.4
|
||||||
- Correction bug si identité définie par plusieurs champs
|
- Correction bug si identité définie par plusieurs champs
|
||||||
- Correction bug oubli choix receveur
|
- Correction bug oubli choix receveur
|
||||||
|
|
|
@ -26,6 +26,7 @@ $form->runIf(f('save') && !$form->hasErrors(),
|
||||||
'adresse' => f('adresse'),
|
'adresse' => f('adresse'),
|
||||||
'code_postal' => f('code_postal'),
|
'code_postal' => f('code_postal'),
|
||||||
'ville' => f('ville'),
|
'ville' => f('ville'),
|
||||||
|
'siret' => f('siret'),
|
||||||
'telephone' => f('telephone'),
|
'telephone' => f('telephone'),
|
||||||
'email' => f('email')
|
'email' => f('email')
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -16,6 +16,7 @@ $form->runIf(f('add') && !$form->hasErrors(),
|
||||||
'adresse' => f('adresse'),
|
'adresse' => f('adresse'),
|
||||||
'code_postal' => f('code_postal'),
|
'code_postal' => f('code_postal'),
|
||||||
'ville' => f('ville'),
|
'ville' => f('ville'),
|
||||||
|
'siret' => f('siret'),
|
||||||
'telephone' => f('telephone'),
|
'telephone' => f('telephone'),
|
||||||
'email' => f('email')
|
'email' => f('email')
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -92,7 +92,7 @@ if ($f->type_facture != CERFA)
|
||||||
'<b>'.$config->get('org_name')."</b><br>".
|
'<b>'.$config->get('org_name')."</b><br>".
|
||||||
$adresse ."<br>".
|
$adresse ."<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 : " . implode(' ', str_split($t, 3)) . "<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>":'');
|
||||||
|
|
||||||
|
@ -101,6 +101,7 @@ if ($f->type_facture != CERFA)
|
||||||
'<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->siret)?"SIREN/SIRET : " . implode(' ', str_split($t, 3)) . "<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>":'');
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ CREATE TABLE IF NOT EXISTS plugin_facturation_clients (
|
||||||
adresse TEXT NOT NULL,
|
adresse TEXT NOT NULL,
|
||||||
code_postal TEXT NOT NULL,
|
code_postal TEXT NOT NULL,
|
||||||
ville 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
|
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,
|
telephone TEXT,
|
||||||
email TEXT
|
email TEXT
|
||||||
|
|
|
@ -15,6 +15,7 @@ class Client
|
||||||
'adresse',
|
'adresse',
|
||||||
'code_postal',
|
'code_postal',
|
||||||
'ville',
|
'ville',
|
||||||
|
'siret',
|
||||||
'telephone',
|
'telephone',
|
||||||
'email'
|
'email'
|
||||||
];
|
];
|
||||||
|
@ -55,6 +56,10 @@ class Client
|
||||||
throw new UserException('Le code postal est erroné.');
|
throw new UserException('Le code postal est erroné.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
elseif ($key == "siret")
|
||||||
|
{
|
||||||
|
$data[$key] = str_replace(' ', '', $data[$key]);
|
||||||
|
}
|
||||||
elseif ($key == "telephone")
|
elseif ($key == "telephone")
|
||||||
{
|
{
|
||||||
$data[$key] = Utils::normalizePhoneNumber($data[$key]);
|
$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']))
|
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);
|
$db->insert('plugin_facturation_clients', $data);
|
||||||
|
@ -122,6 +127,9 @@ class Client
|
||||||
'ville' => [
|
'ville' => [
|
||||||
'label' => 'Ville',
|
'label' => 'Ville',
|
||||||
],
|
],
|
||||||
|
'siret' => [
|
||||||
|
'label' => 'Siret',
|
||||||
|
],
|
||||||
'telephone' => [
|
'telephone' => [
|
||||||
'label' => 'Téléphone',
|
'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))
|
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));
|
return $db->update('plugin_facturation_clients', $data, $db->where('id', (int)$id));
|
||||||
|
|
|
@ -432,7 +432,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('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));
|
return $db->update('plugin_facturation_factures', $data, $db->where('id', (int)$id));
|
||||||
}
|
}
|
||||||
|
|
|
@ -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."
|
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"
|
author="zou ; adapté par jce"
|
||||||
url="https://git.roflcopter.fr/lesanges/paheko-plugin-facturation"
|
url="https://git.roflcopter.fr/lesanges/paheko-plugin-facturation"
|
||||||
version="0.8.3"
|
version="0.8.5"
|
||||||
menu=true
|
menu=true
|
||||||
restrict_section="accounting"
|
restrict_section="accounting"
|
||||||
restrict_level="read"
|
restrict_level="read"
|
||||||
|
|
|
@ -18,6 +18,12 @@
|
||||||
<dt>Code postal</dt>
|
<dt>Code postal</dt>
|
||||||
<dd>{$client.code_postal|escape|rtrim|nl2br}</dd>
|
<dd>{$client.code_postal|escape|rtrim|nl2br}</dd>
|
||||||
|
|
||||||
|
<dt>SIREN/SIRET</dt>
|
||||||
|
<?php
|
||||||
|
$siret = implode(' ', str_split($client->siret, 3));
|
||||||
|
?>
|
||||||
|
<dd>{$siret|escape|trim}</dd>
|
||||||
|
|
||||||
<dt>Adresse électronique</dt>
|
<dt>Adresse électronique</dt>
|
||||||
<dd>
|
<dd>
|
||||||
{if empty($client.email)}
|
{if empty($client.email)}
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
{input type="text" name="adresse" label="Adresse" required=true source=$client}
|
{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="code_postal" label="Code postal" required=true source=$client}
|
||||||
{input type="text" name="ville" label="Ville" 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="tel" name="telephone" label="Téléphone" source=$client}
|
||||||
{input type="email" name="email" label="Adresse e-mail" source=$client}
|
{input type="email" name="email" label="Adresse e-mail" source=$client}
|
||||||
</dl>
|
</dl>
|
||||||
|
|
|
@ -13,6 +13,9 @@
|
||||||
{if $key == 'id' || $key == 'nom'}
|
{if $key == 'id' || $key == 'nom'}
|
||||||
<?php continue; ?>
|
<?php continue; ?>
|
||||||
{/if}
|
{/if}
|
||||||
|
{if $key == 'siret'}
|
||||||
|
<?php $value = implode(' ', str_split($value, 3)); ?>
|
||||||
|
{/if}
|
||||||
<td>{$value}</td>
|
<td>{$value}</td>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
<td class="actions">
|
<td class="actions">
|
||||||
|
@ -52,6 +55,7 @@
|
||||||
{input type="text" name="adresse" label="Adresse" required=true}
|
{input type="text" name="adresse" label="Adresse" required=true}
|
||||||
{input type="text" name="code_postal" label="Code postal" 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="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="tel" name="telephone" label="Téléphone"}
|
||||||
{input type="email" name="email" label="Adresse e-mail"}
|
{input type="email" name="email" label="Adresse e-mail"}
|
||||||
</dl>
|
</dl>
|
||||||
|
|
35
upgrade.php
35
upgrade.php
|
@ -209,3 +209,38 @@ if (version_compare($old_version, '0.8.1', '<'))
|
||||||
{
|
{
|
||||||
$plugin->unregisterSignal('menu.item');
|
$plugin->unregisterSignal('menu.item');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 0.8.5 Ajout champs SIREN/SIRET à la table clients
|
||||||
|
|
||||||
|
if (version_compare($old_version, '0.8.5', '<'))
|
||||||
|
{
|
||||||
|
$db->exec(<<<EOT
|
||||||
|
CREATE TABLE IF NOT EXISTS plugin_facturation_clients_tmp
|
||||||
|
(
|
||||||
|
id INTEGER PRIMARY KEY,
|
||||||
|
nom TEXT NOT NULL,
|
||||||
|
adresse TEXT NOT NULL,
|
||||||
|
code_postal TEXT NOT NULL,
|
||||||
|
ville TEXT 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),
|
||||||
|
telephone TEXT,
|
||||||
|
email TEXT
|
||||||
|
);
|
||||||
|
EOT
|
||||||
|
);
|
||||||
|
// copier les clients dans la table temporaire en ajoutant un siret fictif
|
||||||
|
$sql = 'SELECT * FROM plugin_facturation_clients';
|
||||||
|
foreach ($db->iterate($sql) as $client)
|
||||||
|
{
|
||||||
|
$client->siret = "";
|
||||||
|
$db->insert('plugin_facturation_clients_tmp', $client);
|
||||||
|
}
|
||||||
|
// remplacer l'ancienne table par la nouvelle
|
||||||
|
$db->exec(<<<EOT
|
||||||
|
DROP TABLE plugin_facturation_clients;
|
||||||
|
ALTER TABLE plugin_facturation_clients_tmp RENAME TO plugin_facturation_clients;
|
||||||
|
EOT
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue