<?php

declare(strict_types=1);

class Sinistro2_Form_ParametroTipoDespesa extends Agro_Form 
{
    public $estados;

	public function init(): void
    {
        $this->estados = (new Sistema_Model_Estados())->getCombo('ds_sigla', '', false);

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

        $this->loadForm();
    }

    private function loadFilter(): void
    {
        $this->addElement(
            'text',
            'ds_parametro_tipo_despesa',
            array(
                'decorators' => $this->elementDecorator,
                'label' => 'Tipo de Despesa',
                'required' => true
		    )
        );

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

    private function loadForm(): void
    {
        $this->addElement(
            'text',
            'ds_parametro_tipo_despesa',
            array(
                'decorators' => $this->elementDecorator,
                'label' => 'Descrição',
                'required' => true
		    )
        );

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

        $this->addElement(
            'select',
            'id_tipo_despesa',
            array(
                'MultiOptions' => (new Sinistro2_Model_TipoDespesa())->getCombo(true, 'ds_tipo_despesa'),
                'decorators' => $this->elementDecorator,
                'label' => 'Tipo Despesa',
                'required' => true
            )
        );
    }
}