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 @@
| = lang('Basic.global.Action') ?> | -=lang('LgProveedores.id')?> | -= lang('LgProveedores.nombre') ?> | -= lang('LgProveedoresTipos.proveedorTipo') ?> | -= lang('LgProveedores.razonSocial') ?> | -= lang('LgProveedores.cif') ?> | -= lang('LgProveedores.direccion') ?> | -= lang('LgProveedores.cp') ?> | -= lang('LgProveedores.ciudad') ?> | -= lang('Provincias.provincia') ?> | -= lang('Paises.pais') ?> | -= lang('LgProveedores.personaContacto') ?> | -= lang('LgProveedores.email') ?> | -= lang('LgProveedores.telefono') ?> | += lang('Proveedores.nombre') ?> | += lang('Proveedores.tipoId') ?> | = lang('Basic.global.Action') ?> |
|---|