/** * Guarda los servicios que presta un usuario o un operador. * * @return Response */ public function postServicioOperadores(ServiciosOperadorRepository $gestion) { $inputData = Input::get('formData'); parse_str($inputData, $formFields); $root_array1['id_usuario_op'] = session('operador_id'); $validator = Validator::make($root_array1, $this->validationRules); $serviciosBase = array(); $root_array = array(); if ($validator->fails()) { return response()->json(array('fail' => true, 'errors' => $validator->getMessageBag()->toArray())); } //obtengo los servicios ya almacenados de la bdd $ServiciosOperador = $gestion->getServiciosOperador(session('operador_id')); //Arreglo de servicios prestados que vienen del formulario foreach ($formFields as $key => $value) { //verifica si el arreglo de parametros es un catalogo if (strpos($key, 'id_catalogo_servicio') !== false) { $root_array[$key] = $value; } } //pongo en formato el arreglo que viene de la bdd $ix = 0; foreach ($ServiciosOperador as $servicioBase) { $ix = $ix + 1; $serviciosBase[$ix] = $servicioBase->id_catalogo_servicio; } $local = $root_array; $base = $serviciosBase; //es lo nuevo que viene del formulario $resultlocalbase = array_diff($local, $base); //es lo que tengo q eliminar o cabiar de estado $resultbaselocal = array_diff($base, $local); //return $resultbaselocal; //Guarda los nuevos catalogos if (count($resultlocalbase) > 0) { foreach ($resultlocalbase as $key1 => $value1) { $save_array = array(); $save_array['id_usuario_op'] = session('operador_id'); $save_array['id_catalogo_servicio'] = $value1; $Servicio = $gestion->getServiciosOperadorporIdServicio(session('operador_id'), $value1); //significa que ya existia y que hay que cambiarle el estado a 1 para volver a activarlo if (count($Servicio) > 0) { $save_array['estado_servicio'] = 1; $gestion->storeUpdate($save_array, $Servicio); } else { $gestion->storeNew($save_array); } } } //actualiza estado 0 los que ya estaba guardados if (count($resultbaselocal) > 0) { foreach ($resultbaselocal as $key1 => $value1) { $save_array = array(); $Servicio = $gestion->getServiciosOperadorporIdServicio(session('operador_id'), $value1); $save_array['estado_servicio'] = 0; $gestion->storeUpdate($save_array, $Servicio); } } $returnHTML = '/IguanaTrip/public/detalleServicios'; return response()->json(array('success' => true, 'redirectto' => $returnHTML)); }