<?php
if (!$model->Cliente->isAllowed()) {
    User::blockAction('Este documento não pertence a nenhuma Unidade de Negócios em que você tenha permissão');
}
$arquivo = new Arquivos;
$nome = $model->getSlugTipoDocumento($model->COT_SITUACAO) . '_' . $model->COT_IDCONTRATO . '.pdf';

$pdfAreaClientes = $model->getPdfAreaClientes();

if ($pdfAreaClientes && $model->COT_TIPOASSINATURA == Contratos::ASSINADO_ACEITO && ($model->COT_STATUS == 494 || $model->COT_STATUS == 14 || $model->COT_STATUS == 2)) {

    $arrContextOptions=array(
        "ssl"=>array(
            "verify_peer"=>false,
            "verify_peer_name"=>false,
        ),
    );

    $url = URL_AREA_CLIENTES . "files/" . $pdfAreaClientes->ARQ_ARQUIVO;
    $destino = $arquivo->getPath() . $nome;
    if(file_exists($destino)) {
        $arquivoExistente = file_get_contents($destino, 0, stream_context_create($arrContextOptions));
        unlink($destino);
    }
    if (!copy($url, $destino, stream_context_create($arrContextOptions))) {
        echo "erro";
        die;
    }
}

$pdf = $arquivo->getPath() . $nome;
if (file_exists($pdf)) {
    $nome_save = $model->getSlugTipoDocumento($model->COT_SITUACAO) . '_' . $model->COT_IDCONTRATO . '.pdf';
    header('Content-Description: File Transfer');
    header('Content-Type: application/pdf');
    header('Content-Disposition: inline; filename="'.$nome_save.'"');
    header('Content-Transfer-Encoding: binary');

    header('Pragma: public');
    if (!isset($_SERVER['HTTP_ACCEPT_ENCODING']) OR empty($_SERVER['HTTP_ACCEPT_ENCODING'])) {
        header('Content-Length: '.filesize($pdf));
    }
    header('Cache-Control: private, must-revalidate, post-check=0, pre-check=0, max-age=1');
    header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
    header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');

    ob_clean();
    flush();
    readfile($pdf);
    die;
} else {

    $generatePath = $arquivo->getPath() . $model->getSlugTipoDocumento($model->COT_SITUACAO) . '_' . $model->COT_IDCONTRATO;

    $this->layout = 'pdf';
    $pdf = Yii::createComponent('application.extensions.tcpdf.ETcPdf', 'P', 'cm', 'A4', true, 'UTF-8');
    $pdf->SetAuthor("Windel Sistemas");
    $pdf->SetTitle(utf8_encode(Util::getTipoDocumento($model->COT_SITUACAO)).' No '.$model->COT_IDCONTRATO);
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false);
    $pdf->AliasNbPages();
    $pdf->setFont('Helvetica', '', 12);
    $pdf->SetAutoPageBreak(TRUE, 0);

    switch ($model->COT_SITUACAO) {
        case Contratos::CONTRATO:
            $this->renderPartial('pdf/contrato', array(
                'generatePath' => $generatePath,
                'model' => $model,
                'pdf' => $pdf
            ));
            break;

        case Contratos::ADENDO:
            if ($model->COT_ALTERAR_VENCIMENTO == '1') {
                $this->renderPartial(
                    'pdf/adendo_alteracao_vencimento',
                    array(
                        'generatePath' => $generatePath,
                        'model' => $model,
                        'pdf' => $pdf
                    )
                );
            } else {
                $this->renderPartial(
                    'pdf/adendo',
                    array(
                        'generatePath' => $generatePath,
                        'model' => $model,
                        'pdf' => $pdf
                    )
                );
            }
            break;

        case Contratos::ORCAMENTO:
            $this->renderPartial('pdf/orcamento', array(
                'generatePath' => $generatePath,
                'model' => $model,
                'pdf' => $pdf
            ));
            break;
        case Contratos::PEDIDO_CUSTOMIZACAO:
        $this->renderPartial('pdf/customizacao', array('generatePath' => $generatePath,
                                                 'model' => $model,
                                                 'pdf' => $pdf,
                                                 'conversaoDados' => $conversaoDados,
                                                 'produtos' => $produtos));
            break;
        case Contratos::PEDIDO_IMPLANTACAO:
            $this->renderPartial('pdf/pedido', array('generatePath' => $generatePath,
                                                 'model' => $model,
                                                 'pdf' => $pdf,
                                                 'conversaoDados' => $conversaoDados,
                                                 'produtos' => $produtos));
            break;
        case Contratos::PEDIDO_REATIVACAO:
            $this->renderPartial('pdf/pedido', array('generatePath' => $generatePath,
                                                 'model' => $model,
                                                 'pdf' => $pdf,
                                                 'conversaoDados' => $conversaoDados,
                                                 'produtos' => $produtos));
            break;

        case Contratos::TERMO_CANCELAMENTO:
            $this->renderPartial('pdf/cancelamento', array(
                'generatePath' => $generatePath,
                'model' => $model,
                'pdf' => $pdf,
                'dadosSolicitacaoTermo' => $dadosSolicitacaoTermo,
            ));
            break;

        case Contratos::TRANSFERENCIA_SISTEMA:
            $this->renderPartial('pdf/transferencia_sistema', array(
                'generatePath' => $generatePath,
                'model' => $model,
                'pdf' => $pdf
            ));
            break;

        case Contratos::TRANSFERENCIA_BANCO_ENVIO:
        case Contratos::TRANSFERENCIA_BANCO_RECEPCAO:
            $this->renderPartial('pdf/transferencia_banco', array(
                'generatePath' => $generatePath,
                'model' => $model,
                'pdf' => $pdf
            ));
            break;
    }
}