<?php

class Sistema_Model_EmpresasAgronomos extends Agro_Db_Table_Abstract
{
    protected $_name = 'empresas_agronomos';
    protected $_schema = 'sistema';
    protected $_primary = 'id';

    public function deleteByEmpresa(int $idEmpresa)
    {
        $this->_db->query("DELETE FROM {$this->_schema}.{$this->_name} WHERE id_empresa = {$idEmpresa}");
    }

    public function getAgronomoByEmpresa(int $idEmpresa) : array
    {
        $select = $this->select()->setIntegrityCheck(false);
        $select->from(['sea' => "{$this->_schema}.{$this->_name}"], ['id', 'id_funcionario']);
        $select->join(
            ['sf' => 'sistema.funcionarios'],
            'sf.id = sea.id_funcionario',
            ['upper(ds_nome_funcionario) as nome_funcionario', 'ds_email']
        );
        $select->where('sea.id_empresa = ?', $idEmpresa);

        return $this->fetchAll($select)->toArray();
    }

    public function save(array $data)
    {
        $row = $this->createRow();

        $row->id_empresa = $data['id_empresa'];
        $row->id_funcionario = $data['id_funcionario'];

        return $row->save();
    }

    public function getComboEmpresasByAgronomo(int $idAgronomo)
    {
        $select = $this->select()->setIntegrityCheck(false);
        $select->from(['ea' => "{$this->_schema}.{$this->_name}"], ['id_empresa']);
        $select->join(['e' => 'sistema.empresas'], 'e.id = ea.id_empresa', ['ds_nome_fantasia']);
        $select->join(['f' => 'sistema.funcionarios'], 'f.id = ea.id_funcionario AND fl_agronomo is true', null);
        $select->where('ea.id_funcionario = ?', $idAgronomo);
        $select->order('e.ds_nome_fantasia');

		$Rs = $this->fetchAll($select);
        $options = [];
        
		if ($Rs) {
			foreach ($Rs as $row) {
				$options[$row['id_empresa']] = $row['ds_nome_fantasia'];
			}
		}

        return $options;
    }
}
