Yii Framework Forum: Optimizar consulta api res desde el controller - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Optimizar consulta api res desde el controller Rate Topic: -----

#1 User is offline   miguel ruiz 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 07-September 17

Posted 15 September 2017 - 07:42 AM

Actualmente estoy trabando esta función para procesar los datos y dar respuesta en formato JSON con un api rest y que este su vez alimente una aplicación mobil necesito mejorar su rendimiento ya optimizado las consultyas a la base de datos pero la respuesta de datos sigue siendo muy lenta si alguien me puede dar un consejo

esta es la función


public function actionGetAllInformacion($usuario, $fechaServicio = NULL){


if(isset($fechaServicio))
$fechaServicio = date('Y-m-d H:i:s', $fechaServicio);
$anio = date("Y");
$mes = date("m");
$anioBis = $this->esBiciesto($anio);
$feb = $anioBis?"29":"28";
$meses = array(
"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio",
"Agosto","Septiembre","Octubre","Noviembre","Diciembre"
);
$mesesN = array("01","02","03","04","05","06","07","08","09","10","11","12");
$dLimit = array("31",$feb,"31","30","31","30","31","31","30","31","30","31");

$mes = intval($mes)-1;
$fIni = $anio.'-'.$mesesN[$mes].'-01 00:00:00';
$fFin = $anio.'-'.$mesesN[$mes].'-'.$dLimit[$mes].' 23:59:59';

$fIniAnte = $anio.'-'.$mesesN[$mes].'-01 00:00:00';
$fFinAnte = $anio.'-'.$mesesN[$mes].'-'.$dLimit[$mes].' 23:59:59';

$puntosActual = CalificarEntrenador::model()->getPuntosByEntrenadorXMes($usuario->id, $fIni, $fFin);
$puntosAnterior = CalificarEntrenador::model()->getPuntosByEntrenadorXMes($usuario->id, $fIniAnte, $fFinAnte);

$arMensajes = array();
$mensajes = Mensajes::model()->getMensajesServicioxEntrenador($usuario->id, $fechaServicio);
if($mensajes)
{
foreach($mensajes as $men)
{
//$mensaje = Mensajes::model()->getMensajeById($men->id_push);
//if($mensaje){
$tempM['id'] = $men->id;
$tempM['tipoMensaje'] = $men->id_tipos_mensajes;
$tempM['mensaje'] = $men->mensaje;
$tempM['estado'] = $men->estado;
$tempM['fechaEnvio'] = $men->fecha_creacion;
$arMensajes[] = $tempM;
//}
}
}
$entrenador = array(
'id'=>$usuario->id,
'nombre'=>$usuario->nombre,
'estado'=>$usuario->estado,
'fechaNacimiento'=>$usuario->fecha_nacimiento,
'fechaIngreso'=>$usuario->fecha_ingreso,
'regionalId'=>$usuario->idCiudad->idRegionales->id,
'regional'=>$usuario->idCiudad->idRegionales->nombre,
'ciudadId'=>$usuario->idCiudad->id,
'ciudad'=>$usuario->idCiudad->nombre,
'telefono'=>$usuario->telefono,
'celular'=>$usuario->celular,
'email'=>$usuario->email,
'idRol'=>$usuario->id_rol,
'rol'=>$usuario->idRol->rol,
'puntajeMesActual'=>intval($puntosActual),
'puntajeMesAnterior'=>intval($puntosAnterior),
'dispositivo'=>$usuario->dispositivo,
'totalMensajes'=>count($arMensajes),
'mensajes'=>$arMensajes,
'fechaCreacion'=>$usuario->fecha_creacion,
'fechaEdicion'=>$usuario->fecha_edicion,
'status'=>$usuario->status,
);

$arCapacitaciones = array();
$capacitaciones = Capacitaciones::model()->getCapacitacionesEntrenadorServicio($usuario->id, $fechaServicio);
if($capacitaciones)
{


foreach($capacitaciones as $capacitacion)
{
// $capacitacion = Capacitaciones::model()->findByPk($capa['idCapacitacion']);
// if($capacitacion)
// {
// Capacitacion tipo
$tempC['tipoCapacitacionId'] = $capacitacion->id_tipo_capacitacion;
$tempC['tipoCapacitacion'] = $capacitacion->idTipoCapacitacion->nombre;
$tempC['categoriaId'] = $capacitacion->idTipoCapacitacion->idCategoria->id;
$tempC['categoria'] = $capacitacion->idTipoCapacitacion->idCategoria->categoria;
$tempC['fechaCreacion'] = $capacitacion->idTipoCapacitacion->fecha_creacion;
$tempC['fechaEdicion'] = $capacitacion->idTipoCapacitacion->fecha_edicion;

// Capacitacion entrenadores
$entrenadoresCapacitacion = Capacitaciones::model()->getEntrenadoresByCapacitacion($capacitacion->id);
$arrayEntrenadores = array();
if($entrenadoresCapacitacion)
{
foreach ($entrenadoresCapacitacion as $ec) {
$entre = Usuarios::model()->getEntrenadorByPk($ec['idEntrenador']);
if($entre){
$tempE['id'] = $entre->id;
// $tempE['nombre'] = $entre->nombre;
// $tempE['fechaCreacion'] = $entre->fecha_creacion;
// $tempE['fechaEdicion'] = $entre->fecha_edicion;

$arrayEntrenadores[] = $tempE;
}

}
}

// Capacitacion canales
$capacitacionCanales = Capacitaciones::model()->getCanalesByCapacitacion($capacitacion->id);
$arrayCanales = array();
if($capacitacionCanales)
{
foreach($capacitacionCanales as $cc)
{
$canal = Canales::model()->getCanal($cc['idCanal']);
if($canal)
{
$tempCa['id'] = $canal->id;
// $tempCa['nombre'] = $canal->nombre;
// $tempCa['fechaCreacion'] = $canal->fecha_creacion;
// $tempCa['fechaEdicion'] = $canal->fecha_edicion;

$arrayCanales[] = $tempCa;
}

}
}

// Capacitacion sub-canales
$capacitacionSubcanales = Capacitaciones::model()->getSubcanalesByCapacitacion($capacitacion->id);
$arraySubcanales = array();
if($capacitacionSubcanales)
{
foreach($capacitacionSubcanales as $cs)
{
$subcanal = Subcanales::model()->getSubCanal($cs['idSubcanal']);
if($subcanal)
{
$tempS['id'] = $subcanal->id;
// $tempS['nombre'] = $subcanal->nombre;
// $tempS['canalId'] = $subcanal->idCanal->id;
// $tempS['canal'] = $subcanal->idCanal->nombre;
// $tempS['fechaCreacion'] = $subcanal->fecha_creacion;
// $tempS['fechaEdicion'] = $subcanal->fecha_edicion;

$arraySubcanales[] = $tempS;
}

}
}

// Capacitacion puntos
$capacitacionPuntos = Capacitaciones::model()->getPuntosByCapacitacion($capacitacion->id);
$arrayPuntos = array();
if($capacitacionPuntos)
{

foreach($capacitacionPuntos as $cp)
{
$puntoVenta = PuntosVenta::model()->getPuntoVenta($cp['idPunto']);
if($puntoVenta)
{
$tempV['id'] = $puntoVenta->id;
// $tempV['nombre'] = $puntoVenta->nombre;
// $tempV['regionalId'] = $puntoVenta->idCiudad->idRegionales->id;
// $tempV['regional'] = $puntoVenta->idCiudad->idRegionales->nombre;
// $tempV['ciudadId'] = $puntoVenta->id_ciudad;
// $tempV['ciudad'] = $puntoVenta->idCiudad->nombre;
// $tempV['canalId'] = $puntoVenta->idSubcanal->idCanal->id;
// $tempV['canal'] = $puntoVenta->idSubcanal->idCanal->nombre;
// $tempV['subCanalId'] = $puntoVenta->id_subcanal;
// $tempV['subCanal'] = $puntoVenta->idSubcanal->nombre;
// $tempV['dealer'] = $puntoVenta->dealer;
// $tempV['direccion'] = $puntoVenta->direccion;
// $tempV['fechaCreacion'] = $puntoVenta->fecha_creacion;
// $tempV['fechaEdicion'] = $puntoVenta->fecha_edicion;

$arrayPuntos[] = $tempV;
}

}
}

// Capacitacion evaluaciones
$capacitacionEvaluaciones = Capacitaciones::model()->getEvaluacionesByCapacitacion($capacitacion->id);
$arrayEvaluaciones = array();
if($capacitacionEvaluaciones)

{

foreach($capacitacionEvaluaciones as $ce)
{
$evaluacion = Evaluaciones::model()->getEvaluacion($ce['idEval']);
if($evaluacion)
{
/*$preguntas = EvaluacionesPreguntas::model()->getPreguntasByEvaluacion($evaluacion->id);
$arPres = array();
if($preguntas)
{
foreach($preguntas as $pre)
{
$tempPre['id'] = $pre->id;
// $tempPre['tipoId'] = $pre->idTipo->id;
// $tempPre['tipo'] = $pre->idTipo->tipo;
// $tempPre['pregunta'] = $pre->pregunta;
// $tempPre['fechaCreacion'] = $pre->fecha_creacion;
// $tempPre['fechaEdicion'] = $pre->fecha_edicion;

$arPres[] = $tempPre;
}
}*/

$tempEv['id'] = $evaluacion->id;
// $tempEv['nombre'] = $evaluacion->nombre;
// $tempEv['fechaCreacion'] = $evaluacion->fecha_creacion;
// $tempEv['fechaEdicion'] = $evaluacion->fecha_edicion;
// $tempEv['totalPreguntas'] = count($arPres);
// $tempEv['preguntas'] = $arPres;
$arrayEvaluaciones[] = $tempEv;


}



}
}

// Capacitacion temáticas
$capacitacionTematicas = Capacitaciones::model()->getTematicasByCapacitacion($capacitacion->id);
$arrayTematicas = array();
if($capacitacionTematicas)
{
foreach($capacitacionTematicas as $ct)
{
$tematica = Tematicas::model()->getTematica($ct['idTematica']);
if($tematica){
$tempT['id'] = $tematica->id;
// $tempT['nombre'] = $tematica->nombre;
// $tempT['fechaCreacion'] = $tematica->fecha_creacion;
// $tempT['fechaEdicion'] = $tematica->fecha_edicion;
$arrayTematicas[] = $tempT;
}


}
}

// Capacitacion galería
$capacitacionGaleria = Fotos::model()->getImagenesByCapacitacion($capacitacion->id);
$arrayImagenes = array();
if($capacitacionGaleria)
{
foreach($capacitacionGaleria as $imagen)
{
$entre = Usuarios::model()->getEntrenadorByPk($imagen->id_entrenador);
if($entre){

$tempGuser['id'] = $entre->id;
$tempGuser['nombre'] = $entre->nombre;
$arGuser[] = $tempGuser;

$tempG['id'] = $imagen->id;
$tempG['imagen'] = $imagen->imagen;
$tempG['fechaCreacion'] = $imagen->fecha_creacion;
$tempG['fechaEdicion'] = $imagen->fecha_edicion;
$tempG['usuarioCarga'] = $arGuser;
$arrayImagenes[] = $tempG;
}

}
}

// Capacitacion detalles
$capacitacionDetalles = Capacitaciones::model()->getDetallesByCapacitacion($capacitacion->id);
$arrayDetalles = array();
if($capacitacionDetalles)
{
foreach($capacitacionDetalles as $cd)
{
$detalle = Detalles::model()->getDetalles($cd['idDetalle']);
if($detalle)
{
$tempD['id'] = $detalle->id;
//$tempD['nombre'] = $detalle->nombre;
$arrayDetalles[] = $tempD;
}

}
}

$temp['id'] = $capacitacion->id;
$temp['nombre'] = $capacitacion->nombre;
$temp['fechaInicio'] = $capacitacion->fecha_inicio;
$temp['fechaFin'] = $capacitacion->fecha_fin;
$temp['diaCompleto']= $capacitacion->dia_completo;
$temp['regionalId'] = $capacitacion->ciudades->idRegionales->id;
$temp['regional'] = $capacitacion->ciudades->idRegionales->nombre;
$temp['ciudadId'] = $capacitacion->id_ciudades;
$temp['ciudad'] = $capacitacion->ciudades->nombre;
// $temp['detalleId'] = $capacitacion->id_detalle?$capacitacion->idDetalle->id:NULL;
// $temp['detalle'] = $capacitacion->id_detalle?$capacitacion->idDetalle->nombre:NULL;
$temp['lugar'] = $capacitacion->lugar;
$temp['direccion'] = $capacitacion->direccion;
$temp['contacto'] = $capacitacion->contacto;
$temp['estadoId'] = $capacitacion->id_estado;
$temp['estado'] = $capacitacion->idEstado->estado;
$temp['fechaCreacion'] = $capacitacion->fecha_creacion;
$temp['fechaEdicion'] = $capacitacion->fecha_edicion;
$temp['capacitacionTipo'] = $tempC;
$temp['totalCapacitacionEntrenadores'] = count($arrayEntrenadores);
$temp['capacitacionEntrenadores'] = $arrayEntrenadores;
$temp['totalCapacitacionCanales'] = count($arrayCanales);
$temp['capacitacionCanales'] = $arrayCanales;
$temp['totalCapacitacionSubcanales'] = count($arraySubcanales);
$temp['capacitacionSubcanales'] = $arraySubcanales;
$temp['totalCapacitacionPuntosVenta'] = count($arrayPuntos);
$temp['capacitacionPuntosVenta'] = $arrayPuntos;
$temp['totalCapacitacionEvaluaciones'] = count($arrayEvaluaciones);
$temp['capacitacionEvaluaciones'] = $arrayEvaluaciones;
$temp['totalCapacitacionTematicas'] = count($arrayTematicas);
$temp['capacitacionTematicas'] = $arrayTematicas;
$temp['totalCapacitacionImagenes'] = count($arrayImagenes);
$temp['capacitacionImagenes'] = $arrayImagenes;
$temp['totalCapacitacionDetalles'] = count($arrayDetalles);
$temp['capacitacionDetalles'] = $arrayDetalles;
$temp['asistentes'] = $this->actionGetAsitentes($capacitacion);
$temp['observacion'] = $capacitacion->observacion;

$arCapacitaciones[] = $temp;
//}
}
}

// Canales ----------------------------------------------- >>
$canalesAll = array();
$canales = Canales::model()->getCanalesServicio($fechaServicio);
if($canales)
{
foreach($canales as $cn)
{
$temp_c['id'] = $cn->id;
$temp_c['canal'] = $cn->nombre;
$temp_c['categoriaId'] = $cn->idCategoria->id;
$temp_c['categoria'] = $cn->idCategoria->categoria;
$temp_c['estado'] = $cn->status;
$temp_c['fechaCreacion'] = $cn->fecha_creacion;
$temp_c['fechaEdicion'] = $cn->fecha_edicion;

$canalesAll[] = $temp_c;
}
}

// Subcanales -------------------------------------------- >>
$subcanalesAll = array();
$subcanales = Subcanales::model()->getSubcanalesServicio($fechaServicio);
if($subcanales)
{
foreach($subcanales as $sb)
{
$temp_s['id'] = $sb->id;
$temp_s['subcanal'] = $sb->nombre;
$temp_s['canalId'] = $sb->id_canal;
$temp_s['canal'] = $sb->idCanal->nombre;
$temp_s['categoriaId'] = $sb->idCanal->idCategoria->id;
$temp_s['categoria'] = $sb->idCanal->idCategoria->categoria;
$temp_s['estado'] = $sb->status;
$temp_s['fechaCreacion'] = $sb->fecha_creacion;
$temp_s['fechaEdicion'] = $sb->fecha_edicion;

$subcanalesAll[] = $temp_s;
}


}

// Detalles
$detallesAll = array();
$detalles = Detalles::model()->getDetallesServicio($fechaServicio);
if($detalles)
{
foreach($detalles as $dt)
{
$temp_d['id'] = $dt->id;
$temp_d['nombre'] = $dt->nombre;
$temp_d['subcanalId'] = $dt->id_subcanal?$dt->idSubcanal->id:NULL;
$temp_d['subcanal'] = $dt->id_subcanal?$dt->idSubcanal->nombre:NULL;
$temp_d['canalId'] = $dt->idCanal->id;
$temp_d['canal'] = $dt->idCanal->nombre;
$temp_d['categoriaId'] = $dt->idCanal->idCategoria->id;
$temp_d['categoria'] = $dt->idCanal->idCategoria->categoria;
$temp_d['estado'] = $dt->status;
$temp_d['fechaCreacion'] = $dt->fecha_creacion;
$temp_d['fechaEdicion'] = $dt->fecha_edicion;

$detallesAll[] = $temp_d;
}
}

// Temática --------------------------------------------- >>
$tematicasAll = array();
$tematicas = Tematicas::model()->getTematicasServicio($fechaServicio);
if($tematicas)
{
foreach($tematicas as $tm)
{
$temp_t['id'] = $tm->id;
$temp_t['tematica'] = $tm->nombre;
$temp_t['estado'] = $tm->status;
$temp_t['fechaCreacion'] = $tm->fecha_creacion;
$temp_t['fechaEdicion'] = $tm->fecha_edicion;

$tematicasAll[] = $temp_t;
}
}

// Entrenadores ----------------------------------------- >>
/*$entrenadoresAll = array();
$entrenadores = Usuarios::model()->getEntrenadoresServicio($fechaServicio);
if($entrenadores)
{
foreach($entrenadores as $entre)
{
$fIniE = $anio.'-'.$mesesN[$mes].'-01 00:00:00';
$fFinE = $anio.'-'.$mesesN[$mes].'-'.$dLimit[$mes].' 23:59:59';

$fIniAnteE = $anio.'-'.$mesesN[$mes].'-01 00:00:00';
$fFinAnteE = $anio.'-'.$mesesN[$mes].'-'.$dLimit[$mes].' 23:59:59';

$puntosActualE = CalificarEntrenador::model()->getPuntosByEntrenadorXMes($entre->id, $fIniE, $fFinE);
$puntosAnteriorE = CalificarEntrenador::model()->getPuntosByEntrenadorXMes($entre->id, $fIniAnteE, $fFinAnteE);

$ar_mensajes = array();
$mensajes_e = UsuariosPushMensajes::model()->getMensajesXEntrenador($entre->id);
if($mensajes_e)
{
foreach($mensajes_e as $mens)
{
$mensaje_m = Mensajes::model()->getMensajeById($mens->id_push);
if($mensaje_m){
$temp_me = array();
$temp_me['id'] = $mensaje_m->id;
$temp_me['tipoMensaje'] = $mensaje_m->id_tipos_mensajes;
$temp_me['mensaje'] = $mensaje_m->mensaje;
$temp_me['fechaEnvio'] = $mensaje_m->fecha_creacion;
$ar_mensajes[] = $temp_me;
}
}
}
$temp_e['id'] = $entre->id;
$temp_e['entrenador'] = $entre->nombre;
$temp_e['estado'] = $entre->estado;
$temp_e['fechaNacimiento'] = $entre->fecha_nacimiento;
$temp_e['fechaIngreso'] = $entre->fecha_ingreso;
$temp_e['regionalId'] = $entre->idCiudad->idRegionales->id;
$temp_e['regional'] = $entre->idCiudad->idRegionales->nombre;
$temp_e['ciudadId'] = $entre->idCiudad->id;
$temp_e['ciudad'] = $entre->idCiudad->nombre;
$temp_e['telefono'] = $entre->telefono;
$temp_e['celular'] = $entre->celular;
$temp_e['email'] = $entre->email;
$temp_e['idRol'] = $entre->id_rol;
$temp_e['rol'] = $entre->idRol->rol;
$temp_e['puntajeMesActual'] = intval($puntosActualE);
$temp_e['puntajeMesAnterior'] = intval($puntosAnteriorE);
$temp_e['dispositivo'] = $entre->dispositivo;
$temp_e['totalMensajes'] = count($ar_mensajes);
$temp_e['mensajes'] = $ar_mensajes;
$temp_e['fechaCreacion'] = $entre->fecha_creacion;
$temp_e['fechaEdicion'] = $entre->fecha_edicion;
$temp_e['status'] = $entre->status;

$entrenadoresAll[] = $temp_e;
$ar_mensajes = array();

}
}*/

// Evaluaciones ----------------------------------------------- >>
$evaluacionesAll = array();
$evaluaciones = Evaluaciones::model()->getEvaluacionesServicios($fechaServicio);
if($evaluaciones)
{
foreach($evaluaciones as $eval)
{
/*$arPreguntas = array();
$preguntas = EvaluacionesPreguntas::model()->getPreguntasByEvaluacion($eval->id);
if($preguntas)
{
foreach($preguntas as $pre)
{
$temp_p['id'] = $pre->id;
$temp_p['pregunta'] = $pre->pregunta;
$temp_p['fechaCreacion'] = $pre->fecha_creacion;
$temp_p['fechaEdicion'] = $pre->fecha_edicion;

$arPreguntas[] = $temp_p;
}
}*/

$temp_ev['id'] = $eval->id;
$temp_ev['evaluacion'] = $eval->nombre;
//$temp_ev['totalPreguntas'] = count($arPreguntas);
//$temp_ev['preguntas'] = $arPreguntas;
$temp_ev['estado'] = $eval->status;
$temp_ev['fechaCreacion'] = $eval->fecha_creacion;
$temp_ev['fechaEdicion'] = $eval->fecha_edicion;

$evaluacionesAll[] = $temp_ev;
}
}

// Preguntas --------------------------------------------------- >>
$preguntasAll = array();
$preguntas = EvaluacionesPreguntas::model()->getPreguntasServicios($fechaServicio);
if($preguntas)
{
foreach($preguntas as $pre)
{
$temp_p['id'] = $pre->id;
$temp_p['pregunta'] = $pre->pregunta;
$temp_p['evaluacionId'] = $pre->idEvaluacion->id;
$temp_p['evaluacion'] = $pre->idEvaluacion->nombre;
$temp_p['tipoId'] = $pre->idTipo->id;
$temp_p['tipo']= $pre->idTipo->tipo;
$temp_p['estado'] = $pre->status;
$temp_p['fechaCreacion'] = $pre->fecha_creacion;
$temp_p['fechaEdicion'] = $pre->fecha_edicion;

$preguntasAll[] = $temp_p;
}
}

// Tipos de pregunta ------------------------------------------ >>
$tiposPreguntaAll = array();
$tipos = TipoPregunta::model()->getListaTipos();
if($tipos)
{
foreach($tipos as $tipo)
{
$temp_te['id'] = $tipo->id;
$temp_te['tipo'] = $tipo->tipo;

$tiposPreguntaAll[] = $temp_te;
}
}

// Promotores ------------------------------------------------- >>
$promotoresAll = array();
$promotores = Usuarios::model()->getPromotoresServicios($fechaServicio);
if($promotores)
{
foreach($promotores as $pro)
{
$temp_pr['id'] = $pro->id;
$temp_pr['documento'] = $pro->documento;
$temp_pr['promotor'] = $pro->nombre;
$temp_pr['estado'] = $pro->estado;
$temp_pr['fechaNacimiento'] = $pro->fecha_nacimiento;
$temp_pr['fechaIngreso'] = $pro->fecha_ingreso;
$temp_pr['regionalId'] = ($pro->id_ciudad!='')?$pro->idCiudad->idRegionales->id:null;
$temp_pr['regional'] = ($pro->id_ciudad!='')?$pro->idCiudad->idRegionales->nombre:null;
$temp_pr['ciudadId'] = ($pro->id_ciudad!='')?$pro->idCiudad->id:null;
$temp_pr['ciudad'] = ($pro->id_ciudad!='')?$pro->idCiudad->nombre:null;
$temp_pr['telefono'] = $pro->telefono;
$temp_pr['celular'] = $pro->celular;
$temp_pr['email'] = $pro->email;
$temp_pr['idRol'] = $pro->id_rol;
$temp_pr['rol'] = $pro->idRol->rol;
$temp_pr['canalId'] = ($pro->id_subcanal!='')?$pro->idSubcanal->idCanal->id:null;
$temp_pr['canal'] = ($pro->id_subcanal!='')?$pro->idSubcanal->idCanal->nombre:null;
$temp_pr['subCanalId'] = ($pro->id_subcanal!='')?$pro->idSubcanal->id:null;
$temp_pr['subCanal'] = ($pro->id_subcanal!='')?$pro->idSubcanal->nombre:null;
$temp_pr['puntoVentaId'] = ($pro->id_punto_venta!='')?$pro->idPuntoVenta->id:null;
$temp_pr['puntoVenta'] = ($pro->id_punto_venta!='')?$pro->idPuntoVenta->nombre:null;
$temp_pr['fechaCreacion'] = $pro->fecha_creacion;
$temp_pr['fechaEdicion'] = $pro->fecha_edicion;

$promotoresAll[] = $temp_pr;
}
}

// Puntos venta -------------------------------------------- >>
$puntosVentaAll = array();
$puntosVenta = PuntosVenta::model()->getPuntosVentaServicios($fechaServicio);
if($puntosVenta)
{
foreach ($puntosVenta as $pv) {
$temp_pv['id'] = $pv->id;
$temp_pv['puntoVenta'] = $pv->nombre;
$temp_pv['regionalId'] = $pv->idCiudad->idRegionales->id;
$temp_pv['regional'] = $pv->idCiudad->idRegionales->nombre;
$temp_pv['ciudadId'] = $pv->idCiudad->id;
$temp_pv['ciudad'] = $pv->idCiudad->nombre;
$temp_pv['canalId'] = $pv->idSubcanal->idCanal->id;
$temp_pv['canal'] = $pv->idSubcanal->idCanal->nombre;
$temp_pv['subCanalId'] = $pv->idSubcanal->id;
$temp_pv['subCanal'] = $pv->idSubcanal->nombre;
$temp_pv['dealer'] = $pv->dealer;
$temp_pv['direccion'] = $pv->direccion;
$temp_pv['estado'] = $pv->status;
$temp_pv['fechaCreacion'] = $pv->fecha_creacion;
$temp_pv['fechaEdicion'] = $pv->fecha_edicion;
$puntosVentaAll[] = $temp_pv;
}
}

// Regional ------------------------------------------------- >>
$regionalesAll = array();
$regionales = Regionales::model()->getRegionalesServicios($fechaServicio);
if($regionales)
{
foreach($regionales as $reg)
{
$temp_r['id'] = $reg->id;
$temp_r['regional'] = $reg->nombre;
$temp_r['estado'] = $reg->status;
$temp_r['fechaCreacion'] = $reg->fecha_creacion;
$temp_r['fechaEdicion'] = $reg->fecha_edicion;

$regionalesAll[] = $temp_r;
}
}

// Ciudades -------------------------------------------------- >>
$ciudadesAll = array();
$ciudades = Ciudades::model()->getCiudadesServicios($fechaServicio);
if($ciudades)
{
foreach($ciudades as $ciu)
{
$temp_ci['id'] = $ciu->id;
$temp_ci['ciudad'] = $ciu->nombre;
$temp_ci['regionalId'] = $ciu->idRegionales->id;
$temp_ci['regional'] = $ciu->idRegionales->nombre;
$temp_ci['estado'] = $ciu->status;
$temp_ci['fechaCreacion'] = $ciu->fecha_creacion;
$temp_ci['fechaEdicion'] = $ciu->fecha_edicion;

$ciudadesAll[] = $temp_ci;
}
}

// Cargos promotor -------------------------------------------- >>
$cargosPromotorAll = array();
$cargosPromotor = CargosPromotor::model()->getCargosPromotorServicios($fechaServicio);
if($cargosPromotor)
{
foreach ($cargosPromotor as $cp) {
$temp_cp['id'] = $cp->id;
$temp_cp['nombreCargo'] = $cp->nombre_cargo;
$temp_cp['estado'] = $cp->estado;
$cargosPromotorAll[] = $temp_cp;
}
}



$result = Array(
'success'=>true,
'status'=>'Ok',
'entrenador' =>$entrenador,
'totalCapacitaciones'=>count($arCapacitaciones),
'capacitaciones'=>$arCapacitaciones,
'totalCanales'=>count($canalesAll),
'canales'=>$canalesAll,
'totalSubcanales'=>count($subcanalesAll),
'subcanales'=>$subcanalesAll,
'totalDetalles'=>count($detallesAll),
'detalles'=>$detallesAll,
'totalTematicas'=>count($tematicasAll),
'tematicas'=>$tematicasAll,
// 'totalEntrenadores'=>count($entrenadoresAll),
// 'entrenadores'=>$entrenadoresAll,
'totalEvaluaciones'=>count($evaluacionesAll),
'evaluaciones'=>$evaluacionesAll,
'totalPreguntas'=>count($preguntasAll),
'preguntas'=>$preguntasAll,
'totalTiposPregunta'=>count($tiposPreguntaAll),
'tiposPregunta'=>$tiposPreguntaAll,
'totalPromotores'=>count($promotoresAll),
'promotores'=>$promotoresAll,
'totalCargosPromotor'=>count($cargosPromotorAll),
'cargosPromotor'=>$cargosPromotorAll,
'totalPuntosVenta'=>count($puntosVentaAll),
'puntosVenta'=>$puntosVentaAll,
'totalRegiones'=>count($regionalesAll),
'regiones'=>$regionalesAll,
'totalCiudades'=>count($ciudadesAll),
'ciudades'=>$ciudadesAll,
'fechaServicio' => strtotime('now')
);

return $result;
}
0

#2 User is offline   lagogz 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 739
  • Joined: 30-November 12
  • Location:Galiza

Posted 14 November 2017 - 03:18 AM

Buenas.

Es imposible que este código te vaya rápido. Estás recuperando una pasada de información con los correspondientes bucles.

No veo una situación en la que necesites resuperar toda esa info de una vez. Qué es lo que necesitas?

Es q es imposible que necesites toda esa info a la vez!!!

No estoy muy puesto en servicios REST, pero creo q el objetivo es trabajar recuperando datos necesarios para realizar operaciones, no recuperar toda la base de datos. Para eso están las conexiones. No sé, si alguien que sepa más de esto nos pueda arrojar algo de luz...

Un saludo.
-----------------------------------------------------------------------------------------------
------------------------------- VISITEN FOCUCHASART --------------------------------
-----------------------------------------------------------------------------------------------
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users