<?php

class Sinistro2_Model_ProcessosCoberturasPendencias extends Agro_Db_Table_Abstract {
    protected $_schema = 'sinistro';
    protected $_name = 'processos_coberturas_pendencias';

    public function save($dados) {
        $row = $this->createRow();
        
        $row->id_processo = $dados['id_processo'];
        $row->id_cobertura = $dados['id_cobertura'];
        $row->id_produto = $dados['id_produto'];
        $row->ds_observacao = $dados['ds_observacao'];
        return $row->save();
    }

    public function getByProcesso(int $idProcesso): array
    {
        $select = $this->select()->setIntegrityCheck(false);
        $select->from(['pcp' => "{$this->_schema}.{$this->_name}"], ['dt_criacao', 'ds_observacao']);
        $select->join(['u' => 'sistema.usuarios'], 'u.id = pcp.id_usuario_criacao', ['ds_nome_usuario']);
        $select->join(['pc' => 'produto.produtos_coberturas'], 'pc.id_produto = pcp.id_produto AND pc.id_cobertura = pcp.id_cobertura', null);
        $select->join(['tl' => 'sinistro.tipo_liquidacao'], 'tl.id = pc.id_tipo_liquidacao', ['ds_chave']);
        $select->where('id_processo = ?', $idProcesso);
        $select->order('tl.ds_chave, pcp.dt_criacao DESC');
        $rs = $this->fetchAll($select)->toArray();

        $pendencias = [];
        foreach ($rs as $registro) {
            $pendencias[$registro['ds_chave']][] = $registro;
        }

        return $pendencias;
    }
}
