/** * 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; }
$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; }