<?php
ob_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

use Dompdf\Dompdf;
use Dompdf\Options;

require_once("config/init.php");
include_once("includes/funcoes.php");
require_once __DIR__ . "/vendor/autoload.php";


/*
|--------------------------------------------------------------------------
| CONFIGURAÇÃO DOMPDF
|--------------------------------------------------------------------------
*/

$options = new Options();

$options->set('isRemoteEnabled', true);
$options->set('isHtml5ParserEnabled', true);
$options->set('chroot', __DIR__);

$dompdf = new Dompdf($options);


/*
|--------------------------------------------------------------------------
| FUNÇÃO VALOR POR EXTENSO
|--------------------------------------------------------------------------
*/

function valorPorExtenso($valor)
{
    $valor = (float)$valor;

    $inteiro = floor($valor);
    $centavos = round(($valor - $inteiro) * 100);

    $unidades = [
        "",
        "um",
        "dois",
        "três",
        "quatro",
        "cinco",
        "seis",
        "sete",
        "oito",
        "nove",
        "dez",
        "onze",
        "doze",
        "treze",
        "catorze",
        "quinze",
        "dezasseis",
        "dezassete",
        "dezoito",
        "dezanove"
    ];

    $dezenas = [
        "",
        "",
        "vinte",
        "trinta",
        "quarenta",
        "cinquenta",
        "sessenta",
        "setenta",
        "oitenta",
        "noventa"
    ];

    $centenas = [
        "",
        "cento",
        "duzentos",
        "trezentos",
        "quatrocentos",
        "quinhentos",
        "seiscentos",
        "setecentos",
        "oitocentos",
        "novecentos"
    ];

    $qualSing = [
        "",
        "mil",
        "milhão",
        "bilhão",
        "trilhão"
    ];

    $qualPlural = [
        "",
        "mil",
        "milhões",
        "bilhões",
        "trilhões"
    ];


    $converterGrupo = function ($numero) use ($unidades, $dezenas, $centenas) {

        if ($numero == 0) {
            return "";
        }

        if ($numero == 100) {
            return "cem";
        }

        $texto = "";

        $c = intval($numero / 100);
        $resto = $numero % 100;

        if ($c > 0) {
            $texto .= $centenas[$c];
        }

        if ($resto > 0) {

            if ($texto != "") {
                $texto .= " e ";
            }

            if ($resto < 20) {

                $texto .= $unidades[$resto];

            } else {

                $d = intval($resto / 10);
                $u = $resto % 10;

                $texto .= $dezenas[$d];

                if ($u > 0) {
                    $texto .= " e " . $unidades[$u];
                }
            }
        }

        return $texto;
    };


    if ($inteiro == 0) {

        $resultado = "zero";

    } else {

        $grupos = [];

        while ($inteiro > 0) {

            array_unshift($grupos, $inteiro % 1000);

            $inteiro = intval($inteiro / 1000);
        }

        $resultado = "";

        $total = count($grupos);

        foreach ($grupos as $indice => $grupo) {

            if ($grupo == 0) {
                continue;
            }

            $escala = $total - $indice - 1;

            if ($resultado != "") {
                $resultado .= " ";
            }

            if ($grupo == 1 && $escala == 1) {

                $resultado .= "mil";

            } else {

                $resultado .= $converterGrupo($grupo);

                if ($escala > 0) {

                    if ($grupo == 1) {
                        $resultado .= " " . $qualSing[$escala];
                    } else {
                        $resultado .= " " . $qualPlural[$escala];
                    }
                }
            }
        }
    }


    $resultado .= " meticais";


    if ($centavos > 0) {

        $resultado .= " e ";

        if ($centavos < 20) {

            $resultado .= $unidades[$centavos];

        } else {

            $d = intval($centavos / 10);
            $u = $centavos % 10;

            $resultado .= $dezenas[$d];

            if ($u > 0) {
                $resultado .= " e " . $unidades[$u];
            }
        }

        $resultado .= " centavos";
    }

    return ucfirst($resultado);
}


