/** * Construtor de classe * Cria o formulário de material consumo */ function __construct() { parent::__construct(); parent::setDatabase("app"); parent::setActiveRecord("MaterialConsumoDerivado"); parent::setDefaultOrder("id", "asc"); // Cria o formulário $this->form = new TQuickForm('form_MaterialConsumo'); $this->form->class = 'tform'; // CSS class $this->form->setFormTitle('Material de consumo (novos ou necessidade extraordinária) a ser incluído na Proposta Orçamentária de 2017'); // define the form title // Cria os campos de formulário $id = new THidden('id'); $tipo_material_consumo_id = new TDBCombo('tipo_material_consumo_id', 'app', 'TipoMaterialConsumo', 'id', 'nome', 'nome'); $tipo_material_consumo_id->addValidation('Tipo do material', new TRequiredValidator()); $change_action = new TAction(array($this, 'onChangeAction')); $tipo_material_consumo_id->setChangeAction($change_action); $descricao = new TEntry('descricao'); $justificativa = new TText('justificativa'); $justificativa->addValidation('Justificativa', new TRequiredValidator()); $quantidade = new TEntry('quantidade'); $quantidade->addValidation('Quantidade', new TRequiredValidator()); $quantidade->addValidation('Quantidade', new TNumericValidator()); $custo = new TEntry('custo'); $custo->addValidation('Custo', new TRequiredValidator()); $custo->addValidation('Custo', new TNumericValidator()); $total = new TEntry('total'); $total->setEditable(false); // Adiciona os campos $this->form->addQuickField('', $id); //$this->form->add($id); $this->form->addQuickField('Tipo de material consumo', $tipo_material_consumo_id, 480); $this->form->addQuickField('Descrição', $descricao, 480); $this->form->addQuickField('Justificativa', $justificativa, 200); $justificativa->setSize(480, 100); $this->form->addQuickField('Quantidade', $quantidade, 200); $this->form->addQuickField('Previsão de custo unitário', $custo, 200); $this->form->addQuickField('Total', $total, 200); // Cria as ações do formulário $this->form->addQuickAction(_t('Save'), new TAction(array($this, 'onSave')), 'ico_save.png'); $this->form->addQuickAction(_t('New'), new TAction(array($this, 'onEdit')), 'ico_new.png'); $actionHelp = new TAction(array("PaginaAjuda", 'onHelp')); $actionHelp->setParameters(array("key" => 3)); $this->form->addQuickAction(_t('Help'), $actionHelp, 'ico_help.png'); // Cria o datagrid $this->datagrid = new TQuickGrid(); $this->datagrid->setHeight(320); // Cria as colunas do datagrid $this->datagrid->addQuickColumn('Tipo de material consumo', 'tipoMaterialConsumo->nome', 'left', 200); $this->datagrid->addQuickColumn('Descrição', 'descricao', 'left', 200); $this->datagrid->addQuickColumn('Quant.', 'quantidade', 'right', 100); $this->datagrid->addQuickColumn('Previsão de custo', 'custo', 'right', 100); $this->datagrid->addQuickColumn('Total', 'total', 'right', 100); // Cria as ações do datagrid $edit_action = new TDataGridAction(array($this, 'onEdit')); $delete_action = new TDataGridAction(array($this, 'onDelete')); // Adiciona as ações do datagrid $this->datagrid->addQuickAction(_t('Edit'), $edit_action, 'id', 'ico_edit.png'); $this->datagrid->addQuickAction(_t('Delete'), $delete_action, 'id', 'ico_delete.png'); // Cria o modelo do datagrid $this->datagrid->createModel(); // Cria a navegação de página $this->pageNavigation = new TPageNavigation(); $this->pageNavigation->setAction(new TAction(array($this, 'onReload'))); $this->pageNavigation->setWidth($this->datagrid->getWidth()); // Cria o container da página $container = TVBox::pack($this->form, $this->datagrid, $this->pageNavigation); parent::add($container); }
/** * Class constructor * Creates the page and the registration form */ function __construct() { parent::__construct(); $string = new StringsUtil(); // creates the form $this->form = new TForm('form_Atividade'); $this->form->class = 'tform'; // CSS class $this->form->style = 'width: 500px'; // add a table inside form $table = new TTable(); $table->width = '100%'; $this->form->add($table); // add a row for the form title $row = $table->addRow(); $row->class = 'tformtitle'; // CSS class $row->addCell(new TLabel('Atividade'))->colspan = 2; // busca dados do banco try { TTransaction::open('atividade'); $logado = Pessoa::retornaUsuario(); $ultimoPonto = Ponto::retornaUltimoPonto($logado->pessoa_codigo); $ponto = new Ponto($ultimoPonto); if ($ponto->hora_saida) { $action = new TAction(array('PontoFormList', 'onReload')); new TMessage('error', 'Não existe ponto com horario em aberto!', $action); } $data_padrao = $string->formatDateBR($ponto->data_ponto); $hora_padrao = Ponto::retornaHoraInicio($string->formatDate($data_padrao), $logado->pessoa_codigo); TTransaction::close(); } catch (Exception $e) { new TMessage('error', '<b>Error</b> ' . $e->getMessage()); } // create the form fields $id = new THidden('id'); $data_atividade = new TEntry('data_atividade'); $data_atividade->setMask('dd/mm/yyyy'); $data_atividade->setValue($data_padrao); $data_atividade->setEditable(FALSE); $hora_inicio = new TEntry('hora_inicio'); $hora_inicio->setEditable(FALSE); $hora_inicio->setValue($hora_padrao); $hora_fim = new THidden('hora_fim'); $hora_fim->setEditable(FALSE); $tempo_atividade = new TEntry('tempo_atividade'); $tempo_atividade->setEditable(FALSE); $qtde_horas = new TCombo('qtde_horas'); $qtde_minutos = new TCombo('qtde_minutos'); $descricao = new TText('descricao'); $colaborador_id = new THidden('colaborador_id'); $colaborador_id->setValue($logado->pessoa_codigo); $colaborador_nome = new TEntry('colaborador_nome'); $colaborador_nome->setEditable(FALSE); $colaborador_nome->setValue($logado->pessoa_nome); $tipo_atividade_id = new TDBCombo('tipo_atividade_id', 'atividade', 'TipoAtividade', 'id', 'nome', 'nome'); $sistema_id = new TDBCombo('sistema_id', 'atividade', 'Sistema', 'id', 'nome'); $ticket_id = new TCombo('ticket_id'); $criteria = new TCriteria(); $criteria->add(new TFilter("status_ticket_id", "IN", array(1, 5))); $newparam['order'] = 'id'; $newparam['direction'] = 'asc'; $criteria->setProperties($newparam); // order, offset $this->onComboTicket($criteria); $horario = explode(':', $hora_padrao); // cria combos de horas e minutos $combo_horas = array(); for ($i = 8; $i <= 18; $i++) { $combo_horas[$i] = str_pad($i, 2, 0, STR_PAD_LEFT); } $qtde_horas->addItems($combo_horas); $qtde_horas->setValue($horario[0]); $qtde_horas->setDefaultOption(FALSE); $combo_minutos = array(); for ($i = 0; $i <= 59; $i++) { $combo_minutos[$i] = str_pad($i, 2, 0, STR_PAD_LEFT); } $qtde_minutos->addItems($combo_minutos); $qtde_minutos->setValue($horario[1]); $qtde_minutos->setDefaultOption(FALSE); // set exit action for input_exit $change_action = new TAction(array($this, 'onChangeAction')); $qtde_horas->setChangeAction($change_action); $qtde_minutos->setChangeAction($change_action); $change_atividade_action = new TAction(array($this, 'onTrocaTipoAtividade')); $tipo_atividade_id->setChangeAction($change_atividade_action); $change_ticket_action = new TAction(array($this, 'onTrocaTicket')); $ticket_id->setChangeAction($change_ticket_action); // define the sizes $id->setSize(100); $data_atividade->setSize(100); $hora_inicio->setSize(100); $hora_fim->setSize(100); $qtde_horas->setSize(60); $qtde_minutos->setSize(60); $tempo_atividade->setSize(100); $descricao->setSize(300, 80); $colaborador_id->setSize(200); $tipo_atividade_id->setSize(200); $ticket_id->setSize(300); // validações $tempo_atividade->addValidation('Hora Fim', new THoraFimValidator()); $tipo_atividade_id->addValidation('Tipo de Atividade', new TRequiredValidator()); $ticket_id->addValidation('Ticket', new TRequiredValidator()); $sistema_id->addValidation('Sistema', new TRequiredValidator()); $descricao->addValidation('Descrição', new TMinLengthValidator(), array(10)); $sem_atividade = TButton::create('atividade', array($this, 'onSemAtividade'), 'Sem Registro', 'ico_add.png'); $this->form->addField($sem_atividade); // add one row for each form field $table->addRowSet(new TLabel('Colaborador:'), $colaborador_nome); $table->addRowSet(new TLabel('Data Atividade:'), array($data_atividade, $label_data = new TLabel('Data do último ponto'))); $label_data->setFontColor('#A9A9A9'); $table->addRowSet(new TLabel('Hora Inicio:'), $hora_inicio); $table->addRowSet($label_qtde_horas = new TLabel('Hora Fim:'), array($qtde_horas, $qtde_minutos, $sem_atividade)); $label_qtde_horas->setFontColor('#FF0000'); $table->addRowSet(new TLabel('Tempo Atividade:'), $tempo_atividade); $table->addRowSet($label_atividade = new TLabel('Tipo Atividade:'), $tipo_atividade_id); $label_atividade->setFontColor('#FF0000'); $table->addRowSet($label_ticket = new TLabel('Ticket:'), $ticket_id); $label_ticket->setFontColor('#FF0000'); $table->addRowSet($label_sistema = new TLabel('Sistema:'), $sistema_id); $label_sistema->setFontColor('#FF0000'); $table->addRowSet($label_descricao = new TLabel('Descrição:'), $descricao); $label_descricao->setFontColor('#FF0000'); $table->addRowSet(new TLabel(''), $id); $table->addRowSet(new TLabel(''), $colaborador_id); $table->addRowSet(new TLabel(''), $hora_fim); //esconder $this->form->setFields(array($id, $data_atividade, $hora_inicio, $qtde_horas, $qtde_minutos, $hora_fim, $tempo_atividade, $descricao, $colaborador_id, $colaborador_nome, $tipo_atividade_id, $ticket_id, $sistema_id)); // create the form actions $save_button = TButton::create('save', array($this, 'onSave'), _t('Save'), 'fa:floppy-o'); $new_button = TButton::create('new', array($this, 'onEdit'), _t('New'), 'fa:plus-square green'); $del_button = TButton::create('delete', array($this, 'onDelete'), _t('Delete'), 'fa:trash-o red fa-lg'); $list_button = TButton::create('list', array('AtividadeList', 'onClean'), _t('List'), 'fa:table blue'); $this->form->addField($save_button); $this->form->addField($new_button); $this->form->addField($del_button); $this->form->addField($list_button); $buttons_box = new THBox(); $buttons_box->add($save_button); $buttons_box->add($new_button); $buttons_box->add($del_button); $buttons_box->add($list_button); // add a row for the form action $row = $table->addRow(); $row->class = 'tformaction'; // CSS class $row->addCell($buttons_box)->colspan = 2; // TScript::create(' $( "#descricao" ).focus(); '); parent::add($this->form); }