diff --git a/htdocs/pages/administration/compta_facture.php b/htdocs/pages/administration/compta_facture.php deleted file mode 100644 index 1af41364e..000000000 --- a/htdocs/pages/administration/compta_facture.php +++ /dev/null @@ -1,268 +0,0 @@ -assign('action', $action); - -$compta = new Comptabilite($bdd); -$comptaFact = new Facture($bdd, $this->pays); - -if ($action == 'lister') { - $periodes = $compta->obtenirListPeriode(); - $id_periode = isset($_GET['id_periode']) && $_GET['id_periode'] ? $_GET['id_periode'] : end($periodes)['id']; - $ecritures = $comptaFact->obtenirFacture($id_periode); - foreach ($ecritures as &$e) { - $e['link'] = urlencode(Utils::cryptFromText($e['id'])); - } - $smarty->assign('id_periode', $id_periode); - $smarty->assign('ecritures', $ecritures); - $smarty->assign('listPeriode', $periodes); -} elseif ($action == 'telecharger_facture') { - $comptaFact->genererFacture($_GET['ref']); -} elseif ($action == 'envoyer_facture') { - if ($comptaFact->envoyerfacture($_GET['ref'])) { - Logs::log('Envoi par email de la facture n°' . $_GET['ref']); - afficherMessage('La facture a été envoyée', 'index.php?page=compta_facture&action=lister'); - } else { - afficherMessage("La facture n'a pas pu être envoyée", 'index.php?page=compta_facture&action=lister', true); - } -} elseif ($action == 'envoyer_facture') { - if ($comptaFact->envoyerFacture($_GET['ref'])) { - Logs::log('Envoi par email de la facture n°' . $_GET['ref']); - afficherMessage('La facture a été envoyée', 'index.php?page=compta_facture&action=lister'); - } else { - afficherMessage("La facture n'a pas pu être envoyée", 'index.php?page=compta_facture&action=lister', true); - } -} elseif ($action == 'ajouter' || $action == 'modifier') { - - $formulaire = instancierFormulaire(); - - if ($action === 'modifier') { - $champsRecup = $comptaFact->obtenir($_GET['id']); - - $factureId = $champsRecup['id']; - - $champs['date_facture'] = $champsRecup['date_facture']; - $champs['societe'] = $champsRecup['societe']; - $champs['service'] = $champsRecup['service']; - $champs['adresse'] = $champsRecup['adresse']; - $champs['code_postal'] = $champsRecup['code_postal']; - $champs['ville'] = $champsRecup['ville']; - $champs['id_pays'] = $champsRecup['id_pays']; - $champs['email'] = $champsRecup['email']; - $champs['tva_intra'] = $champsRecup['tva_intra']; - $champs['observation'] = $champsRecup['observation']; - $champs['ref_clt1'] = $champsRecup['ref_clt1']; - $champs['ref_clt2'] = $champsRecup['ref_clt2']; - $champs['ref_clt3'] = $champsRecup['ref_clt3']; - $champs['nom'] = $champsRecup['nom']; - $champs['prenom'] = $champsRecup['prenom']; - $champs['tel'] = $champsRecup['tel']; - $champs['numero_devis'] = $champsRecup['numero_devis']; - $champs['numero_facture'] = $champsRecup['numero_facture']; - $champs['etat_paiement'] = $champsRecup['etat_paiement']; - $champs['date_paiement'] = $champsRecup['date_paiement']; - $champs['devise_facture'] = $champsRecup['devise_facture']; - - - $champsRecup = $comptaFact->obtenir_details($_GET['id']); - - $i = 1; - foreach ($champsRecup as $row) { - $champs['id' . $i] = $row['id']; - $champs['ref' . $i] = $row['ref']; - $champs['designation' . $i] = $row['designation']; - $champs['quantite' . $i] = $row['quantite']; - $champs['pu' . $i] = $row['pu']; - $champs['tva' . $i] = $row['tva']; - $i++; - } - - - - $formulaire->setDefaults($champs); - //$formulaire->setDefaults($champsRecup); - $formulaire->addElement('hidden', 'id', $_GET['id']); - - $smarty->assign('facture_id', $factureId); - } - - //detail devis - $formulaire->addElement('header' , '' , 'Détail Devis'); - - //$mois=10; - if ($action === 'modifier') { - $formulaire->addElement('date' , 'date_facture' , 'Date facture', ['language' => 'fr', - 'format' => 'd F Y', - 'minYear' => date('Y') - 3, - 'maxYear' => date('Y')]); - } else { - $formulaire->addElement('date' , 'date_facture' , 'Date facture', ['language' => 'fr', - 'format' => 'd F Y', - 'minYear' => date('Y'), - 'maxYear' => date('Y')]); - } - $formulaire->addElement('header' , '' , 'Facturation'); - $formulaire->addElement('static' , 'note' , '' , 'Ces informations concernent la personne ou la société qui sera facturée

'); - $formulaire->addElement('text' , 'societe' , 'Société' , ['size' => 50, 'maxlength' => 100]); - $formulaire->addElement('text' , 'service' , 'Service' , ['size' => 30, 'maxlength' => 40]); - $formulaire->addElement('textarea', 'adresse' , 'Adresse' , ['cols' => 42, 'rows' => 10]); - $formulaire->addElement('text' , 'code_postal', 'Code postal' , ['size' => 6, 'maxlength' => 10]); - $formulaire->addElement('text' , 'ville' , 'Ville' , ['size' => 30, 'maxlength' => 50]); - $formulaire->addElement('select' , 'id_pays' , 'Pays' , $this->pays->obtenirPays()); - - $formulaire->addElement('header', null , 'Contact'); - $formulaire->addElement('text' , 'nom' , 'Nom' , ['size' => 30, 'maxlength' => 40]); - $formulaire->addElement('text' , 'prenom' , 'Prénom' , ['size' => 30, 'maxlength' => 40]); - $formulaire->addElement('text' , 'tel' , 'Numero de tél' , ['size' => 30, 'maxlength' => 40]); - $formulaire->addElement('text' , 'email' , 'Email (facture)', ['size' => 30, 'maxlength' => 100]); - $formulaire->addElement('text' , 'tva_intra' , 'TVA intracommunautaire (facture)', ['size' => 30, 'maxlength' => 100]); - - if ($champs['numero_devis'] || $champs['numero_facture']) { - $formulaire->addElement('header', null , 'Réservé à l\'administration'); - $formulaire->addElement('static' , 'note' , '' , 'Numéro généré automatiquement et affiché en automatique'); - if ($champs['numero_devis']) { - $formulaire->addElement('text' , 'numero_devis' , 'Numéro devis' , ['size' => 50, 'maxlength' => 100]); - } - if ($champs['numero_facture']) { - $formulaire->addElement('text' , 'numero_facture' , 'Numéro facture' , ['size' => 50, 'maxlength' => 100]); - } - } else { - $formulaire->addElement('hidden' , 'numero_devis' , 'Numéro devis' , ['size' => 50, 'maxlength' => 100]); - $formulaire->addElement('hidden' , 'numero_facture' , 'Numéro facture' , ['size' => 50, 'maxlength' => 100]); - } - - $formulaire->addElement('header', null , 'Référence client'); - $formulaire->addElement('static' , 'note' , '', 'Possible d\'avoir plusieurs références à mettre (obligation client)

'); - $formulaire->addElement('text' , 'ref_clt1' , 'Référence client' , ['size' => 50, 'maxlength' => 100]); - $formulaire->addElement('text' , 'ref_clt2' , 'Référence client 2', ['size' => 50, 'maxlength' => 100]); - $formulaire->addElement('text' , 'ref_clt3' , 'Référence client 3' , ['size' => 50, 'maxlength' => 100]); - - - - $formulaire->addElement('header' , '', 'Observation'); - $formulaire->addElement('static' , 'note' , '' , 'Ces informations seront écrites à la fin du document

'); - $formulaire->addElement('textarea', 'observation' , 'Observation', ['cols' => 42, 'rows' => 5]); - - $formulaire->addElement('header' , '', 'Paiement'); - $formulaire->addElement('select', 'devise_facture' , 'Monnaie de la facture', ['EUR' => 'Euro', - 'DOL' => 'Dollar'], ['size' => 2]); - $formulaire->addElement('select', 'etat_paiement' , 'Etat paiement', ['En attente de paiement', 'Payé', 'Annulé'], ['size' => 3]); - $formulaire->addElement('date' , 'date_paiement' , 'Date paiement', ['language' => 'fr', 'format' => 'd F Y', 'minYear' => date('Y') - 5, 'maxYear' => date('Y')]); - - - - $nbRow = max(count($champsRecup), 5); - for ($i = 1;$i <= $nbRow;$i++) { - $formulaire->addElement('header' , '', 'Contenu'); - $formulaire->addElement('static' , 'note' , '' , 'Ligne ' . $i . '

'); - $formulaire->addElement('hidden' , 'id' . $i , 'id'); - $formulaire->addElement('text' , 'ref' . $i , 'Référence' , ['size' => 50, 'maxlength' => 100]); - $formulaire->addElement('static' , 'note' , '' , 'Rappel : sponsoring 20%, place supplémentaire 10%.
'); - $formulaire->addElement('select' , 'tva' . $i , 'Taux de TVA' , ['0' => 'Non soumis', '5.50' => '5.5%', '10.00' => '10%', '20.00' => '20%']); - $formulaire->addElement('textarea', 'designation' . $i , 'Désignation', ['cols' => 42, 'rows' => 5]); - $formulaire->addElement('text' , 'quantite' . $i , 'Quantite' , ['size' => 50, 'maxlength' => 100]); - $formulaire->addElement('text' , 'pu' . $i , 'Prix Unitaire HT' , ['size' => 50, 'maxlength' => 100]); - } - - - - - - - // boutons - $formulaire->addElement('header' , 'boutons' , ''); - $formulaire->addElement('submit' , 'soumettre' , ucfirst($action)); - - // ajoute des regles - // $formulaire->addRule('idoperation' , 'Type d\'opération manquant' , 'required'); - // $formulaire->addRule('idoperation' , 'Type d\'opération manquant' , 'nonzero'); - $formulaire->addRule('societe' , 'Société manquant' , 'required'); - $formulaire->addRule('adresse' , 'Adresse manquant' , 'required'); - $formulaire->addRule('email' , 'Email manquant' , 'required'); - - if ($formulaire->validate()) { - $valeur = $formulaire->exportValues(); - - $date_ecriture = $valeur['date_facture']['Y'] . "-" . $valeur['date_facture']['F'] . "-" . $valeur['date_facture']['d'] ; - $date_paiement = $valeur['date_paiement']['Y'] . "-" . $valeur['date_paiement']['F'] . "-" . $valeur['date_paiement']['d'] ; - if ($action === 'ajouter') { - // il faut passser obligatoirement par un devis - } else { - $ok = $comptaFact->modifier( - $_GET['id'], - $date_ecriture, - $valeur['societe'], - $valeur['service'], - $valeur['adresse'], - $valeur['code_postal'], - $valeur['ville'], - $valeur['id_pays'], - $valeur['nom'], - $valeur['prenom'], - $valeur['tel'], - $valeur['email'], - $valeur['tva_intra'], - $valeur['observation'], - $valeur['ref_clt1'], - $valeur['ref_clt2'], - $valeur['ref_clt3'], - $valeur['numero_devis'], - $valeur['numero_facture'], - $valeur['etat_paiement'], - $date_paiement, - $valeur['devise_facture'], - ); - - for ($i = 1;$i < 6;$i++) { - if (!is_numeric($valeur['id' . $i])) { - continue; - } - $ok = $comptaFact->modifier_details( - $valeur['id' . $i], - $valeur['ref' . $i], - $valeur['designation' . $i], - (int) $valeur['quantite' . $i], - (float) $valeur['pu' . $i], - (int) $valeur['tva' . $i], - ); - } - } - - if ($ok) { - if ($action === 'ajouter') { - Logs::log('Ajout une écriture ' . $formulaire->exportValue('titre')); - } else { - Logs::log('Modification une écriture ' . $formulaire->exportValue('titre') . ' (' . $_GET['id'] . ')'); - } - afficherMessage('L\'écriture a été ' . (($action === 'ajouter') ? 'ajoutée' : 'modifiée'), 'index.php?page=compta_facture&action=lister'); - } else { - $smarty->assign('erreur', 'Une erreur est survenue lors de ' . (($action === 'ajouter') ? "l'ajout" : 'la modification') . ' de l\'écriture'); - } - } - - - $smarty->assign('formulaire', genererFormulaire($formulaire)); -} diff --git a/htdocs/templates/administration/compta_facture.html b/htdocs/templates/administration/compta_facture.html deleted file mode 100644 index ac6094e6e..000000000 --- a/htdocs/templates/administration/compta_facture.html +++ /dev/null @@ -1,116 +0,0 @@ -{if $action == 'lister'} -

Factures

- -
-
- Il n'est pas possible de créer directement une facture -
-

Il faut obligatoirement passer par la saisie d'un devis.

-
- -
-
- -
-
-
- - -
-
-
-
-
- - {assign var=tri value=$smarty.get.tri|default:''} - {assign var=sens value=$smarty.get.sens|default:''} - - - - - - - - - - - - - - - - {foreach from=$ecritures item=ecriture} - - - - - - - - - - - - {foreachelse} - - - - {/foreach} - -
AnnéeDateClientsVilleNumero factureRéférence clientEtat paiementPrix
{$ecriture.date_facture|date_format:"%Y"}{$ecriture.date_facture|date_format:"%d/%m/%Y"}{$ecriture.societe}{$ecriture.ville}{$ecriture.numero_facture}{$ecriture.ref_clt1} - {if $ecriture.etat_paiement == 2} - Annulé - {elseif $ecriture.etat_paiement == 1} - Payé - {else} - En attente - {/if} - {$ecriture.prix|floatval|number_format:2:',':' '} - - - - - - - - - - - - -
Aucune ecriture actuellement
- - -{else} - {if $action == 'modifier'} -

Modifier une facture

- - - - {/if} - {include file="formulaire.html"} -{/if}