BM
botões do datagrid fiquem do lado direito
Oi! Você poderia me ajudar a fazer com que os botões do datagrid fiquem do lado direito do meu código? Muito obrigado!
- <?php
- /**
- */
- class SigHorarioActual extends TPage
- {
- private $datagrid;
- private $datagrid_historial;
- private $form;
- private $form_titulo;
- public function __construct()
- {
- parent::__construct();
- // creates the form
- $this->form = new BootstrapFormBuilder('form_search_HorarioActual');
- $this->form->setFormTitle(_t('Current schedule'));
- // Get the current id_cab
- $ARRVAR_id_cabecera_actual = SigUtilitarios::cabecera_actual();
- // create the form fields
- $criteria = new TCriteria();
- $criteria->add(new TFilter('id_puesto_migratorio', '=', TSession::getValue('puesto_migratorio')));
- $periodo = new TDBCombo('id_planilla_horarios_cab', 'conn', 'CabeceraCombo', 'id_planilla_horarios_cab', '{fecha_nombre}/{ano_correspondiente}', 'actual', $criteria);
- $periodo->setDefaultOption(FALSE);
- $periodo->setValue($ARRVAR_id_cabecera_actual);
- $periodo->setChangeAction(new TAction([$this, 'cambiarValorFechas']));
- $seleccion_fechas = new TCombo('seleccion_fecha_mes');
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////CALCULAMOS LOS DIAS DEL MES PARA EL COMBO////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- $DVAR_mes_par_impar = SigUtilitarios::obtener_mes_par_impar();
- if($DVAR_mes_par_impar == 31){
- $DVAR_inicio_contador = 1;
- }else{
- $DVAR_inicio_contador = 2;
- }
- $DVAR_contador_limite_mes_actual = SigUtilitarios::obtener_dia_final_mes(idate('Y'),idate('m'));
- $Utilitario = new SigUtilitarios();
- for($DVAR_contador=$DVAR_inicio_contador;$DVAR_contador<=$DVAR_contador_limite_mes_actual;$DVAR_contador+=2) {
- $utiles = $Utilitario->obtener_dia_espanol(date("D", strtotime($DVAR_contador."-".idate('m')."-".date('Y'))));
- $fechas_mes[$DVAR_contador] = $DVAR_contador." - ".$utiles;
- }
- $seleccion_fechas->addItems($fechas_mes);
- $seleccion_fechas->setSize('70%');
- // keep the form filled during navigation with session data
- $this->form->setData( TSession::getValue('SigHorarioActual_filter_data') );
- // add the search form actions
- $btn = $this->form->addAction(_t('Find'), new TAction(array($this, 'onReload')), 'fa:search');
- $btn->class = 'btn btn-sm btn-primary';
- $btn2 = $this->form->addAction(_t('Save as PDF'), new TAction([$this, 'exportAsPDF'], ['register_state' => 'false']), 'far:file-pdf fa-fw red');
- $btn2->class = 'btn btn-sm';
- $this->form_titulo = new BootstrapFormBuilder('form_search_HorarioActualTitulo');
- $resumen_sectores = new \Adianti\Widget\Form\TText('resumen_sectores');
- $resumen_sectores->setSize(0, 0);
- $resumen_sectores->setEditable(FALSE);
- $row = $this->form_titulo->addFields( [$resumen_sectores] );
- $row->layout = ['col-sm-12'];
- // creates one datagrid
- $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
- // set group column and mask
- $this->datagrid->setGroupColumn('franja', _t('<b>Schedule</b>: ').'<i>{franja}</i>');
- // create the datagrid columns
- $id = new TDataGridColumn('id_planilla_horarios_det', 'Id', 'center', '5%');
- $franja = new TDataGridColumn('franja', 'Horario', 'center', '5%');
- $agente = new TDataGridColumn('apellido_nombre', _t('Agent'), 'left', '30%');
- $puesto = new TDataGridColumn('nombre_puesto_migratorio', _t('Immigration post'), 'left', '20%');
- $guardia = new TDataGridColumn('guardia', _t('Guard'), 'left', '2%');
- $dia = new TDataGridColumn('dia', _t('Day'), 'center', '10%');
- $agente_cobertura = new TDataGridColumn('cobertura_agente', _t('Covert agent'), 'left', '30%');
- $sector = new TDataGridColumn('sector', _t('Sector'), 'left', '2%');
- $nota = new TDataGridColumn('nota', _t('Note'), 'left', '30%');
- $temperatura = new TDataGridColumn('temperatura', 'Temperatura', 'left', '2%');
- // construtor
- // add the columns to the datagrid, with actions on column titles, passing parameters
- $this->datagrid->addColumn($franja);
- $this->datagrid->addColumn($sector);
- $this->datagrid->addColumn($agente);
- $this->datagrid->addColumn($puesto);
- $this->datagrid->addColumn($guardia);
- $this->datagrid->addColumn($dia);
- $this->datagrid->addColumn($agente_cobertura);
- $this->datagrid->addColumn($nota);
- $this->datagrid->addColumn($temperatura);
- // create datagrid action
- $action1 = new TDataGridAction([$this, 'onView'], ['id' => '{id_planilla_horarios_det}', 'static' => 1] );
- $this->datagrid->addAction($action1, 'View', 'fa:search blue');
- $action2 = new TDataGridAction([$this, 'editarHorario'], ['id'=>'{id_planilla_horarios_det}']);
- $this->datagrid->addAction($action2 ,'Edit', 'far:edit red');
- $action3 = new TDataGridAction([$this, 'onDelete'], ['key' => '{id_planilla_horarios_det}', 'cab' => '{id_planilla_horarios_cab}'] );
- $this->datagrid->addAction($action3, 'Delete', 'far:trash-alt red');
- // creates the datagrid model
- $this->datagrid->createModel();
- $panel = new TPanelGroup;
- $panel->add($this->datagrid);
- // vertical box container
- $container = new TVBox;
- $container->style = 'width: 100%';
- //$container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
- $container->add($this->form);
- $container->add($this->form_titulo);
- $container->add($panel);
- parent::add($container);
- }
- public static function cambiarValorTitulo($param){
- /* Busca los agentes disponibles en la fecha seleccionada en el combo y actualiza mediante ajax la etiqueta de cantidad */
- try
- {
- TTransaction::open('conn');
- $obj = new StdClass;
- $DVAR_cantidad_agentes = SigUtilitarios::obtener_horarios_formas($param);
- $obj->resumen_sectores = $DVAR_cantidad_agentes;
- TForm::sendData('form_search_HorarioActualTitulo', $obj);
- TTransaction::close();
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- TTransaction::rollback();
- }
- }
- /**
- * Load the data into the datagrid
- */
- public function onReload($param)
- {
- $this->datagrid->clear();
- self::cambiarValorFechas($param);
- $formulario = $this->form->getData();
- $this->form->setData($formulario);
- $DVAR_final_id_cab = (isset($param['id_planilla_horarios_cab']))?$param['id_planilla_horarios_cab']:SigUtilitarios::cabecera_actual();
- $SVAR_final_fecha = (isset($formulario->seleccion_fecha_mes))?$formulario->seleccion_fecha_mes:'';
- $ARRVAR_horario_actual = SigUtilitarios::horario_actual($DVAR_final_id_cab, $SVAR_final_fecha);
- self::cambiarValorTitulo($param, $DVAR_final_id_cab, $SVAR_final_fecha);
- foreach ($ARRVAR_horario_actual as $row){
- // add an regular object to the datagrid
- $item = new StdClass;
- $item->id_planilla_horarios_det = $row['id_planilla_horarios_det'];
- $item->franja = $row['ingreso'];
- $item->apellido_nombre = $row['nombre_agente'];
- $item->nombre_puesto_migratorio = $row['nombre_puesto_migratorio'];
- $item->dia = $row['dia'];
- $item->cobertura_agente = '';
- $item->sector = SigUtilitarios::obtener_nombre_sector($row['id_franja_horaria'], $row['sector']);
- $item->guardia = $row['guardia'];
- $item->cambio_por = $row['ingreso'];
- $item->id_franja_horaria = $row['id_franja_horaria'];
- $item->cobertura_agente = $row['agente_cobertura'];
- $item->nota = $row['nota'];
- $item->temperatura = '';
- $this->datagrid->addItem($item);
- }
- }
- /**
- * Executed when the user clicks at the view button
- */
- public function onView($param)
- {
- $window = TWindow::create(_t('History'), 0.5, 0.3);
- $ARRVAR_historial = SigUtilitarios::historial_horario($param['id']);
- // creates one datagrid
- $this->datagrid_historial = new BootstrapDatagridWrapper(new TDataGrid);
- $this->datagrid_historial->clear();
- // create the datagrid columns
- $tipo = new TDataGridColumn('tipo', _t('Kind'), 'center', '10%');
- $nombre_agente_solicitado = new TDataGridColumn('nombre_agente_solicitado', _t('Receiver'), 'center', '10%');
- $nombre_agente_solicitante = new TDataGridColumn('nombre_agente_solicitante', _t('Sender'), 'left', '30%');
- $fecha = new TDataGridColumn('fecha', _t('Date'), 'center', '10%');
- $this->datagrid_historial->addColumn($tipo);
- $this->datagrid_historial->addColumn($nombre_agente_solicitado);
- $this->datagrid_historial->addColumn($nombre_agente_solicitante);
- $this->datagrid_historial->addColumn($fecha);
- // creates the datagrid model
- $this->datagrid_historial->createModel();
- foreach ($ARRVAR_historial as $row){
- // add an regular object to the datagrid
- $item = new StdClass;
- $item->tipo = $row['tipo'];
- $item->nombre_agente_solicitado = $row['nombre_agente_solicitado'];
- $item->nombre_agente_solicitante = $row['nombre_agente_solicitante'];
- $item->fecha = date('d/m/Y H:i', strtotime($row['fecha']));
- $this->datagrid_historial->addItem($item);
- }
- $window->add($this->datagrid_historial);
- $window->show();
- }
- /**
- * shows the page
- */
- function show()
- {
- $ARRVAR_id_cabecera_actual = SigUtilitarios::cabecera_actual();
- $this->onReload(array('id_planilla_horarios_cab' => $ARRVAR_id_cabecera_actual, 'seleccion_fecha_mes' => 0));
- parent::show();
- }
- function reloadPage()
- {
- $ARRVAR_id_cabecera_actual = SigUtilitarios::cabecera_actual();
- $this->onReload(array('id_planilla_horarios_cab' => $ARRVAR_id_cabecera_actual, 'seleccion_fecha_mes' => 0));
- }
- public static function cambiarValorFechas($param){
- /* Busca las fechas mediante la seleccion del mes */
- try
- {
- TTransaction::open('conn');
- $obj = new StdClass;
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////CALCULAMOS LOS DIAS DEL MES PARA EL COMBO////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- $DVAR_mes_par_impar = SigUtilitarios::obtener_mes_par_impar_filter($param['id_planilla_horarios_cab']);
- if($DVAR_mes_par_impar == 31){
- $DVAR_inicio_contador = 1;
- }else{
- $DVAR_inicio_contador = 2;
- }
- $DVAR_datos_cabecera = SigUtilitarios::cabecera_datos($param['id_planilla_horarios_cab']);
- $DVAR_contador_limite_mes_actual = SigUtilitarios::obtener_dia_final_mes_real($DVAR_datos_cabecera['ano'],$DVAR_datos_cabecera['mes']);
- $Utilitario = new SigUtilitarios();
- for($DVAR_contador=$DVAR_inicio_contador;$DVAR_contador<=$DVAR_contador_limite_mes_actual;$DVAR_contador+=2) {
- $utiles = $Utilitario->obtener_dia_espanol(date("D", strtotime($DVAR_contador."-".$DVAR_datos_cabecera['mes']."-".$DVAR_datos_cabecera['ano'])));
- $fechas_mes[$DVAR_contador] = $DVAR_contador." - ".$utiles;
- }
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////FIN DEL CALCULO LOS DIAS DEL MES PARA EL COMBO///////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////
- $obj->seleccion_fecha_mes = $fechas_mes;
- TCombo::reload('form_search_HorarioActual', 'seleccion_fecha_mes', $fechas_mes, TRUE);
- TTransaction::close();
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- TTransaction::rollback();
- }
- }
- public static function editarHorario($param){
- try
- {
- TTransaction::open('conn');
- $form = new BootstrapFormBuilder('form_SigHorarioActual');
- $window = TWindow::create(_t('Edit schedule'), 0.5, 0.3);
- $id_ventana = $window->getID();
- $obj_planilla_det = HorariosDetalle::find($param['key']);
- // create the form fields
- $id = new TEntry('id_planilla_horarios_det');
- $id->setValue($obj_planilla_det->id_planilla_horarios_det);
- $criteria = new TCriteria();
- $criteria->add(new TFilter('id_franja_horaria', '=', $obj_planilla_det->id_franja_horaria));
- $sector = new TDBCombo('sector', 'conn', 'Sector', 'id', 'nombre', NULL, $criteria);
- $sector->setValue($obj_planilla_det->sector);
- $sector->setDefaultOption(FALSE);
- $criteria2 = new TCriteria();
- $criteria2->add(new TFilter('id_puesto_migratorio', '=', TSession::getValue('puesto_migratorio')));
- $ingreso = new TDBCombo('ingreso', 'conn', 'FranjaHoraria', 'hora_inicio', 'nombre', NULL, $criteria2);
- $ingreso->setChangeAction(new TAction(['SigHorarioActual', 'cambiarValorSector']));
- $ingreso->setDefaultOption(FALSE);
- $id_franja_horaria = new THidden('id_franja_horaria');
- $id_franja_horaria->setValue($obj_planilla_det->id_franja_horaria);
- // add the fields
- $row = $form->addFields( [new TLabel('Id')], [$id] );
- $row->layout = ['col-sm-2', 'col-sm-4'];
- $row = $form->addFields( [new TLabel(_t('Sector'))], [$sector] );
- $row->layout = ['col-sm-2', 'col-sm-4'];
- $row = $form->addFields( [new TLabel(_t('Entry'))], [$ingreso] );
- $row->layout = ['col-sm-2', 'col-sm-4'];
- $form->addFields( [$id_franja_horaria] );
- $id->setEditable(FALSE);
- $id->setSize('30%');
- $sector->setSize('70%');
- $ingreso->setSize('70%');
- $btn = $form->addAction('Guardar', new TAction(['SigHorarioActual', 'onSaveEdicionHorario'], array('window' => $id_ventana)), 'fa:floppy-o');
- $btn->class = 'btn btn-sm btn-primary';
- $window->add($form);
- $window->show();
- TTransaction::close();
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- }
- public static function cambiarValorSector($param){
- /* Busca las fechas mediante la seleccion del mes */
- try
- {
- TTransaction::open('conn');
- $object = new StdClass;
- $OBJ_franja = FranjaHoraria::where('hora_inicio', '=', $param['ingreso'])->first();
- $OBJ_sectores = Sector::where('id_franja_horaria', '=', $OBJ_franja->id)->load();
- foreach ($OBJ_sectores as $row){
- $sectores[$row->id] = $row->nombre;
- }
- $object->id_franja_horaria = $OBJ_franja->id;
- TForm::sendData('form_SigHorarioActual', $object);
- TCombo::reload('form_SigHorarioActual', 'sector', $sectores, TRUE);
- TTransaction::close();
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- TTransaction::rollback();
- }
- }
- public static function onSaveEdicionHorario($param){
- try
- {
- TTransaction::open('conn');
- if($param['sector'] == '' || $param['ingreso'] == ''){
- throw new Exception(_t('You need to complete all the fields required!'));
- }
- $OBJ_horarios_det = HorariosDetalle::find($param['id_planilla_horarios_det']);
- $OBJ_horarios_det->ingreso = $param['ingreso'];
- $OBJ_horarios_det->id_franja_horaria = $param['id_franja_horaria'];
- $OBJ_horarios_det->sector = $param['sector'];
- $OBJ_horarios_det->store();
- TTransaction::close();
- new TMessage('info', _t('Saved'));
- TWindow::closeWindow($param['window']);
- }catch (Exception $e){
- new TMessage('error', $e->getMessage());
- TTransaction::rollback();
- TWindow::closeWindow($param['window']);
- }
- }
- /**
- * Export datagrid as PDF
- */
- public function exportAsPDF($param)
- {
- try
- {
- $this->datagrid->clear();
- self::cambiarValorFechas($param);
- $formulario = $this->form->getData();
- $this->form->setData($formulario);
- $DVAR_final_id_cab = (isset($param['id_planilla_horarios_cab']))?$param['id_planilla_horarios_cab']:SigUtilitarios::cabecera_actual();
- $SVAR_final_fecha = (isset($param['seleccion_fecha_mes']))?$param['seleccion_fecha_mes']:'';
- $ARRVAR_horario_actual = SigUtilitarios::horario_actual($DVAR_final_id_cab, $SVAR_final_fecha);
- foreach ($ARRVAR_horario_actual as $row){
- // add an regular object to the datagrid
- $item = new StdClass;
- $item->id_planilla_horarios_det = $row['id_planilla_horarios_det'];
- $item->franja = $row['ingreso'];
- $item->apellido_nombre = $row['nombre_agente'];
- $item->nombre_puesto_migratorio = $row['nombre_puesto_migratorio'];
- $item->dia = $row['dia'];
- $item->cobertura_agente = '';
- $item->sector = SigUtilitarios::obtener_nombre_sector($row['id_franja_horaria'], $row['sector']);
- $item->cambio_por = $row['ingreso'];
- $item->cambio_por = $row['ingreso'];
- $item->id_franja_horaria = $row['id_franja_horaria'];
- $item->cobertura_agente = $row['agente_cobertura'];
- $item->nota = $row['nota'];
- $item->guardia = $row['guardia'];
- $item->temperatura = '';
- $this->datagrid->addItem($item);
- }
- $ARRVAR_ano_mes = SigUtilitarios::cabecera_datos($param['id_planilla_horarios_cab']);
- $SVAR_fecha_licencia = date('Y-m-d', strtotime($ARRVAR_ano_mes['ano'].'-'.$ARRVAR_ano_mes['mes'].'-'.$row['dia']));
- $ARRVAR_licencias = SigUtilitarios::agente_licencia_por_fecha($SVAR_fecha_licencia);
- $html_table_body = '';
- $html_table_head = '<center><br ><br > <b>Agentes con licencias en el dia</b> <br ><br > </center><style type="text/css">
- .tg {margin-left: auto; margin-right: auto;border-collapse:collapse;border-spacing:0;}
- .tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
- overflow:hidden;padding:10px 5px;word-break:normal;}
- .tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
- font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;}
- .tg .tg-0lax{text-align:left;vertical-align:top}
- </style>
- <table class="tg">
- <tr>
- <th>Agente</th>
- <th>Tipo de Licencia</th>
- <th>Desde</th>
- <th>Hasta</th>
- </tr>
- ';
- if(isset($ARRVAR_licencias)){
- foreach ($ARRVAR_licencias as $row2){
- $html_table_body .= '<tr>
- <td class="tg-0lax">'.$row2['nombres'].'</td>
- <td class="tg-0lax">'.$row2['tipo_licencia'].'</td>
- <td class="tg-0lax">'.date('d/m/Y', strtotime($row2['fecha_desde'])).'</td>
- <td class="tg-0lax">'.date('d/m/Y', strtotime($row2['fecha_hasta'])).'</td>
- </tr>';
- }
- }
- $html_table_food = '</table>';
- // string with HTML contents
- $html = clone $this->datagrid;
- $contents = file_get_contents('app/resources/styles-print-horario-actual.html'). '<center><b><h1 style="font-size:15px;font-weight:bold;">Planilla de Horarios del '. $row['dia']. ' de '.SigUtilitarios::obtener_mes_espanol($ARRVAR_ano_mes['mes']) . ' del '. $ARRVAR_ano_mes['ano'] .'</h1></b></center><br />' . $html->getContents().(($param['mostrar_licencias'] == 1)?($html_table_head.$html_table_body.$html_table_food):'');
- // converts the HTML template into PDF
- $options = new \Dompdf\Options();
- $options->set('isRemoteEnabled', true);
- $dompdf = new \Dompdf\Dompdf($options);
- $dompdf->loadHtml($contents);
- $dompdf->setPaper('A3', 'portrait');
- $dompdf->render();
- $file = 'app/output/datagrid-export.pdf';
- // write and open file
- file_put_contents($file, $dompdf->output());
- $window = TWindow::create('Export', 0.8, 0.8);
- $object = new TElement('object');
- $object->data = $file;
- $object->type = 'application/pdf';
- $object->style = "width: 100%; height:calc(100% - 10px)";
- $window->add($object);
- $window->show();
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- }
- /**
- * Ask before deletion
- */
- public static function onDelete($param)
- {
- // define the delete action
- $action = new TAction(array(__CLASS__, 'Delete'));
- $action->setParameters($param); // pass the key parameter ahead
- // shows a dialog to the user
- new TQuestion(AdiantiCoreTranslator::translate('Do you really want to delete ?'), $action);
- }
- public function Delete($param){
- try{
- TTransaction::open('conn');
- $OBJ_suspension_cambios = new HorariosDetalle($param['id_planilla_horarios_det']);
- $OBJ_suspension_cambios->delete();
- new TMessage('info', 'Horario eliminado', new TAction(array('SigHorarioActual', 'reloadPage')));
- TTransaction::close();
- } catch (Exception $ex) {
- new TMessage('error', $ex->getMessage());
- TTransaction::rollback();
- }
- }
- }
Use a função setActionSide: