<?php

class Sinistro2_Model_LaudosFinaisAgronomosAgro extends Agro_Db_Table_Abstract
{
    protected $_schema = 'sinistro';
    protected $_name = 'laudos_finais_agronomos_agro';
    protected $_primary = 'id';

    public function save(array $data)
    {
        $row = $this->getRow($data['id']);

        $row->id_laudo_final = $data['id_laudo_final'];
        $row->id_funcionario = $data['id_funcionario'];
        $row->svg_assinatura = !empty($data['svg_assinatura']) ? $data['svg_assinatura'] : null;
        $id = $row->save();

        if (empty($id)) {
            throw new Exception("Erro ao vincular o agrônomo com o laudo final.");
        }

        return $id;
    }

    public function deleteByLaudoFinal($idLaudoFinal) {
		$rs = $this->_db->query("DELETE FROM {$this->_schema}.{$this->_name} WHERE id_laudo_final = {$idLaudoFinal}");

        if (!$rs) {
            throw new Exception("Erro ao excluir o arquivo da pendência.");
        }
	}

    /**
     * Retorna os agrônomos da Agrobrasil vinculados ao laudo
     * 
     * @param $idLaudoFinal
     * @return array
     */
    public function getComboByLaudoFinal($idLaudoFinal): array
    {
        $select = $this->select();
        $select->setIntegrityCheck(false);
        $select->from(['lfaa' => "{$this->_schema}.{$this->_name}"], 'id_funcionario');
        $select->join(['f' => 'sistema.funcionarios'], 'f.id = lfaa.id_funcionario', ['f.ds_nome_funcionario']);
        $select->where('lfaa.id_laudo_final = ?', $idLaudoFinal);

        $rs = $this->fetchAll($select);

        $agronomos = [];
        if (!empty($rs)) {
            foreach ($rs as $row) {
                $agronomos[$row['id_funcionario']] = $row['ds_nome_funcionario'];
            }
        }

        return $agronomos;
    } 
}
