<?php

class Seguro_Model_Row_Cotacao extends Agro_Db_Table_Row_Cotacao {

	public function produto(){
		$Select = Agro_Db_Table_Abstract::getDefaultAdapter()->select();
		$Select->from(array('p'=>'produto.produtos'), array('id','nr_susep','ds_nome_produto','cd_produto_seguradora','ar_condicoes_gerais','id_safra','id_produto_geral','ds_chave_produto', 'cd_mapa'));
		$Select->join(array('s'=>'produto.safras'), 'p.id_safra = s.id', array('ds_nome_safra', 'dt_inicio', 'dt_termino', 'ds_chave'));
		$Select->join(array('se'=>'sistema.empresas'), 'p.id_seguradora = se.id', array('ds_nome_fantasia', 'cpf_cnpj', 'ds_razao_social'));
		$Select->join(array('pg'=>'produto.produtos_geral'), 'p.id_produto_geral = pg.id', array('id_tipo_produto','ds_nome_produto_geral','cd_produto_geral_seguradora'));
		$Select->join(array('tp'=>'produto.tipo_produto'), 'pg.id_tipo_produto = tp.id', array('ds_tipo_produto', 'ds_chave_rn'));
		$Select->join(array('c'=>'produto.culturas'), 'pg.id_cultura = c.id', array('id as id_cultura', 'ds_nome_cultura', 'nr_ibge', 'cd_cultura_seguradora', 'cd_cultura_seguradora_2', "lpad(cast(c.cd_bacen as text), 10, '0') as cd_bacen"));
		$Select->join(array('n'=>'produto.nomenclaturas'), 'c.id_nomenclatura = n.id', array('ds_nomenclatura', 'ds_descricao_nomenclatura'));
		$Select->join(array('r'=>'produto.ramos'), 'pg.id_ramo = r.id', array('ds_nome_ramo'));
		$Select->joinLeft(array('pv'=>'produto.produtos_validacoes'), 'p.id = pv.id_produto', 'id_validacao');
		$Select->joinLeft(array('v'=>'produto.validacoes'), "pv.id_validacao = v.id and v.ds_chave = 'VALIDACAO_ZONEAMENTO'", false);
		$Select->where("p.id = ?", $this->id_produto);

		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchRow($Select);
	}

	public function permite_alterar_comissao($idUsuario) {
		$modelUsuarios = new Sistema_Model_Usuarios();
		if($modelUsuarios->isFuncionarioAgro($idUsuario)){
			return true;
		}
		$tipoUsuario = Agro_Db_Table_Abstract::getDefaultAdapter()->fetchOne("select tp_usuario from sistema.usuarios where id = {$idUsuario}");
		$tabela = ($tipoUsuario == 'C') ? "corretores" : "prepostos";
		return Agro_Db_Table_Abstract::getDefaultAdapter()->fetchOne("select fl_permite_alterar_comissao from sistema.{$tabela} where id_usuario = {$idUsuario} and fl_ativo = true");
	}

}
