From 187b6f6f05dba680d08bdd64e05e6a1e11f848f3 Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Tue, 3 Dec 2024 17:35:29 -0300 Subject: [PATCH] Edit Proveedores --- .../routes/api/inmobiliarias/proveedores.php | 3 +- .../views/inmobiliarias/proveedores.blade.php | 65 +++---- .../proveedores/add_modal.blade.php | 1 + .../proveedores/edit_modal.blade.php | 158 ++++++++++++++++++ .../API/Inmobiliarias/Proveedores.php | 15 +- app/src/Repository/Persona.php | 11 +- app/src/Repository/Persona/Datos.php | 5 - app/src/Service/Inmobiliaria/Proveedor.php | 12 +- app/src/Service/Persona.php | 11 ++ 9 files changed, 232 insertions(+), 49 deletions(-) create mode 100644 app/resources/views/inmobiliarias/proveedores/edit_modal.blade.php diff --git a/app/resources/routes/api/inmobiliarias/proveedores.php b/app/resources/routes/api/inmobiliarias/proveedores.php index 306c496..6221b72 100644 --- a/app/resources/routes/api/inmobiliarias/proveedores.php +++ b/app/resources/routes/api/inmobiliarias/proveedores.php @@ -3,10 +3,11 @@ use Incoviba\Controller\API\Inmobiliarias\Proveedores; $app->group('/proveedores', function($app) { $app->post('/add[/]', [Proveedores::class, 'add']); + $app->post('/edit[/]', [Proveedores::class, 'edit']); //$app->post('/register[/]', [Proveedores::class, 'register']); $app->get('[/]', Proveedores::class); }); $app->group('/proveedor/{proveedor_rut:[0-9]+}', function($app) { - $app->post('/edit[/]', [Proveedores::class, 'edit']); $app->delete('/delete[/]', [Proveedores::class, 'delete']); + $app->get('[/]', [Proveedores::class, 'get']); }); diff --git a/app/resources/views/inmobiliarias/proveedores.blade.php b/app/resources/views/inmobiliarias/proveedores.blade.php index 0fe7d25..1e96b13 100644 --- a/app/resources/views/inmobiliarias/proveedores.blade.php +++ b/app/resources/views/inmobiliarias/proveedores.blade.php @@ -34,6 +34,8 @@ @include('inmobiliarias.proveedores.add_modal') + + @include('inmobiliarias.proveedores.edit_modal') @endsection @include('layout.body.scripts.rut') @@ -66,14 +68,12 @@ proveedores: '' }, data: JSON.parse('{!! json_encode($proveedores) !!}'), - edit() { - }, remove() { return { proveedor: rut => { const url = `{{$urls->api}}/inmobiliarias/proveedor/${rut}/delete` const method = 'delete' - APIClient.fetch(url, {method}) + return APIClient.fetch(url, {method}) .then(response => (response) ? response.json() : null) .then(data => { if (data.success) { @@ -84,32 +84,6 @@ } } }, - draw() { - return { - proveedores: () => { - $(this.ids.proveedores).empty() - this.data.forEach(proveedor => { - $(this.ids.proveedores).append(` - - ${proveedor.nombre} - ${proveedor.contacto.nombreCompleto} - - - - - - `) - }) - $(this.ids.buttons.remove).click((e) => { - this.remove().proveedor($(e.target).data('proveedor')) - }) - } - } - }, formatters() { return { rut: value => { @@ -130,8 +104,22 @@ $(this.ids.buttons.add).click(() => { addModal.show() }) + const editModal = new EditModal(this.ids.edit, this.formatters()) + $(this.ids.buttons.edit).click((e) => { + e.currentTarget.classList.add('loading') + e.currentTarget.classList.add('spinner') + editModal.show(e.currentTarget.parentNode.dataset.proveedor).then(() => { + e.currentTarget.classList.remove('loading') + e.currentTarget.classList.remove('spinner') + }) + }) $(this.ids.buttons.remove).click((e) => { - this.remove().proveedor(e.currentTarget.parentNode.dataset.proveedor) + e.currentTarget.classList.add('loading') + e.currentTarget.classList.add('spinner') + this.remove().proveedor(e.currentTarget.parentNode.dataset.proveedor).then(() => { + e.currentTarget.classList.remove('loading') + e.currentTarget.classList.remove('spinner') + }) }) } } @@ -159,6 +147,23 @@ telefono: '#telefono_contacto' } }, + edit: { + modal: '#edit_modal', + form: 'edit_form', + rut: '#edit_rut', + digito: '#edit_digito', + nombre: '#edit_nombre', + razon: '#edit_razon', + contacto: { + rut: '#edit_rut_contacto', + digito: '#edit_digito_contacto', + nombres: '#edit_nombre_contacto', + apellido_paterno: '#edit_apellido_paterno_contacto', + apellido_materno: '#edit_apellido_materno_contacto', + email: '#edit_email_contacto', + telefono: '#edit_telefono_contacto' + } + }, proveedores: '#proveedores' }) }) diff --git a/app/resources/views/inmobiliarias/proveedores/add_modal.blade.php b/app/resources/views/inmobiliarias/proveedores/add_modal.blade.php index d0bea75..db1e816 100644 --- a/app/resources/views/inmobiliarias/proveedores/add_modal.blade.php +++ b/app/resources/views/inmobiliarias/proveedores/add_modal.blade.php @@ -1,4 +1,5 @@