Open webesistemas opened 5 years ago
estava gerando o digito errado e com a alteração que fiz passou no teste de envio de REM que tem no site deles
alterei para:
protected static function modulo11($num, $base = 9) { $fator = 2; $fatores = array(1=>2, 7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2);
$soma = 0;
// Separacao dos numeros. for ($i = strlen($num); $i > 0; $i--) { //echo $i.''; // Pega cada numero isoladamente.
$numeros[$i] = substr($num, $i - 1, 1);
// Efetua multiplicacao do numero pelo falor. $parcial[$i] = $numeros[$i] * $fatores[$i]; // Soma dos digitos. $soma += $parcial[$i]; if ($fator == $base) { // Restaura fator de multiplicacao para 2. $fator = 2; } $fator++; }
$resto=$soma % 11; if($resto==1){ $digito='p';} elseif($resto==0){ $digito=0;} else { $digito=($soma * 10) % 11 ; } $result = array('digito' => $digito, 'resto' => $resto); return $result; }
estava gerando o digito errado e com a alteração que fiz passou no teste de envio de REM que tem no site deles
alterei para:
protected static function modulo11($num, $base = 9) { $fator = 2; $fatores = array(1=>2, 7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2);
// Separacao dos numeros. for ($i = strlen($num); $i > 0; $i--) { //echo $i.'
'; // Pega cada numero isoladamente.
// Efetua multiplicacao do numero pelo falor. $parcial[$i] = $numeros[$i] * $fatores[$i]; // Soma dos digitos. $soma += $parcial[$i]; if ($fator == $base) { // Restaura fator de multiplicacao para 2. $fator = 2; } $fator++; }