<?php
class Sinistro_Model_LaudosPerito extends Agro_Db_Table_Abstract {
	protected $_schema = 'sinistro';
	protected $_name = 'v_laudos_peritos';
	protected $_primary = 'id';
	public $_order = array("chave");

	public $_columnExcel = array(
		'chave' => 'Código',
		'id_safra' => 'Safra',
		'tipo' => 'Tipo',
		'produto_cobertura' => 'Produto/Cobertura',
		'digitavel'	=> 'Digitável'
	);

	public function getData($where='') {

		$Select1 = $this->select()->setIntegrityCheck(false);
		$Select1->from(array('vlp' => 'sinistro.v_laudos_peritos'), '*');
		$Select1->join(array('pcf' => 'produto.produtos_coberturas'), 'vlp.id = pcf.id_tipo_laudo_final', array('id_produto', 'id_cobertura'));

		$Select2 = $this->select()->setIntegrityCheck(false);
		$Select2->from(array('vlp' => 'sinistro.v_laudos_peritos'), '*');
		$Select2->join(array('pcp' => 'produto.produtos_coberturas'), 'vlp.id = pcp.id_tipo_laudo_preliminar', array('id_produto', 'id_cobertura'));

		$Select = $this->select()->setIntegrityCheck(false);
		$Select->union(array($Select1, $Select2));

	    $SQL = "SELECT DISTINCT v.id,
	    			   v.produto_cobertura,
	                   v.id_safra,
	                   v.fl_ativo,
	                   v.tipo,
	                   v.arquivo,
	                   v.chave,
	                   v.digitavel
	             FROM (" . $Select->__toString() . ") AS v";

		if (count($where) > 0) {
			$SQL .= " WHERE ";
			foreach ($where as $clause) {
				$field = $clause['field'];
				$operator = $clause['operator'];
				$value = $clause['value'];
				$SQL .= " $field $operator $value AND ";
			}
			$SQL = substr($SQL, 0, strlen($SQL)-4);
		}

		$SQL .= ' ORDER BY chave';

		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchAll($SQL);
	}
}
