/** * Store a newly created resource in storage. * POST /lista/horario_tipo * * @return Response */ public function postHorariotipo() { //si la peticion es ajax if (Request::ajax()) { $horarioTipo = HorarioTipo::get(Input::all()); return Response::json(array('rst' => 1, 'datos' => $horarioTipo)); } }
<?php /** @var HorarioTipoController $this */ /** @var HorarioTipo $model */ $this->breadcrumbs = array('Horario Tipos'); $this->menu = array(array('label' => Yii::t('AweCrud.app', 'Create') . ' ' . HorarioTipo::label(), 'icon' => 'plus', 'url' => array('create')), array('label' => Yii::t('AweCrud.app', 'Manage'), 'icon' => 'list-alt', 'url' => array('admin'))); ?> <fieldset> <legend> <?php echo Yii::t('AweCrud.app', 'List'); ?> <?php echo HorarioTipo::label(2); ?> </legend> <?php $this->widget('bootstrap.widgets.TbListView', array('dataProvider' => $dataProvider, 'itemView' => '_view')); ?> </fieldset>
<?php /** @var HorarioTipoController $this */ /** @var HorarioTipo $model */ $this->breadcrumbs = array('Horario Tipos' => array('index'), $model->id); $this->header = '<i class="aweso-info-sign aweso-2x"></i> ' . Yii::t('AweCrud.app', 'View') . ' ' . HorarioTipo::label() . ' ' . CHtml::encode($model); $this->menu = array(array('label' => Yii::t('AweCrud.app', 'Manage'), 'icon' => 'list-alt', 'url' => array('admin'))); ?> <fieldset> <div class="row-fluid"> <div class="span5"> <!-- widget button --> <div class="widget border-cyan" id="widget-button"> <!-- widget header --> <div class="widget-header bg-cyan"> <!-- widget title --> <h4 class="widget-title"><i class="aweso-info"></i> Informacion General</h4> <!-- widget action, you can also use btn, btn-group, nav-tabs or nav-pills (also support dropdown). enjoy! --> <div class="widget-action"> <button data-toggle="collapse" data-collapse="#widget-button" class="btn"> <i class="aweso-chevron-up color-cyan" data-toggle-icon="aweso-chevron-down aweso-chevron-up"></i> </button> </div> </div><!-- /widget header --> <!-- widget content --> <div class="widget-content bg-white"> <?php $this->widget('bootstrap.widgets.TbDetailView', array('data' => $model, 'attributes' => array('nombre', 'estado')));
/** @var HorarioTipoController $this */ /** @var HorarioTipo $model */ /** @var AweActiveForm $form */ $form = $this->beginWidget('ext.AweCrud.components.AweActiveForm', array('id' => 'horario-tipo-form', 'type' => 'horizontal', 'enableAjaxValidation' => true, 'clientOptions' => array('validateOnSubmit' => false, 'validateOnChange' => true), 'enableClientValidation' => false)); ?> <div class="row-fluid"> <div class="span12"> <!-- widget button --> <div class="widget border-cyan" id="widget-button"> <!-- widget header --> <div class="widget-header bg-cyan"> <!-- widget title --> <h4 class="widget-title"><i class="aweso-user"></i> <?php echo Yii::t('AweCrud.app', $model->isNewRecord ? 'Create' : 'Update') . ' ' . HorarioTipo::label(); ?> </h4> <!-- widget action, you can also use btn, btn-group, nav-tabs or nav-pills (also support dropdown). enjoy! --> <div class="widget-action"> <button data-toggle="collapse" data-collapse="#widget-button" class="btn"> <i class="aweso-chevron-up color-cyan" data-toggle-icon="aweso-chevron-down aweso-chevron-up"></i> </button> </div> </div><!-- /widget header --> <div class="widget-content form bg-white"> <p class="note"> <?php echo Yii::t('AweCrud.app', 'Fields with');
<div class="controls"> <?php // echo $form->textField($model, 'nombre', array('maxlength' => 64)) ?> <?php // echo $form->error($model, 'nombre') ?> </div> </div>--> <?php echo $form->textFieldRow($model, 'nombre', array('maxlength' => 45)); ?> <?php echo $form->dropDownListRow($model, 'horario_tipo_id', array('' => ' -- Seleccione -- ') + CHtml::listData(HorarioTipo::model()->findAll(), 'id', Horario::representingColumn()), array('placeholder' => null)); ?> <?php echo $form->timepickerRow($model, 'hora_inicio_jornada', array('options' => array('showMeridian' => false, 'defaultTime' => false, 'noAppend' => true), 'htmlOptions' => array('class' => 'span6'))); ?> <?php echo $form->timepickerRow($model, 'hora_inicio_reseso', array('options' => array('showMeridian' => false, 'defaultTime' => false, 'noAppend' => true), 'htmlOptions' => array('class' => 'span6'))); ?> <?php echo $form->timepickerRow($model, 'hora_fin_reseso', array('options' => array('showMeridian' => false, 'defaultTime' => false, 'noAppend' => true), 'htmlOptions' => array('class' => 'span6'))); ?> <?php echo $form->timepickerRow($model, 'hora_fin_jornada', array('options' => array('showMeridian' => false, 'defaultTime' => false, 'noAppend' => true), 'htmlOptions' => array('class' => 'span6'))); ?> <?php echo $form->textAreaRow($model, 'Descripcion', array('rows' => 3, 'cols' => 50));
/** * Recepciona datos de Bandeja Controller * * @return type */ public function postRecepccion() { $data = array(); $valida = array(); $dataOfficetrack = Input::all(); $dataGestion = Input::all(); $dataGestionPendiente = Input::all(); if (trim($dataGestion["fecha_agenda"]) != '' and trim($dataGestion['dia_id']) != '' and $dataGestion['dia_id'] != date("N", strtotime(date($dataGestion["fecha_agenda"])))) { $exc['code'] = '0000'; $exc['file'] = 'BandejaController.php'; $exc['line'] = '26'; $exc['message'] = $dataGestion['codactu'] . ', No cuadran dias =>' + $dataGestion['dia_id'] . ' == ' . date("N", strtotime(date($dataGestion["fecha_agenda"]))); $exc['trace'] = $dataGestion['dia_id'] . "|" . $dataGestion['fecha_agenda'] . "|" . $dataGestion['estado_id'] . "|" . $dataGestion['submotivo_id'] . "|" . $dataGestion['motivo_id'] . "|" . $dataGestion['quiebre_id'] . "|" . $dataGestion['actividad_id']; $this->_errorController->saveError($exc); return Response::json(array('rst' => 2, 'msj' => 'Ocurrio una interrupción en el registro de la información.', 'codactu' => $dataGestion['codactu'])); /* $dataGestion['dia_id'].' == '.date("N",strtotime(date($dataGestion["fecha_agenda"]))) */ exit(0); } /** * Validacion Técnico en un solo horario y fecha * * Datos requeridos: * tecnico:12 * horario_id:19 * dia_id:5 * fecha_agenda:2015-05-08 * estado_agendamiento: 1-1 */ $tecAsignadoBool = false; $resultAsignado = array(); if ($dataGestion["estado_agendamiento"] == '1-1') { //No validar para tecnico NINGUNO $tecArray = DB::table('tecnicos')->where('id', '=', $dataGestion["tecnico"])->where('estado', '=', '1')->select('ninguno')->get(); if (isset($tecArray[0]) and $tecArray[0]->ninguno == 0) { $dataValidaCupo = new stdClass(); $dataValidaCupo->tecnico_id = $dataGestion["tecnico"]; $dataValidaCupo->horario_id = $dataGestion["horario_id"]; $dataValidaCupo->dia_id = $dataGestion["dia_id"]; $dataValidaCupo->fecha_agenda = $dataGestion["fecha_agenda"]; $asignado = GestionMovimiento::getTecnicoHorario($dataValidaCupo); if (is_array($asignado) and count($asignado["asignado"]) > 0) { $ordenAgenda = $asignado["asignado"][0]; $tecAsignadoBool = true; $resultAsignado = array('rst' => 2, 'msj' => 'El técnico seleccionado ya tiene una orden ' . 'agendada para el horario asignado', 'codactu' => $ordenAgenda->codactu); } //Respuesta tecnico con agenda asignada if ($tecAsignadoBool) { return $resultAsignado; exit; } } } /** * Para estados: Cancelado y Pendiente, evaluar si * la orden está asignada a un técnico y dejarla * sin efecto. 2015-06-25 * * Obtener ultimo movimiento antes de grabar la gestion */ $getOtoff = ""; if ($dataGestion["estado"] == 5 or $dataGestion["estado"] == 7) { if (isset($dataGestion["gestion_id"]) and $dataGestion["gestion_id"] > 0) { $ultimov = DB::table('ultimos_movimientos')->where('gestion_id', $dataGestion["gestion_id"])->first(); $ultimov = Helpers::stdToArray($ultimov); /** * Valida si la orden tiene: * - horario * - dia * - celula * - tecnico */ if ($ultimov["horario_id"] > 0 and $ultimov["dia_id"] > 0 and $ultimov["celula_id"] > 0 and $ultimov["tecnico_id"] > 0) { $ultimov["estado"] = ""; $ultimov["actividad"] = ""; $ultimov["duration"] = 1; $ultimov["quiebre"] = ""; $ultimov["eecc_final"] = ""; $ultimov["cr_observacion"] = ""; $ultimov["carnet"] = ""; $ultimov["velocidad"] = ""; $ultimov["paquete"] = ""; $ultimov['fecha_agenda'] = ""; $ultimov['hora_agenda'] = ""; $ultimov["estado_agendamiento"] = "1-1"; $ultimov["coordinado2"] = "0"; //Envio a OT $savedata["otdata"] = $ultimov; $rot = Helpers::ruta('officetrack/enviartarea', 'POST', $savedata, false); //Respuesta OT //$getOtoff = $rot->officetrack; } } } $getOtoff = ""; DB::beginTransaction(); $rgm2['sql'] = ''; $rgm2['estofic'] = ''; if (isset($dataGestion["gestion_id"]) and $dataGestion["gestion_id"] > 0 and $dataGestion["estado_officetrack"] == 0) { $ultimov = DB::table('ultimos_movimientos')->where('gestion_id', $dataGestion["gestion_id"])->first(); $ultimov = Helpers::stdToArray($ultimov); $sql = " SELECT ct.officetrack\n FROM tecnicos t\n INNER JOIN celula_tecnico ct ON t.id=ct.tecnico_id\n WHERE ct.tecnico_id='" . $ultimov["tecnico_id"] . "'\n AND ct.celula_id='" . $ultimov["celula_id"] . "'\n AND ct.estado=1"; $tecnicoinfo = DB::select($sql); $tecnicoinfo = Helpers::stdToArray($tecnicoinfo); if (count($tecnicoinfo) > 0) { $rgm2['estofic'] = $tecnicoinfo[0]['officetrack']; } $rgm2['sql'] = $sql; /** * Valida si la orden tiene: * - horario * - dia * - celula * - tecnico */ if ($ultimov["horario_id"] > 0 and $ultimov["dia_id"] > 0 and $ultimov["celula_id"] > 0 and $ultimov["tecnico_id"] > 0 and $rgm2['estofic'] == 1) { $ultimov["estado"] = ""; $ultimov["actividad"] = ""; $ultimov["duration"] = 1; $ultimov["quiebre"] = ""; $ultimov["eecc_final"] = ""; $ultimov["cr_observacion"] = ""; $ultimov["carnet"] = ""; $ultimov["velocidad"] = ""; $ultimov["paquete"] = ""; $ultimov['fecha_agenda'] = ""; $ultimov['hora_agenda'] = ""; $ultimov["estado_agendamiento"] = "0-0"; $ultimov["coordinado2"] = "0"; //Envio a OT $savedata["otdata"] = $ultimov; $rot = Helpers::ruta('officetrack/enviartarea', 'POST', $savedata, false); //Registrar Pendiente $dataGestionPendiente['estado_agendamiento'] = '0-0'; $dataGestionPendiente['motivo'] = '2'; $dataGestionPendiente['submotivo'] = '18'; $dataGestionPendiente['estado'] = '7'; $dataGestionPendiente['horario_id'] = ''; $dataGestionPendiente['dia_id'] = ''; $dataGestionPendiente['fecha_agenda'] = '7'; $dataGestionPendiente['tecnico'] = ''; $dataGestionPendiente['usuario_sistema'] = 'sistema'; //697 $rgm = Helpers::ruta('gestion_movimiento/crear', 'POST', $dataGestionPendiente, false); //Respuesta OT //$getOtoff = $rot->officetrack; } } $rgm = Helpers::ruta('gestion_movimiento/crear', 'POST', $dataGestion, false); $rgm = Helpers::stdToArray($rgm); //$rgm["sql"]=$rgm2["sql"]; $rgm['estofic'] = $rgm2['estofic']; //Registra o actualiza XY del cliente $dataXyCliente = array('codigo' => $dataGestion['inscripcion'], 'nombre' => $dataGestion['nombre_cliente_critico'], 'coord_x' => $dataGestion['x'], 'coord_y' => $dataGestion['y'], 'direccion' => $dataGestion['direccion_instalacion'], 'estado' => 1); if ($dataGestion["cliente_xy_insert"] == 1) { $query = DB::table('clientes')->insert($dataXyCliente); } else { $query = DB::table('clientes')->where('codigo', $dataGestion['inscripcion'])->update($dataXyCliente); } $rvalida = "0"; if (Input::get('tecnico') and Input::get('tecnico') != '') { $valida = array(); //Indica si cumple con el envio a officetrack acitividad + quiebre $valida["actividad_id"] = $dataOfficetrack["actividad_id"]; $valida["quiebre_id"] = $dataOfficetrack["quiebre_id"]; //El estado del tecnico de officetrack $valida["tecnico_id"] = $dataOfficetrack["tecnico"]; $valida["celula_id"] = $dataOfficetrack["celula"]; //El estado de Agendamiento para officetrack $valida["motivo_id"] = $dataOfficetrack["motivo"]; $valida["submotivo_id"] = $dataOfficetrack["submotivo"]; $valida["estado_id"] = $dataOfficetrack["estado"]; //El evento indica si anteriormente ya se realizó una transacción OT $valida["transmision"] = $dataOfficetrack["transmision"]; $rvalida = Helpers::ruta('officetrack/validar', 'POST', $valida, false); } // true indica que se enviara a officetrack $dataGestion['officetrack_envio'] = $rvalida; if ($rvalida == "1" and $rgm['rst'] == "1") { $dataOfficetrack['gestion_id'] = $rgm['gestion_id']; /*if ( !isset($dataOfficetrack['id_gestion']) ) { $idGestion=Gestion::getGenerarID(); $dataOfficetrack['gestion_id']=$idGestion; $dataGestion['gestion_id_officetrack']=$idGestion; }*/ $tecnico = Tecnico::find($dataOfficetrack['tecnico']); $dataOfficetrack['carnet'] = $tecnico['carnet_tmp']; $estado = Estado::find($dataOfficetrack['estado']); $dataOfficetrack['estado'] = $estado['nombre']; $horarioTipo = HorarioTipo::find($dataOfficetrack['horario_tipo']); $dataOfficetrack['duration'] = $horarioTipo['minutos']; $velocidad = array('', '', ''); if (trim($dataOfficetrack['paquete']) != '') { $velocidad = explode("|", $dataOfficetrack['paquete']); } $dataOfficetrack['velocidad'] = $velocidad[2]; $dataOfficetrack['eecc_final'] = $dataOfficetrack['empresa_id']; $dataOfficetrack['cr_observacion'] = $dataOfficetrack['observacion2']; $savedata["otdata"] = $dataOfficetrack; $rot = Helpers::ruta('officetrack/enviartarea', 'POST', $savedata, false); $rot = Helpers::stdToArray($rot); if ($rot['officetrack'] == "OK") { //registrara normalmente DB::commit(); $rgm['msj'] = 'Registro realizado correctamente con Officetrack'; $rgm['estado_agendamiento'] = $dataGestion['estado_agendamiento']; $rgm['tecnico'] = $dataGestion['tecnico']; if ($dataGestion["estado_agendamiento"] != '1-1' and $dataGestion["tecnico"] != '') { $url = "http://psiweb.ddns.net:2230/webpsi/sms_enviar_individual_ajax.php"; $tecnicoinfo = DB::table('tecnicos')->where('id', $dataGestion["tecnico"])->first(); $postData = array('enviar_sms' => 1, 'celular' => '996475583', 'iduser' => Auth::user()->id, 'mensaje' => "La actuación: " . $dataGestion['codactu'] . " ha sido eliminada, favor de sincronizar para actualizar. PSI-OFFICETRACK"); $rgm['mensaje'] = "Llego"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //Retorno $result = curl_exec($ch); curl_close($ch); } else { $rgm['mensaje'] = "No Llego :("; } return Response::json($rgm); } else { DB::rollback(); return Response::json(array('rst' => 2, 'msj' => 'No se pudo realizar el envio : ' . $rot['officetrack'] . '; Intente nuevamente el envio a officetrack', 'codactu' => $dataGestion['codactu'])); } } elseif ($rgm['rst'] == "1") { DB::commit(); $rgm['msj'] = 'Registro realizado correctamente'; return Response::json($rgm); } else { DB::rollback(); $this->_errorController->saveError($rgm['err']); return Response::json(array('rst' => 2, 'msj' => $rgm['msj'])); } /*else { // registrará directo sin officetrack $rgm = Helpers::ruta( 'gestion_movimiento/crear', 'POST', $dataGestion, false ); $rgm= Helpers::stdToArray($rgm); $rgm['msj']='Registro realizado correctamente'; return Response::json( $rgm ); }*/ }
/** * Listar registro de actividades con estado 1 * POST agenda/agendaLibre * * @return Response */ public function postLibre() { /** * Datos base para agendamiento */ $diaMes = date("d"); $diaSemana = date("N"); $ini = date("Y/n/" . $diaMes); $fechaIni = date("Y-m-d"); //Aumentandole 7 dias $fecha = new DateTime($ini); $fecha->add(new DateInterval('P7D')); $fechaFin = $fecha->format('Y-m-d'); //Cabecera $idMes = date("m"); //Mensaje de respuesta $agendaMsj = ""; /** * Restriccion: * ----------- * Agendamiento para trobas digitalizadas * en quiebres: * - DIGITALIZACION * - POST DIGIT * Solo si se encuentra el registro en dig_trobas */ $agendarOrden = true; if (Input::get('quiebre') !== null) { $ffttData = new stdClass(); $aquiebre = trim(Input::get('quiebre')); if ($aquiebre == 'DIGITALIZACION' or $aquiebre == 'POST DIGIT') { $ffttData->fftt = Input::get('fftt'); $ffttData->tipoactu = Input::get('tipoactu'); $ffttel = $this->_ffttController->getExplodefftt($ffttData); if ($ffttel["tipo"] == 'catv') { //Buscar troba digitalizada $trobadig = DB::table('geo_trobapunto AS gt')->join('dig_trobas AS dt', 'gt.id', '=', 'dt.troba_id')->where('gt.zonal', '=', 'LIM')->where('dt.fecha_fin', '!=', '0000-00-00')->where('gt.nodo', '=', $ffttel["nodo"])->where('gt.troba', '=', $ffttel["troba"])->select('gt.id', 'gt.zonal', 'gt.nodo', 'gt.troba', 'dt.fecha_inicio', 'dt.fecha_fin')->get(); //Indice [0] => existe respuesta if (isset($trobadig[0])) { $hoy = new DateTime($fechaIni); $fin = new DateTime($trobadig[0]->fecha_fin); $interval = $fin->diff($hoy); $diasDiff = (int) $interval->format('%R%a'); //Si menor a +3 dias el día base cambia if ($diasDiff < 3) { $diasDiff *= -3; $fechaIni = date("Y-m-d", strtotime($trobadig[0]->fecha_fin . " +3 day")); $ini = date("Y/n/" . substr($fechaIni, -2)); $diaSemana = date("N", strtotime($fechaIni)); $diaMes = substr($fechaIni, -2); $fechaFin = date("Y-m-d", strtotime($fechaIni . " +7 day")); $idMes = date("m", strtotime($fechaIni)); //Mostrar agenda solo si $fechaIni = hoy if ($fechaIni != date("Y-m-d")) { $agendarOrden = false; $agendaMsj = '<div class="alert alert-warning' . ' alert-dismissable"> <button type="button" class="close"' . ' data-dismiss="alert"' . ' aria-hidden="true">×</button> <h4><i class="icon fa' . ' fa-warning"></i> Agenda' . ' disponible el ' . date("d/m/Y", strtotime($fechaIni)) . '</h4></div>'; } } } else { //No se puede agendar por fecha de digitalizacion $agendarOrden = false; $agendaMsj = '<div class="alert alert-warning' . ' alert-dismissable"> <button type="button" class="close"' . ' data-dismiss="alert"' . ' aria-hidden="true">×</button> <h4><i class="icon fa' . ' fa-warning"></i> Troba no' . ' digitalizada.</h4> </div>'; } } } } $zona = Input::get('zona'); $empresa = Input::get('empresa'); $tipo = Input::get('tipo'); //1 o 2 $quiebreGrupoId = Input::get('quiebre_grupo'); $query = "SELECT \n IF(b.fecha_agenda IS NULL, \n DATE_ADD(?, \n INTERVAL IF(a.diaId < ?, 7-?+a.diaId, a.diaId-?)\n DAY), \n b.fecha_agenda\n ) fecha, \n a.*, \n IF(b.ocupado IS NULL, 0, b.ocupado) ocupado, \n a.capacidad - IF(b.ocupado IS NULL, 0, b.ocupado) libre\n FROM\n\n (SELECT \n dia_id as diaId, chd.horario_id as horarioId, d.nombre, h.horario\n 'hora', h.hora_inicio AS horaIni, h.hora_fin as horaFin,\n chd.capacidad, ch.empresa_id as empresaId, \n ch.zonal_id as zonalId, chd.estado as estado,\n ch.quiebre_grupo_id\n FROM \n capacidad_horario ch \n JOIN capacidad_horario_detalle chd \n ON chd.capacidad_horario_id=ch.id\n JOIN horarios h ON chd.horario_id=h.id\n JOIN dias d ON chd.dia_id=d.id\n WHERE ch.quiebre_grupo_id=? AND ch.empresa_id=? \n AND ch.zonal_id=? AND ch.horario_tipo_id=? and h.estado=1 \n AND chd.estado=1\n ) a\n\n LEFT JOIN\n\n (SELECT \n gd.gestion_id AS id, \n gm.fecha_agenda,q.quiebre_grupo_id,\n gm.gestion_id, gm.empresa_id, gm.zonal_id, \n gm.horario_id, gm.dia_id, COUNT(*) ocupado \n FROM gestiones_movimientos gm\n INNER JOIN gestiones_detalles gd ON gd.gestion_id=gm.gestion_id\n INNER JOIN quiebres q ON q.id=gd.quiebre_id AND q.estado=1\n INNER JOIN (\n SELECT max(g2.id) id\n FROM gestiones_movimientos g2\n GROUP BY g2.gestion_id\n ) gm2 ON gm2.id=gm.id\n WHERE gm.fecha_agenda BETWEEN ? AND ?\n AND gm.empresa_id=? \n AND gm.zonal_id=?\n AND q.quiebre_grupo_id=?\n GROUP BY\n gm.empresa_id, gm.zonal_id,\n gm.horario_id, gm.dia_id,q.quiebre_grupo_id\n ) b\n ON a.empresaId=b.empresa_id AND a.zonalId=b.zonal_id\n AND a.diaId=b.dia_id AND a.horarioId=b.horario_id\n AND a.quiebre_grupo_id=b.quiebre_grupo_id\n ORDER BY hora,fecha"; $horarios = DB::select($query, array($fechaIni, $diaSemana, $diaSemana, $diaSemana, $quiebreGrupoId, $empresa, $zona, $tipo, $fechaIni, $fechaFin, $empresa, $zona, $quiebreGrupoId)); $cantidadHorarios = Horario::where('horario_tipo_id', '=', $tipo)->where('estado', '=', 1)->get(); $cantidadMinutos = HorarioTipo::where('id', '=', $tipo)->first(); $cantidadMinutos = $cantidadMinutos->minutos; $nombreMeses = array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"); $nombreDias = array("domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado", "domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado", "domingo", "lunes", "martes", "miércoles", "jueves", "viernes"); //creando la cabecera $table = '<table id="horario" class="table table-bordered"><thead style="font-size: 15px !important;">'; $table .= '<tr><th colspan=8>' . date("Y") . ' - ' . $nombreMeses[$idMes - 1] . '</th></tr>'; $table .= '<tr><th>Hora</th>'; for ($i = 0; $i < 7; $i++) { $nuevafecha = strtotime("+{$i} day", strtotime($fechaIni)); $nombreDia = $nombreDias[$diaSemana + $i]; $numeroDia = $diaMes + $i; $table .= "<th>" . $nombreDia . "(" . date("d", $nuevafecha) . ")</th>"; } $table .= '</tr></thead><tbody>'; $numeroCeldaHora = 0; $numeroCeldaValor = 0; foreach ($cantidadHorarios as $value) { $horarioId = $value->id; $table .= '<tr><td title="' . $numeroCeldaHora . '" style="background:#49afcd">HORA</td>'; $contDias = 0; $numeroCeldaValor++; foreach ($horarios as $data) { if ($horarioId == $data->horarioId) { $fec = new DateTime($ini); $fec->add(new DateInterval('P' . $contDias . 'D')); $fechaRes = $fec->format('Y-m-d'); $nombreDia = $nombreDias[$diaSemana + $contDias]; $codigoDia = substr($fechaRes, 8, 2); $codigoDia = $codigoDia == 0 ? 7 : $codigoDia; $estado = ""; $cantLibres = (int) $data->libre; /*$libres = "Total:" . $data->capacidad . "<br>Libres:" . $cantLibres;*/ $libres = $cantLibres . "/" . $data->capacidad; $hoy = date("Y-m-d"); if ($data->estado == 0) { $estado = "background:#f0e535;color:#000"; //yellow } elseif ($data->ocupado >= $data->capacidad) { $estado = "background:#f0e535;color:#000"; } elseif ($hoy == $fechaRes) { //sumar la cantidad de hora en el intervalo $hora = new DateTime(); $hora->add(new DateInterval('PT' . $cantidadMinutos . 'M')); $hora = $hora->format('H:i:s'); if ($hora >= $data->horaFin) { $estado = "background:#f0e535;color:#000"; } //yellow } //Imprimiendo estado del horario $hora = $data->hora; //$buscar=array(" ","-"); //$reemplazar=array("",""); //$hora = str_replace($buscar,$reemplazar,$hora); $table = str_replace("HORA", $hora, $table); $table .= '<td title="' . $numeroCeldaValor . '" data-fec="' . $fechaRes . '" data-horario="' . $data->horarioId . '" data-dia="' . $data->diaId . '" data-hora="' . $data->hora . '" data-total="' . $data->capacidad . '" style="' . $estado . '">' . $libres . '</td>'; $contDias++; $numeroCeldaValor++; } } $table .= '</tr>'; $numeroCeldaHora += 8; } $table .= '</tbody></table>'; if ($agendarOrden) { return Response::json(array('rst' => 1, 'html' => $table)); } else { return Response::json(array('rst' => 1, 'html' => $agendaMsj)); } }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ public function loadModel($id, $modelClass = __CLASS__) { $model = HorarioTipo::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }