/php/classe.cfonb.php
PHP | 145 lines | 98 code | 13 blank | 34 comment | 13 complexity | c0acec2959c0a3756f99809d4acb16dc MD5 | raw file
- <?php
- ###
- # Classe PHP pour le CFONB
- # Damien VIDAL "damien.vidal@gmail.com"
- # V 1.0 - 05/03/2012
- ###
-
- class cfonb {
-
- # Variables
- var $longueur = 160;
-
- # Construire
- public function __construct() {
- }
-
- # Ajouter des espaces
- public function ajouter_espace($chaine, $position, $longueur) {
- switch($position) {
- case 'devant' :
- return str_pad($chaine, $longueur, ' ', STR_PAD_LEFT);
- break;
- case 'derriere' :
- return str_pad($chaine, $longueur);
- break;
- default :
- return false;
- break;
- }
- }
-
- # Transformer un montant en euros en centimes d'euros
- public function convertir_euros_cents($montant) {
- /*
- Transforme un flottant en entier
- */
- if (is_float($montant) == true) {
- $calcul = $montant * 100;
- }
- elseif (is_int($montant) == true) {
- $calcul = $montant * 100;
- }
- else {
- return false;
- }
- return $calcul;
- }
-
- # Formater les montants
- public function formater_montant($montant, $longueur) {
- /*
- Met des 0 devant (voir norme CFONB)
- */
- $cents = $this->convertir_euros_cents($montant)
- $formatage = str_pad($cents, $longueur, '0', STR_PAD_LEFT);
- return $formatage;
- }
-
- # Construire l'ent?te
- public function construire_entete($donnees) {
- /*
- Gén?re une chaîne de caract?res
- */
- $entete = '';
- $entete .= $this->ajouter_espace($donnees['type'], 'derriere', 4);
- $entete .= $this->ajouter_espace('', 'derriere', 8);
- $entete .= $this->ajouter_espace($donnees['numero_emetteur'], 'derriere', 6);
- $entete .= $this->ajouter_espace('', 'derriere', 7);
- $entete .= $this->ajouter_espace($donnees['date_valeur'], 'derriere', 5);
- $entete .= $this->ajouter_espace($donnees['raison_sociale'], 'derriere', 24);
- $entete .= $this->ajouter_espace('', 'derriere', 15);
- $entete .= $this->ajouter_espace($donnees['monnaie'], 'derriere', 1);
- $entete .= $this->ajouter_espace('', 'derriere', 5);
- $entete .= $this->ajouter_espace($donnees['numero_guichet'], 'derriere', 5);
- $entete .= $this->ajouter_espace($donnees['numero_compte'], 'derriere', 11);
- $entete .= $this->ajouter_espace('', 'derriere', 47);
- $entete .= $this->ajouter_espace($donnees['numero_etablissement'], 'derriere', 5);
- $entete .= $this->ajouter_espace('', 'derriere', 6);
- if (strlen($entete) == $this->longueur) {
- return $entete;
- else {
- return false;
- }
- }
-
- # Construire 1 ligne de détail
- public function construire_1_detail($donnees) {
- /*
- Gén?re une chaîne de caract?res
- */
- $detail .= '';
- $detail .= $this->ajouter_espace($donnees['type'], 'derriere', 4);
- $detail .= $this->ajouter_espace('', 'derriere', 8);
- $detail .= $this->ajouter_espace($donnees['numero_emetteur'], 'derriere', 6);
- $detail .= $this->ajouter_espace($donnees['reference_ligne'], 'derriere', 12);
- $detail .= $this->ajouter_espace($donnees['destinataire'], 'derriere', 24);
- $detail .= $this->ajouter_espace($donnees['nom_banque_destinataire'], 'derriere', 20);
- $detail .= $this->ajouter_espace('', 'derriere', 12);
- $detail .= $this->ajouter_espace($donnees['numero_guichet_destinataire'], 'derriere', 5);
- $detail .= $this->ajouter_espace($donnees['numero_compte_destinataire'], 'derriere', 11);
- $detail .= $this->formater_montant($donnees['montant'], 16);
- $detail .= $this->ajouter_espace($donnees['libelle'], 'derriere', 31);
- $detail .= $this->ajouter_espace($donnees['numero_etablissement'], 'derriere', 5);
- $detail .= $this->ajouter_espace('', 'derriere', 6);
- if (strlen($detail) == $this->longueur) {
- return $detail;
- else {
- return false;
- }
-
- }
-
- # Construire le pied
- public function construire_pied($donnees) {
- /*
- Gén?re une chaîne de caract?res
- */
- $pied = '';
- $pied .= $this->ajouter_espace($donnees['type'], 'derriere', 4);
- $pied .= $this->ajouter_espace('', 'derriere', 8);
- $pied .= $this->ajouter_espace($donnees['numero_emetteur'], 'derriere', 6);
- $pied .= $this->ajouter_espace('', 'derriere', 84);
- $pied .= $this->ajouter_espace($donnees['somme_cents'], 'derriere', 16);
- $pied .= $this->ajouter_espace('', 'derriere', 12);
- if (strlen($pied) == $this->longueur) {
- return $pied;
- else {
- return false;
- }
- }
-
- # Créer le fichier CFONB
- public function creer_fichier_cfonb($fichier, $entete, $details, $pied) {
- /*
- '$fichier' est le chemin du fichier o? sera écrit les données
- '$entete' + '$details' + '$pied' sont des tableaux PHP
- */
-
- }
-
- # Détruire
- public function __destruct() {
- }
- }
- ?>