From 7d61213f28cbf5c37d8cc813767bfc13a6dbf8b7 Mon Sep 17 00:00:00 2001 From: imnavajas Date: Tue, 8 Aug 2023 12:22:50 +0200 Subject: [PATCH] =?UTF-8?q?A=C3=B1adido=20datatable=20de=20cliente=5Fconta?= =?UTF-8?q?ctos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ci4/app/Config/Routes.php | 18 +++ ci4/app/Controllers/Clientes/Cliente.php | 3 +- .../Controllers/Clientes/Clientecontactos.php | 10 +- .../Models/Clientes/ClienteContactoModel.php | 24 +-- .../clientes/cliente/_clienteFormItems.php | 140 ++++++++++++++++-- .../form/clientes/cliente/viewClienteForm.php | 5 +- .../viewTarifaEncuadernacionForm.php | 2 +- 7 files changed, 175 insertions(+), 27 deletions(-) diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index 5f34cb4b..94512c85 100644 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -378,6 +378,24 @@ $routes->group('tarifaencuadernacionlineas', ['namespace' => 'App\Controllers\Ta }); $routes->resource('tarifaencuadernacionlineas', ['namespace' => 'App\Controllers\Tarifas', 'controller' => 'Tarifaencuadernacionlineas', 'except' => 'show,new,create,update']); +$routes->group('clientecontactos', ['namespace' => 'App\Controllers\Clientes'], function ($routes) { + $routes->get('', 'Clientecontactos::index', ['as' => 'ClienteContactosList']); + $routes->get('add', 'Clientecontactos::add', ['as' => 'newClienteContactos']); + $routes->post('add', 'Clientecontactos::add', ['as' => 'createClienteContactos']); + $routes->post('create', 'Clientecontactos::create', ['as' => 'ajaxCreateClienteContactos']); + $routes->put('(:num)/update', 'Clientecontactos::update/$1', ['as' => 'ajaxUpdateClienteContactos']); + $routes->post('(:num)/edit', 'Clientecontactos::edit/$1', ['as' => 'updateClienteContactos']); + $routes->post('datatable', 'Clientecontactos::datatable', ['as' => 'dataTableOfClienteContactos']); + $routes->post('datatable_editor', 'Clientecontactos::datatable_editor', ['as' => 'editorOfClienteContactos']); + $routes->post('allmenuitems', 'Clientecontactos::allItemsSelect', ['as' => 'select2ItemsOfClienteContactos']); + $routes->post('menuitems', 'Clientecontactos::menuItems', ['as' => 'menuItemsOfClienteContactos']); +}); +$routes->resource('ClienteContactos', ['namespace' => 'App\Controllers\Tarifas', 'controller' => 'ClienteContactos', 'except' => 'show,new,create,update']); + + + + + /* * -------------------------------------------------------------------- * Additional Routing diff --git a/ci4/app/Controllers/Clientes/Cliente.php b/ci4/app/Controllers/Clientes/Cliente.php index ada1ef3a..cd427deb 100644 --- a/ci4/app/Controllers/Clientes/Cliente.php +++ b/ci4/app/Controllers/Clientes/Cliente.php @@ -47,6 +47,7 @@ class Cliente extends \App\Controllers\GoBaseResourceController // Se indica el flag para los ficheros borrados $this->delete_flag = 1; + $this->viewData = ['usingServerSideDataTable' => true]; // JJO // Breadcrumbs (IMN) $this->viewData['breadcrumb'] = [ @@ -136,7 +137,7 @@ class Cliente extends \App\Controllers\GoBaseResourceController $this->viewData['userList2'] = $this->getUserListItems2($clienteEntity->soporte_id ?? null); $this->viewData['formaDePagoList'] = $this->getFormaDePagoListItems($clienteEntity->forma_pago_id ?? null); - $this->viewData['formAction'] = route_to('createCliente'); + $this->viewData['formAction'] = site_url('cliente/add'); // route_to('createCliente'); IMN $this->viewData['boxTitle'] = lang('Basic.global.addNew') . ' ' . lang('Clientes.moduleTitle') . ' ' . lang('Basic.global.addNewSuffix'); diff --git a/ci4/app/Controllers/Clientes/Clientecontactos.php b/ci4/app/Controllers/Clientes/Clientecontactos.php index 68f2059e..2ae5cdef 100644 --- a/ci4/app/Controllers/Clientes/Clientecontactos.php +++ b/ci4/app/Controllers/Clientes/Clientecontactos.php @@ -209,17 +209,21 @@ class Clientecontactos extends \App\Controllers\GoBaseResourceController $order = ClienteContactoModel::SORTABLE[$requestedOrder > 0 ? $requestedOrder : 1]; $dir = $reqData['order']['0']['dir'] ?? 'asc'; - $resourceData = $this->model->getResource($search)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); + $id_C = $reqData['id_cliente'] ?? -1; + + $resourceData = $this->model->getResource("", $id_C)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); + + /*$resourceData = $this->model->getResource($search)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); foreach ($resourceData as $item) : if (isset($item->apellidos) && strlen($item->apellidos) > 100) : $item->apellidos = character_limiter($item->apellidos, 100); endif; - endforeach; + endforeach;*/ return $this->respond(Collection::datatable( $resourceData, $this->model->getResource()->countAllResults(), - $this->model->getResource($search)->countAllResults() + $this->model->getResource($search, $id_C)->countAllResults() )); } else { return $this->failUnauthorized('Invalid request', 403); diff --git a/ci4/app/Models/Clientes/ClienteContactoModel.php b/ci4/app/Models/Clientes/ClienteContactoModel.php index cafe07cc..9ef38f39 100644 --- a/ci4/app/Models/Clientes/ClienteContactoModel.php +++ b/ci4/app/Models/Clientes/ClienteContactoModel.php @@ -1,4 +1,5 @@ "t1.id", - 2 => "t1.cliente_id", - 3 => "t1.cargo", - 4 => "t1.nombre", - 5 => "t1.apellidos", - 6 => "t1.telefono", - 7 => "t1.email", - 8 => "t2.nombre", + 0 => "t1.cargo", + 1 => "t1.nombre", + 2 => "t1.apellidos", + 3 => "t1.telefono", + 4 => "t1.email", + 5 => "t2.nombre", ]; protected $allowedFields = ["cliente_id", "cargo", "nombre", "apellidos", "telefono", "email"]; @@ -105,13 +104,20 @@ class ClienteContactoModel extends \App\Models\GoBaseModel * * @return \CodeIgniter\Database\BaseBuilder */ - public function getResource(string $search = "") + public function getResource(string $search = "", $cliente_id = -1) { $builder = $this->db ->table($this->table . " t1") ->select( "t1.id AS id, t1.cargo AS cargo, t1.nombre AS nombre, t1.apellidos AS apellidos, t1.telefono AS telefono, t1.email AS email, t2.nombre AS cliente_id" ); + + // IMN + if ($cliente_id != -1) { + $builder->where('cliente_id', $cliente_id); + } + $builder->where("t1.is_deleted", 0); + $builder->join("clientes t2", "t1.cliente_id = t2.id", "left"); return empty($search) diff --git a/ci4/app/Views/themes/backend/vuexy/form/clientes/cliente/_clienteFormItems.php b/ci4/app/Views/themes/backend/vuexy/form/clientes/cliente/_clienteFormItems.php index 89497da9..7d3c025b 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/clientes/cliente/_clienteFormItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/clientes/cliente/_clienteFormItems.php @@ -15,6 +15,7 @@ Ficha de Cliente + +