<?php

namespace App\DAO;

use App\DAO\DAO;
use App\DAO\DAOResponse\DAOResponse;
use App\DAO\DAOResponse\DAOResponseInterface;

class ReciboDAO extends DAO {
	
	public function getDadosExtornoByIdToRecibo(int $extorno_id): DAOResponse {
		
		$sql = <<<SQL
			select
				e.id, e.id_comanda , e.id_tipo_extorno , te.descricao ,
				e.valor  , u.descricao , e.data_criacao , e.hora_criacao ,
				e.criado_por , pf2.nome as colaborador,
				pj.nome_fantasia , pj.razao_social, pj.cnpj ,
				en.cep as endereco_id, ce.logradouro , en.numero , ce.cidade ,
				ce.estado , ce.bairro , ce.cep ,
				pf.nome as nome_cliente	, pf.cpf as cpf_cliente,
				pt.id as pet_id, pt.nome as pet_nome
			from
				extorno e, tipo_extorno te, comanda c , unidade u ,
				pessoa_juridica pj , pessoa p, endereco en, cep ce,
				cliente cl, pet pt , pessoa_fisica pf, usuario us , 
				pessoa_fisica pf2
			where
				e.id = :extornoid:
				and e.id_tipo_extorno = te.id
				and e.id_comanda = c.id
				and c.id_unidade = u.id
				and u.id_pessoa_juridica = pj.id
				and pj.id_pessoa = p.id
				and p.id_endereco = en.id 
				and en.cep = ce.id 
				and c.id_cliente = cl.id 
				and cl.id_pessoa = pf.id_pessoa
				and c.id_pet = pt.id 
				and e.criado_por = us.id 
				and us.id_pessoa = pf2.id_pessoa 
		SQL;
		$binds = [
				'extornoid' => $extorno_id
		];
		
		$conn = db_connect();
		$query_array = $conn->query( $sql, $binds )
		->getResultArray();
		$error = $conn->error();
		$dao_response = new DAOResponse();
		if(intval($error['code']) == 0) {
			if(count($query_array) == 0) {
				$dao_response->setStatus(DAOResponseInterface::RECORD_NOT_FOUND);
				$dao_response->setData([]);
			} else {
				$dao_response->setStatus(DAOResponseInterface::SUCESS);
				$dao_response->setData($query_array);
			}
			
		} else {
			$dao_response->setStatus(DAOResponseInterface::DATABASE_CONNECTION_ERROR);
			$dao_response->setErrors($error);
			$dao_response->setData([]);			
		}		
		
		return $dao_response;
		
	}

}

