From 121b270dd01561ecfa6aa75461572496b748b249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Sat, 5 Aug 2023 12:51:29 +0200 Subject: [PATCH] Falta testear funcionamiento completo. Edit no funciona --- ci4/app/Config/Routes.php | 19 ++ ci4/app/Controllers/Compras/Proveedores.php | 61 +++--- .../Controllers/Compras/ProveedoresTipos.php | 6 +- ci4/app/Entities/Compras/ProveedorEntity.php | 2 +- .../Entities/Compras/ProveedorTipoEntity.php | 2 +- ci4/app/Language/en/Proveedores.php | 85 ++++++++ ci4/app/Language/es/Proveedores.php | 84 ++++++++ ci4/app/Models/Compras/ProveedorModel.php | 70 +++--- ci4/app/Models/Compras/ProveedorTipoModel.php | 4 +- .../proveedores/_proveedorFormItems.php | 50 ++--- .../compras/proveedores/viewProveedorForm.php | 26 ++- .../compras/proveedores/viewProveedorList.php | 201 +++++++----------- .../acabado/_tarifaAcabadoFormItems.php | 6 +- .../Views/themes/backend/vuexy/main/menu.php | 6 +- .../backend/vuexy/main/menu_impresion.php | 4 +- 15 files changed, 390 insertions(+), 236 deletions(-) create mode 100644 ci4/app/Language/en/Proveedores.php create mode 100644 ci4/app/Language/es/Proveedores.php diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index 5f34cb4b..f15b815d 100644 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -378,6 +378,25 @@ $routes->group('tarifaencuadernacionlineas', ['namespace' => 'App\Controllers\Ta }); $routes->resource('tarifaencuadernacionlineas', ['namespace' => 'App\Controllers\Tarifas', 'controller' => 'Tarifaencuadernacionlineas', 'except' => 'show,new,create,update']); + +$routes->group('proveedores', ['namespace' => 'App\Controllers\Compras'], function ($routes) { + $routes->get('', 'Proveedores::index', ['as' => 'proveedorList']); + $routes->get('add', 'Proveedores::add', ['as' => 'newProveedor']); + $routes->post('add', 'Proveedores::add', ['as' => 'createProveedor']); + $routes->post('create', 'Proveedores::create', ['as' => 'ajaxCreateProveedor']); + $routes->put('(:num)/update', 'Proveedores::update/$1', ['as' => 'ajaxUpdateProveedor']); + $routes->post('(:num)/edit', 'Proveedores::edit/$1', ['as' => 'updateProveedor']); + $routes->post('datatable', 'Proveedores::datatable', ['as' => 'dataTableOfProveedores']); + $routes->post('allmenuitems', 'Proveedores::allItemsSelect', ['as' => 'select2ItemsOfProveedores']); + $routes->post('menuitems', 'Proveedores::menuItems', ['as' => 'menuItemsOfProveedores']); +}); +$routes->resource('proveedores', ['namespace' => 'App\Controllers\Compras', 'controller' => 'Proveedores', 'except' => 'show,new,create,update']); + +$routes->group('proveedorestipos', ['namespace' => 'App\Controllers\Compras'], function ($routes) { + $routes->post('menuitems', 'ProveedoresTipos::menuItems', ['as' => 'menuItemsOfProveedoresTipos']); + }); + $routes->resource('proveedorestipos', ['namespace' => 'App\Controllers\Compras', 'controller' => 'ProveedoresTipos', 'except' => 'show,new,create,update']); + /* * -------------------------------------------------------------------- * Additional Routing diff --git a/ci4/app/Controllers/Compras/Proveedores.php b/ci4/app/Controllers/Compras/Proveedores.php index 714cc810..6950f26f 100644 --- a/ci4/app/Controllers/Compras/Proveedores.php +++ b/ci4/app/Controllers/Compras/Proveedores.php @@ -1,19 +1,12 @@ -viewData['pageTitle'] = lang('LgProveedores.moduleTitle'); + $this->viewData['pageTitle'] = lang('Proveedores.moduleTitle'); $this->viewData['usingSweetAlert'] = true; + + // Se indica que este controlador trabaja con soft_delete + $this->soft_delete = true; + // Se indica el flag para los ficheros borrados + $this->delete_flag = 1; + + $this->viewData = ['usingServerSideDataTable' => true]; + + + // Breadcrumbs (IMN) + $this->viewData['breadcrumb'] = [ + ['title' => lang("App.menu_configuration"), 'route' => "javascript:void(0);", 'active' => false], + ['title' => lang("App.menu_proveedores"), 'route' => site_url('compras/proveedores'), 'active' => true] + ]; + parent::initController($request, $response, $logger); } @@ -44,7 +52,7 @@ class Proveedores extends \App\Controllers\GoBaseResourceController { $viewData = [ 'currentModule' => static::$controllerSlug, - 'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('LgProveedores.proveedor')]), + 'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Proveedores.proveedor')]), 'proveedorEntity' => new ProveedorEntity(), 'usingServerSideDataTable' => true, @@ -83,7 +91,7 @@ class Proveedores extends \App\Controllers\GoBaseResourceController { $this->dealWithException($e); } else: - $this->viewData['errorMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('LgProveedores.proveedor'))]); + $this->viewData['errorMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('Proveedores.proveedor'))]); $this->session->setFlashdata('formErrors', $this->model->errors()); endif; @@ -93,7 +101,7 @@ class Proveedores extends \App\Controllers\GoBaseResourceController { $id = $this->model->db->insertID(); - $message = lang('Basic.global.saveSuccess', [mb_strtolower(lang('LgProveedores.proveedor'))]).'.'; + $message = lang('Basic.global.saveSuccess', [mb_strtolower(lang('Proveedores.proveedor'))]).'.'; $message .= anchor( "admin/proveedores/{$id}/edit" , lang('Basic.global.continueEditing').'?'); $message = ucfirst(str_replace("'", "\'", $message)); @@ -118,7 +126,7 @@ class Proveedores extends \App\Controllers\GoBaseResourceController { $this->viewData['formAction'] = route_to('createProveedor'); - $this->viewData['boxTitle'] = lang('Basic.global.addNew').' '.lang('LgProveedores.moduleTitle').' '.lang('Basic.global.addNewSuffix'); + $this->viewData['boxTitle'] = lang('Basic.global.addNew').' '.lang('Proveedores.moduleTitle').' '.lang('Basic.global.addNewSuffix'); return $this->displayForm(__METHOD__); @@ -133,7 +141,7 @@ class Proveedores extends \App\Controllers\GoBaseResourceController { $proveedorEntity = $this->model->find($id); if ($proveedorEntity == false) : - $message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('LgProveedores.proveedor')), $id]); + $message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('Proveedores.proveedor')), $id]); return $this->redirect2listView('sweet-error', $message); endif; @@ -162,20 +170,21 @@ class Proveedores extends \App\Controllers\GoBaseResourceController { $this->dealWithException($e); } else: - $this->viewData['warningMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('LgProveedores.proveedor'))]); + $this->viewData['warningMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('Proveedores.proveedor'))]); $this->session->setFlashdata('formErrors', $this->model->errors()); endif; $proveedorEntity->fill($sanitizedData); - $thenRedirect = true; + $thenRedirect = false; endif; if ($noException && $successfulResult) : $id = $proveedorEntity->id ?? $id; - $message = lang('Basic.global.updateSuccess', [mb_strtolower(lang('LgProveedores.proveedor'))]).'.'; - $message .= anchor( "admin/proveedores/{$id}/edit" , lang('Basic.global.continueEditing').'?'); - $message = ucfirst(str_replace("'", "\'", $message)); + $message = lang('Basic.global.updateSuccess', [lang('Basic.global.record')]).'.'; + //$message = lang('Basic.global.updateSuccess', [mb_strtolower(lang('Proveedores.proveedor'))]).'.'; + //$message .= anchor( "admin/proveedores/{$id}/edit" , lang('Basic.global.continueEditing').'?'); + //$message = ucfirst(str_replace("'", "\'", $message)); if ($thenRedirect) : if (!empty($this->indexRoute)) : @@ -197,7 +206,7 @@ class Proveedores extends \App\Controllers\GoBaseResourceController { $this->viewData['formAction'] = route_to('updateProveedor', $id); - $this->viewData['boxTitle'] = lang('Basic.global.edit2').' '.lang('LgProveedores.moduleTitle').' '.lang('Basic.global.edit3'); + $this->viewData['boxTitle'] = lang('Basic.global.edit2').' '.lang('Proveedores.moduleTitle').' '.lang('Basic.global.edit3'); return $this->displayForm(__METHOD__, $id); @@ -217,7 +226,7 @@ class Proveedores extends \App\Controllers\GoBaseResourceController { $length = $reqData['length'] ?? 5; $search = $reqData['search']['value']; $requestedOrder = $reqData['order']['0']['column'] ?? 1; - $order = ProveedorModel::SORTABLE[$requestedOrder > 0 ? $requestedOrder : 1]; + $order = ProveedorModel::SORTABLE[$requestedOrder >= 0 ? $requestedOrder : 0]; $dir = $reqData['order']['0']['dir'] ?? 'asc'; $resourceData = $this->model->getResource($search)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); @@ -282,9 +291,9 @@ class Proveedores extends \App\Controllers\GoBaseResourceController { protected function getProveedorTipoListItems($selId = null) { - $data = [''=>lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('LgProveedoresTipos.proveedorTipo'))])]; + $data = [''=>lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Proveedores.tipoId'))])]; if (!empty($selId)) : - $proveedorTipoModel = model('App\Models\compras\ProveedorTipoModel'); + $proveedorTipoModel = model('App\Models\Compras\ProveedorTipoModel'); $selOption = $proveedorTipoModel->where('id', $selId)->findColumn('nombre'); if (!empty($selOption)) : @@ -307,7 +316,7 @@ class Proveedores extends \App\Controllers\GoBaseResourceController { protected function getProvinciaListItems($selId = null) { $data = [''=>lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Provincias.provincia'))])]; if (!empty($selId)) : - $provinciaModel = model('App\Models\compras\ProvinciaModel'); + $provinciaModel = model('App\Models\Configuracion\ProvinciaModel'); $selOption = $provinciaModel->where('id', $selId)->findColumn('nombre'); if (!empty($selOption)) : diff --git a/ci4/app/Controllers/Compras/ProveedoresTipos.php b/ci4/app/Controllers/Compras/ProveedoresTipos.php index fbcbf10c..45b0cc1b 100644 --- a/ci4/app/Controllers/Compras/ProveedoresTipos.php +++ b/ci4/app/Controllers/Compras/ProveedoresTipos.php @@ -1,13 +1,13 @@ - 'CIF', + 'ciudad' => 'City', + 'cp' => 'Postal code', + 'createdAt' => 'Created At', + 'deletedAt' => 'Deleted At', + 'direccion' => 'Address', + 'email' => 'Email', + 'id' => 'ID', + 'isDeleted' => 'Is Deleted', + 'moduleTitle' => 'Suppliers', + 'nombre' => 'Name', + 'paisId' => 'Country', + 'personaContacto' => 'Contact Person', + 'propiedades' => 'Properties', + 'proveedor' => 'Supplier', + 'proveedorList' => 'Suppliers List', + 'proveedores' => 'Suppliers', + 'provinciaId' => 'Region', + 'razonSocial' => 'Business Name', + 'telefono' => 'Phone', + 'tipoId' => 'Type', + 'updatedAt' => 'Updated At', + 'validation' => [ + 'cif' => [ + 'max_length' => 'The {field} field cannot exceed {param} characters in length.', + + ], + + 'ciudad' => [ + 'max_length' => 'The {field} field cannot exceed {param} characters in length.', + + ], + + 'cp' => [ + 'max_length' => 'The {field} field cannot exceed {param} characters in length.', + + ], + + 'direccion' => [ + 'max_length' => 'The {field} field cannot exceed {param} characters in length.', + + ], + + 'persona_contacto' => [ + 'max_length' => 'The {field} field cannot exceed {param} characters in length.', + + ], + + 'razon_social' => [ + 'max_length' => 'The {field} field cannot exceed {param} characters in length.', + + ], + + 'telefono' => [ + 'max_length' => 'The {field} field cannot exceed {param} characters in length.', + + ], + + 'email' => [ + 'max_length' => 'The {field} field cannot exceed {param} characters in length.', + 'valid_email' => 'The {field} field must contain a valid email address.', + + ], + + 'nombre' => [ + 'max_length' => 'The {field} field cannot exceed {param} characters in length.', + 'required' => 'The {field} field is required.', + + ], + + 'tipo' => [ + 'required' => 'The {field} field is required.', + + ], + + + ], + + +]; \ No newline at end of file diff --git a/ci4/app/Language/es/Proveedores.php b/ci4/app/Language/es/Proveedores.php new file mode 100644 index 00000000..d6928648 --- /dev/null +++ b/ci4/app/Language/es/Proveedores.php @@ -0,0 +1,84 @@ + 'CIF', + 'ciudad' => 'Ciudad', + 'cp' => 'Código Postal', + 'createdAt' => 'Created At', + 'deletedAt' => 'Deleted At', + 'direccion' => 'Direccion', + 'email' => 'Email', + 'id' => 'ID', + 'isDeleted' => 'Is Deleted', + 'moduleTitle' => 'Proveedores', + 'nombre' => 'Nombre', + 'paisId' => 'País', + 'personaContacto' => 'Persona Contacto', + 'propiedades' => 'Propiedades', + 'proveedor' => 'Proveedor', + 'proveedorList' => 'Lista de Proveedores', + 'proveedores' => 'Proveedores', + 'provinciaId' => 'Provincia', + 'razonSocial' => 'Razón Social', + 'telefono' => 'Teléfono', + 'tipoId' => 'Tipo', + 'updatedAt' => 'Updated At', + 'validation' => [ + 'cif' => [ + 'max_length' => 'El campo {field} no puede exceder de {param} caracteres en longitud.', + + ], + + 'ciudad' => [ + 'max_length' => 'El campo {field} no puede exceder de {param} caracteres en longitud.', + + ], + + 'cp' => [ + 'max_length' => 'El campo {field} no puede exceder de {param} caracteres en longitud.', + + ], + + 'direccion' => [ + 'max_length' => 'El campo {field} no puede exceder de {param} caracteres en longitud.', + + ], + + 'persona_contacto' => [ + 'max_length' => 'El campo {field} no puede exceder de {param} caracteres en longitud.', + + ], + + 'razon_social' => [ + 'max_length' => 'El campo {field} no puede exceder de {param} caracteres en longitud.', + + ], + + 'telefono' => [ + 'max_length' => 'El campo {field} no puede exceder de {param} caracteres en longitud.', + + ], + + 'email' => [ + 'max_length' => 'El campo {field} no puede exceder de {param} caracteres en longitud.', + 'valid_email' => 'El campo {field} debe contener una dirección de correo válida.', + + ], + + 'nombre' => [ + 'max_length' => 'El campo {field} no puede exceder de {param} caracteres en longitud.', + 'required' => 'El campo {field} es obligatorio.', + + ], + 'tipo' => [ + 'required' => 'El campo {field} es obligatorio.', + + ], + + + ], + + +]; \ No newline at end of file diff --git a/ci4/app/Models/Compras/ProveedorModel.php b/ci4/app/Models/Compras/ProveedorModel.php index a6e3f263..b5d5896a 100644 --- a/ci4/app/Models/Compras/ProveedorModel.php +++ b/ci4/app/Models/Compras/ProveedorModel.php @@ -1,5 +1,5 @@ "t1.id", - 2 => "t1.nombre", - 3 => "t1.tipo_id", - 4 => "t1.razon_social", - 5 => "t1.cif", - 6 => "t1.direccion", - 7 => "t1.cp", - 8 => "t1.ciudad", - 9 => "t1.provincia_id", - 10 => "t1.pais_id", - 11 => "t1.persona_contacto", - 12 => "t1.email", - 13 => "t1.telefono", - 14 => "t2.nombre", - 15 => "t3.nombre", - 16 => "t4.nombre", + 0 => "t1.nombre", + 1 => "t2.nombre", + ]; protected $allowedFields = [ @@ -45,7 +32,7 @@ class ProveedorModel extends \App\Models\GoBaseModel "email", "telefono", ]; - protected $returnType = "App\Entities\compras\ProveedorEntity"; + protected $returnType = "App\Entities\Compras\ProveedorEntity"; protected $useTimestamps = true; protected $useSoftDeletes = false; @@ -58,72 +45,79 @@ class ProveedorModel extends \App\Models\GoBaseModel protected $validationRules = [ "cif" => [ - "label" => "LgProveedores.cif", + "label" => "Proveedores.cif", "rules" => "trim|max_length[15]", ], + "tipo_id" => [ + "label" => "Proveedores.tipoId", + "rules" => "required", + ], "ciudad" => [ - "label" => "LgProveedores.ciudad", + "label" => "Proveedores.ciudad", "rules" => "trim|max_length[255]", ], "cp" => [ - "label" => "LgProveedores.cp", + "label" => "Proveedores.cp", "rules" => "trim|max_length[10]", ], "direccion" => [ - "label" => "LgProveedores.direccion", + "label" => "Proveedores.direccion", "rules" => "trim|max_length[255]", ], "email" => [ - "label" => "LgProveedores.email", + "label" => "Proveedores.email", "rules" => "trim|max_length[255]|valid_email|permit_empty", ], "nombre" => [ - "label" => "LgProveedores.nombre", + "label" => "Proveedores.nombre", "rules" => "trim|required|max_length[255]", ], "persona_contacto" => [ - "label" => "LgProveedores.personaContacto", + "label" => "Proveedores.personaContacto", "rules" => "trim|max_length[255]", ], "razon_social" => [ - "label" => "LgProveedores.razonSocial", + "label" => "Proveedores.razonSocial", "rules" => "trim|max_length[255]", ], "telefono" => [ - "label" => "LgProveedores.telefono", + "label" => "Proveedores.telefono", "rules" => "trim|max_length[60]", ], ]; protected $validationMessages = [ "cif" => [ - "max_length" => "LgProveedores.validation.cif.max_length", + "max_length" => "Proveedores.validation.cif.max_length", ], "ciudad" => [ - "max_length" => "LgProveedores.validation.ciudad.max_length", + "max_length" => "Proveedores.validation.ciudad.max_length", ], "cp" => [ - "max_length" => "LgProveedores.validation.cp.max_length", + "max_length" => "Proveedores.validation.cp.max_length", ], "direccion" => [ - "max_length" => "LgProveedores.validation.direccion.max_length", + "max_length" => "Proveedores.validation.direccion.max_length", ], "email" => [ - "max_length" => "LgProveedores.validation.email.max_length", - "valid_email" => "LgProveedores.validation.email.valid_email", + "max_length" => "Proveedores.validation.email.max_length", + "valid_email" => "Proveedores.validation.email.valid_email", ], "nombre" => [ - "max_length" => "LgProveedores.validation.nombre.max_length", - "required" => "LgProveedores.validation.nombre.required", + "max_length" => "Proveedores.validation.nombre.max_length", + "required" => "Proveedores.validation.nombre.required", + ], + "tipo_id" => [ + "required" => "Proveedores.validation.tipo.required", ], "persona_contacto" => [ - "max_length" => "LgProveedores.validation.persona_contacto.max_length", + "max_length" => "Proveedores.validation.persona_contacto.max_length", ], "razon_social" => [ - "max_length" => "LgProveedores.validation.razon_social.max_length", + "max_length" => "Proveedores.validation.razon_social.max_length", ], "telefono" => [ - "max_length" => "LgProveedores.validation.telefono.max_length", + "max_length" => "Proveedores.validation.telefono.max_length", ], ]; public function findAllWithAllRelations(string $selcols = "*", int $limit = null, int $offset = 0) diff --git a/ci4/app/Models/Compras/ProveedorTipoModel.php b/ci4/app/Models/Compras/ProveedorTipoModel.php index c0c40191..d2ffb31a 100644 --- a/ci4/app/Models/Compras/ProveedorTipoModel.php +++ b/ci4/app/Models/Compras/ProveedorTipoModel.php @@ -1,5 +1,5 @@
- +
- +
- +
- +
- +
- $v) : ?> @@ -70,23 +70,23 @@
- +
- +
- $v) : ?> @@ -100,16 +100,16 @@
- +
- +
diff --git a/ci4/app/Views/themes/backend/vuexy/form/compras/proveedores/viewProveedorForm.php b/ci4/app/Views/themes/backend/vuexy/form/compras/proveedores/viewProveedorForm.php index aa555fd9..a96c6207 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/compras/proveedores/viewProveedorForm.php +++ b/ci4/app/Views/themes/backend/vuexy/form/compras/proveedores/viewProveedorForm.php @@ -1,6 +1,6 @@ -include("Themes/_commonPartialsBs/select2bs5") ?> -include("Themes/_commonPartialsBs/sweetalert") ?> -extend("Themes/" . config("Basics")->theme["name"] . "/AdminLayout/defaultLayout") ?> +include("themes/_commonPartialsBs/select2bs5") ?> +include("themes/_commonPartialsBs/sweetalert") ?> +extend('themes/backend/vuexy/main/defaultlayout') ?> section("content") ?>
@@ -11,15 +11,21 @@
- + getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
- -
+ +
+ " + /> + "btn btn-secondary float-start"]) ?> +
+ +
@@ -30,7 +36,6 @@ $('#tipoId').select2({ - theme: 'bootstrap-5', allowClear: false, ajax: { url: '', @@ -60,7 +65,6 @@ }); $('#provinciaId').select2({ - theme: 'bootstrap-5', allowClear: false, ajax: { url: '', diff --git a/ci4/app/Views/themes/backend/vuexy/form/compras/proveedores/viewProveedorList.php b/ci4/app/Views/themes/backend/vuexy/form/compras/proveedores/viewProveedorList.php index ecb013a8..54040ed1 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/compras/proveedores/viewProveedorList.php +++ b/ci4/app/Views/themes/backend/vuexy/form/compras/proveedores/viewProveedorList.php @@ -1,45 +1,34 @@ -include('Themes/_commonPartialsBs/select2bs5') ?> -include('Themes/_commonPartialsBs/datatables') ?> -include('Themes/_commonPartialsBs/sweetalert') ?> -extend('Themes/'.config('Basics')->theme['name'].'/AdminLayout/defaultLayout') ?> +include('themes/_commonPartialsBs/select2bs5') ?> +include('themes/_commonPartialsBs/datatables') ?> +include('themes/_commonPartialsBs/_confirm2delete') ?> +extend('themes/backend/vuexy/main/defaultlayout') ?> section('content'); ?>
-

+

+ 'btn btn-primary float-end']); ?>
- + - - - - - - - - - - - - - - + + - +
@@ -50,26 +39,26 @@ section('additionalInlineJs') ?> - const lastColNr = $('#tableOfProveedores').find("tr:first th").length - 1; - const actionBtns = function(data) { - return ` -
- - -
- `; - }; - theTable = $('#tableOfProveedores').DataTable({ - processing: true, - serverSide: true, - autoWidth: true, - responsive: true, - scrollX: true, - lengthMenu: [ 5, 10, 25, 50, 75, 100, 250, 500, 1000, 2500 ], - pageLength: 10, - lengthChange: true, - "dom": 'lfrtipB', // 'lfBrtip', // you can try different layout combinations by uncommenting one or the other - // "dom": '<"top"lf><"clear">rt<"bottom"ipB><"clear">', // remember to comment this line if you uncomment the above + const lastColNr = $('#tableOfProveedores').find("tr:first th").length - 1; + const actionBtns = function(data) { + return ` + +
+ + +
+ `; + }; + theTable = $('#tableOfProveedores').DataTable({ + processing: true, + serverSide: true, + autoWidth: true, + responsive: true, + scrollX: true, + lengthMenu: [ 5, 10, 25, 50, 75, 100, 250, 500, 1000, 2500 ], + pageLength: 25, + lengthChange: true, + "dom": 'lfBrtip', "buttons": [ 'copy', 'csv', 'excel', 'print', { extend: 'pdfHtml5', @@ -77,89 +66,59 @@ pageSize: 'A4' } ], - stateSave: true, - order: [[1, 'asc']], - language: { - url: "/assets/dt/languages[$currentLocale] ?? config('Basics')->i18n ?>.json" - }, - ajax : $.fn.dataTable.pipeline( { - url: '', - method: 'POST', - headers: {'X-Requested-With': 'XMLHttpRequest'}, - async: true, - }), - columnDefs: [ - { - orderable: false, - searchable: false, - targets: [0,lastColNr] - } - ], - columns : [ - { 'data': actionBtns }, - { 'data': 'id' }, - { 'data': 'nombre' }, - { 'data': 'tipo' }, - { 'data': 'razon_social' }, - { 'data': 'cif' }, - { 'data': 'direccion' }, - { 'data': 'cp' }, - { 'data': 'ciudad' }, - { 'data': 'provincia' }, - { 'data': 'pais' }, - { 'data': 'persona_contacto' }, - { 'data': 'email' }, - { 'data': 'telefono' }, - { 'data': actionBtns } - ] - }); - - - - -$(document).on('click', '.btn-edit', function(e) { - window.location.href = `/${$(this).attr('data-id')}/edit`; - }); - -$(document).on('click', '.btn-delete', function(e) { - Swal.fire({ - title: '', - text: '', - icon: 'warning', - showCancelButton: true, - confirmButtonColor: '#3085d6', - confirmButtonText: '', - cancelButtonText: '', - cancelButtonColor: '#d33' - }) - .then((result) => { - const dataId = $(this).data('id'); - const row = $(this).closest('tr'); - if (result.value) { - $.ajax({ - url: `/${dataId}`, - method: 'DELETE', - }).done((data, textStatus, jqXHR) => { - Toast.fire({ - icon: 'success', - title: data.msg ?? jqXHR.statusText, - }); - - theTable.clearPipeline(); - theTable.row($(row)).invalidate().draw(); - }).fail((jqXHR, textStatus, errorThrown) => { - Toast.fire({ - icon: 'error', - title: jqXHR.responseJSON.messages.error, - }); - }) + stateSave: true, + order: [[0, 'asc']], + language: { + url: "//cdn.datatables.net/plug-ins/1.13.4/i18n/i18n ?>.json" + }, + ajax : $.fn.dataTable.pipeline( { + url: '', + method: 'POST', + headers: {'X-Requested-With': 'XMLHttpRequest'}, + async: true, + }), + columnDefs: [ + { + orderable: false, + searchable: false, + targets: [lastColNr] } - }); + ], + columns : [ + { 'data': 'nombre' }, + { 'data': 'tipo' }, + { 'data': actionBtns } + ] }); - - + + $(document).on('click', '.btn-edit', function(e) { + window.location.href = `/compras/proveedores/edit/${$(this).attr('data-id')}`; + }); + + $(document).on('click', '.btn-delete', function(e) { + $(".btn-remove").attr('data-id', $(this).attr('data-id')); + }); + + $(document).on('click', '.btn-remove', function(e) { + const dataId = $(this).attr('data-id'); + const row = $(this).closest('tr'); + if ($.isNumeric(dataId)) { + $.ajax({ + url: `/compras/proveedores/delete/${dataId}`, + method: 'GET', + }).done((data, textStatus, jqXHR) => { + $('#confirm2delete').modal('toggle'); + theTable.clearPipeline(); + theTable.row($(row)).invalidate().draw(); + popSuccessAlert(data.msg ?? jqXHR.statusText); + }).fail((jqXHR, textStatus, errorThrown) => { + popErrorAlert(jqXHR.responseJSON.messages.error) + }) + } + }); + endSection() ?> diff --git a/ci4/app/Views/themes/backend/vuexy/form/tarifas/acabado/_tarifaAcabadoFormItems.php b/ci4/app/Views/themes/backend/vuexy/form/tarifas/acabado/_tarifaAcabadoFormItems.php index c4b1eecb..f6508319 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/tarifas/acabado/_tarifaAcabadoFormItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/tarifas/acabado/_tarifaAcabadoFormItems.php @@ -4,7 +4,7 @@ -
@@ -12,7 +12,7 @@ -
@@ -20,7 +20,7 @@ - diff --git a/ci4/app/Views/themes/backend/vuexy/main/menu.php b/ci4/app/Views/themes/backend/vuexy/main/menu.php index 5d9bd0d0..50a80092 100644 --- a/ci4/app/Views/themes/backend/vuexy/main/menu.php +++ b/ci4/app/Views/themes/backend/vuexy/main/menu.php @@ -388,10 +388,10 @@ /** * MENU PROVEEDORES */ - if (count(getArrayItem($menus, 'name', 'Proveedor')) > 0): ?> - + if (count(getArrayItem($menus, 'name', 'Proveedores')) > 0): ?> +