PageRenderTime 44ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/php/classe.cfonb.php

http://cfonbdev.googlecode.com/
PHP | 145 lines | 98 code | 13 blank | 34 comment | 13 complexity | c0acec2959c0a3756f99809d4acb16dc MD5 | raw file
  1. <?php
  2. ###
  3. # Classe PHP pour le CFONB
  4. # Damien VIDAL "damien.vidal@gmail.com"
  5. # V 1.0 - 05/03/2012
  6. ###
  7. class cfonb {
  8. # Variables
  9. var $longueur = 160;
  10. # Construire
  11. public function __construct() {
  12. }
  13. # Ajouter des espaces
  14. public function ajouter_espace($chaine, $position, $longueur) {
  15. switch($position) {
  16. case 'devant' :
  17. return str_pad($chaine, $longueur, ' ', STR_PAD_LEFT);
  18. break;
  19. case 'derriere' :
  20. return str_pad($chaine, $longueur);
  21. break;
  22. default :
  23. return false;
  24. break;
  25. }
  26. }
  27. # Transformer un montant en euros en centimes d'euros
  28. public function convertir_euros_cents($montant) {
  29. /*
  30. Transforme un flottant en entier
  31. */
  32. if (is_float($montant) == true) {
  33. $calcul = $montant * 100;
  34. }
  35. elseif (is_int($montant) == true) {
  36. $calcul = $montant * 100;
  37. }
  38. else {
  39. return false;
  40. }
  41. return $calcul;
  42. }
  43. # Formater les montants
  44. public function formater_montant($montant, $longueur) {
  45. /*
  46. Met des 0 devant (voir norme CFONB)
  47. */
  48. $cents = $this->convertir_euros_cents($montant)
  49. $formatage = str_pad($cents, $longueur, '0', STR_PAD_LEFT);
  50. return $formatage;
  51. }
  52. # Construire l'ent?te
  53. public function construire_entete($donnees) {
  54. /*
  55. Gén?re une chaîne de caract?res
  56. */
  57. $entete = '';
  58. $entete .= $this->ajouter_espace($donnees['type'], 'derriere', 4);
  59. $entete .= $this->ajouter_espace('', 'derriere', 8);
  60. $entete .= $this->ajouter_espace($donnees['numero_emetteur'], 'derriere', 6);
  61. $entete .= $this->ajouter_espace('', 'derriere', 7);
  62. $entete .= $this->ajouter_espace($donnees['date_valeur'], 'derriere', 5);
  63. $entete .= $this->ajouter_espace($donnees['raison_sociale'], 'derriere', 24);
  64. $entete .= $this->ajouter_espace('', 'derriere', 15);
  65. $entete .= $this->ajouter_espace($donnees['monnaie'], 'derriere', 1);
  66. $entete .= $this->ajouter_espace('', 'derriere', 5);
  67. $entete .= $this->ajouter_espace($donnees['numero_guichet'], 'derriere', 5);
  68. $entete .= $this->ajouter_espace($donnees['numero_compte'], 'derriere', 11);
  69. $entete .= $this->ajouter_espace('', 'derriere', 47);
  70. $entete .= $this->ajouter_espace($donnees['numero_etablissement'], 'derriere', 5);
  71. $entete .= $this->ajouter_espace('', 'derriere', 6);
  72. if (strlen($entete) == $this->longueur) {
  73. return $entete;
  74. else {
  75. return false;
  76. }
  77. }
  78. # Construire 1 ligne de détail
  79. public function construire_1_detail($donnees) {
  80. /*
  81. Gén?re une chaîne de caract?res
  82. */
  83. $detail .= '';
  84. $detail .= $this->ajouter_espace($donnees['type'], 'derriere', 4);
  85. $detail .= $this->ajouter_espace('', 'derriere', 8);
  86. $detail .= $this->ajouter_espace($donnees['numero_emetteur'], 'derriere', 6);
  87. $detail .= $this->ajouter_espace($donnees['reference_ligne'], 'derriere', 12);
  88. $detail .= $this->ajouter_espace($donnees['destinataire'], 'derriere', 24);
  89. $detail .= $this->ajouter_espace($donnees['nom_banque_destinataire'], 'derriere', 20);
  90. $detail .= $this->ajouter_espace('', 'derriere', 12);
  91. $detail .= $this->ajouter_espace($donnees['numero_guichet_destinataire'], 'derriere', 5);
  92. $detail .= $this->ajouter_espace($donnees['numero_compte_destinataire'], 'derriere', 11);
  93. $detail .= $this->formater_montant($donnees['montant'], 16);
  94. $detail .= $this->ajouter_espace($donnees['libelle'], 'derriere', 31);
  95. $detail .= $this->ajouter_espace($donnees['numero_etablissement'], 'derriere', 5);
  96. $detail .= $this->ajouter_espace('', 'derriere', 6);
  97. if (strlen($detail) == $this->longueur) {
  98. return $detail;
  99. else {
  100. return false;
  101. }
  102. }
  103. # Construire le pied
  104. public function construire_pied($donnees) {
  105. /*
  106. Gén?re une chaîne de caract?res
  107. */
  108. $pied = '';
  109. $pied .= $this->ajouter_espace($donnees['type'], 'derriere', 4);
  110. $pied .= $this->ajouter_espace('', 'derriere', 8);
  111. $pied .= $this->ajouter_espace($donnees['numero_emetteur'], 'derriere', 6);
  112. $pied .= $this->ajouter_espace('', 'derriere', 84);
  113. $pied .= $this->ajouter_espace($donnees['somme_cents'], 'derriere', 16);
  114. $pied .= $this->ajouter_espace('', 'derriere', 12);
  115. if (strlen($pied) == $this->longueur) {
  116. return $pied;
  117. else {
  118. return false;
  119. }
  120. }
  121. # Créer le fichier CFONB
  122. public function creer_fichier_cfonb($fichier, $entete, $details, $pied) {
  123. /*
  124. '$fichier' est le chemin du fichier o? sera écrit les données
  125. '$entete' + '$details' + '$pied' sont des tableaux PHP
  126. */
  127. }
  128. # Détruire
  129. public function __destruct() {
  130. }
  131. }
  132. ?>