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 ''; + }, + title: "Acciones"}, + { data: "id", defaultContent: "---", title: "#" }, + { data: "perfil", defaultContent: "---", title: "Perfiles" }, + {data:function(row, type){ + const activo = row.activo; + console.log(activo); + return (row.activo == 1) ? 'Activo' : 'Inactivo' ; + + }, + title: "Estado"} + + + ], + aLengthMenu: [ + [25, 50, 100, 200, -1], + [25, 50, 100, 200, 'All'] + ], + destroy: true, + paging:true, + info:true, + // responsive: true, + // dom: "Bfrtip", + // buttons: ["copy", "csv", "excel", "pdf", "print"], + "language": { + "url": "//cdn.datatables.net/plug-ins/1.10.19/i18n/Spanish.json" + } + }); +} + +cargarListaRoles(); + +function cargarListaRoles(){ + + $.get('api/lista_roles',function(data){ + + let opciones = ''; + $('.roles').empty(); + + $.each(data,function(i,ele){ + + opciones += ''; + + }); + + $('.roles').append(opciones); + + }); + +} + + +function cargarEditarForm(id){ + $.get('api/detalle_usuario',{id:id},function(data){ + + $.each(data,function(i,ele){ + + $('#editar_'+i).val(ele).change; + if( i == 'datos_empleado' ){ + + $.each(ele,function(j,datos_empleado){ + + // if( j == 'id' ){ + // $('#editar_empleado_'+j).val(datos_empleado); + // } + + $('#editar_empleado_'+j).val(datos_empleado); + + }); + + } + + }); + }); +} + +function eliminarUsuario(id){ + + + Swal.fire({ + title: "¿Esta seguro que desea eliminar el usuario?", + type: "warning", + showCancelButton: true, + confirmButtonColor: "#3085d6", + cancelButtonColor: "#d33", + cancelButtonText: "Cancelar", + confirmButtonText: "Aceptar", + }).then((result) => { + if (result.value) { + + $.get('eliminar_usuario',{id:id},function(data){ + + cargarlistaEmpresas(); + Swal.fire("¡Éxito!", "Se editaron los datos del usuario.", "success"); + + }); + + } + }); + + + +} + +function errorFaltanCampos(){ + + Swal.fire({ + title: "Alerta!", + text: "Faltan campos por llenar.", + type: "warning", + timer: 3000, + showConfirmButton: false, + }); + +} + + + +function mensajeError(){ + + Swal.fire({ + type: "error", + title: "Oops...", + text: "¡Lo siento, ocurrió un error!", + }); + +} + + + +(function () { + "use strict"; + window.addEventListener( + "load", + function () { + // Fetch all the forms we want to apply custom Bootstrap validation styles to + var forms = document.getElementsByClassName("needs-validation"); + // Loop over them and prevent submission + var validation = Array.prototype.filter.call( + forms, + function (form) { + form.addEventListener( + "submit", + function (event) { + if (form.checkValidity() === false) { + event.preventDefault(); + event.stopPropagation(); + } + form.classList.add("was-validated"); + }, + false + ); + } + ); + }, + false + ); + })(); + diff --git a/public/js/administracion/usuarios.js b/public/js/administracion/usuarios.js index 940d3ad..53021fb 100755 --- a/public/js/administracion/usuarios.js +++ b/public/js/administracion/usuarios.js @@ -210,7 +210,7 @@ function cargarListaUsuarios(){ $('#listaUsuarios').DataTable({ searchDelay: 400, ajax: { - url: 'api/obtener_lista_tareas_usuarios', + url: 'api/obtener_usuarios', dataSrc: function(json){ console.log(json); return json; diff --git a/resources/views/administracion/forms/nuevo_usuarios.blade.php b/resources/views/administracion/forms/nuevo_usuarios.blade.php index d3fd1b8..643594e 100755 --- a/resources/views/administracion/forms/nuevo_usuarios.blade.php +++ b/resources/views/administracion/forms/nuevo_usuarios.blade.php @@ -12,7 +12,7 @@ - --}}
@@ -35,6 +35,7 @@
+
@@ -47,7 +48,7 @@
- +
@@ -64,18 +65,20 @@
- -
+
- +
- - {{-- --}} + + + + {{-- --}}
+
@@ -93,29 +96,6 @@
- -
- -
-
- -
- -
-
-
-
-
- -
- - {{-- --}} -
-
-
-
@@ -128,11 +108,9 @@
-
+ {{--
{{ csrf_field() }} - {{-- - --}}

Cargar usuarios


@@ -159,7 +137,7 @@
-
+
--}}
diff --git a/resources/views/administracion/perfiles.blade.php b/resources/views/administracion/perfiles.blade.php new file mode 100755 index 0000000..a895750 --- /dev/null +++ b/resources/views/administracion/perfiles.blade.php @@ -0,0 +1,62 @@ +@extends('layouts.app') +@extends('layouts.head') +@extends('layouts.preloader') +@extends('layouts.scripts') +@extends('layouts.topbar') +@extends('layouts.lefsidebar') + +@section('content') + +@include('administracion.forms.nuevo_usuarios') +@include('administracion.forms.editar_usuarios') + + + +
+
+ +
+
+
+
+
+
+
+

Perfiles

+
+
+
+
+
+
+
+
+
+
+
+
+
+@endsection + +@section('script') + +@endsection diff --git a/resources/views/layouts/lefsidebar.blade.php b/resources/views/layouts/lefsidebar.blade.php index 5c5e10b..bf48fb5 100755 --- a/resources/views/layouts/lefsidebar.blade.php +++ b/resources/views/layouts/lefsidebar.blade.php @@ -28,6 +28,12 @@ Grupos +