/**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     $data = Input::all();
     if ($data['control'] == 1) {
         $unidadmarcador = new UnidadMarcador();
         $unidadmarcador->id_marcador = $data['id_marcador'];
         $unidadmarcador->id_unidad = $data['id_unidad'];
         $unidadmarcador->id_usuario = Auth::user()->id;
         $unidadmarcador->save();
     } else {
         if (empty($data['automatico'])) {
             $data['automatico'] = 0;
             $data['registros'] = 0;
         }
         $configuracion = new Configuracion();
         $configuracion->id_usuario = Auth::user()->id;
         $configuracion->automatico = $data['automatico'];
         $configuracion->cantidad_registros = '0';
         //$data['registros'];
         $configuracion->save();
         $id = Configuracion::all()->last()->id;
         if ($data['automatico'] == 1) {
             foreach (Marcador::all() as $marcador) {
                 $detalleconfiguracion = new DetalleConfiguracion();
                 $detalleconfiguracion->id_configuracion = $id;
                 $detalleconfiguracion->id_marcador = $marcador->id;
                 $detalleconfiguracion->id_unidad = UnidadMarcador::where('id_marcador', $marcador->id)->get()->last()->id_unidad;
                 $detalleconfiguracion->save();
             }
             $i = 0;
             for ($x = 1; $x < 38; $x++) {
                 foreach (Unidad::all() as $unidad) {
                     $suma = 0;
                     $mediana = 0;
                     $cantidad = 0;
                     foreach (Marcador::all() as $marcador) {
                         //Sentencia para obtener la suma de los valores de los marcadores correspondientes de cada semana y unidad
                         $suma = DB::table('valores_marcadores')->select(DB::raw('sum(valor) as val'))->where('id_marcador', $marcador->id)->where('semana', $x)->where('id_unidad', $unidad->id)->get();
                         //Sentencia para obtener la cantidad de los marcadores correspondientes de cada semana y unidad
                         $cantidad = DB::table('valores_marcadores')->select(DB::raw('count(id) as cant'))->where('id_marcador', $marcador->id)->where('semana', $x)->where('id_unidad', $unidad->id)->get();
                         //Si la suma tiene un valor se hace la operacion para la mediana
                         if ($suma[0]->val) {
                             $mediana = $suma[0]->val / $cantidad[0]->cant;
                         } else {
                             $mediana = 0;
                         }
                         $datos[$i]['semana'] = $x;
                         $datos[$i]['marcador'] = $marcador->id;
                         $datos[$i]['unidad'] = $unidad->id;
                         $datos[$i]['mediana'] = number_format($mediana, 2, '.', '');
                         $i++;
                     }
                 }
             }
             $medianamarcador = new MedianaMarcadorAuto();
             $medianamarcador->AlmacenarData($datos);
         }
     }
     //print_r($datos);
     return Redirect::route('datos.configuracion.index');
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
     //Se almacena en la variable data los valores de los campos recibidos del formularios
     $data = Input::all();
     //Se busca la enfermedad por el id recibido para poder editarla
     $enfermedad = Enfermedad::find($id);
     //Se coloca los valores recibidos del fomrulario para almacenarlo en cada campo correspondiente
     $enfermedad->descripcion = $data['descripcion'];
     $enfermedad->mensaje_positivo = $data['mensaje_positivo'];
     $enfermedad->mensaje_negativo = $data['mensaje_negativo'];
     $enfermedad->status = $data['status'];
     $enfermedad->save();
     //Ciclo que recorre los marcadores con los valores recibidos del formulario
     foreach (Marcador::all() as $marcador) {
         if ($marcador->trimestre_marcador == 3) {
             $sw = 0;
             $condicion = CondicionEnfermedad::where('id_enfermedad', $id)->where('id_marcador', $marcador->id)->where('trimestre_marcador', '1')->first();
             if ($data['marcador_' . $marcador->id . '_1'] == '' && !empty($condicion)) {
                 CondicionEnfermedad::destroy($condicion->id);
             } elseif ($data['marcador_' . $marcador->id . '_1'] != '' && !empty($condicion)) {
                 $condicion = CondicionEnfermedad::find($condicion->id);
                 $sw = 1;
             } elseif ($data['marcador_' . $marcador->id . '_1'] != '' && empty($condicion)) {
                 $condicion = new CondicionEnfermedad();
                 $sw = 1;
             }
             if ($sw == 1) {
                 $condicion->id_enfermedad = $id;
                 $condicion->id_marcador = $marcador->id;
                 $condicion->trimestre_marcador = '1';
                 $condicion->valor_condicion = $data['marcador_' . $marcador->id . '_1'];
                 $condicion->limite_superior = $data['limite_superior_' . $marcador->id . '_1'];
                 $condicion->limite_inferior = $data['limite_inferior_' . $marcador->id . '_1'];
                 $condicion->id_user_updated = Auth::user()->id;
                 $condicion->save();
             }
             $marcador->trimestre_marcador = '2';
         }
         $sw = 0;
         //Variable que almacena el objeto de la condicion perteneciente a esa enfermedad y ese marcador
         $condicion = CondicionEnfermedad::where('id_enfermedad', $id)->where('id_marcador', $marcador->id)->where('trimestre_marcador', $marcador->trimestre_marcador)->first();
         //Si el valor recibido del formulario viene en blanco y la condicion exista en la base de datos se procede a editar el valor
         if ($data['marcador_' . $marcador->id . ''] == '' && !empty($condicion)) {
             CondicionEnfermedad::destroy($condicion->id);
         } elseif ($data['marcador_' . $marcador->id . ''] != '' && !empty($condicion)) {
             $condicion = CondicionEnfermedad::find($condicion->id);
             $sw = 1;
         } elseif ($data['marcador_' . $marcador->id . ''] != '' && empty($condicion)) {
             $condicion = new CondicionEnfermedad();
             $sw = 1;
         }
         if ($sw == 1) {
             $condicion->id_enfermedad = $id;
             $condicion->id_marcador = $marcador->id;
             $condicion->trimestre_marcador = $marcador->trimestre_marcador;
             $condicion->valor_condicion = $data['marcador_' . $marcador->id . ''];
             $condicion->limite_superior = $data['limite_superior_' . $marcador->id . ''];
             $condicion->limite_inferior = $data['limite_inferior_' . $marcador->id . ''];
             $condicion->id_user_updated = Auth::user()->id;
             $condicion->save();
         }
     }
     //Se retorna a la vista
     return Redirect::route('datos.condiciones.index');
 }
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function edit($id)
 {
     $paciente = new Paciente();
     $cita = Cita::find($id);
     $institucion = Institucion::find($cita->id_institucion);
     //Decision para saber si se encontro la institucion perteneciente a la citas
     if (empty($institucion)) {
         $form['institucion'] = new Institucion();
     } else {
         $form['institucion'] = $institucion;
     }
     $datos = $paciente->datos_pacientes(0);
     $dato_paciente = $paciente->datos_pacientes($cita->id_paciente);
     $form['datos'] = array('route' => array('datos.citas.update', $id), 'method' => 'PATCH');
     $form['label'] = 'Editar';
     $form['citas'] = $cita;
     $marcadorcita = new MarcadorCita();
     //Ciclo que recorre todos los marcadores y los busca para devolver los datos correspondientes
     foreach (Marcador::all() as $marcador) {
         if ($marcador->trimestre_marcador == '3') {
             $form['1_marcador_' . $marcador->id . ''] = $marcadorcita->obtenerMarcador($marcador->id, $id);
             $marcador->trimestre_marcador = '2';
         }
         $form['' . $marcador->trimestre_marcador . '_marcador_' . $marcador->id . ''] = $marcadorcita->obtenerMarcador($marcador->id, $id);
     }
     $form['marcador_cita'] = $marcadorcita;
     return View::make('datos/citas/list-edit-form')->with('pacientes', $datos)->with('datos', $dato_paciente)->with('form', $form);
 }