<?php

class Sistema_Model_VistoriasCoberturas extends Agro_Db_Table_Abstract {
	protected $_schema = 'sistema';
	protected $_name = 'vistorias_coberturas';
	protected $_primary = array('id_vistoria','id_cobertura');
	protected $_sequence = false;
	
	public function save(array $data) {
		
		$Row = $this->find($data['id_vistoria'],$data['id_cobertura'])->current();
		if (!$Row) {
			$Row = $this->createRow();
		}

		$Row->id_vistoria = $data[id_vistoria];
		$Row->id_cobertura = $data[id_cobertura];
		
		return $Row->save();
	}
	
    public function getVistoriaPreliminarByCobertura($idProcesso, $idCobertura, $dtSinistro) {
        $select = "
            select 
                min(v.dt_inicio) as dt_vistoria_laudo, 
                vp.id_vistoria 
            from 
                sinistro.vistorias_processos vp, 
                sistema.vistorias_coberturas vc, 
                sistema.vistorias_laudos_preliminares vlp, 
                sistema.vistorias v 
            where 
                vp.id_processo = $idProcesso and 
                vc.id_vistoria = vp.id_vistoria and 
                vc.id_cobertura = $idCobertura and 
                vlp.id_vistoria = vp.id_vistoria and 
                v.id = vlp.id_vistoria and
                v.dt_inicio > '$dtSinistro'
            group by 
                vp.id_vistoria 
        ";
        
        return $this->_db->fetchAll($select);
    }
    
	public function getVistoriaByCoberturaComVistPreliminar($idProcesso, $idCobertura, $dtSinistro) {
        $select = "
            select
                min(lfis.dt_vistoria) as dt_vistoria_laudo,
                vp.id_vistoria
            from
                sinistro.vistorias_processos vp,
                sistema.vistorias_coberturas vc,
                sistema.vistorias_laudos_finais vlf,
                sinistro.laudos_finais_itens_segurados lfis
            where
                vp.id_processo = $idProcesso and
                vc.id_vistoria = vp.id_vistoria and
                vc.id_cobertura = $idCobertura and
                vlf.id_vistoria = vp.id_vistoria and
                lfis.id_laudo_final = vlf.id_laudo_final and
                lfis.dt_vistoria > '$dtSinistro'
            group by 
                vp.id_vistoria
        ";
        
        return $this->_db->fetchAll($select);
	}
	public function getVistoriaByCoberturaSemVistPreliminar($idProcesso, $idCobertura, $dtSinistro) {
        
		$select = "
            select
                min(lfis.dt_vistoria) as dt_vistoria_laudo,
                vp.id_vistoria
            from
                sinistro.vistorias_processos vp,
                sistema.vistorias_coberturas vc,
                sistema.vistorias_laudos_finais vlf,
                sinistro.laudos_finais_itens_segurados lfis
            where
                vp.id_processo = $idProcesso and
                vc.id_vistoria = vp.id_vistoria and
                vc.id_cobertura = $idCobertura and
                vlf.id_vistoria = vp.id_vistoria and
                lfis.id_laudo_final = vlf.id_laudo_final and
                lfis.dt_vistoria > '$dtSinistro'
            group by 
                vp.id_vistoria
                
            order by 
                dt_vistoria_laudo desc
            limit 1
		";
		
		return $this->_db->fetchRow($select);
	}
}
