<?php

class Sistema_Form_InformacoesBancarias extends Agro_Form {
	
	public function init() {
		$this->id = $this->createElement('hidden', 'id');
		$this->id->setDecorators($this->buttonDecorator);
		$this->addElement($this->id);
		
		$this->tipo = $this->createElement('hidden', 'tipo');
		$this->tipo->setDecorators($this->buttonDecorator);
		$this->addElement($this->tipo);
		
		$this->id_corretor = $this->createElement('hidden', 'id_corretor');
		$this->id_corretor->setDecorators($this->buttonDecorator);
		$this->addElement($this->id_corretor);
		
		$this->id_empresa = $this->createElement('hidden', 'id_empresa');
		$this->id_empresa->setDecorators($this->buttonDecorator);
		$this->addElement($this->id_empresa);
		
		$Banco = new Sistema_Model_Bancos();
		$this->id_banco = $this->createElement('select', 'id_banco');
		$this->id_banco->setDecorators($this->elementDecorator);
		$this->id_banco->addMultiOptions($Banco->fetchPairs('id', 'ds_nome_banco'));
		$this->id_banco->setRequired(true);
		$this->id_banco->setLabel('Banco');
		$this->addElement($this->id_banco);
		
		$this->ds_tipo_conta = $this->createElement('select', 'ds_tipo_conta');
		$this->ds_tipo_conta->setDecorators($this->elementDecorator);
		$this->ds_tipo_conta->setRequired(true);
		$this->ds_tipo_conta->addMultiOption('C', 'Conta Corrente');
		$this->ds_tipo_conta->addMultiOption('P', 'Conta Poupança');
		$this->ds_tipo_conta->setLabel('Tipo de Conta');
		$this->addElement($this->ds_tipo_conta);
		
		$this->ds_agencia = $this->createElement('text', 'ds_agencia');
		$this->ds_agencia->setDecorators($this->elementDecorator);
		$this->ds_agencia->setRequired(true);
		$this->ds_agencia->setAttrib('size', '15');
		$this->ds_agencia->setAttrib('class', 'integer');
		$this->ds_agencia->setAttrib('maxlength', '15');
		$this->ds_agencia->setLabel('Agência');
		$this->addElement($this->ds_agencia);
		
		$this->nu_digito_agencia = $this->createElement('text', 'nu_digito_agencia');
		$this->nu_digito_agencia->setDecorators($this->elementDecorator);
		$this->nu_digito_agencia->setRequired(false);
		$this->nu_digito_agencia->setAttrib('size', '2');
		$this->nu_digito_agencia->setAttrib('maxlength', '2');
		$this->nu_digito_agencia->setLabel('Dígito');
		$this->addElement($this->nu_digito_agencia);
		
		$this->ds_conta = $this->createElement('text', 'ds_conta');
		$this->ds_conta->setDecorators($this->elementDecorator);
		$this->ds_conta->setRequired(true);
		$this->ds_conta->setAttrib('size', '20');
		$this->ds_conta->setAttrib('class', 'integer');
		$this->ds_conta->setAttrib('maxlength', '20');
		$this->ds_conta->setLabel('Número da Conta');
		$this->addElement($this->ds_conta);

		$this->nu_digito_conta = $this->createElement('text', 'nu_digito_conta');
		$this->nu_digito_conta->setDecorators($this->elementDecorator);
		$this->nu_digito_conta->setRequired(false);
		$this->nu_digito_conta->setAttrib('size', '2');
		$this->nu_digito_conta->setAttrib('maxlength', '2');
		$this->nu_digito_conta->setLabel('Dígito');
		$this->addElement($this->nu_digito_conta);
		
		$this->ds_observacao = $this->createElement('textarea', 'ds_observacao');
		$this->ds_observacao->setDecorators($this->elementDecorator);
		$this->ds_observacao->setAttrib('style', 'width:100%');
		$this->ds_observacao->setAttrib('rows', '5');
		$this->ds_observacao->setLabel('Observação');
		$this->addElement($this->ds_observacao);
	}
	
	public function populate(array $values)
    {
		if (array_key_exists('id_empresa', $values)) {
            $idEmpresa = !Agro_Util::filterVariable($values['id_empresa']) ? null : (int)$values['id_empresa'];
			$this->id_empresa->setValue($idEmpresa);
			$this->tipo->setValue('E');
		} elseif (array_key_exists('id_corretor', $values)) {
			$this->tipo->setValue('C');
		}
		
		parent::populate($values);
	}
}