Validar compte corrent


/ Published in: PHP
Save to your folder(s)

http://developermobilesweb.blogspot.com.es/2014/03/validar-compte-corrent.html
Un compte corrent està format per 4 números que representen l'entitat bancària, 4 números que corresponen a la sucursal i 10 números que corresponen al número de compte. A part tenim 2 dígits de control, que es calculen a partir de l'entitat i la sucursal per primer dígit i amb el número de compte per segon dígit
Per exemple

1234 5678 XY 0123456789

El dígit de control per aquesta compte seria el 01

Per validar el primer dígit de control, es multiplica el número d'entitat i de sucursal, cadascuna de les seves xifres per 4,8,5,10 i 9,7,3,6 i se sumen els resultats.
Dividim la suma entre 11 i ens quedem amb el mòdul.
Restem 11 al resultat anterior
Si el nombre resultant és 11, el dígit de control serà 0, i si és 10, serà 1.
En el nostre exemple faríem: 1*4+2*8+3*5+4*10+5*9+6*7+7*3+8*6=231. Calculem el módul de 11, és a dir el mòdul resultant de dividir 231 entre 11.

Ens dòna 0 i aleshores restem 11: 11-0 = 11 per tant el primer dígit de control és 0
Per validar el número de compte, es multiplica cadascuna de les seves xifres per 1,2, 4,8,5,10,9,7,3,6 i se sumen els resultats.
Es resta 11 a la xifra resultant de posar en mòdul 11 el resultat de la suma anterior
Si el nombre resultant és 11, el dígit de control serà 0, i si és 10, serà 1.
En el nostre exemple faríem:0*1+1*2+2*4+3*8+4*5+5*10+6*9+7*7+8*3+9*6=285.
Calculem el módul de 11, és a dir el mòdul resultant de dividir 285 entre 11.

Ens dòna 10 i aleshores restem 11: 11-10 = 1 per tant el segon dígit de control és 0


Copy this code and paste it in your HTML
  1. <!DOCTYPE>
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Calcular dígit de control</TITLE>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <style type="text/css">
  7. body{font-family:Verdana;}
  8. .form-field {
  9. font-family:Verdana;
  10. clear: both;
  11. padding: 10px;
  12. width: 350px;
  13. }
  14. .form-field label {
  15. float: left;
  16. width: 150px;
  17. text-align: right;
  18. }
  19. .form-field input {
  20. float: right;
  21. width: 150px;
  22. text-align: left;
  23. }
  24. #submit {
  25. font-family:Verdana;
  26. text-align: center;
  27. }
  28. </style>
  29.  
  30. </HEAD>
  31. <BODY>
  32. <?php
  33.  
  34. if (isset($_REQUEST['Calcular'])){
  35. $entidad=$_REQUEST['entidad'];
  36. $oficina=$_REQUEST['oficina'];
  37. $cuenta =$_REQUEST['cuenta'];
  38.  
  39. //omplir 0 a l'esquerra
  40. $entidad=str_pad($entidad,4,"0",STR_PAD_LEFT);
  41. $oficina=str_pad($oficina,4,"0",STR_PAD_LEFT);
  42. $cuenta=str_pad($cuenta,10,"0",STR_PAD_LEFT);
  43. $cuenta1=$cuenta;
  44. $entidad1=$entidad;
  45. $oficina1=$oficina;
  46.  
  47.  
  48. // Primera xifra de control ------------------------------
  49. $entidad=str_split($entidad);
  50. $ent0=$entidad[0]*4;
  51. $ent1=$entidad[1]*8;
  52. $ent2=$entidad[2]*5;
  53. $ent3=$entidad[3]*10;
  54.  
  55. $oficina=str_split($oficina);
  56. $ofi0=$oficina[0]*9;
  57. $ofi1=$oficina[1]*7;
  58. $ofi2=$oficina[2]*3;
  59. $ofi3=$oficina[3]*6;
  60.  
  61. $suma=$ent0+$ent1+$ent2+$ent3+$ofi0+$ofi1+$ofi2+$ofi3."<br/>";
  62. $modulo=$suma%11;
  63. $dig1=11-$modulo;
  64. if($dig1==10){
  65. $dig1=1;
  66. }elseif($dig1==11){
  67. $dig1=0;
  68. }
  69.  
  70. // Segona xifra de control
  71. $cuenta=str_split($cuenta);
  72. $cue0=$cuenta[0]*1;
  73. $cue1=$cuenta[1]*2;
  74. $cue2=$cuenta[2]*4;
  75. $cue3=$cuenta[3]*8;
  76. $cue4=$cuenta[4]*5;
  77. $cue5=$cuenta[5]*10;
  78. $cue6=$cuenta[6]*9;
  79. $cue7=$cuenta[7]*7;
  80. $cue8=$cuenta[8]*3;
  81. $cue9=$cuenta[9]*6;
  82. $cue_sum=$cue0+$cue1+$cue2+$cue3+$cue4+$cue5+$cue6+$cue7+$cue8+$cue9;
  83. $cue_mod=$cue_sum%11;
  84. $dig2=11-$cue_mod;
  85. if($dig2==10){
  86. $dig2=1;
  87. }elseif($dig2==11){
  88. $dig2=0;
  89. }
  90. echo "Al compte li correspon el dígit de control: $dig1$dig2 <BR/>";
  91. echo "$entidad1 - $oficina1 - $dig1$dig2 - $cuenta1";
  92. echo "<br/>";
  93. echo "<A href='compte.php'> Validar</A><BR/>";
  94.  
  95. } else {
  96.  
  97. ?>
  98. <h1>Càlcul de dígit de control de compte corrent</h1>
  99. <FORM action="compte.php" method="post">
  100.  
  101. <FIELDSET><LEGEND>Compte</LEGEND>
  102. <div class="form-field">
  103. <label for="Entitat">Entitat</label>
  104. <INPUT type="number" name="entidad" title="Nº entitat 4 xifres" required pattern="\d{4}"size="4" maxlength="4"/>
  105. </div>
  106. <div class="form-field">
  107. <label for="Oficina">Oficina</label>
  108. <INPUT type="number" name="oficina" title="Nº oficina 4 xifres" required pattern="\d{4}"size="4" maxlength="4"/>
  109. </div>
  110.  
  111. <div class="form-field">
  112. <label for="Nº Compte">Nº Compte</label>
  113. <INPUT type="number" name="cuenta" title="Nº oficina 10 xifres" required pattern="\d{10}" size="10" maxlength="10"/>
  114. </div>
  115. <INPUT type="submit" value="Calcular" name="Calcular" />
  116.  
  117. </FIELDSET>
  118. </FORM>
  119. <?php
  120. }
  121. ?>
  122. </BODY>
  123. </HTML>

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.