From c435ba5a9f58906b0e90ca04fe63c8c218120c41 Mon Sep 17 00:00:00 2001 From: Jaime Jimenez Date: Mon, 18 Dec 2023 00:10:47 +0100 Subject: [PATCH] falta borrar direcciones cliente --- ci4/app/Controllers/Clientes/Cliente.php | 9 + .../Clientes/Clientedirecciones.php | 98 ++++++++-- ci4/app/Controllers/Test.php | 4 +- .../ComunidadesAutonomasEntity.php | 18 -- .../ComunidadesAutonomasModel.php | 97 ---------- .../cliente/_clienteDireccionesForm.php | 29 +-- .../clientes/cliente/_clienteFormItems.php | 174 +++++++++++++++--- .../form/clientes/cliente/viewClienteForm.php | 3 +- httpdocs/themes/vuexy/css/safekat.css | 7 - 9 files changed, 257 insertions(+), 182 deletions(-) delete mode 100755 ci4/app/Entities/Configuracion/ComunidadesAutonomasEntity.php delete mode 100755 ci4/app/Models/Configuracion/ComunidadesAutonomasModel.php diff --git a/ci4/app/Controllers/Clientes/Cliente.php b/ci4/app/Controllers/Clientes/Cliente.php index cffc7991..5d2867a3 100755 --- a/ci4/app/Controllers/Clientes/Cliente.php +++ b/ci4/app/Controllers/Clientes/Cliente.php @@ -234,6 +234,7 @@ class Cliente extends \App\Controllers\GoBaseResourceController $this->viewData['comunidadAutonomaList'] = $this->getComunidadAutonomaListItems($clienteEntity->comunidad_autonoma_id ?? null); $this->viewData['provinciaList'] = $this->getProvinciaListItems($clienteEntity->provincia_id ?? null); $this->viewData['paisList'] = $this->getPaisListItems($clienteEntity->pais_id ?? null); + $this->viewData['ccaaList'] = $this->getCcaaListItems($clienteEntity->ccaa_id ?? null); $this->viewData['userList'] = $this->getUserListItems($clienteEntity->comercial_id ?? null); $this->viewData['userList2'] = $this->getUserListItems2($clienteEntity->soporte_id ?? null); $this->viewData['formaDePagoList'] = $this->getFormaDePagoListItems($clienteEntity->forma_pago_id ?? null); @@ -354,6 +355,14 @@ class Cliente extends \App\Controllers\GoBaseResourceController return $data; } + protected function getCcaaListItems($selId = null) + { + $ccaaModel = model('App\Models\Configuracion\ComunidadAutonomaModel'); + $onlyActiveOnes = true; + $data = $ccaaModel->getAllForMenu('id, nombre', 'nombre', $onlyActiveOnes); + + return $data; + } protected function getUserListItems($selId = null) { diff --git a/ci4/app/Controllers/Clientes/Clientedirecciones.php b/ci4/app/Controllers/Clientes/Clientedirecciones.php index 872fd5a1..8480d36c 100755 --- a/ci4/app/Controllers/Clientes/Clientedirecciones.php +++ b/ci4/app/Controllers/Clientes/Clientedirecciones.php @@ -20,7 +20,14 @@ class Clientedirecciones extends \App\Controllers\GoBaseResourceController protected static $pluralObjectName = 'Direcciones de cliente'; protected static $pluralObjectNameCc = 'direccionesDeCliente'; - protected static $controllerSlug = 'cliente-direcciones'; + protected static $controllerSlug = 'clientedirecciones'; + + public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger) { + $this->soft_delete = false; + + $this->viewData = ['usingServerSideDataTable' => true]; // JJO + } + public function datatable() { @@ -38,7 +45,7 @@ class Clientedirecciones extends \App\Controllers\GoBaseResourceController $order = ClienteDireccionesModel::SORTABLE[$requestedOrder >= 0 ? $requestedOrder : 1]; $dir = $reqData['order']['0']['dir'] ?? 'asc'; - $id_C = $reqData['id_cliente'] ?? -1; + $id_C = $reqData['cliente_id'] ?? -1; $resourceData = $this->model->getResource($search, $id_C)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); @@ -61,7 +68,7 @@ class Clientedirecciones extends \App\Controllers\GoBaseResourceController include(APPPATH . "ThirdParty/DatatablesEditor/DataTables.php"); // Build our Editor instance and process the data coming from _POST - $response = Editor::inst($db, 'clientes_direcciones') + $response = Editor::inst($db, 'cliente_direcciones') ->fields( Field::inst('att') ->validator('Validate::notEmpty', array( @@ -70,24 +77,77 @@ class Clientedirecciones extends \App\Controllers\GoBaseResourceController ->validator( Validate::maxLen( 100 ) , array( 'message' => lang('ClienteDirecciones.validation.max_length')) ), - - ) - /*->validator(function ($editor, $action, $data) { - if ($action === Editor::ACTION_CREATE || $action === Editor::ACTION_EDIT) { - foreach ($data['data'] as $pkey => $values) { - // Si no se quiere borrar... - if ($data['data'][$pkey]['is_deleted'] != 1) { - $process_data['paginas_min'] = $data['data'][$pkey]['paginas_min']; - $process_data['paginas_max'] = $data['data'][$pkey]['paginas_max']; - $response = $this->model->checkIntervals($process_data, $pkey, $data['data'][$pkey]['papel_impresion_id']); - // No se pueden duplicar valores al crear o al editar - if (!empty($response)) { - return $response; - } + Field::inst('alias') + ->validator('Validate::notEmpty', array( + 'message' => lang('ClienteDirecciones.validation.required')) + ) + ->validator( Validate::maxLen( 100 ) , array( + 'message' => lang('ClienteDirecciones.validation.max_length')) + ), + Field::inst('email') + ->validator('Validate::notEmpty', array( + 'message' => lang('ClienteDirecciones.validation.required')) + ) + ->validator( Validate::maxLen( 100 ) , array( + 'message' => lang('ClienteDirecciones.validation.max_length')) + ), + Field::inst('direccion') + ->validator('Validate::notEmpty', array( + 'message' => lang('ClienteDirecciones.validation.required')) + ) + ->validator( Validate::maxLen( 255 ) , array( + 'message' => lang('ClienteDirecciones.validation.max_length')) + ), + Field::inst('municipio') + ->validator('Validate::notEmpty', array( + 'message' => lang('ClienteDirecciones.validation.required')) + ) + ->validator( Validate::maxLen( 100 ) , array( + 'message' => lang('ClienteDirecciones.validation.max_length')) + ), + Field::inst('cp') + ->validator('Validate::notEmpty', array( + 'message' => lang('ClienteDirecciones.validation.required')) + ) + ->validator( Validate::maxLen( 20 ) , array( + 'message' => lang('ClienteDirecciones.validation.max_length')) + ), + Field::inst('telefono') + ->validator('Validate::notEmpty', array( + 'message' => lang('ClienteDirecciones.validation.required')) + ) + ->validator( Validate::maxLen( 40 ) , array( + 'message' => lang('ClienteDirecciones.validation.max_length')) + ), + Field::inst('provincia') + ->validator( function ( $val, $data, $field, $host ) { + if ($data['pais_id'] == 1) { // Si es españa provincia y CCAA es obligatorio + if (strlen( $val ) > 100) + return lang('ClienteDirecciones.validation.max_length'); + else if (strlen( $val ) == 0) + lang('ClienteDirecciones.validation.required'); + else + return true; } + return true; } - } - })*/ + ), + Field::inst('ccaa_id') + ->validator( function ( $val, $data, $field, $host ) { + if ($data['pais_id'] == 1) { // Si es españa provincia y CCAA es obligatorio + if (strlen( $val ) > 100) + lang('ClienteDirecciones.validation.required'); + else + return true; + } + return true; + } + ), + Field::inst('pais_id')->validator('Validate::notEmpty', array( + 'message' => lang('ClienteDirecciones.validation.required'))), + Field::inst('cliente_id'), + ) + ->debug(true) ->process($_POST) ->data(); diff --git a/ci4/app/Controllers/Test.php b/ci4/app/Controllers/Test.php index c1d9bc7f..14df24b7 100755 --- a/ci4/app/Controllers/Test.php +++ b/ci4/app/Controllers/Test.php @@ -17,9 +17,9 @@ class Test extends BaseController public function index() { - $model = model('App\Models\Presupuestos\TipoPresupuestoServiciosDefectoModel'); + $model = model('App\Models\Clientes\ClienteDireccionesModel'); echo '
';
-        var_dump($model->get_tarifas(4,0,"manipulado"));
+        var_dump($model->getResource("", 1420)->get()->getResultArray());
         echo '
'; } diff --git a/ci4/app/Entities/Configuracion/ComunidadesAutonomasEntity.php b/ci4/app/Entities/Configuracion/ComunidadesAutonomasEntity.php deleted file mode 100755 index 0523e4f5..00000000 --- a/ci4/app/Entities/Configuracion/ComunidadesAutonomasEntity.php +++ /dev/null @@ -1,18 +0,0 @@ - null, - "nombre" => null, - "pais_id" => null, - "created_at" => null, - "updated_at" => null, - ]; - protected $casts = [ - "pais_id" => "int", - ]; -} diff --git a/ci4/app/Models/Configuracion/ComunidadesAutonomasModel.php b/ci4/app/Models/Configuracion/ComunidadesAutonomasModel.php deleted file mode 100755 index 2ac0e435..00000000 --- a/ci4/app/Models/Configuracion/ComunidadesAutonomasModel.php +++ /dev/null @@ -1,97 +0,0 @@ - "t1.id", - 2 => "t1.nombre", - 3 => "t1.pais_id", - 4 => "t1.created_at", - 5 => "t1.updated_at", - 6 => "t2.nombre", - ]; - - protected $allowedFields = ["nombre", "pais_id"]; - protected $returnType = "App\Entities\Configuracion\ComunidadesAutonomasEntity"; - - public static $labelField = "nombre"; - - protected $validationRules = [ - "nombre" => [ - "label" => "ComunidadesAutonomas.nombre", - "rules" => "trim|required|max_length[100]", - ], - ]; - - protected $validationMessages = [ - "nombre" => [ - "max_length" => "ComunidadesAutonomas.validation.nombre.max_length", - "required" => "ComunidadesAutonomas.validation.nombre.required", - ], - ]; - - public function findAllWithPaises(string $selcols = "*", int $limit = null, int $offset = 0) - { - $sql = - "SELECT t1." . - $selcols . - ", t2.nombre AS pais FROM " . - $this->table . - " t1 LEFT JOIN lg_paises t2 ON t1.pais_id = t2.id"; - if (!is_null($limit) && intval($limit) > 0) { - $sql .= " LIMIT " . $limit; - } - - if (!is_null($offset) && intval($offset) > 0) { - $sql .= " OFFSET " . $offset; - } - - $query = $this->db->query($sql); - $result = $query->getResultObject(); - return $result; - } - - /** - * Get resource data. - * - * @param string $search - * - * @return \CodeIgniter\Database\BaseBuilder - */ - public function getResource(string $search = "") - { - $builder = $this->db - ->table($this->table . " t1") - ->select( - "t1.id AS id, t1.nombre AS nombre, t1.created_at AS created_at, t1.updated_at AS updated_at, t2.nombre AS pais" - ); - $builder->join("lg_paises t2", "t1.pais_id = t2.id", "left"); - - return empty($search) - ? $builder - : $builder - ->groupStart() - ->like("t1.id", $search) - ->orLike("t1.nombre", $search) - ->orLike("t1.created_at", $search) - ->orLike("t1.updated_at", $search) - ->orLike("t2.id", $search) - ->orLike("t1.id", $search) - ->orLike("t1.nombre", $search) - ->orLike("t1.pais_id", $search) - ->orLike("t1.created_at", $search) - ->orLike("t1.updated_at", $search) - ->orLike("t2.nombre", $search) - ->groupEnd(); - } -} diff --git a/ci4/app/Views/themes/backend/vuexy/form/clientes/cliente/_clienteDireccionesForm.php b/ci4/app/Views/themes/backend/vuexy/form/clientes/cliente/_clienteDireccionesForm.php index f5903ad9..5e311452 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/clientes/cliente/_clienteDireccionesForm.php +++ b/ci4/app/Views/themes/backend/vuexy/form/clientes/cliente/_clienteDireccionesForm.php @@ -1,4 +1,4 @@ -