<?php

class Seguro_Model_PropostasTaxasAgrupamento extends Agro_Db_Table_Abstract
{
    protected $_schema = 'seguro';
    protected $_name = 'propostas_taxas_agrupamento';
    protected $_primary = array('id_proposta', 'id_taxa_agrupamento');

    public function save($dados)
    {
        $row = !empty($dados['id_proposta']) ? $this->getByProposta($dados['id_proposta']) : $this->getRow($dados['id']);
        $row = !empty($row) ? $row : $this->createRow();

        $row->id_proposta = $dados['id_proposta'] ?? $row->id_proposta;
        $row->id_taxa_agrupamento = $dados['id_taxa_agrupamento'] ?? $row->id_taxa_agrupamento;

        return $row->save();
    }

    public function getByProposta(int $idProposta)
    {
        $select = $this->select()->setIntegrityCheck(false);
        $select->from(['pta' => "{$this->_schema}.{$this->_name}"], '*');
        $select->join(['ta' => "comercializacao.taxas_agrupamento"], 'ta.id = pta.id_taxa_agrupamento', '*');
        $select->where('pta.id_proposta = ?', $idProposta);

        return $this->fetchRow($select);
    }

    public function getTaxaAgrupamento(int $idProposta)
    {
        $select = $this->select()->setIntegrityCheck(false);
        $select->from(['pta' => "{$this->_schema}.{$this->_name}"], '*');
        $select->join(['ta' => "comercializacao.taxas_agrupamento"], 'ta.id = pta.id_taxa_agrupamento', '*');
        $select->where('pta.id_proposta = ?', $idProposta);

        return $this->fetchRow($select);
    }

    public function deleteByproposta(int $idProposta)
    {
        $this->_db->query("delete from seguro.propostas_taxas_agrupamento where id_proposta = {$idProposta}");
    }
}
