<?

class Sinistro2_Model_LaudosPreliminaresItensSegurados extends Agro_Db_Table_Abstract {
	protected $_rowClass = 'Sinistro2_Model_Row_LaudoPreliminarItemSegurado';
	protected $_schema = 'sinistro';
	protected $_name = 'laudos_preliminares_itens_segurados';
	protected $_primary = array('id_laudo_preliminar', 'id_item_segurado');
	public $_order = 'id_laudo_preliminar';

    public function save($dados) {

        try {
            $Row = $this->getRow($dados['id_laudo_preliminar'], $dados['id_item_segurado']);
            
            if($dados['fl_quadra_sinistrada'] == false && !$dados['id_intensidade']){
            	$dados['id_intensidade'] = 10;
            } elseif ($dados['id_intensidade'] == 10){
            	$dados['fl_quadra_sinistrada'] = '0'; 
            } else {
            	$dados['fl_quadra_sinistrada'] = '1';
            }
            
            $Row->id_laudo_preliminar               = $dados['id_laudo_preliminar'];
            $Row->id_item_segurado                  = $dados['id_item_segurado'];
            $Row->id_intensidade                    = $dados['id_intensidade'];
            $Row->id_estadio_fenologico             = $dados['id_estadio_fenologico'];
            $Row->dt_prevista_inicio_colheita       = Agro_Util::formatDate($dados["dt_prevista_inicio_colheita"], Zend_Date::W3C);   
            $Row->fl_direito_fitossanitaria         = $dados['fl_direito_fitossanitaria'];
            $Row->fl_quadra_sinistrada         		= $dados['fl_quadra_sinistrada'];

            $Row->save();

            $dados['id_laudo_preliminar_item_segurado'] = $Row->id;
            
            if ($dados['id_vistoria']) {
                // Relaciona item segurado com vistoria
                $Model_VistoriasItensSegurados = new Sistema_Model_VistoriasItensSegurados();
                $Model_VistoriasItensSegurados->save(array(
                    'id_vistoria'       =>  $dados['id_vistoria'],
                    'id_item_segurado'  =>  $dados['id_item_segurado']
                ));
            }
    
            return $Row->id; 
                
        } catch (Exception $e) {
            die($e->getMessage().'<pre>'.$e->getTraceAsString().'</pre>');
            $this->setMessage("Não foi possível salvar o Item Segurado.<br>Erro: {$e->getMessage()}");
            return false;
        }   
    }

    public function getRow($idLaudoPreliminar, $idItemSegurado) {
        $Row = false;
        if($idLaudoPreliminar && $idItemSegurado) {
            $Row = parent::find($idLaudoPreliminar, $idItemSegurado)->current();
        }
        if (!$Row) {
            $Row = $this->createRow();
        }
        
        return $Row;
    }
    
    public function deleteItensbyLaudoPreliminar($idLaudoPreliminar) {
        $this->delete($idLaudoPreliminar,'id_laudo_preliminar');
    }

/*
	public function find($idLaudo, $idItem) {
		$select = $this->select();
		$select->setIntegrityCheck(false);
		$select->from(array('lp'=>$this->_schema . '.' . $this->_name), '*');
		$select->where('lp.id_laudo_preliminar = ?', $idLaudo);
		$select->where('lp.id_item_segurado = ?', $idItem);
		
		if ($this->fetchRow($select)) {
			return $this->fetchRow($select)->toArray();
		} else {
			return array();		
		}
	}
 * */
/*
	public function delete($idLaudoPreliminar, $idItem = null) {
		$where = array();
		
		$where[] = " id_laudo_preliminar = $idLaudoPreliminar ";
		
		if ($idItem){
			$where[] = "id_item_segurado = $idItem";
		}
		
		parent::delete($arrWhere = $where);
	}
*/
	
	public function deleteItensLaudoPreliminar($idLaudoPreliminar) {
		parent::delete($idLaudoPreliminar, 'id_laudo_preliminar');
	}

	public function deleteItem($idLaudoPreliminarItemSegurado) {
		$sql = "delete from {$this->_schema}.{$this->_name} where id = $idLaudoPreliminarItemSegurado";

		$this->_db->query($sql);
	}

	public function getItensLaudoPreliminar($idLaudoPreliminar) {
		
		$select = $this->select();
		$select->setIntegrityCheck(false);
		$select->from(array('it'=>"$this->_schema.$this->_name"), array('id_laudo_preliminar','id_item_segurado','to_char(dt_colheita, \'dd/mm/yyyy\') as dt_colheita','id'));
		$select->where('it.id_laudo_preliminar = ?', $idLaudoPreliminar);
		
		if ($this->fetchAll($select)) {
			return $this->fetchAll($select)->toArray();
		} else {
			return array();
		}
	}
	
	public function buscaItensLaudoPreliminar($id_laudo_preliminar){
		return $this->fetchAll("id_laudo_preliminar=$id_laudo_preliminar");
	}
}