diff --git a/app/Http/Controllers/Administracion/PerfilesController.php b/app/Http/Controllers/Administracion/PerfilesController.php new file mode 100755 index 0000000..b9774eb --- /dev/null +++ b/app/Http/Controllers/Administracion/PerfilesController.php @@ -0,0 +1,161 @@ +middleware('auth'); + } + + + public function index() + { + + + return view('administracion/perfiles'); + + } + + public function nuevoUsuario( Request $request ){ + + $datosUsuario = $request->usuario; + $datosEmpleado = $request->empleado; + + $datosUsuario['password'] = bcrypt('123456'); + + $nuevoUsuario = User::create( $datosUsuario ); + + $datosEmpleado['fk_id_users'] = $nuevoUsuario->id; + + Empleados::create( $datosEmpleado ); + + ExpirarContrasena::create([ + + 'fk_id_users' => $nuevoUsuario->id, + 'dias_expiracion' => 0, + 'ultima_actualizacion' => Carbon::now() + + ]); + + return 'Exito papuus'; + + } + + public function editarUsuario( Request $request ){ + + $datosEmpleado = $request->empleado; + + User::where('id',$request->usuario['id'])->update($request->usuario ); + + $datosEmpleado['fk_id_users'] = $request->usuario['id']; + Empleados::updateOrCreate( $datosEmpleado ) ; + + + return 'Exito papuus'; + + } + + public function eliminarUsuario( Request $request ){ + + + User::where('id',$request->id)->update([ + 'activo' => 0, + 'eliminado' => 1 + ]); + + return 'Exito'; + + } + + public function cargarListasUsuarios(Request $request){ + + + $fileContpaq = $this->convertirExcelArray($request->file('files')); + $this->generarUsuarios( $fileContpaq, $request) ; + + return 'exito!!!'; + + } + + public function convertirExcelArray($file){ + + $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx(); + $reader->setReadDataOnly(true); + $excel = $reader->load($file); + $sheet = $excel->getSheet(0); + $sheetData = $sheet->toArray(null, false, true, true); + + return $sheetData; + + } + + public function generarUsuarios($file, $request ) + { + + + + foreach ($file as $row => $val){ + + if( $row > 1 ){ + + if( !is_null($val['A']) && !is_null($val['B']) ){ + + $nuevoUsuario = User::create([ + 'name' => $val['B'], + 'fk_id_roles' => 3, + 'fk_id_grupos' => 0, + 'email' => $val['B'], + 'password' => bcrypt('123456'), + ]); + + Empleados::create([ + 'clave_contpaq' => $val['A'], + 'nombre_completo' => $val['B'], + 'fk_id_users' => $nuevoUsuario->id + ]); + + ExpirarContrasena::create([ + + 'fk_id_users' => $nuevoUsuario->id, + 'dias_expiracion' => 0, + 'ultima_actualizacion' => Carbon::now() + + ]); + + } + + + } + } + + return 'Exito'; + + } + + public function expirarContrasena( Request $request ){ + + ExpirarContrasena::where('fk_id_users',$request->id)->update(['dias_expiracion' => 0]); + + User::where('id',$request->id)->update(['password' => bcrypt('123456')]); + + } + +} diff --git a/app/Models/Perfiles.php b/app/Models/Perfiles.php new file mode 100755 index 0000000..a5705ec --- /dev/null +++ b/app/Models/Perfiles.php @@ -0,0 +1,24 @@ +id(); + $table->string('perfil'); + $table->boolean('activo')->default(1); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('perfiles'); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 4a9ae96..6b8acd2 100755 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -17,6 +17,7 @@ class DatabaseSeeder extends Seeder UsersTableSeeder::class, RolesTableSeeder::class, EmpresasSeeder::class, + PerfilesSeeder::class ]); // \App\Models\User::factory(10)->create(); diff --git a/database/seeders/PerfilesSeeder.php b/database/seeders/PerfilesSeeder.php new file mode 100644 index 0000000..2cd1d21 --- /dev/null +++ b/database/seeders/PerfilesSeeder.php @@ -0,0 +1,21 @@ +insert(['perfil'=>'Administrador']); + DB::table('perfiles')->insert(['perfil'=>'Gerencia']); + DB::table('perfiles')->insert(['perfil'=>'Supervisor']); + DB::table('perfiles')->insert(['perfil'=>'Empleado']); + } +} diff --git a/public/js/administracion/perfiles.js b/public/js/administracion/perfiles.js new file mode 100755 index 0000000..c96c1eb --- /dev/null +++ b/public/js/administracion/perfiles.js @@ -0,0 +1,365 @@ + +$(function () { + + $(document).ajaxStart(function(){ + $.blockUI({ + message: '', + overlayCSS: { + backgroundColor: "#000", + opacity: 0.5, + cursor: "wait", + }, + css: { + border: 0, + padding: 0, + color: "#333", + backgroundColor: "transparent", + } + }); + }); + + $(document).ajaxStop($.unblockUI); + + + $("#formNuevoUsuario").on("submit", function(e){ + + e.preventDefault(); + + + var check = document.getElementsByClassName('formNuevoUsuario')[0].reportValidity(); + + + if (check) { + + var formData = new FormData(this); + + Swal.fire({ + title: "¿Esta seguro que desea agregar un nuevo usuario?", + type: "warning", + showCancelButton: true, + confirmButtonColor: "#3085d6", + cancelButtonColor: "#d33", + cancelButtonText: "Cancelar", + confirmButtonText: "Aceptar", + }).then((result) => { + if (result.value) { + + $('#cerrarModalNuevoUsuario').trigger("click"); + + $.ajax({ + type:'POST', + url:'nuevo_usuario', + headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}, + data: formData, + processData:false, + contentType: false, + success:function(data){ + + cargarlistaEmpresas(); + $(".formNuevoUsuario")[0].reset(); + $('#formNuevoUsuario').removeClass('was-validated'); + Swal.fire("¡Éxito!", "Se agrego un nuevo usuario.", "success"); + + }, + error: function (e) { + mensajeError(); + } + }); + } + }); + }else{ + errorFaltanCampos(); + } + }); + + $("#formEditarUsuario").on("submit", function(e){ + + e.preventDefault(); + + var check = document.getElementsByClassName('formEditarUsuario')[0].reportValidity(); + + if (check) { + + + var formData = new FormData(this); + + Swal.fire({ + title: "¿Esta seguro que desea editar los datos del usuario?", + type: "warning", + showCancelButton: true, + confirmButtonColor: "#3085d6", + cancelButtonColor: "#d33", + cancelButtonText: "Cancelar", + confirmButtonText: "Aceptar", + }).then((result) => { + if (result.value) { + + $('#cerrarModalEditarUsuario').trigger("click"); + + $.ajax({ + type:'POST', + url:'editar_usuario', + headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}, + data: formData, + processData:false, + contentType: false, + success:function(data){ + + cargarlistaEmpresas(); + $("#formEditarUsuario")[0].reset(); + $('#formEditarUsuario').removeClass('was-validated'); + Swal.fire("¡Éxito!", "Se editaron los datos del usuario.", "success"); + + }, + error: function (e) { + mensajeError(); + } + }); + } + }); + }else{ + errorFaltanCampos(); + } + }); + + + $("#formCargarUsuarios").on("submit", function(e){ + + e.preventDefault(); + + var formData = new FormData(this); + + Swal.fire({ + title: "¿Esta seguro que deseas cargar la lista de nuevos usuarios?", + type: "warning", + showCancelButton: true, + confirmButtonColor: "#3085d6", + cancelButtonColor: "#d33", + cancelButtonText: "Cancelar", + confirmButtonText: "Aceptar", + }).then((result) => { + if (result.value) { + + $('#cerrarModalNuevo').trigger("click"); + + $.ajax({ + type:'POST', + url:'cargar_lista_usuarios', + headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}, + data: formData, + processData:false, + contentType: false, + success:function(data){ + + cargarlistaEmpresas(); + Swal.fire("¡Éxito!", "Se agrego la lista de nuevos usuarios.", "success"); + + }, + error: function (e) { + mensajeError(); + } + }); + } + }); + + + }); + +}); + +cargarListaPerfiles(); + +function cargarListaPerfiles(){ + + $('#listaPerfiles').empty().DataTable({ + searchDelay: 400, + ajax: { + url: 'api/obtener_perfiles', + dataSrc: function(json){ + return json; + + } + }, + // order: [[0, 'asc']], + // ordering:true, + columns:[ + // { data: "id", defaultContent: "---", title: "#2" }, + {data:function(row, type){ + const id = row.id; + let botonAcciones = '
'; + return '