function build_plain_body(array $d): string{
return "TERMO DE ISENÇÃO DE RESPONSABILIDADE POR AVARIAS
Transportadora: Transportadora Jacareí Ltda — CNPJ 04.137.177/0001-95
Endereço: Av. Getúlio Vargas, 1390 — Jardim Primavera — 12305-000 — Jacareí/SP
Telefone: (12) 3954-3448
REMETENTE
• Razão Social: ".s_txt($d['razao'])."
• CNPJ: ".s_txt($d['cnpj'])."
• Endereço: ".s_txt($d['endRem'])."
TIPO DE CARGA REVERSA
• ".s_txt($d['tipo']??'Assistência Técnica')."
DADOS DA CARGA
• Destinatário: ".s_txt($d['dest'])."
• Data da Coleta: ".s_txt($d['dataColeta'])."
• Local da Coleta: ".s_txt($d['localColeta'])."
• Quantidade de Volumes: ".s_txt($d['qtd'])."
• Descrição: ".s_txt($d['desc'])."
DECLARAÇÃO
Declaro estar ciente e de acordo com as condições do termo, isentando a Transportadora Jacareí Ltda de responsabilidade por avarias/divergências relativas ao conteúdo transportado.
ASSINATURA
• Local e data: ".s_txt($d['localData']??'—')."
• Nome do remetente: ".s_txt($d['nomeRem'])."
• CPF/RG: ".s_txt($d['docRem'])."
• Telefone: ".s_txt($d['telefone']??'—')."
";
}
function build_pdf_html(array $d,?string $signatureDataUrl=null): string{
$sig=$signatureDataUrl?'
O presente termo registra que a Transportadora Jacareí Ltda está sendo contratada para realizar o transporte de carga reversa, conforme a situação acima descrita, sem assumir responsabilidade por eventuais avarias, perdas ou divergências de conteúdo, considerando as particularidades e o estado físico em que a carga se encontra no momento da coleta.
Condição da Carga
O Remetente declara que a carga pode apresentar avarias visíveis ou não, itens danificados, com defeitos ou incompletos, sem embalagem original ou em embalagem reaproveitada, com etiquetas violadas, lacres rompidos ou componentes faltantes, isentando a transportadora de quaisquer problemas relacionados ao estado físico, integridade, funcionamento ou conferência do conteúdo dos volumes transportados.
Responsabilidade da Transportadora
A Transportadora Jacareí Ltda compromete-se a realizar o transporte com segurança e cuidado, dentro dos procedimentos padrão de coleta e entrega. Entretanto, não será responsabilizada por danos preexistentes, mau acondicionamento, ausência de embalagem adequada, falta de identificação da carga ou manuseio anterior indevido. A conferência da carga não será realizada no ato da coleta; o acondicionamento e a verificação são de responsabilidade exclusiva do Remetente.
Local e Data:
'.s_html($d['localData']??'—').'
Nome do Remetente:
'.s_html($d['nomeRem']).'
CPF/RG:
'.s_html($d['docRem']).'
Assinatura:
'.$sig.'
______________________________________________ Assinatura do Remetente
Documento gerado digitalmente pelo site da Transportadora Jacareí Ltda.
';
}
function append_csv_log(array $data,string $ticket,string $mode): void{
ensure_dirs(); $isNew=!file_exists(CSV_FILE); $fh=fopen(CSV_FILE,'a'); if(!$fh) return;
if($isNew){ fputcsv($fh,['timestamp','ip','ticket','modo','razao','cnpj','dest','dataColeta','localColeta','qtd']); }
fputcsv($fh,[date('c'),client_ip(),$ticket,$mode,s_txt($data['razao']),s_txt($data['cnpj']),s_txt($data['dest']),s_txt($data['dataColeta']),s_txt($data['localColeta']),s_txt($data['qtd'])]);
fclose($fh);
}
if($_SERVER['REQUEST_METHOD']==='POST'){
$action=$_GET['action']??'';
$data=read_json_payload();
$vr=verify_recaptcha_v3($data['recaptcha']??null);
if(!$vr['ok']) json_response(400,['ok'=>false,'message'=>$vr['message']]);
$required=['razao','cnpj','endRem','dest','dataColeta','localColeta','qtd','desc','nomeRem','docRem'];
validate_required($data,$required);
$to=TJ_TO_EMAIL; $subject='Termo de Isenção de Responsabilidade — '.s_txt($data['razao']); $cc=!empty($data['emailCopia'])?s_txt($data['emailCopia']):'';
if($action==='send'){
$body=build_plain_body($data);
$headers=['From: '.TJ_FROM_NAME.' <'.TJ_FROM_EMAIL.'>','MIME-Version: 1.0','Content-Type: text/plain; charset=UTF-8'];
if($cc) $headers[]='Cc: '.$cc;
$ok=@mail($to,'=?UTF-8?B?'.base64_encode($subject).'?=',$body,implode("\r\n",$headers));
if(!$ok) json_response(500,['ok'=>false,'message'=>'Falha ao enviar e-mail']);
$ticket=strtoupper(substr(md5(uniqid('',true)),0,8));
append_csv_log($data,$ticket,'sem_anexo');
if(!empty($data['signature'])&&preg_match('#^data:image/png;base64,#',$data['signature'])){
$b64=substr($data['signature'],strpos($data['signature'],',')+1); $bin=base64_decode($b64);
if($bin){ ensure_dirs(); @file_put_contents(SIGNATURES_DIR."/sig_{$ticket}.png",$bin); }
}
json_response(200,['ok'=>true,'ticket'=>$ticket]);
}
if($action==='sendpdf'){
if(!file_exists(REQUIRE_VENDOR)) json_response(500,['ok'=>false,'message'=>'Bibliotecas ausentes. Rode: composer require dompdf/dompdf phpmailer/phpmailer']);
require REQUIRE_VENDOR;
$signatureDataUrl=!empty($data['signature'])?$data['signature']:null;
$html=build_pdf_html($data,$signatureDataUrl);
$options=new Dompdf\Options(); $options->set('isRemoteEnabled',true); $options->set('defaultFont','DejaVu Sans');
$dompdf=new Dompdf\Dompdf($options); $dompdf->loadHtml($html,'UTF-8'); $dompdf->setPaper('A4','portrait'); $dompdf->render();
$pdfOutput=$dompdf->output(); $filename='TERMO_'.date('Ymd_His').'_'.substr(md5(uniqid('',true)),0,6).'.pdf';
$bodyText="Segue em anexo o Termo de Isenção de Responsabilidade por Avarias.\n\nRemetente: ".s_txt($data['razao'])."\nCNPJ: ".s_txt($data['cnpj'])."\nColeta: ".s_txt($data['dataColeta'])." — ".s_txt($data['localColeta'])."\nVolumes: ".s_txt($data['qtd'])."\nDescrição: ".s_txt($data['desc'])."\n\nEste e-mail foi gerado automaticamente pelo site.";
$mail=new PHPMailer\PHPMailer\PHPMailer(true);
try{
$mail->isMail(); $mail->CharSet='UTF-8';
$mail->setFrom(TJ_FROM_EMAIL,TJ_FROM_NAME); $mail->addAddress($to); if($cc) $mail->addCC($cc);
$mail->Subject=$subject; $mail->Body=$bodyText; $mail->AltBody=$bodyText;
$mail->addStringAttachment($pdfOutput,$filename,'base64','application/pdf'); $mail->send();
}catch(Throwable $e){ json_response(500,['ok'=>false,'message'=>'Falha no envio do e-mail (PDF): '.$mail->ErrorInfo]); }
$ticket=strtoupper(substr(md5(uniqid('',true)),0,8)); append_csv_log($data,$ticket,'pdf');
if(!empty($data['signature'])&&preg_match('#^data:image/png;base64,#',$data['signature'])){
$b64=substr($data['signature'],strpos($data['signature'],',')+1); $bin=base64_decode($b64);
if($bin){ ensure_dirs(); @file_put_contents(SIGNATURES_DIR."/sig_{$ticket}.png",$bin); }
}
json_response(200,['ok'=>true,'ticket'=>$ticket,'file'=>$filename]);
}
json_response(400,['ok'=>false,'message'=>'Ação inválida. Use ?action=send ou ?action=sendpdf']);
}
?>
Termo de Isenção de Responsabilidade — Transportadora Jacareí Ltda
Use o mouse (PC) ou o dedo (celular). A assinatura será inserida no PDF enviado ao SAC.
Declaração e condições: • A carga pode apresentar avarias visíveis ou não, itens danificados, defeitos, incompletos, sem embalagem original, com lacres rompidos ou componentes faltantes. • A Transportadora Jacareí Ltda não se responsabiliza por problemas relacionados ao estado físico, integridade, funcionamento ou conferência do conteúdo dos volumes transportados. • Danos preexistentes, mau acondicionamento, ausência de embalagem adequada, falta de identificação ou manuseio anterior indevido são de responsabilidade do remetente. • A conferência da carga não será realizada no ato da coleta; o acondicionamento e a verificação são de responsabilidade exclusiva do remetente.
O botão “Enviar (backend)” é habilitado após marcar o aceite.
O presente termo registra que a Transportadora Jacareí Ltda está sendo contratada para realizar o transporte de carga reversa, sem assumir responsabilidade por eventuais avarias, perdas ou divergências de conteúdo.
Condição da Carga
O Remetente declara que a carga pode apresentar avarias, defeitos, ausência de embalagem adequada ou lacres rompidos, isentando a transportadora de quaisquer problemas relacionados ao estado físico, integridade ou conferência do conteúdo.
Responsabilidade da Transportadora
A transportadora realiza o transporte com segurança e cuidado, porém não se responsabiliza por danos preexistentes, mau acondicionamento, falta de identificação ou manuseio anterior indevido.
Local e Data:
—
Nome do Remetente:
—
CPF/RG:
—
______________________________________________ Assinatura do Remetente
Documento gerado digitalmente pelo site da Transportadora Jacareí Ltda.