diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index 5ada7e45..2c9ed674 100755 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -512,10 +512,10 @@ $routes->group('clientedirecciones', ['namespace' => 'App\Controllers\Clientes'] }); $routes->resource('clientedirecciones', ['namespace' => 'App\Controllers\Clientes', 'controller' => 'Clientedirecciones', 'except' => 'show,new,create,update']); - + $routes->group('cosidotapablanda', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) { $routes->get('list/(:num)', 'Cosidotapablanda::list/$1', ['as' => 'cosidotapablandaList']); // HOMOGENIZAR CON ARGS DINAMICOS!!! - $routes->get('add', 'Cosidotapablanda::add', ['as' => 'newCosidotapablanda']); + $routes->get('add/(:num)', 'Cosidotapablanda::add/$1', ['as' => 'newCosidotapablanda']); $routes->post('add', 'Cosidotapablanda::add', ['as' => 'createCosidotapablanda']); $routes->post('create', 'Cosidotapablanda::create', ['as' => 'ajaxCreateCosidotapablanda']); $routes->put('(:num)/update', 'Cosidotapablanda::update/$1', ['as' => 'ajaxUpdateCosidotapablanda']); diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index 3329774e..7f18fce9 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -47,20 +47,22 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger) { - $this->viewData['pageTitle'] = lang('Presupuestos.moduleTitleCosidoTB'); + //$this->viewData['pageTitle'] = lang('Presupuestos.moduleTitleCosidoTB'); $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]; // JJO - // Breadcrumbs - $this->viewData['breadcrumb'] = [ - ['title' => lang("App.menu_presupuestos"), 'route' => "javascript:void(0);", 'active' => false], - ['title' => lang("App.menu_libros_cosido_tapa_blanda"), 'route' => site_url('presupuestos/cosidotapablanda/list/4'), 'active' => true] + $this->viewData = [ + 'currentModule' => static::$controllerSlug, + 'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Presupuestos.presupuesto')]), + 'presupuestoEntity' => new PresupuestoEntity(), + 'usingServerSideDataTable' => true, + ]; parent::initController($request, $response, $logger); @@ -69,33 +71,22 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController - public function list($tipo_presupuesto = 4) + public function list($tipo_impresion_id = 4) { - switch ($tipo_presupuesto){ + + + // Se pasa a la vista el tipo de presupuesto + $viewData['tipo_impresion_id'] = $tipo_impresion_id; - case 4: - break; - - default: - return "A IMPLEMENTAR!"; - - } - - $viewData = [ - 'currentModule' => static::$controllerSlug, - 'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Presupuestos.presupuesto')]), - 'presupuestoEntity' => new PresupuestoEntity(), - 'usingServerSideDataTable' => true, - - ]; + $viewData = array_merge($viewData, $this->getStringsFromTipoImpresion($tipo_impresion_id)); $viewData = array_merge($this->viewData, $viewData); // merge any possible values from the parent controller class - + return view(static::$viewPath . 'viewCosidotapablandaList', $viewData); } - public function add() + public function add($tipo_impresion_id = 4) { // JJO @@ -165,134 +156,121 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $this->viewData['formAction'] = route_to('createCosidotapablanda'); - $this->viewData['boxTitle'] = lang('Basic.global.addNew') . ' ' . lang('Presupuestos.moduleTitleCosidoTB') . ' ' . lang('Basic.global.addNewSuffix'); + $this->viewData = array_merge($this->viewData, $this->getStringsFromTipoImpresion($tipo_impresion_id)); + + $this->viewData['boxTitle'] = lang('Basic.global.addNew') . ' ' . $this->viewData['pageTitle'] . ' ' . lang('Basic.global.addNewSuffix'); return $this->displayForm(__METHOD__); } // end function add() + public function edit($requestedId = null) { + // JJO + $session = session(); - // JJO - $session = session(); + if ($requestedId == null) : + return $this->redirect2listView(); + endif; + $id = filter_var($requestedId, FILTER_SANITIZE_URL); + $presupuestoEntity = $this->model->find($id); - if ($requestedId == null) : - return $this->redirect2listView(); - endif; - $id = filter_var($requestedId, FILTER_SANITIZE_URL); - $presupuestoEntity = $this->model->find($id); + if ($presupuestoEntity == false) : + $message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('Presupuestos.presupuesto')), $id]); + return $this->redirect2listView('sweet-error', $message); + endif; - if ($presupuestoEntity == false) : - $message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('Presupuestos.presupuesto')), $id]); - return $this->redirect2listView('sweet-error', $message); - endif; + $requestMethod = $this->request->getMethod(); - $requestMethod = $this->request->getMethod(); + if ($requestMethod === 'post') : - if ($requestMethod === 'post') : + $nullIfEmpty = true; // !(phpversion() >= '8.1'); - $nullIfEmpty = true; // !(phpversion() >= '8.1'); + $postData = $this->request->getPost(); - $postData = $this->request->getPost(); + $postData['updated_at'] = gmdate('Y-m-d H:m:s', time()); - $postData['updated_at'] = gmdate('Y-m-d H:m:s', time()); + $sanitizedData = $this->sanitized($postData, $nullIfEmpty); - $sanitizedData = $this->sanitized($postData, $nullIfEmpty); + + // JJO + $sanitizedData['user_updated_id'] = $session->id_user; - - // JJO - $sanitizedData['user_updated_id'] = $session->id_user; + if ($this->request->getPost('retractilado') == null) { + $sanitizedData['retractilado'] = false; + } + if ($this->request->getPost('retractilado5') == null) { + $sanitizedData['retractilado5'] = false; + } + if ($this->request->getPost('ferro') == null) { + $sanitizedData['ferro'] = false; + } + if ($this->request->getPost('ferro_digital') == null) { + $sanitizedData['ferro_digital'] = false; + } + if ($this->request->getPost('prototipo') == null) { + $sanitizedData['prototipo'] = false; + } + if ($this->request->getPost('marcapaginas') == null) { + $sanitizedData['marcapaginas'] = false; + } + if ($this->request->getPost('faja_color') == null) { + $sanitizedData['faja_color'] = false; + } + if ($this->request->getPost('papel_formato_personalizado') == null) { + $sanitizedData['papel_formato_personalizado'] = false; + } - if ($this->request->getPost('retractilado') == null) { - $sanitizedData['retractilado'] = false; - } - if ($this->request->getPost('retractilado5') == null) { - $sanitizedData['retractilado5'] = false; - } - if ($this->request->getPost('ferro') == null) { - $sanitizedData['ferro'] = false; - } - if ($this->request->getPost('ferro_digital') == null) { - $sanitizedData['ferro_digital'] = false; - } - if ($this->request->getPost('prototipo') == null) { - $sanitizedData['prototipo'] = false; - } - if ($this->request->getPost('marcapaginas') == null) { - $sanitizedData['marcapaginas'] = false; - } - if ($this->request->getPost('faja_color') == null) { - $sanitizedData['faja_color'] = false; - } - if ($this->request->getPost('papel_formato_personalizado') == null) { - $sanitizedData['papel_formato_personalizado'] = false; - } - - $noException = true; - if($sanitizedData['papel_formato_id'] == null && $sanitizedData['papel_formato_ancho'] == null - && $sanitizedData['papel_formato_alto'] == null){ - if ($this->request->isAJAX()) { - $newTokenHash = csrf_hash(); - $csrfTokenName = csrf_token(); - $data = [ - 'errorMensaje' => lang('Presupuestos.errores.formato_papel'), - $csrfTokenName => $newTokenHash - ]; - return $this->respond($data); - - } - else{ - $this->session->setFlashData('errorMessage', lang('Presupuestos.errores.formato_papel')); - } - $successfulResult = false; + $noException = true; + if($sanitizedData['papel_formato_id'] == null && $sanitizedData['papel_formato_ancho'] == null + && $sanitizedData['papel_formato_alto'] == null){ + if ($this->request->isAJAX()) { + $newTokenHash = csrf_hash(); + $csrfTokenName = csrf_token(); + $data = [ + 'errorMensaje' => lang('Presupuestos.errores.formato_papel'), + $csrfTokenName => $newTokenHash + ]; + return $this->respond($data); + } else{ - - if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) - - if ($this->canValidate()) : - try { - $successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData); - } catch (\Exception $e) { - $noException = false; - $this->dealWithException($e); - } - else : - $this->viewData['warningMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('Presupuestos.presupuesto'))]); - $this->session->setFlashdata('formErrors', $this->model->errors()); - - endif; - - $presupuestoEntity->fill($sanitizedData); - - $thenRedirect = false; - endif; + $this->session->setFlashData('errorMessage', lang('Presupuestos.errores.formato_papel')); } + $successfulResult = false; + } + else{ - if ($noException && $successfulResult) : - $id = $presupuestoEntity->id ?? $id; - $message = lang('Basic.global.updateSuccess', [mb_strtolower(lang('Presupuestos.presupuesto'))]) . '.'; - // $message .= anchor("admin/presupuestos/{$id}/edit", lang('Basic.global.continueEditing') . '?'); - //$message = ucfirst(str_replace("'", "\'", $message)); + if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) - if ($thenRedirect) : - if (!empty($this->indexRoute)) : - return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message); - else : - if ($this->request->isAJAX()) { - $newTokenHash = csrf_hash(); - $csrfTokenName = csrf_token(); - $data = [ - 'mensaje' => $message, - $csrfTokenName => $newTokenHash - ]; - return $this->respond($data); - } - else{ - return $this->redirect2listView('sweet-success', $message); - } - - endif; + if ($this->canValidate()) : + try { + $successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData); + } catch (\Exception $e) { + $noException = false; + $this->dealWithException($e); + } + else : + $this->viewData['warningMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('Presupuestos.presupuesto'))]); + $this->session->setFlashdata('formErrors', $this->model->errors()); + + endif; + + $presupuestoEntity->fill($sanitizedData); + + $thenRedirect = false; + endif; + } + + if ($noException && $successfulResult) : + $id = $presupuestoEntity->id ?? $id; + $message = lang('Basic.global.updateSuccess', [mb_strtolower(lang('Presupuestos.presupuesto'))]) . '.'; + // $message .= anchor("admin/presupuestos/{$id}/edit", lang('Basic.global.continueEditing') . '?'); + //$message = ucfirst(str_replace("'", "\'", $message)); + + if ($thenRedirect) : + if (!empty($this->indexRoute)) : + return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message); else : if ($this->request->isAJAX()) { $newTokenHash = csrf_hash(); @@ -304,12 +282,27 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController return $this->respond($data); } else{ - $this->session->setFlashData('sweet-success', $message); + return $this->redirect2listView('sweet-success', $message); } + endif; + else : + if ($this->request->isAJAX()) { + $newTokenHash = csrf_hash(); + $csrfTokenName = csrf_token(); + $data = [ + 'mensaje' => $message, + $csrfTokenName => $newTokenHash + ]; + return $this->respond($data); + } + else{ + $this->session->setFlashData('sweet-success', $message); + } + endif; - endif; // $noException && $successfulResult - endif; // ($requestMethod === 'post') + endif; // $noException && $successfulResult + endif; // ($requestMethod === 'post') $this->viewData['presupuestoId'] = $id; @@ -367,7 +360,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $this->viewData['formAction'] = route_to('updateCosidotapablanda', $id); - $this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . lang('Presupuestos.moduleTitleCosidoTB') . ' ' . lang('Basic.global.edit3'); + $this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . $this->viewData['pageTitle'] . ' ' . lang('Basic.global.edit3'); return $this->displayForm(__METHOD__, $id); @@ -403,12 +396,14 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $order3 = PresupuestoModel::SORTABLE[$requestedOrder3 >= 0 ? $requestedOrder1 : 0]; $dir3 = $reqData['order']['0']['dir'] ?? 'asc'; + // por defecto, se deja cosido tapa blanda por ahora JJO + $tipo_presupuesto_id = $reqData['tipo_presupuesto_id'] ?? 4; if (is_null($type)) { $searchValues = get_filter_datatables_columns($reqData); - $resourceData = $this->model->getResource($searchValues)->orderBy($order1, $dir1)->orderBy($order2, $dir2) + $resourceData = $this->model->getResource($searchValues, $tipo_presupuesto_id)->orderBy($order1, $dir1)->orderBy($order2, $dir2) ->orderBy($order3, $dir3)->limit($length, $start)->get()->getResultObject(); foreach ($resourceData as $item) : if (isset($item->comentarios_pdf) && strlen($item->comentarios_pdf) > 100) : @@ -561,8 +556,8 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController return $this->respond(Collection::datatable( $resourceData, - $this->model->getResource()->countAllResults(), - $this->model->getResource($search)->countAllResults() + $this->model->getResource("", $tipo_presupuesto_id)->countAllResults(), + $this->model->getResource($search, $tipo_presupuesto_id)->countAllResults() )); } else { return $this->failUnauthorized('Invalid request', 403); @@ -613,6 +608,40 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController } } + private function getStringsFromTipoImpresion($tipo_impresion_id){ + + $breadcrumbTitle = ""; + + switch ($tipo_impresion_id){ + + // Fresado tapa blanda + case 2: + $viewData['pageTitle'] = lang('Presupuestos.moduleTitleFresadoTB'); + $viewData['isCosido'] = 0; + $breadcrumbTitle = lang("App.menu_libros_fresasdo_tapa_blanda"); + break; + + // Cosido tapa blanda + case 4: + $viewData['pageTitle'] = lang('Presupuestos.moduleTitleCosidoTB'); + $viewData['isCosido'] = 1; + $breadcrumbTitle = lang("App.menu_libros_cosido_tapa_blanda"); + break; + + default: + return "A IMPLEMENTAR!"; + + } + + // Breadcrumbs + $viewData['breadcrumb'] = [ + ['title' => lang("App.menu_presupuestos"), 'route' => "javascript:void(0);", 'active' => false], + ['title' => $breadcrumbTitle, 'route' => site_url('presupuestos/cosidotapablanda/list/' . $tipo_impresion_id), 'active' => true] + ]; + + return $viewData; + } + public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null) { @@ -790,6 +819,8 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController return $lineas; } + + public function getCompIntRotData($datosPedido, $papel_generico, $gramaje, $paginas, $cliente_id, $datosTipolog = null) { $uso = 'interior'; diff --git a/ci4/app/Language/en/Presupuestos.php b/ci4/app/Language/en/Presupuestos.php index 3e0334c4..8935ec9e 100755 --- a/ci4/app/Language/en/Presupuestos.php +++ b/ci4/app/Language/en/Presupuestos.php @@ -4,8 +4,10 @@ return [ 'moduleTitleCosidoTB' => 'Budget for Softcover Stitched Book', + 'moduleTitleFresadoTB' => 'Budget for Softcover Milling Book', 'presupuestoCosidotapablandaList' => 'List of budgets for Softcover Stitched Books', + 'presupuestoFresadotapablandaList' => 'List of budgets for Milling Stitched Books', 'presupuesto' => 'Budget', 'datosPresupuesto' => 'Budget information', diff --git a/ci4/app/Language/es/Presupuestos.php b/ci4/app/Language/es/Presupuestos.php index 4d01efd2..b6b876fa 100755 --- a/ci4/app/Language/es/Presupuestos.php +++ b/ci4/app/Language/es/Presupuestos.php @@ -3,8 +3,10 @@ return [ 'moduleTitleCosidoTB' => 'Presupuesto Libro Cosido Tapa Blanda', + 'moduleTitleFresadoTB' => 'Presupuesto Libro Fresado Tapa Blanda', 'presupuestoCosidotapablandaList' => 'Lista presupuestos Libros Cosido Tapa Blanda', + 'presupuestoFresadotapablandaList' => 'Lista presupuestos Libros Fresado Tapa Blanda', 'presupuesto' => 'Presupuesto', 'datosPresupuesto' => 'Datos generales del presupuesto', diff --git a/ci4/app/Models/Presupuestos/PresupuestoModel.php b/ci4/app/Models/Presupuestos/PresupuestoModel.php index 9e2960da..8f8f6acc 100755 --- a/ci4/app/Models/Presupuestos/PresupuestoModel.php +++ b/ci4/app/Models/Presupuestos/PresupuestoModel.php @@ -220,7 +220,7 @@ class PresupuestoModel extends \App\Models\GoBaseModel * * @return \CodeIgniter\Database\BaseBuilder */ - public function getResource($search = []) + public function getResource($search = [], $tipo_impresion_id = 4) { $builder = $this->db ->table($this->table . " t1") @@ -236,6 +236,7 @@ class PresupuestoModel extends \App\Models\GoBaseModel $builder->join("presupuesto_estados t6", "t1.estado_id = t6.id", "left"); $builder->where("t1.is_deleted", 0); + $builder->where("t1.tipo_impresion_id", $tipo_impresion_id); if (empty($search)) return $builder; diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php index 513eb4c2..863854bf 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php @@ -16,7 +16,7 @@ - + @@ -82,13 +82,12 @@ id: 'id', text: 'nombre', searchTerm: params.term, - < - ? = csrf_token() ?? "token" ? > : < ? = csrf_token() ? > v + : v }; }, delay: 60, processResults: function(response) { - yeniden(response. < ? = csrf_token() ? > ); + yeniden(response. ); return { results: response.menu }; diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaList.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaList.php index cfcd2ea4..24cfc0a4 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaList.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaList.php @@ -9,8 +9,8 @@
-

- 'btn btn-primary ']); ?> +

+ 'btn btn-primary ']); ?>
@@ -155,6 +155,9 @@ theTable = $('#tableOfPresupuestos').DataTable({ }, ajax : $.fn.dataTable.pipeline( { url: '', + data: function (d) { + d.tipo_presupuesto_id = ''; + }, method: 'POST', headers: {'X-Requested-With': 'XMLHttpRequest'}, async: true, @@ -218,7 +221,7 @@ theTable.on( 'draw.dt', function () { $(document).on('click', '.btn-edit', function(e) { - window.location.href = `/presupuestos/cosidotapablanda/edit/${$(this).attr('data-id')}`; + window.location.href = `/presupuestos/cosidotapablanda/edit/${$(this).attr('data-id')}/`; });