Viewing file: funcoes_matricula.php (4.27 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
function CalculoMatricula_1($CodNacionalServentia, $CodAcervo, $CodTipoServico, $TipoLivro, $AnoRegistro, $NumLivro, $NumFolha, $NumTermo) {
$aux = $CodNacionalServentia;
while (strlen($aux) < 6)
$aux = '0' . $aux;
$Result = $aux;
/*
CodAcervo
01 - Acervo próprio
Outros - Acervos incorporados
*/
if ($CodAcervo < 10)
$Result .= '0' . $CodAcervo;
else
$Result .= $CodAcervo;
/*
CodTipoServico
51 -> Serviço de notas
52 -> Serviço de protesto de títulos
53 -> Serviço de protesto de imóveis
54 -> Serviço de registro de títulos e documento civil de pessoa jurídica
55 -> Serviço de registro civil das pessoas naturais
56 -> Serviço de registro de contratos marítimos
57 -> Registro de distribuição
*/
if ($CodTipoServico < 10)
$Result .= '0' . $CodTipoServico;
else
$Result .= $CodTipoServico;
$aux = $AnoRegistro;
while (strlen($aux) < 4)
$aux = '0' . $aux;
$Result .= $aux;
/*
TipoLivro
1 -> Livro A (Nascimento)
2 -> Livro B (Casamento)
3 -> Livro B Auxiliar (Casamento religioso para fins civis)
4 -> Livro C (Óbito)
5 -> Livro C Auxiliar (Registro de Natimortos)
6 -> Livro D (egistro de Proclamas)
7 -> Livro E (Demais Atos relativos aos Registro Civil)
*/
$Result .= $TipoLivro;
$aux = $NumLivro;
while (strlen($aux) < 5)
$aux = '0' . $aux;
$Result .= $aux;
$aux = $NumFolha;
while (strlen($aux) < 3)
$aux = '0' . $aux;
$Result .= $aux;
$aux = $NumTermo;
while (strlen($aux) < 7)
$aux = '0' . $aux;
$Result .= $aux;
$DigitoVerificador = CalculoDigito($Result);
if ($DigitoVerificador == -1)//Algum erro
$Result = '';
else {
if ($DigitoVerificador < 10)
$Result .= '0' . $DigitoVerificador;
else
$Result .= $DigitoVerificador;
}
return $Result;
}
function CalculoMatricula_2($TipoAto,$DataRegistro,$NumLivro,$NumFolha,$NumTermo) {
global $conexao;
$cod_oficio = $_SESSION['cod_oficio'];
$sql = "SELECT * FROM oficios_dados_cnj WHERE ODC_Oficio_DR = $cod_oficio LIMIT 1";
$rs_dados_cnj = $conexao->query($sql);
$dados_cnj = $rs_dados_cnj->fetch_assoc();
switch ($TipoAto) {
case 1: $tipo_livro = $dados_cnj['ODC_TipoLivroNascimento']; break;
case 2: $tipo_livro = $dados_cnj['ODC_TipoLivroObito']; break;
case 3: $tipo_livro = $dados_cnj['ODC_TipoLivroNatimorto']; break;
case 4: $tipo_livro = $dados_cnj['ODC_TipoLivroCasamentoCivil']; break;
case 5: $tipo_livro = $dados_cnj['ODC_TipoLivroCasamentoReligioso']; break;
default: $tipo_livro = 0;
}
if (strpos($DataRegistro,'-')!==false)
list($ano,$mes,$dia) = explode('-',$DataRegistro);
else
list($dia,$mes,$ano) = explode('/',$DataRegistro);
return CalculoMatricula_1($dados_cnj['ODC_CodigoCNJ'],$dados_cnj['ODC_CodigoAcervo'],$dados_cnj['ODC_TipoServicoPrestado'],$tipo_livro,$ano,$NumLivro,$NumFolha,$NumTermo);
}
function CalculoDigito($Dados) {
if (strlen($Dados) == 30) {
echo "<br />";
//Primeiro dígito
$Acumulado = 0;
$Multiplicador = 1;
$Posicao = 29;
while ($Posicao >= 0) {
$Ch = $Dados[$Posicao];
$Multiplicador++;
$Acumulado += ($Multiplicador * intval($Ch));
$Posicao--;
}
$Acumulado = $Acumulado * 10;
$Aux = intval($Acumulado / 11);
$DV1 = $Acumulado - $Aux * 11;
if ($DV1 == 10)
$DV1 = 1;
$Dados .= $DV1;
//Segundo dígito
$Acumulado = 0;
$Multiplicador = 1;
$Posicao = 30;
while ($Posicao >= 0) {
$Ch = $Dados[$Posicao];
$Multiplicador++;
$Acumulado += ($Multiplicador * intval($Ch));
$Posicao--;
}
$Acumulado = $Acumulado * 10;
$Aux = intval($Acumulado / 11);
$DV2 = $Acumulado - $Aux * 11;
if ($DV2 == 10)
$DV2 = 1;
$Result = $DV1 * 10 + $DV2;
}
else
$Result = -1;
return $Result;
}
function formataMatricula($matricula)
{
$aux1 = $matricula;
$aux2=substr($aux1,0,10);
$aux2=$aux2." ".substr($aux1,10,4);
$aux2=$aux2." ".substr($aux1,14,1);
$aux2=$aux2." ".substr($aux1,15,5);
$aux2=$aux2." ".substr($aux1,20,3);
$aux2=$aux2." ".substr($aux1,23,7);
$aux2=$aux2." ".substr($aux1,30,2);
return $aux2;
}
?>
|