dijous, 13 de març del 2014

Validar Compte Corrent

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

Ara un exemple de codi en php:


<!DOCTYPE>
	<HTML>
<HEAD>
	<TITLE>Calcular dígit de control</TITLE>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<style type="text/css">
body{font-family:Verdana;}
.form-field {
font-family:Verdana;
clear: both;
padding: 10px;
width: 350px;
}
.form-field label {
float: left;
width: 150px;
text-align: right;
}
.form-field input {
float: right;
width: 150px;
text-align: left;
}
#submit {
font-family:Verdana;
text-align: center;
}
</style>
	
</HEAD>
<BODY>
<?php

if (isset($_REQUEST['Calcular'])){
	$entidad=$_REQUEST['entidad'];
	$oficina=$_REQUEST['oficina'];
	$cuenta =$_REQUEST['cuenta'];
	
	    //omplir 0 a l'esquerra
		$entidad=str_pad($entidad,4,"0",STR_PAD_LEFT); 
		$oficina=str_pad($oficina,4,"0",STR_PAD_LEFT);
		$cuenta=str_pad($cuenta,10,"0",STR_PAD_LEFT);
		$cuenta1=$cuenta;
		$entidad1=$entidad;
		$oficina1=$oficina;
		
		
		// Primera xifra de control ------------------------------
		$entidad=str_split($entidad);	
		$ent0=$entidad[0]*4;
		$ent1=$entidad[1]*8;
		$ent2=$entidad[2]*5;
		$ent3=$entidad[3]*10;
		
		$oficina=str_split($oficina);	
		$ofi0=$oficina[0]*9;
		$ofi1=$oficina[1]*7;
		$ofi2=$oficina[2]*3;
		$ofi3=$oficina[3]*6;
		
		$suma=$ent0+$ent1+$ent2+$ent3+$ofi0+$ofi1+$ofi2+$ofi3."<br/>"; 
		$modulo=$suma%11;
		$dig1=11-$modulo;
		if($dig1==10){
			$dig1=1;			
		}elseif($dig1==11){
			$dig1=0;			
		}
		
		// Segona xifra de control
		$cuenta=str_split($cuenta);	
		$cue0=$cuenta[0]*1;
		$cue1=$cuenta[1]*2;
		$cue2=$cuenta[2]*4;
		$cue3=$cuenta[3]*8;
		$cue4=$cuenta[4]*5;
		$cue5=$cuenta[5]*10;
		$cue6=$cuenta[6]*9;
		$cue7=$cuenta[7]*7;
		$cue8=$cuenta[8]*3;
		$cue9=$cuenta[9]*6;
		$cue_sum=$cue0+$cue1+$cue2+$cue3+$cue4+$cue5+$cue6+$cue7+$cue8+$cue9;
		$cue_mod=$cue_sum%11;
		$dig2=11-$cue_mod;
		if($dig2==10){
			$dig2=1;			
		}elseif($dig2==11){
			$dig2=0;			
		}
		echo "Al compte li correspon el dígit de control: $dig1$dig2 <BR/>";			
		echo "$entidad1 - $oficina1 - $dig1$dig2 - $cuenta1";	
		echo "<br/>";
		echo "<A href='compte.php'> Validar</A><BR/>";	
	
	} else { 
	
	?>
				<h1>Càlcul de dígit de control de compte corrent</h1>	
	<FORM action="compte.php" method="post">
	
	<FIELDSET><LEGEND>Compte</LEGEND>
	<div class="form-field">
	        <label for="Entitat">Entitat</label>
			<INPUT type="number" name="entidad" title="Nº entitat 4 xifres" required pattern="\d{4}"size="4" maxlength="4"/>
			</div>
			<div class="form-field">
			 <label for="Oficina">Oficina</label>
			<INPUT type="number" name="oficina" title="Nº oficina 4 xifres" required pattern="\d{4}"size="4" maxlength="4"/>
			</div>
							
			<div class="form-field">
			 <label for="Nº Compte">Nº Compte</label>
			<INPUT type="number" name="cuenta" title="Nº oficina 10 xifres" required pattern="\d{10}" size="10" maxlength="10"/>
			</div>
			<INPUT type="submit" value="Calcular" name="Calcular" />
	
	</FIELDSET>
	</FORM>	
	<?php 	
	} 	
	?>	
	</BODY>
</HTML>

Cap comentari:

Publica un comentari a l'entrada