/*
|--------------------------------------------------------------------------
| VALIDAR ID DO CRÉDITO
|--------------------------------------------------------------------------
*/

if (!isset($_GET['id']) || empty($_GET['id'])) {

    die("Erro: ID do crédito não foi informado.");
}


$id = (int) $_GET['id'];


if ($id <= 0) {

    die("Erro: ID do crédito inválido.");
}


/*
|--------------------------------------------------------------------------
| BUSCAR CRÉDITO + CLIENTE
|--------------------------------------------------------------------------
|
| IMPORTANTE:
| O parâmetro id recebido pela URL deve ser o ID da tabela creditos.
|
| Exemplo:
|
| contracto.php?id=37
|
|--------------------------------------------------------------------------
*/

$buscar = $database->query("
    SELECT

        cr.*,

        cli.nome_cliente,
        cli.codigo_cliente,
        cli.local_emissao,
        cli.bairro,
        cli.bi,
        cli.nuit,
        cli.data_nasc,
        cli.nacionalidade,
        cli.estado_civil,
        cli.provincia,
        cli.cell1,
        cli.cell2

    FROM creditos cr

    INNER JOIN clientes cli
        ON cli.id_cliente = cr.id_cliente

    WHERE cr.id = '$id'

    LIMIT 1
");


/*
|--------------------------------------------------------------------------
| VERIFICAR SE A CONSULTA RETORNOU RESULTADO
|--------------------------------------------------------------------------
*/

if (!$buscar) {

    die("Erro ao consultar os dados do crédito.");
}


if (mysqli_num_rows($buscar) == 0) {

    die(
        "Erro: não foi encontrado nenhum crédito com o ID " .
        htmlspecialchars((string)$id)
    );
}


/*
|--------------------------------------------------------------------------
| ASSOCIAR RESULTADO
|--------------------------------------------------------------------------
*/

$row = $database->fetch_assoc($buscar);


if (!$row) {

    die("Erro: não foi possível carregar os dados do crédito.");
}


/*
|--------------------------------------------------------------------------
| DADOS DO CLIENTE
|--------------------------------------------------------------------------
*/

$nome = $row['nome_cliente'] ?? '';

$codigo_cliente = $row['codigo_cliente'] ?? '';

$local_emissao = $row['local_emissao'] ?? '';

$bairro = $row['bairro'] ?? '';

$bi = $row['bi'] ?? '';

$nuit = $row['nuit'] ?? '';

$data_nasc = $row['data_nasc'] ?? '';

$nacionalidade = $row['nacionalidade'] ?? '';

$estado_civil = $row['estado_civil'] ?? '';

$provincia = $row['provincia'] ?? '';

$cell1 = $row['cell1'] ?? '';

$cell2 = $row['cell2'] ?? '';


/*
|--------------------------------------------------------------------------
| DADOS DO CRÉDITO
|--------------------------------------------------------------------------
*/

$valor = isset($row['valor'])
    ? (float)$row['valor']
    : 0;


$tipo = isset($row['tipo'])
    ? trim($row['tipo'])
    : '';


$juros = isset($row['juros'])
    ? (float)$row['juros']
    : 0;


$total = isset($row['total'])
    ? (float)$row['total']
    : 0;


$tempo = isset($row['prestacoes'])
    ? (int)$row['prestacoes']
    : 0;


$conta = isset($row['conta'])
    ? (int)$row['conta']
    : 0;


$taxas = isset($row['taxas'])
    ? (float)$row['taxas']
    : 0;


$garantias = $row['garantias'] ?? '';

$estimado = $row['estimado'] ?? '';

$data = $row['data'] ?? '';


/*
|--------------------------------------------------------------------------
| VALIDAR VALORES OBRIGATÓRIOS DO CRÉDITO
|--------------------------------------------------------------------------
*/

if ($tempo <= 0) {

    die(
        "Erro: o crédito número {$id} possui número de prestações inválido."
    );
}


if ($total < 0) {

    die(
        "Erro: o crédito número {$id} possui valor total inválido."
    );
}


/*
|--------------------------------------------------------------------------
| CALCULAR PRESTAÇÃO
|--------------------------------------------------------------------------
*/

$v_prest = $total / $tempo;


/*
|--------------------------------------------------------------------------
| PERCENTAGEM
|--------------------------------------------------------------------------
*/

$percent = $taxas * 100;


/*
|--------------------------------------------------------------------------
| TIPO DE CRÉDITO
|--------------------------------------------------------------------------
*/

if ($tipo == "Mensal") {

    $metodo = "Meses";

} elseif ($tipo == "Semanal") {

    $metodo = "Semanas";

} elseif ($tipo == "Diario") {

    $metodo = "Dias";

} elseif ($tipo == "Diário") {

    $metodo = "Dias";

} elseif ($tipo == "Trimestral") {

    $metodo = "Meses";

} elseif ($tipo == "Quinzenal") {

    $metodo = "Quinzenas";

} else {

    $metodo = "N/A";
}


/*
|--------------------------------------------------------------------------
| DATA FINAL DO CRÉDITO
|--------------------------------------------------------------------------
*/

$nova_data = '';

if (!empty($data)) {

    try {

        $date = new DateTime($data);


        if ($tipo == "Mensal") {

            $date->modify("+{$tempo} months");

        } elseif ($tipo == "Semanal") {

            $date->modify("+{$tempo} weeks");

        } elseif ($tipo == "Diario" || $tipo == "Diário") {

            $date->modify("+{$tempo} days");

        } elseif ($tipo == "Quinzenal") {

            $totalDias = $tempo * 15;

            $date->modify("+{$totalDias} days");

        } elseif ($tipo == "Trimestral") {

            $totalMeses = $tempo * 3;

            $date->modify("+{$totalMeses} months");

        } else {

            /*
             * Mantém compatibilidade com o cálculo antigo.
             */
            $totalDias = 30 * $tempo;

            $date->modify("+{$totalDias} days");
        }


        $nova_data = $date->format('Y-m-d');


    } catch (Exception $e) {

        $nova_data = '';
    }
}


$now = date('Y-m-d');


/*
|--------------------------------------------------------------------------
| MÊS E DIA DO CONTRATO
|--------------------------------------------------------------------------
*/

if (!empty($data) && strtotime($data) !== false) {

    $mes = (int) date('m', strtotime($data));

    $dia = date('d', strtotime($data));

} else {

    $mes = (int) date('m');

    $dia = date('d');
}


$meses = [

    1 => "Janeiro",
    2 => "Fevereiro",
    3 => "Março",
    4 => "Abril",
    5 => "Maio",
    6 => "Junho",
    7 => "Julho",
    8 => "Agosto",
    9 => "Setembro",
    10 => "Outubro",
    11 => "Novembro",
    12 => "Dezembro"

];


$whete = $meses[$mes] ?? '';

$ano = !empty($data) && strtotime($data) !== false
    ? date('Y', strtotime($data))
    : date('Y');


/*
|--------------------------------------------------------------------------
| CALCULAR IDADE
|--------------------------------------------------------------------------
*/

$idade = 0;

if (!empty($data_nasc)) {

    try {

        $nascimento = new DateTime($data_nasc);

        $hoje = new DateTime();

        $idade = $hoje->diff($nascimento)->y;

    } catch (Exception $e) {

        $idade = 0;
    }
}


/*
|--------------------------------------------------------------------------
| DADOS DA EMPRESA
|--------------------------------------------------------------------------
*/

$buscar_empresa = $database->query("
    SELECT *
    FROM empresa
    LIMIT 1
");


$associar = $database->fetch_assoc($buscar_empresa);


$nome_empresa = $associar['nome_empresa'] ?? 'Empresa';

$nuit_empresa = $associar['nuit'] ?? '';

$endereco_empresa = $associar['endereco'] ?? '';

$email_empresa = $associar['email'] ?? '';

$contactos = $associar['contactos'] ?? '';

$logo_empresa = $associar['logo'] ?? '';




/*
|--------------------------------------------------------------------------
| TABELA DE PRESTAÇÕES
|--------------------------------------------------------------------------
*/

$html2 = '

<table class="table table-bordered">

    <thead>

        <tr>

            <th>Prestação</th>

            <th>V.unit</th>

            <th>Data Prevista</th>

        </tr>

    </thead>

    <tbody>
';


/*
|--------------------------------------------------------------------------
| GERAR PRESTAÇÕES
|--------------------------------------------------------------------------
*/

$dataPrestacao = !empty($data)
    ? new DateTime($data)
    : new DateTime();


for ($i = 1; $i <= $tempo; $i++) {

    $dataParcela = clone $dataPrestacao;


    if ($tipo == "Mensal") {

        $dataParcela->modify("+{$i} months");

    } elseif ($tipo == "Semanal") {

        $dataParcela->modify("+{$i} weeks");

    } elseif ($tipo == "Diario" || $tipo == "Diário") {

        $dataParcela->modify("+{$i} days");

    } elseif ($tipo == "Quinzenal") {

        $diasParcela = $i * 15;

        $dataParcela->modify("+{$diasParcela} days");

    } elseif ($tipo == "Trimestral") {

        $mesesParcela = $i * 3;

        $dataParcela->modify("+{$mesesParcela} months");

    } else {

        $diasParcela = $i * 30;

        $dataParcela->modify("+{$diasParcela} days");
    }


    $html2 .= '

        <tr>

            <td>' . $i . '</td>

            <td>' .
                number_format(
                    (float)$v_prest,
                    2,
                    ",",
                    "."
                )
            . ' Mt</td>

            <td>' .
                $dataParcela->format('Y-m-d')
            . '</td>

        </tr>
    ';
}


$html2 .= '

    </tbody>

</table>
';


/*
|--------------------------------------------------------------------------
| PROTEGER TEXTO PARA HTML
|--------------------------------------------------------------------------
*/

$nomeHtml = htmlspecialchars(
    $nome,
    ENT_QUOTES,
    'UTF-8'
);

$bairroHtml = htmlspecialchars(
    $bairro,
    ENT_QUOTES,
    'UTF-8'
);

$biHtml = htmlspecialchars(
    $bi,
    ENT_QUOTES,
    'UTF-8'
);

$nuitHtml = htmlspecialchars(
    $nuit,
    ENT_QUOTES,
    'UTF-8'
);

$localEmissaoHtml = htmlspecialchars(
    $local_emissao,
    ENT_QUOTES,
    'UTF-8'
);

$garantiasHtml = htmlspecialchars(
    $garantias,
    ENT_QUOTES,
    'UTF-8'
);

$codigoClienteHtml = htmlspecialchars(
    $codigo_cliente,
    ENT_QUOTES,
    'UTF-8'
);

$nomeEmpresaHtml = htmlspecialchars(
    $nome_empresa,
    ENT_QUOTES,
    'UTF-8'
);

$contactosHtml = htmlspecialchars(
    $contactos,
    ENT_QUOTES,
    'UTF-8'
);

$enderecoEmpresaHtml = htmlspecialchars(
    $endereco_empresa,
    ENT_QUOTES,
    'UTF-8'
);

$emailEmpresaHtml = htmlspecialchars(
    $email_empresa,
    ENT_QUOTES,
    'UTF-8'
);


/*
|--------------------------------------------------------------------------
| LOGO
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| LOGO DA EMPRESA - BASE64
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| LOGO DA EMPRESA - BASE64
|--------------------------------------------------------------------------
*/

$logoPath = '';

if (!empty($logo_empresa)) {

    $nomeLogo = basename($logo_empresa);

    $logoFisico = __DIR__ . '/img/' . $nomeLogo;

    if (is_file($logoFisico) && is_readable($logoFisico)) {

        // Descobrir extensão
        $extensao = strtolower(
            pathinfo($logoFisico, PATHINFO_EXTENSION)
        );

        // Definir MIME sem mime_content_type()
        switch ($extensao) {

            case 'jpg':
            case 'jpeg':
                $mime = 'image/jpeg';
                break;

            case 'png':
                $mime = 'image/png';
                break;

            case 'gif':
                $mime = 'image/gif';
                break;

            case 'webp':
                $mime = 'image/webp';
                break;

            default:
                $mime = 'image/jpeg';
                break;
        }

        // Ler imagem
        $conteudoImagem = file_get_contents($logoFisico);

        if ($conteudoImagem !== false) {

            $logoPath =
                'data:' .
                $mime .
                ';base64,' .
                base64_encode($conteudoImagem);
        }

    } else {

        error_log(
            "LOGO NÃO ENCONTRADO OU SEM PERMISSÃO: " .
            $logoFisico
        );
    }
}


/*
|--------------------------------------------------------------------------
| HTML DO CONTRATO
|--------------------------------------------------------------------------
*/

$html = '

<!DOCTYPE html>

<html lang="pt">

<head>

<meta charset="UTF-8">

<style>

    @page {

        margin: 35px 45px;

    }


 body {
    font-family: "Times-Roman", serif;
    font-size: 12px;
    line-height: 1.5;
    text-align: justify;
}


    table,
    th,
    td {

        border: 1px solid black;

        border-collapse: collapse;

    }


    th,
    td {

        padding: 5px;

    }

.jonas {
    position: relative;
    width: 100%;
    height: 190px;
    margin-bottom: 35px;
}


    .logo {

        position: absolute;

        left: 0;

        top: 0;

        width: 280px;

    }


    .logo img {

        width: 150px;

        height: auto;

    }


   .empresa {
    position: absolute;
    right: 0;
    top: 10px;
    width: 360px;
    text-align: right;
    font-size: 13px;
    line-height: 20px;
}


    .titulo {

        text-align: center;

        font-weight: bold;

    }
.numero-cliente {
    text-align: right;
    margin-top: 15px;
    margin-bottom: 25px;
    font-size: 11px;
}

    .assinaturas {

        width: 100%;

        border: 0;

        border-collapse: collapse;

        margin-top: 40px;

    }


    .assinaturas td {

        border: 0;

        text-align: center;

        width: 50%;

    }

</style>

</head>


<body>


<div class="jonas">

    <div class="logo">
';

if (!empty($logoPath)) {

    $html .= '
        <img src="' . $logoPath . '" style="width:150px; height:auto;">
    ';
}



$html .= '

    </div>


    <div class="empresa">

        <strong>' .
            $nomeEmpresaHtml .
        '</strong>

        <br>

        Cell: (+258) ' .
            $contactosHtml .
        '

        <br>

        Endereço: ' .
            $enderecoEmpresaHtml .
        '

        <br>

        Email: ' .
            $emailEmpresaHtml .
        '

        <br>

        Pemba - Moçambique

    </div>


</div>



<p class="numero-cliente">

    <i>Número do cliente:</i>

    <b>' . $codigoClienteHtml . '</b>

</p>


<p class="titulo">

    CONTRATO DE MÚTUO

</p>


<br>


<p>

    Entre

</p>


<p>

    <b>Mutuante:</b>

    <br>

    <b>FLEUSA MOLA MICROCRÉDITO E.I</b>,

    a empresa legalmente constituída com o NUEL, 101815005,

    inscrito como de operadora de Microcrédito de 17.02.2020,

    aprovado pelo decreto n° 57/2004 de 10 de dezembro,

    com sede no quatro Caminhos, Bairro de Chuiba,

    cidade de Pemba,

    representado pelo proprietário

    <b>FLORÊNCIO SEVERINO</b> - Solteiro,

    natural de Montepuez,

    portador do Bilhete de Identidade

    n° 020100502109F,

    emitido em Pemba,

    aos 12 de Março de 2026

    e residente no Bairro Chuiba,

    na qualidade de representante legal,

    doravante designado por o primeiro autogarante.

</p>



<p>

    <b>Mutuário:</b>

    <br>

    ' . $nomeHtml . ',

    residente e domiciliado em ' .
        $bairroHtml .
    ',

    portador do Bilhete de Identidade/Passaporte nº ' .
        $biHtml .
    ',

    emitido pelo Arquivo de Identificação Civil de ' .
        $localEmissaoHtml .
    ',

    titular do NUIT ' .
        $nuitHtml .
    ',

    doravante designado simplesmente como

    <b>MUTUÁRIO</b>.

</p>



<p>

    Considerando que:

    <br><br>

    i. O Mutuário declara ter interesse em obter um empréstimo,

    que será utilizado para satisfação de interesses pessoais;

    <br><br>

    ii. As Partes, plenamente capazes,

    manifestam a intenção de estabelecer as cláusulas

    e condições deste contrato,

    comprometendo-se a respeitar as obrigações

    mutuamente acordadas.

    <br><br>

    As partes acima qualificadas têm entre si

    justo e acordado o presente Contrato de Mútuo,

    que se regerá pelas seguintes cláusulas e condições.

</p>


<br><br><br><br><br><br><br><br><br><br>
<p class="titulo">

    1. Cláusula Primeira

    <br>

    (Do Objecto)

</p>


<p>

    1. O Mutuário obriga-se a restituir à Mutuante

    o valor do empréstimo,

    acrescido de juros mensais de ' .
        number_format($percent, 2, ",", ".") .
    '%,

    no prazo de ' .
        $tempo .
    ' ' .
        $metodo .
    ',

    isto é,

    até a data de ' .
        $nova_data .
    '.

    <br><br>

    2. O pagamento será realizado em ' .
        $tempo .
    ' prestação(ões).

</p>



<p class="titulo">

    2. Cláusula Segunda

    <br>

    (Do Prazo e Condições de Pagamento)

</p>


<p>

    O Mutuante concede ao Mutuário

    um empréstimo no valor de

    <b>' .
        number_format(
            (float)$valor,
            2,
            ",",
            "."
        ) .
    ' meticais</b>

    acrescidos de ' .
        number_format(
            $percent,
            2,
            ",",
            "."
        ) .
    '%.

    (

    <b><i>' .
        valorPorExtenso(
            (float)$valor
        ) .
    '</i></b>

    mais ' .
        number_format(
            $percent,
            2,
            ",",
            "."
        ) .
    '% de juros

    ),

    o qual o mutuário se confessa devedor

    e fica obrigado a restituir ao mutuante

    no prazo de ' .
        $tempo .
    ' ' .
        $metodo .
    ',

    dividido em ' .
        $tempo .
    ' parcela(s),

    no valor de

    <b>' .
        number_format(
            (float)$v_prest,
            2,
            ",",
            "."
        ) .
    ' Mt</b>

    cada.

</p>



<p class="titulo">

    3. Cláusula Terceira

    <br>

    (Da Confissão de Dívida)

</p>


<p>

    O Mutuário,

    desde já,

    autoriza o Mutuante a preencher manualmente,

    em documento à parte que faz parte integrante

    ao presente contrato,

    uma declaração de confissão de dívida

    referente ao saldo devedor,

    que incluirá o valor do capital,

    bem como dos juros vencidos até a data

    de preenchimento dessa declaração,

    com a finalidade de formalizar

    e quantificar a dívida em aberto.

</p>



<p class="titulo">

    4. Cláusula Quarta

    <br>

    (Dos Encargos por Mora)

</p>


<p>

    Em caso de atraso no pagamento,

    incidirá sobre o saldo devedor

    juros de mora de ' .
        number_format(
            $percent,
            2,
            ",",
            "."
        ) .
    '% ao mês,

    calculados por dia

    sobre o período de inadimplemento,

    até a data do efectivo pagamento.

</p>



<p class="titulo">

    5. Cláusula Quinta

    <br>

    (Da Garantia)

</p>


<p>

    1. O Mutuário dá de garantia

    <b>' .
        $garantiasHtml .
    '</b>,

    que permanecerá na posse da Mutuante

    até a satisfação integral

    do capital e dos juros vencidos

    até a data efectiva do pagamento.

    <br><br>


    2. Por qualquer motivo,

    havendo procedimento judicial

    visando o pagamento da dívida contraída

    pelo Mutuário no âmbito do presente contrato,

    o bem dado de garantia

    será convertido em penhora

    conforme o previsto na lei processual civil.

    <br><br>


    3. O Mutuário declara expressamente

    que o bem referido no número um

    da presente cláusula

    é sua exclusiva propriedade

    e está livre de qualquer ónus ou encargos.

</p>



<p class="titulo">

    6. Cláusula Sexta

    <br>

    (Da Rescisão)

</p>


<p>

    O incumprimento das obrigações

    previstas neste contrato,

    em especial o não pagamento

    nas condições estabelecidas,

    dará direito à Mutuante

    de considerar antecipadamente vencida a dívida,

    podendo tomar as medidas cabíveis

    para a cobrança do saldo devedor.

</p>



<p class="titulo">

    7. Cláusula Sétima

    <br>

    (Do Foro)

</p>


<p>

    Fica eleito o foro do Tribunal Judicial

    da Província de Cabo Delgado

    para dirimir quaisquer dúvidas ou litígios

    decorrentes deste contrato,

    renunciando as partes a qualquer outro,

    por mais privilegiado que seja.

    <br><br>

    E,

    por estarem assim justos e contratados,

    assinam o presente contrato

    em duas vias de igual teor,

    juntamente com duas testemunhas.

</p>



<p align="center">

    Pemba aos ' .
        $dia .
    ' de ' .
        $whete .
    ' de ' .
        $ano .
    '

</p>



<table class="assinaturas">

    <tr>


        <td>

            <b>O Mutuante</b>

            <br><br><br><br><br>

            ____________________________________

            <br>

            Florêncio Severino

        </td>


        <td>

            <b>O Mutuário</b>

            <br><br><br><br><br>

            ____________________________________

            <br>

            ' .
                $nomeHtml .
            '

        </td>


    </tr>

</table>


</body>

</html>
';


/*
|--------------------------------------------------------------------------
| LIMPAR OUTPUT ANTES DE GERAR PDF
|--------------------------------------------------------------------------
*/

if (ob_get_length()) {

    ob_clean();
}


/*
|--------------------------------------------------------------------------
| GERAR PDF
|--------------------------------------------------------------------------
*/

$dompdf->setPaper(
    'A4',
    'portrait'
);


$dompdf->loadHtml(
    $html,
    'UTF-8'
);


$dompdf->render();


/*
|--------------------------------------------------------------------------
| NOME SEGURO DO ARQUIVO
|--------------------------------------------------------------------------
*/

$nomeArquivo = preg_replace(
    '/[^A-Za-z0-9_\-]/',
    '_',
    iconv(
        'UTF-8',
        'ASCII//TRANSLIT//IGNORE',
        $nome
    ) ?: 'cliente'
);


if (empty($nomeArquivo)) {

    $nomeArquivo = 'cliente';
}


/*
|--------------------------------------------------------------------------
| MOSTRAR PDF NO NAVEGADOR
|--------------------------------------------------------------------------
*/

$dompdf->stream(

    "contracto_" . $nomeArquivo . ".pdf",

    [
        "Attachment" => false
    ]

);

exit;

?>