<?php
/**
 * Copyright 2005-2017 de Solis Soluções Livres Ltda.
 *
 * Este arquivo é parte do programa Gnuteca.
 *
 * O Gnuteca é um software de propriedade da SOLIS, sendo desenvolvido
 * e mantido exclusivamente por esta empresa.
 *
 * A licença de uso está disponível mediante aquisição exclusiva junto à
 * SOLIS. A licença é concedida sem caráter de exclusividade ao licenciado.
 * Os direitos de uso são perpétuos.
 *
 * Embora os códigos fontes sejam fornecidos, o software é de propriedade
 * da SOLIS, não sendo permitido ao adquirente da licença a sua revenda,
 * empréstimo ou cessão (onerosa ou não) à terceiros. Também não é permitido,
 * a qualquer título e tempo, promover no software qualquer tipo de alienação,
 * reprodução, distribuição, divulgação, registro, licenciamento, transferência
 * ou qualquer outro ato que prejudique ou comprometa os direitos de propriedade
 * de software, o nome e a imagem da sua proprietária e do próprio software,
 * além de configurar concorrência à SOLIS.
 *
 * O licenciado, com o acesso ao código fonte do software, terá o direito de
 * promover mudanças no respectivo código. No entanto, nas situações em que ele
 * contar com o suporte oficial prestado pela SOLIS, não poderá promover mudanças
 * no código fonte, sob pena de perda do referido suporte.
 *
 * Para conhecer em detalhes o Termo de Licenciamento do Software Gnuteca
 * leia o arquivo “LICENCA.txt” disponível junto ao código deste software.
 * 
 * 
 *
 * Class Layout form
 *
 *
 *
 *
 *
 **/
class FrmExemplaryStatus extends GForm
{
    function __construct()
    {
        $this->setAllFunctions('ExemplaryStatus', null, array('exemplaryStatusId'), array('exemplaryStatusId') );
        parent::__construct();
    }


    public function mainFields()
    {
        $fields[] = new MTextField("description",                    $this->description->value,                  _M("Descrição",                       $this->module), FIELD_DESCRIPTION_SIZE);
        $fields[] = new MTextField("mask",                           $this->mask->value,                         _M("Máscara",                              $this->module), FIELD_DESCRIPTION_SIZE);
        //FIX-ME : CRIAR DOMINIO PARA ISSO.
        $fields[] = new GSelection('level',                          $this->level->value,                        _M("Nível",                             $this->module), array(1 => _M("Inicial", $this->module), 2 => _M("Transição", $this->module)), null, null, null, TRUE);
        $validators[] = new MRequiredValidator('level');

        $lbl = new MLabel(_M('Executa empréstimo', $this->module) . ':');
        $lbl->setWidth(FIELD_LABEL_SIZE);
        $executeLoan = new MRadioButtonGroup('executeLoan', null, GUtil::listYesNo(1), 'f', null, MFormControl::LAYOUT_HORIZONTAL);
        $fields[] = new GContainer('hctExecuteLoan', array($lbl, $executeLoan));

        $lbl = new MLabel(_M('Empréstimo momentâneo', $this->module) . ':');
        $lbl->setWidth(FIELD_LABEL_SIZE);
        $momentaryLoan = new MRadioButtonGroup('momentaryLoan', null, GUtil::listYesNo(1), 'f', null, MFormControl::LAYOUT_HORIZONTAL);
        $fields[] = new GContainer('hctMomentaryLoan', array($lbl, $momentaryLoan));

        $fields[] = new MTextField("daysOfMomentaryLoan", $this->daysOfMomentaryLoan->value, _M("@1 de empréstimo momentâneo", $this->module,(LOAN_MOMENTARY_PERIOD == 'H' )? 'Horas':'Dias'), FIELD_ID_SIZE);

        $lbl = new MLabel(_M('Executa reserva', $this->module) . ':');
        $lbl->setWidth(FIELD_LABEL_SIZE);
        $executeReserve = new MRadioButtonGroup('executeReserve', null, GUtil::listYesNo(1), 'f', null, MFormControl::LAYOUT_HORIZONTAL);
        $fields[] = new GContainer('hctExecuteReserve', array($lbl, $executeReserve));

        $lbl = new MLabel(_M('Executa reserva em nível inicial', $this->module) . ':');
        $lbl->setWidth(FIELD_LABEL_SIZE);
        $executeReserveInInitialLevel = new MRadioButtonGroup('executeReserveInInitialLevel', null, GUtil::listYesNo(1), 'f', null, MFormControl::LAYOUT_HORIZONTAL);
        $fields[] = new GContainer('hctExecuteReserveInInitialLevel', array($lbl, $executeReserveInInitialLevel));

        $lbl = new MLabel(_M('Atende reserva', $this->module) . ':');
        $lbl->setWidth(FIELD_LABEL_SIZE);
        $meetReserve = new MRadioButtonGroup('meetReserve', null, GUtil::listYesNo(1), 'f', null, MFormControl::LAYOUT_HORIZONTAL);
        $fields[] = new GContainer('hctMeetReserve', array($lbl, $meetReserve));

        $lbl = new MLabel(_M('É estado de reserva', $this->module) . ':');
        $lbl->setWidth(FIELD_LABEL_SIZE);
        $isReserveStatus = new MRadioButtonGroup('isReserveStatus', null, GUtil::listYesNo(1), 'f', null, MFormControl::LAYOUT_HORIZONTAL);
        $fields[] = new GContainer('hctIsReserveStatus', array($lbl, $isReserveStatus));

        $lbl = new MLabel(_M('Está em estado de baixa', $this->module) . ':');
        $lbl->setWidth(FIELD_LABEL_SIZE);
        $isLowStatus = new MRadioButtonGroup('isLowStatus', null, GUtil::listYesNo(1), 'f', null, MFormControl::LAYOUT_HORIZONTAL);
        $fields[] = new GContainer('hctIsLowStatus', array($lbl, $isLowStatus));


        $lbl = new MLabel(_M('Permite requisição de alteração de estado', $this->module) . ':');
        $lbl->setWidth(FIELD_LABEL_SIZE);
        $scheduleChangeStatusForRequest = new MRadioButtonGroup('scheduleChangeStatusForRequest', null, GUtil::listYesNo(1), 'f', null, MFormControl::LAYOUT_HORIZONTAL);
        $fields[] = new GContainer('hctScheduleChangeStatusForRequest', array($lbl, $scheduleChangeStatusForRequest));
        $fields[] = new MMultiLIneField  ("observation", $this->observation->value,  _M("Observação",   $this->module), null, FIELD_MULTILINE_ROWS_SIZE, FIELD_MULTILINE_COLS_SIZE);

        if($this->function == 'update')
        {
            $fields[] = new MHiddenField('exemplaryStatusId', MIOLO::_REQUEST('exemplaryStatusId'));
        }

        // set Search Form Fileds
        $this->setFields( $fields );
        $validators[] = new MRequiredValidator  ("description", _M("Descrição",   $this->module) );
        $this->setValidators($validators);
    }
}
?>
