public function getEnviosByDocumento($doc_id) { $sql = "select distinct dor.dor_envio, doe.*, esc.esc_id, esc.esc_nome, "; $sql .= "IF (dor.dor_id = (select max(dor2.dor_id) from documento_retorno dor2 where dor2.dor_envio = doe.doe_id) or dor.dor_id is null, dor.dor_id, 'antigo') as dor_id, "; $sql .= "dor.dor_rejeitado, dor.dor_visto is not null as dor_visto, "; $sql .= "doc.doc_id, doc.doc_descricao is not null as doc_descricao "; $sql .= "from documento_envio doe "; $sql .= "join escola esc on doe.doe_destinatario = esc.esc_id "; $sql .= "left join documento_retorno dor on doe.doe_id = dor.dor_envio "; $sql .= "left join documento doc on dor.dor_documento = doc.doc_id "; $sql .= "where doe.doe_documento = {$doc_id};"; $result = $this->retrieve($sql); $retorno = []; while ($qr = mysqli_fetch_array($result)) { if ($qr["dor_id"] == "antigo") { continue; } $doe = new DocumentoEnvio(); $doe->setDoe_id($qr["doe_id"]); $doe->setDoe_data_envio($qr["doe_data_envio"]); $doe->setDoe_documento($qr["doe_documento"]); $doe->setDoe_retorno($qr["doe_retorno"]); $doe->setDoe_visto($qr["doe_visto"]); $doe->setDoe_destinatario(new Escola()); $doe->getDoe_destinatario()->setEsc_id($qr["esc_id"]); $doe->getDoe_destinatario()->setEsc_nome($qr["esc_nome"]); $dados = ["envio" => $doe]; if ($qr["dor_id"] != null) { $dor = new DocumentoRetorno(); $dor->setDor_id($qr["dor_id"]); $dor->setDor_visto($qr["dor_visto"]); $dor->setDor_rejeitado($qr["dor_rejeitado"]); $dor->setDor_documento(new Documento()); $dor->getDor_documento()->setDoc_id($qr["doc_id"]); $dor->getDor_documento()->setDoc_descricao($qr["doc_descricao"]); $dados["retorno"] = $dor; } else { $dados["retorno"] = false; } array_push($retorno, $dados); } return $retorno; }
public function selectDocumentoEnviados() { $sql = " SELECT doe_id, doe_data_envio, doe_visto, doe_retorno, doc_id, doc_assunto, doc_descricao, "; $sql .= " MAX(IF(doe_retorno = 1 AND dor_id IS NULL, 1, 0)) as retornos_pendentes, MAX(IF(doe_retorno = 1 AND dor_visto = 0, 1, 0)) as retornos_nao_vistos "; $sql .= " FROM documento_envio "; $sql .= " JOIN documento ON doe_documento = doc_id "; $sql .= " LEFT JOIN documento_retorno ON dor_envio = doe_id "; $sql .= " GROUP BY doe_documento"; $result = $this->retrieve($sql); $retorno = []; while ($qr = mysqli_fetch_array($result)) { $doe = new DocumentoEnvio(); $doe->setDoe_id($qr["doe_id"]); $doe->setDoe_data_envio($qr["doe_data_envio"]); $doe->setDoe_visto($qr["doe_visto"]); $doe->setDoe_retorno($qr["doe_retorno"]); $doe->setDoe_documento(new Documento()); $doe->getDoe_documento()->setDoc_id($qr["doc_id"]); $doe->getDoe_documento()->setDoc_assunto($qr["doc_assunto"]); $doe->getDoe_documento()->setDoc_descricao($qr["doc_descricao"]); array_push($retorno, ["documento_envio" => $doe, "verificadores" => ["exige_retorno" => intval($qr["doe_retorno"]), "retornos_nao_vistos" => intval($qr["retornos_nao_vistos"]), "retornos_pendentes" => intval($qr["retornos_pendentes"])]]); } return $retorno; }