/**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     $validator = Validator::make(Input::all(), Companias::$p_rules);
     if ($validator->passes()) {
         $compania = Companias::create(Input::all());
         echo "Compañía guardada";
         $tratamientos = Tratamientos::all();
         foreach ($tratamientos as $tratamiento) {
             $tratamiento->precios()->attach($compania->id, array('precio' => NULL));
         }
     } else {
         return Redirect::action('CompaniasController@create')->with('message', 'Existen los siguientes errores:')->withErrors($validator->messages())->withInput();
     }
     return Redirect::action('CompaniasController@create');
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $tratamiento = Tratamientos::find($id);
     $tratamiento->activo = 0;
     $tratamiento->update();
     return Redirect::action('TratamientosController@index');
 }
 /**
  * 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 $id the ID of the model to be loaded
  * @return Tratamientos the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = Tratamientos::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
 private function getTratamientosArray($grupos, $companias, $companias_paciente)
 {
     //precios de todas las compañías para todos los tratamientos
     $preciosObj = Precios::whereIn('companias_id', array_keys($companias))->get(array('tratamientos_id', 'precio', 'companias_id'));
     $precios = array();
     $companiaEconomica = array();
     foreach ($preciosObj as $p) {
         // Crea array de precios por tratamiento y compañía
         if ($p->precio !== null) {
             $precios[$p->tratamientos_id][$p->companias_id] = $p->precio;
         }
     }
     foreach ($preciosObj as $p) {
         // Halla la compañía más económica de las del paciente
         if (in_array($p->companias_id, $companias_paciente)) {
             if (!array_key_exists($p->tratamientos_id, $companiaEconomica) || array_key_exists($p->tratamientos_id, $companiaEconomica) && $p->precio !== null && isset($precios[$p->tratamientos_id][$companiaEconomica[$p->tratamientos_id]]) && $p->precio < $precios[$p->tratamientos_id][$companiaEconomica[$p->tratamientos_id]]) {
                 $companiaEconomica[$p->tratamientos_id] = $p->companias_id;
             }
         }
     }
     $tratamientosAll = Tratamientos::orderBy('nombre')->get(array('nombre', 'id', 'grupostratamientos_id', 'tipostratamientos_id'));
     $atratamientos = array();
     foreach ($tratamientosAll as $t) {
         // No mostrar el tratamiento si no tiene precio asignado en las compañías del paciente
         if (array_key_exists($t->id, $precios)) {
             $ta = array('id' => $t->id, 'nombre' => $t->nombre, 'compania_economica' => $companiaEconomica[$t->id], 'precios' => $precios[$t->id], 'tipo' => $t->tipostratamientos_id);
             $atratamientos[$t->grupostratamientos_id][$t->id] = $ta;
         }
     }
     return $atratamientos;
 }
Example #5
0
        $archivo = fopen(storage_path() . '/l.csv', 'r');
        $grupo = "Grupo";
        $id_grupo = "X";
        while (($data = fgetcsv($archivo, 2500, ';', '"')) !== FALSE) {
            $grupo = "Grupo";
            $codigo = $data['0'];
            $nombre = $data['1'];
            $precio = $data['3'];
            $precio_1 = $data['4'];
            $precio_2 = $data['5'];
            $precio_3 = $data['6'];
            $precio_4 = $data['7'];
            $precio_5 = $data['8'];
            $precio_6 = $data['9'];
            $id_grupo = $data['10'];
            $tratamiento = new Tratamientos();
            $tratamiento->precio_base = $precio;
            $tratamiento->grupostratamientos_id = $id_grupo;
            $tratamiento->codigo = $codigo;
            $tratamiento->nombre = $nombre;
            $tratamiento->save();
            $tratamiento->companias()->attach(1, array('precio' => $precio));
            $tratamiento->companias()->attach(2, array('precio' => $precio_1));
            $tratamiento->companias()->attach(3, array('precio' => $precio_2));
            $tratamiento->companias()->attach(4, array('precio' => $precio_3));
            $tratamiento->companias()->attach(5, array('precio' => $precio_4));
            $tratamiento->companias()->attach(6, array('precio' => $precio_5));
            $tratamiento->companias()->attach(7, array('precio' => $precio_6));
        }
    });
});
 private function getTratamientosArray($grupos, $companias, $companias_paciente)
 {
     $preciosObj = Precios::whereIn('companias_id', array_keys($companias))->get(array('tratamientos_id', 'precio', 'companias_id'));
     $precios = array();
     $companiaEconomica = array();
     // Escoge el precio más barato de las dos compañías
     foreach ($preciosObj as $p) {
         if (in_array($p->companias_id, $companias_paciente)) {
             if (!array_key_exists($p->tratamientos_id, $precios) || array_key_exists($p->tratamientos_id, $precios) && $p->precio < $precios[$p->tratamientos_id]) {
                 $precios[$p->tratamientos_id][$p->companias_id] = $p->precio;
             }
             if (!array_key_exists($p->tratamientos_id, $companiaEconomica) || array_key_exists($p->tratamientos_id, $companiaEconomica) && $p->precio < $precios[$p->tratamientos_id][$companiaEconomica[$p->tratamientos_id]]) {
                 $companiaEconomica[$p->tratamientos_id] = $p->companias_id;
             }
         }
     }
     $tratamientosAll = Tratamientos::where('historiable', 1)->get(array('nombre', 'id', 'grupostratamientos_id', 'tipostratamientos_id'));
     $atratamientos = array();
     foreach ($tratamientosAll as $t) {
         // No mostrar el tratamiento si no tiene precio asignado en las compañías del paciente
         if (array_key_exists($t->id, $precios)) {
             $ta = array('id' => $t->id, 'nombre' => $t->nombre, 'compania_economica' => $companiaEconomica[$t->id], 'precios' => $precios[$t->id], 'tipo' => $t->tipostratamientos_id);
             $atratamientos[$t->grupostratamientos_id][$t->id] = $ta;
         }
     }
     return $atratamientos;
 }