<?php

class Produto_Model_ProdutosCoberturasEventos extends Agro_Db_Table_Abstract {
	protected $_schema = 'produto';
	protected $_name = 'produtos_coberturas_eventos';
	protected $_primary = array('id_produto', 'id_cobertura', 'id_evento');
	protected $_rowClass = 'Produto_Model_Row_ProdutoCoberturaEvento';
	protected $_sequence = false;


	public function save($data) {

		try {

			// Busca ou cria um registro para a insercao ou alteracao
			$Row = $this->find($data['id_produto'], $data['id_cobertura'], $data['id_evento'])->current();
			if (!$Row) $Row = $this->createRow();

			$Row->id_produto = $data['id_produto'];
			$Row->id_cobertura = $data['id_cobertura'];
			$Row->id_evento = $data['id_evento'];
			$Row->nr_dias_carencia = $data['nr_dias_carencia'] ? $data['nr_dias_carencia'] : 0;
			$Row->nr_dias_alerta_aviso = $data['nr_dias_alerta_aviso'] ? $data['nr_dias_alerta_aviso'] : 0;
			$Row->nr_dias_cancelamento = $data['nr_dias_cancelamento'] ? $data['nr_dias_cancelamento'] : 0;
			$Row->fl_excluir_aviso_sinistro = $data['fl_excluir_aviso_sinistro'] ? 'true' : 'false';

			if($Row->save()){
				return true;
			}

			return false;;
		} catch (Exception $e) {
			$this->setMessage($e->getMessage());
			return false;
		}
	}
	
	public function atualizaFlagExcluirAviso($data) {
	    $this->getDefaultAdapter()->beginTransaction();

	    if (is_array($data)) {
	        try {
	            $this->update(array('fl_excluir_aviso_sinistro' => 0), 'id_produto = '. $data['id_produto'].' and id_cobertura='.$data['id_cobertura']);
	            $this->getDefaultAdapter()->commit();
	            return true;
	        } catch (Exception $e) {
	            $this->getDefaultAdapter()->rollback();
	            return false;
	        }
	    }
	}
	
	public function getFlVistoriaPreliminar($idProduto, $idCobertura) {
		$Select = $this->select()->distinct(true)->setIntegrityCheck(false);
		$Select->from('produto.produtos_coberturas', 'fl_vistoria_preliminar');
		$Select->where("id_cobertura = ?", $idCobertura);
		$Select->where("id_produto = ?", $idProduto);

		return $this->_db->fetchOne($Select);
	}

	public function getTipoLiquidacao($id_produto, $id_cobertura){
		$ModelTipoLiquidacao = new Sinistro2_Model_TipoLiquidacao();

		$Row = $this->find($id_produto, $id_cobertura)->current();

		$TipoLiquidacao = false;

		if($Row){
			$RowTL = $ModelTipoLiquidacao->find($Row->id_tipo_liquidacao)->current();

			$TipoLiquidacao = array("id_tipo_liquidacao" 		=> $RowTL->id,
									"ds_nome_tipo_liquidacao" 	=> $RowTL->ds_nome_tipo_liquidacao,
									"ds_chave" 					=> $RowTL->ds_chave,
									"fl_liquidacao_avulsa" 		=> $RowTL->fl_liquidacao_avulsa,
									"fl_liquidacao_manual" 		=> $RowTL->fl_liquidacao_manual
							  );
		}

		return $TipoLiquidacao;

	}




}