<?php

class Seguro_Model_PropostasCorretores extends Agro_Db_Table_Abstract {
	protected $_log = true;
	protected $_schema = 'seguro';
	protected $_name = 'propostas_corretores';
	protected $_primary = array('id_proposta', 'id_usuario');
	
	public function save(
	  $id_proposta,
      $id_corretor,
      $comissao=NULL,
      $id_preposto=NULL,
      $comissao_assessoria=NULL,
      $comissao_original=NULL,
      bool $dispensaComissaoMinima = null,
      string $comissaoAdicional = null
    ) {
		$this->deleteProposta($id_proposta);
		
		$Row = $this->createRow();
		$Row->id_proposta = $id_proposta;
		$Row->id_usuario = $id_corretor;
		
		if ($comissao) {
			$Row->vl_comissao = $comissao;
		}

		if ($comissao_assessoria) {
			$Row->vl_comissao_assessoria = $comissao_assessoria;
		}
		
		if ($comissao_original) {
			$Row->vl_comissao_original = $comissao_original;
		}

		if (!empty($dispensaComissaoMinima)) {
			$Row->fl_dispensa_comissao_minima = $dispensaComissaoMinima ? 't' : 'f';
        }

        if ($comissaoAdicional) {
            $Row->vl_comissao_adicional = $comissaoAdicional;
        }

		return $Row->save();
	}
	
	public function deleteProposta($proposta) {
		if ($proposta) {
			$this->getAdapter()->query("delete from seguro.propostas_corretores where id_proposta = $proposta");
		}
	}
	
	public function getValorSubvencaoFederal($idCorretor, $idCultura) {
		$Select = $this->select()->setIntegrityCheck(false);
		$Select->from(array('v' => 'seguro.v_subvencao_federal_corretor'));
		$Select->where('id_usuario = ?', $idCorretor);
		$Select->where('id_cultura = ?', $idCultura);
		
		return $this->fetchRow($Select);
	}

	public function getIdCorredorByProposta($idProposta) {
		$Select = $this->select()->setIntegrityCheck(false);
		$Select->from(array('pc' => 'seguro.propostas_corretores'));
		$Select->join(array('sc' => 'sistema.corretores'), 'pc.id_usuario = sc.id_usuario', 'id');
		$Select->where('pc.id_proposta = '.$idProposta);

		return $this->fetchRow($Select);
	}
}