<?php

class Seguro_Model_TrocasCorretagem extends Agro_Db_Table_Abstract {
	protected $_schema = 'seguro';
	protected $_name = 'trocas_corretagem';
	protected $_primary = 'id';
	public $_order = 'id desc';

	public $_columnExcel = array(
		'cpf_cnpj' => 'CPF/CNPJ',
		'usuario_solicitante' => 'Usuário solicitante',
		'dt_criacao' => 'Data da Solicitação',
		'dt_alteracao' => 'Data de modificação',
		'usuario_alteracao' => 'Usuário de Alteração',
		'ds_status' => 'Status'
	);

    public function getData($where=false) {
        $select = $this->select()->distinct(true)->setIntegrityCheck(false);
		$select->from(array('tc' => 'seguro.trocas_corretagem'), array('tc.*'));
		$select->join(array('s' => 'sistema.status'), 's.id = tc.id_status', array('s.cd_status', 's.ds_status'));
		$select->join(array('p' => 'seguro.proponentes'), 'p.id = tc.id_proponente', array('p.ds_nome_proponente, p.cpf_cnpj'));
		$select->join(array('utc' => 'sistema.usuarios'), 'utc.id = tc.id_usuario', array('utc.ds_nome_usuario as usuario_solicitante'));
		$select->joinLeft(array('ua' => 'sistema.usuarios'), 'ua.id = tc.id_usuario_alteracao', array('ua.ds_nome_usuario as usuario_alteracao'));

		$select->order($this->_order);

		if (is_array($where)) {
			foreach ($where as $clause) {
				if (is_array($clause)) {
					$field = $clause['field'];
					$operator = $clause['operator'];
					$value = $clause['value'];

					$select->where("$field $operator ?", $value);

				} else {
					$select->where($clause, '');
				}
			}
		} elseif ($where != '') {
			$select->where($where);
		}

		return $select;
    }

	public function save($data) {

		$trocasCorretagem = $this->getRow($data['id']);
		$trocasCorretagem->id_proponente = $data['id_proponente'];
		$trocasCorretagem->id_status = $data['id_status'];
		$trocasCorretagem->id_usuario = $data['id_usuario'];
		$trocasCorretagem->ds_descricao = $data['ds_descricao'];
		return $trocasCorretagem->save();
	}
}
