diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index a44885c5..185309ad 100644 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -365,30 +365,9 @@ $routes->group('clientes', ['namespace' => 'App\Controllers\Clientes'], function $routes->post('menuitems', 'Cliente::menuItems', ['as' => 'menuItemsOfClientes']); }); - /* Precios */ - /*$routes->group('precios', ['namespace' => 'App\Controllers\Clientes'], function ($routes) { - $routes->post('datatable', 'ClientePrecios::datatable', ['as' => 'clientePreciosDT']); - $routes->post('datatable_editor', 'ClientePrecios::datatable_editor', ['as' => 'clientePreciosDTE']); - });*/ - - }); -/*$routes->group('cliente', ['namespace' => 'App\Controllers\Clientes'], function ($routes) { - $routes->get('', 'Cliente::index', ['as' => 'clienteList']); - $routes->get('add', 'Cliente::add', ['as' => 'newCliente']); - $routes->post('add', 'Cliente::add', ['as' => 'createCliente']); - $routes->post('create', 'Cliente::create', ['as' => 'ajaxCreateCliente']); - $routes->put('(:num)/update', 'Cliente::update/$1', ['as' => 'ajaxUpdateCliente']); - $routes->post('edit/(:num)', 'Cliente::edit/$1', ['as' => 'updateCliente']); - $routes->get('delete/(:num)', 'Cliente::delete/$1', ['as' => 'deleteCliente']); - $routes->post('datatable', 'Cliente::datatable', ['as' => 'dataTableOfClientes']); - $routes->post('allmenuitems', 'Cliente::allItemsSelect', ['as' => 'select2ItemsOfClientes']); - -}); -$routes->resource('cliente', ['namespace' => 'App\Controllers\Clientes', 'controller' => 'Cliente', 'except' => 'show,new,create,update']);*/ - $routes->group('clienteprecios', ['namespace' => 'App\Controllers\Clientes'], function ($routes) { $routes->post('datatable', 'ClientePrecios::datatable', ['as' => 'dataTableOfClienteprecios']); $routes->post('datatable_editor', 'ClientePrecios::datatable_editor', ['as' => 'editorOfClienteprecios']); @@ -419,6 +398,11 @@ $routes->group('clienteusuarios', ['namespace' => 'App\Controllers\Clientes'], f }); +$routes->group('misdirecciones', ['namespace' => 'App\Controllers\Clientes'], function ($routes) { + $routes->get('', 'Clientedirecciones::index', ['as' => 'clientedireccionesIndex']); +}); + + $routes->group('formas-pagos', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) { $routes->get('', 'Formaspagos::index', ['as' => 'formaDePagoList']); $routes->get('add', 'Formaspagos::add', ['as' => 'newFormaDePago']); diff --git a/ci4/app/Controllers/Clientes/Clientedirecciones.php b/ci4/app/Controllers/Clientes/Clientedirecciones.php index 18385cf2..d37d665f 100755 --- a/ci4/app/Controllers/Clientes/Clientedirecciones.php +++ b/ci4/app/Controllers/Clientes/Clientedirecciones.php @@ -6,6 +6,8 @@ use App\Entities\Clientes\ClienteDireccionesEntity; use App\Models\Clientes\ClienteDireccionesModel; +use App\Models\Usuarios\UserModel; + use DataTables\Editor; use DataTables\Editor\Field; use DataTables\Editor\Validate; @@ -22,6 +24,53 @@ class Clientedirecciones extends \App\Controllers\BaseResourceController protected static $controllerSlug = 'clientedirecciones'; + protected static $viewPath = 'themes/vuexy/form/clientes/direcciones/'; + + protected $indexRoute = 'clienteDireccionesList'; + + public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger) + { + $this->viewData['pageTitle'] = lang('Clientes.direccionesEnvio'); + $this->viewData['usingSweetAlert'] = true; + + $this->viewData = ['usingServerSideDataTable' => true]; // JJO + + // Breadcrumbs (IMN) + $this->viewData['breadcrumb'] = [ + ['title' => lang("Clientes.direccionesEnvio"), 'route' => "javascript:void(0);", 'active' => false], + + ]; + + $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); + + parent::initController($request, $response, $logger); + } + + + public function index() + { + + $id = auth()->user()->id; + $user_model = new UserModel(); + $user = $user_model->find($id); + $cliente_id = $user->cliente_id; + + $viewData = [ + 'currentModule' => static::$controllerSlug, + 'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Clientes.cliente')]), + 'cliente_id' => $cliente_id, + "user_id" => $id, + 'usingServerSideDataTable' => true, + + ]; + + $viewData = array_merge($this->viewData, $viewData); // merge any possible values from the parent controller class + + return view(static::$viewPath . 'viewClienteDireccionesList', $viewData); + } + public function add(){ if ($this->request->isAJAX()) { @@ -226,4 +275,42 @@ class Clientedirecciones extends \App\Controllers\BaseResourceController return $this->failUnauthorized('Invalid request', 403); } } + + + protected function getPaisListItems($selId = null) + { + $paisModel = model('App\Models\Configuracion\PaisModel'); + $onlyActiveOnes = true; + $data = $paisModel->getAllForMenu('id, nombre', 'nombre', $onlyActiveOnes); + + return $data; + } + + protected function getComunidadAutonomaListItems($selId = null) + { + $data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('ComunidadesAutonomas.comunidadAutonoma'))])]; + if (!is_null($selId)) : + $comunidadAutonomaModel = model('App\Models\Configuracion\ComunidadAutonomaModel'); + + $selOption = $comunidadAutonomaModel->where('id', $selId)->findColumn('nombre'); + if (!empty($selOption)) : + $data[$selId] = $selOption[0]; + endif; + endif; + return $data; + } + + protected function getProvinciaListItems($selId = null) + { + $data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Provincias.provincia'))])]; + if (!empty($selId)) : + $provinciaModel = model('App\Models\Configuracion\ProvinciaModel'); + + $selOption = $provinciaModel->where('id', $selId)->findColumn('nombre'); + if (!empty($selOption)) : + $data[$selId] = $selOption[0]; + endif; + endif; + return $data; + } } diff --git a/ci4/app/Language/en/Clientes.php b/ci4/app/Language/en/Clientes.php index c35ecd3e..de0cce45 100755 --- a/ci4/app/Language/en/Clientes.php +++ b/ci4/app/Language/en/Clientes.php @@ -54,6 +54,9 @@ return [ 'userCreatedId' => 'User Created ID', 'userUpdateId' => 'User Update ID', 'vencimiento' => 'Vencimiento', + + 'direccionesEnvio' => 'Shipping Addresses', + 'validation' => [ 'ccc' => [ 'max_length' => 'The {field} field cannot exceed {param} characters in length.', diff --git a/ci4/app/Language/es/Clientes.php b/ci4/app/Language/es/Clientes.php index ea299358..3e505bbb 100755 --- a/ci4/app/Language/es/Clientes.php +++ b/ci4/app/Language/es/Clientes.php @@ -46,6 +46,9 @@ return [ 'userCreatedId' => 'User Created ID', 'userUpdateId' => 'User Update ID', 'vencimiento' => 'Vencimiento', + + 'direccionesEnvio' => 'Direcciones de EnvĂo', + 'validation' => [ 'ccc' => [ 'max_length' => 'El campo {field} no puede exceder {param} caracteres en longitud.', diff --git a/ci4/app/Views/themes/vuexy/form/clientes/cliente/_clienteFormItems.php b/ci4/app/Views/themes/vuexy/form/clientes/cliente/_clienteFormItems.php index 03ddbcd9..cc7dddde 100644 --- a/ci4/app/Views/themes/vuexy/form/clientes/cliente/_clienteFormItems.php +++ b/ci4/app/Views/themes/vuexy/form/clientes/cliente/_clienteFormItems.php @@ -1421,7 +1421,7 @@ $('#tableOfDireccionesEnvio').on( 'click', 'tbody span.edit-add', function (e) { $('#add_municipio').val(data.municipio) $('#add_provincia').val(data.provincia) $('#add_cp').val(data.cp) - $('#add_telefono').val(data.cp) + $('#add_telefono').val(data.telefono) var $newAddDialog = $("#addressForm") $newAddDialog.modal('show') diff --git a/ci4/app/Views/themes/vuexy/form/clientes/direcciones/viewClienteDireccionesList.php b/ci4/app/Views/themes/vuexy/form/clientes/direcciones/viewClienteDireccionesList.php new file mode 100644 index 00000000..cc8798e8 --- /dev/null +++ b/ci4/app/Views/themes/vuexy/form/clientes/direcciones/viewClienteDireccionesList.php @@ -0,0 +1,299 @@ += $this->include('themes/_commonPartialsBs/select2bs5') ?> += $this->include('themes/_commonPartialsBs/datatables') ?> += $this->include('themes/_commonPartialsBs/_confirm2delete') ?> += $this->extend('themes/vuexy/main/defaultlayout') ?> + += $this->section('content'); ?> +
| = lang('ClienteDirecciones.alias') ?> | += lang('ClienteDirecciones.att') ?> | += lang('ClienteDirecciones.email') ?> | += lang('ClienteDirecciones.direccion') ?> | += lang('ClienteDirecciones.cp') ?> | += lang('ClienteDirecciones.municipio') ?> | += lang('ClienteDirecciones.provincia') ?> | += lang('ClienteDirecciones.pais') ?> | += lang('ClienteDirecciones.telefono') ?> | += lang('Basic.global.Action') ?> | +
|---|
" + error.status + '
') + }) + } + } + else{ + $('#addressForm').modal("hide"); + } + +}) + +editorAddress.on( 'submitSuccess', function ( e, json, data, action ) { + + tableDirecciones.clearPipeline(); + tableDirecciones.draw(); +}); + +editorAddress.on( 'close', function ( e, json, data, action ) { + $('#tableOfDireccionesEnvio').DataTable().ajax.reload(); +}) + +const lastColNr2 = $('#tableOfDireccionesEnvio').find("tr:first th").length - 1; + +var tableDirecciones = $('#tableOfDireccionesEnvio').DataTable( { + draw:2, + serverSide: true, + processing: true, + autoWidth: true, + responsive: true, + order: [0, "asc" ], + pageLength: 10, + lengthChange: false, + searching: false, + paging: true, + info: false, + dom: '<"mt-4"><"float-end"B><"float-start"l>