<?php

class Endosso_Model_Row_Endossar extends Agro_Db_Table_Row_Proposta {
	
	public function arquivos() {
		$Select = $this->select()->setIntegrityCheck(false)->from('seguro.propostas_arquivos')->where('id_proposta = ?', $this->id);
		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchAll($Select);
	}
	
	public function atributos() {
		$Select = $this->select()->setIntegrityCheck(false)->from('seguro.propostas_atributos_rn')->where('id_proposta = ?', $this->id);
		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchAll($Select);
	}
	
	public function beneficiarios() {
		$subSelectAssinatura = " SELECT arr->>'id' AS id_proposta_beneficiario,
								   		arr->>'email' AS email,
										arr->>'email_instituicao_financeira' AS email_instituicao_financeira
								   FROM seguro.propostas_email_assinatura_documento,
								   		jsonb_array_elements(ds_email_beneficiarios) as arr
								  WHERE fl_ativo is true";

		$Select = $this->select()->setIntegrityCheck(false)
			->from('seguro.propostas_beneficiarios')
			->joinLeft(array('email_assinatura_documento' => new Zend_Db_Expr("($subSelectAssinatura)")), 'email_assinatura_documento.id_proposta_beneficiario = propostas_beneficiarios.id::text', ["email_assinatura_documento.email as email_assinatura", "email_assinatura_documento.email_instituicao_financeira AS email_instituicao_financeira_assinatura"])
			->where('id_proposta = ?', $this->id);

		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchAll($Select);
	}
	
	public function coberturas() {
		$Select = $this->select()->setIntegrityCheck(false)->from('seguro.propostas_coberturas')->where('id_proposta = ?', $this->id);
		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchAll($Select);
	}
	
	public function corretor() {
		$Select = $this->select()->setIntegrityCheck(false)->from('seguro.propostas_corretores')->where('id_proposta = ?', $this->id);
		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchAll($Select);
	}
	
	public function observacoes() {
		$Select = $this->select()->setIntegrityCheck(false)->from('seguro.propostas_observacoes')->where('id_proposta = ?', $this->id)->where('fl_principal is true');
		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchAll($Select);
	}
	
	public function parcelas() {
		$Select = $this->select()->setIntegrityCheck(false)->from('seguro.propostas_parcelas')->where('id_proposta = ?', $this->id);
		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchAll($Select);
	}
	
	public function proponente() {
		$Select = $this->select()->setIntegrityCheck(false)->from('seguro.propostas_proponentes')->where('id_proposta = ?', $this->id);
		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchAll($Select);
	}
	
	public function propriedade() {
		$Select = $this->select()->setIntegrityCheck(false)->from('seguro.propostas_propriedades')->where('id_proposta = ?', $this->id);
		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchAll($Select);
	}
	
	public function questionarios() {
		$Select = $this->select()->setIntegrityCheck(false)->from('seguro.propostas_questionario')->where('id_proposta = ?', $this->id);
		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchAll($Select);
	}
	
	public function quadras() {
		$Select = $this->select()->setIntegrityCheck(false)->from('seguro.itens_segurados')->join('seguro.itens_segurados_complemento', 'itens_segurados.id = itens_segurados_complemento.id_item_segurado')->where('id_proposta = ?', $this->id);
		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchAll($Select);
	}
	
}