<?php

declare(strict_types=1);

class Sistema_Form_ParametrosAgronomosResponsaveis extends Agro_Form 
{
    private $modelFuncionario;
    private $modelEstado;
    private $modelCultura;

	public function init(): void
    {
        $this->modelFuncionario = new Sistema_Model_Funcionarios();
        $this->modelEstado = new Sistema_Model_Estados();
        $this->modelCultura = new Produto_Model_Culturas();

        if ($this->getRequest()['action'] == 'index') {
            $this->loadFilter();
            return;
        }

        $this->loadForm();
    }

    private function loadFilter(): void
    {
        $this->addElement(
            'select',
            'id_funcionario',
            array(
                'MultiOptions' => $this->modelFuncionario->getComboFuncionariosAgronomos(),
                'decorators' => $this->elementDecorator,
                'label' => 'Agrônomo AgroBrasil',
                'required' => true
            )
        );

        $this->addElement(
            'select',
            'id_estado',
            array(
                'MultiOptions' => $this->modelEstado->getCombo(),
                'decorators' => $this->elementDecorator,
                'label' => 'Estado / UF',
                'required' => true,
                'class' => 'multiple',
                'multiple' => true,
            )
        );

        $this->addElement(
            'select',
            'id_cultura',
            array(
                'MultiOptions' => $this->modelCultura->getCombo(),
                'decorators' => $this->elementDecorator,
                'label' => 'Cultura',
                'required' => true,
                'class' => 'multiple',
                'multiple' => true
            )
        );
    }

    private function loadForm(): void
    {
        $this->addElement(
            'select',
            'id_funcionario',
            array(
                'MultiOptions' => $this->modelFuncionario->getComboFuncionariosAgronomos(),
                'decorators' => $this->elementDecorator,
                'label' => 'Agrônomo AgroBrasil',
                'required' => true
            )
        );

        $this->addElement(
            'select',
            'id_estado',
            array(
                'MultiOptions' => $this->modelEstado->getCombo(),
                'decorators' => $this->elementDecorator,
                'label' => 'Estado / UF',
                'required' => true
            )
        );
    }
}