<?

class Sinistro2_Model_TipoLiquidacao extends Agro_Db_Table_Abstract {
	public $_pairs = array('key' => 'id', 'field' => 'ds_nome_tipo_liquidacao');
	protected $_schema = 'sinistro';
	protected $_name = 'tipo_liquidacao';
	protected $_primary = 'id';
	public $_order = 'ds_chave';
	
	public function save(array $data) {
		try {
			$Row = $this->getRow($data['id']);

			$Row->ds_nome_tipo_liquidacao = $data['ds_nome_tipo_liquidacao'];
			$Row->ds_chave = $data['ds_chave'];
			$Row->ds_descricao_liquidacao = $data['ds_descricao_liquidacao'];
			$Row->fl_liquidacao_avulsa = ($data['fl_liquidacao_avulsa'] ? 1 : 0); 
			$Row->fl_liquidacao_manual = ($data['fl_liquidacao_manual'] ? 1 : 0);

			
			return $Row->save();
			
		} catch (Exception $e) {
			print_r($e->getMessage());die;
		}
	}	
	
	public function getByKey($chave){
		$Select = $this->select()->setIntegrityCheck(false);
		$Select->from("sinistro.tipo_liquidacao", "id");
		$Select->where("ds_chave = '$chave'");
		
		return $this->getAdapter()->fetchOne($Select);
	}
	
	public function getNameById($id){
		$Row = $this->getRow($id);
		return $Row->ds_nome_tipo_liquidacao;
	}
	
	public function isLiquidacaoAvulsa($idTipoLiquidacao) {
        $Select = $this->select()->setIntegrityCheck(false);
        $Select->from('sinistro.tipo_liquidacao', 'fl_liquidacao_avulsa');
        $Select->where('id = ?', $idTipoLiquidacao);

        return $this->getAdapter()->fetchOne($Select);
	}
	
	public function getNomeLiquidacaoAvulsa($idTipoLiquidacao) {
		$Select = $this->select()->setIntegrityCheck(false);
        $Select->from(array('tl' => 'sinistro.tipo_liquidacao'), 'ds_nome_tipo_liquidacao');
        $Select->join(array('l'=>'sinistro.liquidacoes'), 'l.id_tipo_liquidacao = tl.id');
        $Select->where('tl.id = ?', $idTipoLiquidacao);
        //$Select->where('tl.fl_liquidacao_avulsa = ?', true);

        return $this->getAdapter()->fetchOne($Select);
	}
	
	public function getNomeCoberturaAvulsa($idCobertura) {
		$Select = $this->select()->setIntegrityCheck(false);
		$Select->from(array('tl' => 'sinistro.tipo_liquidacao'), false);
		$Select->join(array('l'=>'sinistro.liquidacoes'), 'l.id_tipo_liquidacao = tl.id', false);
		$Select->join(array('lic' => 'sinistro.liquidacoes_itens_segurados_coberturas'), 'lic.id_liquidacao = l.id', false);
		$Select->join(array('p' => 'produto.coberturas'), 'p.id = lic.id_cobertura', "p.ds_nome_cobertura");
		$Select->where('p.id = ?', $idCobertura);
		$Select->where('tl.fl_liquidacao_avulsa = ?', true);

		return $this->getAdapter()->fetchOne($Select);
	}	
	
}

