<?php

class Sinistro2_Model_AvisosEncerramentoDataBase extends Agro_Db_Table_Abstract
{
    protected $_schema = 'sinistro';
    protected $_name = 'avisos_encerramento_data_base';
    protected $_primary = 'id';

    public function getDataBaseByProposta(int $idProposta)
    {
        $campos = ['MAX(dt_base) as data_base'];
        $select = $this->select()->setIntegrityCheck(false);
        $select->from(['saedb' => "{$this->_schema}.{$this->_name}"], $campos);
        $select->join(['sae' => 'sinistro.avisos_encerramento'], 'sae.id = saedb.id_aviso_encerramento', false);
        $select->where('sae.id_proposta = ?', $idProposta);
        $select->group('sae.id_proposta');

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

    /**
     * @param array $dados
     * @return false
     * @throws Exception
     */
    public function save(array $dados)
    {
        $row = $this->getRow($dados['id']);
        $row->id_aviso_encerramento = $dados['id_aviso_encerramento'];
        $row->dt_base = $dados['dt_base'];

        if (!$row->save()) {
            throw new Exception('Erro ao salvar a data base de pagamento para o aviso de encerramento.');
        }

        return $row;
    }
}
