From c4e42d42394c5c5b9c9955a4aeecce9c81caf0c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= <“jaimejimenezortega@gmail.com”> Date: Sun, 28 Jan 2024 13:38:56 +0100 Subject: [PATCH 1/7] trabajando en el add --- ci4/app/Config/Routes.php | 4 +- .../Presupuestos/Cosidotapablanda.php | 307 ++++++++++-------- ci4/app/Language/en/Presupuestos.php | 2 + ci4/app/Language/es/Presupuestos.php | 2 + .../Models/Presupuestos/PresupuestoModel.php | 3 +- .../viewCosidotapablandaForm.php | 7 +- .../viewCosidotapablandaList.php | 9 +- 7 files changed, 186 insertions(+), 148 deletions(-) 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')}/`; }); From 581af2a4aa6be9f0ecbeb97e25e19b3ab0495d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= <“jaimejimenezortega@gmail.com”> Date: Sun, 28 Jan 2024 20:57:40 +0100 Subject: [PATCH 2/7] todo ok a falta de los servicios por defecto --- ci4/app/Config/Routes.php | 2 +- .../Presupuestos/Cosidotapablanda.php | 38 +++++++++---------- ci4/app/Services/PresupuestoService.php | 9 +++++ .../_datosPresupuestoClienteItems.php | 3 ++ .../_lineasPresupuestoItems.php | 7 ++++ .../cosidotapablanda/_previewItems.php | 16 ++++---- .../presupuestos/cosidotapablanda/previews.js | 16 ++++---- .../viewCosidotapablandaForm.php | 2 +- .../viewCosidotapablandaList.php | 2 +- 9 files changed, 56 insertions(+), 39 deletions(-) diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index 2c9ed674..22288760 100755 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -515,7 +515,7 @@ $routes->resource('clientedirecciones', ['namespace' => 'App\Controllers\Cliente $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/(:num)', 'Cosidotapablanda::add/$1', ['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 7f18fce9..2f2624a6 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -47,7 +47,6 @@ 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['usingSweetAlert'] = true; // Se indica que este controlador trabaja con soft_delete @@ -57,14 +56,6 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $this->viewData = ['usingServerSideDataTable' => true]; // JJO - $this->viewData = [ - 'currentModule' => static::$controllerSlug, - 'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Presupuestos.presupuesto')]), - 'presupuestoEntity' => new PresupuestoEntity(), - 'usingServerSideDataTable' => true, - - ]; - parent::initController($request, $response, $logger); $this->model = new PresupuestoModel(); } @@ -73,20 +64,24 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController public function list($tipo_impresion_id = 4) { - - - // Se pasa a la vista el tipo de presupuesto - $viewData['tipo_impresion_id'] = $tipo_impresion_id; + $viewData = [ + 'currentModule' => static::$controllerSlug, + 'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Presupuestos.presupuesto')]), + 'presupuestoEntity' => new PresupuestoEntity(), + 'usingServerSideDataTable' => true, + 'tipo_impresion_id' => $tipo_impresion_id + ]; $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($tipo_impresion_id = 4) + public function add($tipo_impresion_id = null) { // JJO @@ -143,8 +138,9 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController endif; // ($requestMethod === 'post') - $this->viewData['tipo_impresion_id'] = 4; // Cosido tapa blanda JJO - $this->viewData['presupuestoEntity'] = isset($sanitizedData) ? new PresupuestoEntity($sanitizedData) : new PresupuestoEntity(); + $this->viewData['tipo_impresion_id'] = $tipo_impresion_id; // Cosido tapa blanda JJO + $presupuestoEntity = isset($sanitizedData) ? new PresupuestoEntity($sanitizedData) : new PresupuestoEntity(); + $this->viewData['presupuestoEntity'] = $presupuestoEntity; $this->viewData['isCosido'] = (new TipoPresupuestoModel())->get_isCosido($this->viewData['tipo_impresion_id']); $this->viewData['clienteList'] = $this->getClienteListItems($presupuestoEntity->cliente_id ?? null); @@ -356,7 +352,9 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController 'fajaColor' => 16, ]; - $this->viewData['tipo_impresion_id'] = 4; // Cosido tapa blanda JJO + $this->viewData['tipo_impresion_id'] = $presupuestoEntity->tipo_impresion_id; // Cosido tapa blanda JJO + + $this->viewData = array_merge($this->viewData, $this->getStringsFromTipoImpresion($presupuestoEntity->tipo_impresion_id)); $this->viewData['formAction'] = route_to('updateCosidotapablanda', $id); @@ -397,13 +395,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $dir3 = $reqData['order']['0']['dir'] ?? 'asc'; // por defecto, se deja cosido tapa blanda por ahora JJO - $tipo_presupuesto_id = $reqData['tipo_presupuesto_id'] ?? 4; + $tipo_impresion_id = $reqData['tipo_impresion_id'] ?? 4; if (is_null($type)) { $searchValues = get_filter_datatables_columns($reqData); - $resourceData = $this->model->getResource($searchValues, $tipo_presupuesto_id)->orderBy($order1, $dir1)->orderBy($order2, $dir2) + $resourceData = $this->model->getResource($searchValues, $tipo_impresion_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) : @@ -455,7 +453,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController 'ancho' => intval($reqData['ancho']) ?? 100000, 'alto' => intval($reqData['alto']) ?? 100000, 'a_favor_fibra' => $reqData['a_favor_fibra'] ?? 1, - 'isCosido' => true, // JJO esto es custom por cada tipo de presupuesto + 'isCosido' => (new TipoPresupuestoModel())->get_isCosido($tipo_impresion_id), // JJO esto es custom por cada tipo de presupuesto ); $papel_generico = [ diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index b5fdf366..db6645e3 100755 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -451,6 +451,8 @@ class PresupuestoService extends BaseService $h1_temp = 0; $h2_temp = 0; + + // El ancho si es cosido es el doble if($uso != 'cubierta' && $uso != 'sobrecubierta'){ $anchoForCalculo = $isCosido ? $ancho * 2 : $ancho; @@ -458,6 +460,13 @@ class PresupuestoService extends BaseService else{ $anchoForCalculo = $ancho; } + + // Generates a message like: User 123 logged into the system from 127.0.0.1 + $info = [ + 'isCosido' => $anchoForCalculo, + ]; + + log_message('error', 'isCosido en formas planas: {isCosido}', $info); if($uso == 'cubierta' || $uso == 'sobrecubierta') { if(property_exists($maquina, 'forzar_num_formas_horizontales_cubierta') && diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php index 8227098a..dcc38897 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php @@ -834,6 +834,7 @@ const dimension = getDimensionLibro(); let datos = { + tipo_impresion_id: , type: 'interior', color: is_color?1:0, hq: is_hq?1:0, @@ -911,6 +912,7 @@ if(checkInputsForRotativa()){ let datos = { + tipo_impresion_id: , type: 'interior_rot', paginas: parseInt($('#paginas').val()), paginas_negro: parseInt($('#compPaginasNegro').val()), @@ -988,6 +990,7 @@ const dimension = getDimensionLibro(); let datos = { + tipo_impresion_id: , type: 'cubierta', paginas: parseInt($('#compCarasCubierta').select2('data')[0].id), tirada: parseInt($('#tirada').val()), diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php index c0d8cde2..41160640 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php @@ -1203,6 +1203,7 @@ function calcularPresupuesto_bn(input_data={}, updatedTipologias = false){ } var datos = { + tipo_impresion_id: , type: 'interior', color: 0, hq: 0, @@ -1526,6 +1527,7 @@ function calcularPresupuesto_color(input_data={}, updatedTipologias = false){ } let datos = { + tipo_impresion_id: , type: 'interior', color: 1, hq: 0, @@ -1822,6 +1824,7 @@ function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){ } let datos = { + tipo_impresion_id: , type: 'interior', color: 0, hq: 1, @@ -2121,6 +2124,7 @@ function calcularPresupuesto_colorhq(input_data={}, updatedTipologias = false){ } let datos = { + tipo_impresion_id: , type: 'interior', color: 1, hq: 1, @@ -2412,6 +2416,7 @@ function calcularPresupuesto_rot_bn(fromComparador=false, updatedTipologias=fals } let datos = { + tipo_impresion_id: , type: 'interior_rot', color: 0, hq: 0, @@ -2745,6 +2750,7 @@ function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=f paginas_color = isNaN(parseInt($('#lp_rot_color_numPagColor').val()))?input_data.paginas:parseInt($('#lp_rot_color_numPagColor').val()) let datos = { + tipo_impresion_id: , type: 'interior_rot', color: 1, hq: 0, @@ -3060,6 +3066,7 @@ function calcularPresupuesto_cubierta(fromComparador=false, input_data={}){ let datos = { + tipo_impresion_id: , type: 'cubierta', color: 1, hq: 1, diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_previewItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_previewItems.php index c9e1f902..b905b804 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_previewItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_previewItems.php @@ -740,50 +740,50 @@ $('#tab-pv-bn').on( "click", function() { - previewInteriorPlana('bn'); + previewInteriorPlana('bn', ); } ); $('#tab-pv-bnhq').on( "click", function() { - previewInteriorPlana('bnhq'); + previewInteriorPlana('bnhq', ); } ); $('#tab-pv-color').on( "click", function() { - previewInteriorPlana('color'); + previewInteriorPlana('color', ); } ); $('#tab-pv-colorhq').on( "click", function() { - previewInteriorPlana('colorhq'); + previewInteriorPlana('colorhq', ); } ); $('#tab-pv-rot-bn').on( "click", function() { - previewRotativa('rot_bn'); + previewRotativa('rot_bn', ); } ); $('#tab-pv-rot-color').on( "click", function() { - previewRotativa('rot_color'); + previewRotativa('rot_color', ); } ); $('#tab-pv-cubierta').on( "click", function() { - previewInteriorPlana('cubierta'); + previewInteriorPlana('cubierta', ); } ); $('#tab-pv-esquema-cubierta').on( "click", function() { - previewEsquemaCubierta('ec'); + previewEsquemaCubierta('ec', ); } ); diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js index 390dbc7a..7f80ed00 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js @@ -1,5 +1,5 @@ // Global parameters -var _isCosido = true; +//var _isCosido = true; var pvObj; var sangradoTexto = "Sangrado 5 mm"; @@ -7,7 +7,7 @@ var sangradoValor = parseFloat(5); // mm var offsetSolapaValor = parseFloat(0); // mm -function previewInteriorPlana(lpTagName) { +function previewInteriorPlana(lpTagName, isCosido) { // Local parameters let guardaV = 0; @@ -15,7 +15,7 @@ function previewInteriorPlana(lpTagName) { let styleText = {size: 12, family: 'Public Sans'}; // Get the preview Object parameters - getObjetoLP(lpTagName); + getObjetoLP(lpTagName, isCosido); // Configuracion de las guardas // Guarda vertical @@ -83,7 +83,7 @@ function previewInteriorPlana(lpTagName) { _pvPlana.update(); } -function previewRotativa(lpTagName) { +function previewRotativa(lpTagName, isCosido) { // Local parameters let styleText = {size: 12, family: 'Public Sans'}; @@ -92,7 +92,7 @@ function previewRotativa(lpTagName) { let guardaH = 0; // Get the preview Object parameters - getObjetoLP(lpTagName); + getObjetoLP(lpTagName, isCosido); // Calculos // Configuracion de las guardas @@ -186,14 +186,14 @@ function getDecimalPart(floatNumber) { } -function previewEsquemaCubierta(lpTagName) { +function previewEsquemaCubierta(lpTagName, isCosido) { // Variables locales let altoLibro, anchoLibro, lomoLibro, anchoSolapa, anchoCubierta, altoSangrado, anchoSangrado; let styleCotas = {size: 12, family: 'Public Sans'}; // Get the preview Object parameters - getObjetoLP(lpTagName); + getObjetoLP(lpTagName, isCosido); // Definicion de los parametros del Esquema de Cubierta (EC) if (pvObj.anchoSolapa == 0) { @@ -360,7 +360,7 @@ function getLomoLibro() { } -function getObjetoLP(lpName) { +function getObjetoLP(lpName, _isCosido) { let rowData = null; 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 863854bf..74c9ba42 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 @@ - + 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 24cfc0a4..dc27270e 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 @@ -156,7 +156,7 @@ theTable = $('#tableOfPresupuestos').DataTable({ ajax : $.fn.dataTable.pipeline( { url: '', data: function (d) { - d.tipo_presupuesto_id = ''; + d.tipo_impresion_id = ''; }, method: 'POST', headers: {'X-Requested-With': 'XMLHttpRequest'}, From 7a511ac51b615dc2b82d827ea7b0a306239174cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez=20Ortega?= Date: Tue, 30 Jan 2024 14:33:34 +0100 Subject: [PATCH 3/7] arreglado problema con servicios por defecto --- .../Presupuestos/Cosidotapablanda.php | 4 +-- .../Presupuestoencuadernaciones.php | 7 ++-- .../Presupuestos/Presupuestomanipulados.php | 4 ++- .../PresupuestoEncuadernacionesModel.php | 3 +- .../TipoPresupuestoServiciosDefectoModel.php | 36 +++++++++---------- .../cosidotapablanda/_datosServiciosItems.php | 5 ++- 6 files changed, 32 insertions(+), 27 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index 2f2624a6..54088aa6 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -554,8 +554,8 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController return $this->respond(Collection::datatable( $resourceData, - $this->model->getResource("", $tipo_presupuesto_id)->countAllResults(), - $this->model->getResource($search, $tipo_presupuesto_id)->countAllResults() + $this->model->getResource("", $tipo_impresion_id)->countAllResults(), + $this->model->getResource($search, $tipo_impresion_id)->countAllResults() )); } else { return $this->failUnauthorized('Invalid request', 403); diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoencuadernaciones.php b/ci4/app/Controllers/Presupuestos/Presupuestoencuadernaciones.php index 9fdb714b..87d0ef6d 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestoencuadernaciones.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestoencuadernaciones.php @@ -140,8 +140,11 @@ class Presupuestoencuadernaciones extends \App\Controllers\GoBaseResourceControl } } - else - $values = $this->model->initPresupuesto(4, $solapas, $tirada, $paginas, $ancho, $alto, $POD); + else{ + $tipo_impresion_id = $reqData['tipo_impresion_id'] ?? 4; + $values = $this->model->initPresupuesto($tipo_impresion_id, $solapas, $tirada, $paginas, $ancho, $alto, $POD); + } + $data = [ 'values' => $values, $csrfTokenName => $newTokenHash diff --git a/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php b/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php index cc2e86f6..aae3b314 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php @@ -104,6 +104,7 @@ class Presupuestomanipulados extends \App\Controllers\GoBaseResourceController $POD = $reqData['POD'] ?? 0; $tipo = $reqData['tipo'] ?? null; + $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); @@ -112,7 +113,8 @@ class Presupuestomanipulados extends \App\Controllers\GoBaseResourceController } else{ $solapas = $reqData['solapas'] ?? -1; - $values = $this->model->initPresupuesto(4, $solapas, $tirada, $POD); + $tipo_impresion_id = $reqData['tipo_impresion_id'] ?? 4; + $values = $this->model->initPresupuesto($tipo_impresion_id, $solapas, $tirada, $POD); } $data = [ diff --git a/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php b/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php index 10d4d387..c06a6864 100755 --- a/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php +++ b/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php @@ -51,12 +51,11 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel public function initPresupuesto($tipo_presupuesto, $solapas, $tirada, $paginas, $ancho, $alto, $POD){ $model = model('App\Models\Presupuestos\TipoPresupuestoServiciosDefectoModel'); - $tarifas_procesar = $model->get_tarifas($tipo_presupuesto,$solapas, "encuadernacion"); + $tarifas_procesar = $model->get_tarifas($tipo_presupuesto, $solapas, "encuadernacion"); $modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel'); $tarifas = []; - foreach($tarifas_procesar as $tarifa){ if($modelTarifa->isTarifaPorHoras($tarifa['tarifa_id'])){ diff --git a/ci4/app/Models/Presupuestos/TipoPresupuestoServiciosDefectoModel.php b/ci4/app/Models/Presupuestos/TipoPresupuestoServiciosDefectoModel.php index 119554ea..6eabe873 100755 --- a/ci4/app/Models/Presupuestos/TipoPresupuestoServiciosDefectoModel.php +++ b/ci4/app/Models/Presupuestos/TipoPresupuestoServiciosDefectoModel.php @@ -34,8 +34,6 @@ class TipoPresupuestoServiciosDefectoModel extends \App\Models\GoBaseModel public function get_tarifas($tipo_presupuesto=-1, $solapas=0, $tipo=""){ - $where = "(t1.solapas=2) OR (t1.solapas=" . $solapas . ")"; - $builder = $this->db ->table($this->table . " t1") ->where("t1.tipo_presupuesto_id", $tipo_presupuesto); @@ -43,42 +41,42 @@ class TipoPresupuestoServiciosDefectoModel extends \App\Models\GoBaseModel if(strcmp($tipo, "encuadernacion")==0){ $builder->join("tarifa_encuadernacion t2", "t1.tarifa_id = t2.id", "left"); - $builder->where("is_servicio_encuadernacion", 1); - $builder->where("is_servicio_acabado", 0); - $builder->where("is_servicio_manipulado", 0); - $builder->where("is_servicio_preimpresion", 0); + $builder->where("t1.is_servicio_encuadernacion", 1); + $builder->where("t1.is_servicio_acabado", 0); + $builder->where("t1.is_servicio_manipulado", 0); + $builder->where("t1.is_servicio_preimpresion", 0); } else if(strcmp($tipo, "acabado")==0){ $builder->join("lg_tarifa_acabado t2", "t1.tarifa_id = t2.id", "left"); - $builder->where("is_servicio_acabado", 1); - $builder->where("is_servicio_encuadernacion", 0); - $builder->where("is_servicio_manipulado", 0); - $builder->where("is_servicio_preimpresion", 0); + $builder->where("t1.is_servicio_acabado", 1); + $builder->where("t1.is_servicio_encuadernacion", 0); + $builder->where("t1.is_servicio_manipulado", 0); + $builder->where("t1.is_servicio_preimpresion", 0); } else if(strcmp($tipo, "manipulado")==0){ $builder->join("lg_tarifa_manipulado t2", "t1.tarifa_id = t2.id", "left"); - $builder->where("is_servicio_manipulado", 1); - $builder->where("is_servicio_encuadernacion", 0); - $builder->where("is_servicio_acabado", 0); - $builder->where("is_servicio_preimpresion", 0); + $builder->where("t1.is_servicio_manipulado", 1); + $builder->where("t1.is_servicio_encuadernacion", 0); + $builder->where("t1.is_servicio_acabado", 0); + $builder->where("t1.is_servicio_preimpresion", 0); } else if(strcmp($tipo, "preimpresion")==0){ $builder->join("lg_tarifa_preimpresion t2", "t1.tarifa_id = t2.id", "left"); - $builder->where("is_servicio_preimpresion", 1); - $builder->where("is_servicio_encuadernacion", 0); - $builder->where("is_servicio_acabado", 0); - $builder->where("is_servicio_manipulado", 0); + $builder->where("t1.is_servicio_preimpresion", 1); + $builder->where("t1.is_servicio_encuadernacion", 0); + $builder->where("t1.is_servicio_acabado", 0); + $builder->where("t1.is_servicio_manipulado", 0); } else{ return []; } - $where = "t1.solapas IS NULL OR t1.solapas='" . $solapas . "'"; + $where = "(t1.solapas IS NULL OR t1.solapas='" . $solapas . "')"; $builder->where($where); $builder->where("t2.is_deleted", 0); diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.php index a15d043f..3074eae3 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.php @@ -877,8 +877,10 @@ : v }; - if(tipo != null) + if(tipo != null){ datos['tipo'] = tipo; + datos['tipo_impresion_id'] = ; + } $.ajax({ type: "POST", @@ -1095,6 +1097,7 @@ if(tipo != null){ datos['tipo'] = tipo; datos['solapas'] = $('#solapas').is(':checked')?1:0; + datos['tipo_impresion_id'] = ; } From f4cdf748e9e17381825998d9296df45408d485d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez=20Ortega?= Date: Tue, 30 Jan 2024 14:56:13 +0100 Subject: [PATCH 4/7] corregido error en el post del add --- ci4/app/Config/Routes.php | 2 +- ci4/app/Controllers/Presupuestos/Cosidotapablanda.php | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index 22288760..3b7a2594 100755 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -516,7 +516,7 @@ $routes->resource('clientedirecciones', ['namespace' => 'App\Controllers\Cliente $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/(:num)', 'Cosidotapablanda::add/$1', ['as' => 'newCosidotapablanda']); - $routes->post('add', 'Cosidotapablanda::add', ['as' => 'createCosidotapablanda']); + $routes->post('add/(:num)', 'Cosidotapablanda::add/$1', ['as' => 'createCosidotapablanda']); $routes->post('create', 'Cosidotapablanda::create', ['as' => 'ajaxCreateCosidotapablanda']); $routes->put('(:num)/update', 'Cosidotapablanda::update/$1', ['as' => 'ajaxUpdateCosidotapablanda']); $routes->post('edit/(:num)', 'Cosidotapablanda::edit/$1', ['as' => 'updateCosidotapablanda']); diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index 54088aa6..dc34f8b3 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -150,7 +150,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $this->viewData['POD'] = $this->getPOD(); - $this->viewData['formAction'] = route_to('createCosidotapablanda'); + $this->viewData['formAction'] = route_to('createCosidotapablanda', $tipo_impresion_id); $this->viewData = array_merge($this->viewData, $this->getStringsFromTipoImpresion($tipo_impresion_id)); @@ -549,7 +549,6 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController return $this->respond($data); } - } return $this->respond(Collection::datatable( From 0813abfb10bc9f9fdaa597cbf409de62075f273e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= <“jaimejimenezortega@gmail.com”> Date: Sat, 3 Feb 2024 20:19:48 +0100 Subject: [PATCH 5/7] arreglado bug rotativa. Trabajando en bug inkjet --- .../Presupuestos/Cosidotapablanda.php | 8 +- ci4/app/Services/PresupuestoService.php | 50 +++--- .../_lineasPresupuestoItems.php | 154 ++++++++++++------ .../presupuestos/cosidotapablanda/previews.js | 9 +- 4 files changed, 141 insertions(+), 80 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index dc34f8b3..fa7fda96 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -483,7 +483,9 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController array_push($datosTipolog, $data); } - $resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog); + $a_favor_fibra = $reqData['a_favor_fibra'] ?? null; + + $resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog, $a_favor_fibra); $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); @@ -640,7 +642,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController } - public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null) + public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null, $a_favor_fibra = null) { $tipo = $isColor? ($isHq?'colorhq':'color'): ($isHq?'negrohq':'negro'); @@ -697,7 +699,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController if($maquina->is_inkjet){ $parametrosInkjet = (object)array( - 'a_favor_fibra' => 1, // este parametro se cambia para comprobar + 'a_favor_fibra' => $a_favor_fibra, // este parametro se cambia para comprobar // en las dos direcciones (menos en rustica fresada que es siempre 1) 'bnPages' => $isColor?0:$datosPedido->paginas, 'colorPages' => $isColor?$datosPedido->paginas:0, diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index db6645e3..f77b4d50 100755 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -45,7 +45,7 @@ class PresupuestoService extends BaseService if ($uso!='rotativa') { $ancho_calculo = ($uso=='cubierta' || $uso=='sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho; - $formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido); + $formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido,); $response['fields'] = $formas; } @@ -387,13 +387,18 @@ class PresupuestoService extends BaseService $data['alto_click'] = $maquina->alto_click; - $formas = PresupuestoService::getNumFormasRot($maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido); + $formas = PresupuestoService::getNumFormasRot( + $maquina, + $datosPedido->ancho, + $datosPedido->alto, + $datosPedido->isCosido, + $parametrosRotativa->a_favor_fibra); $data['num_formas'] = $formas; return $data; } - public static function getNumFormasRot($maquina, $ancho, $alto, $isCosido) + public static function getNumFormasRot($maquina, $ancho, $alto, $isCosido, $a_favor_fibra = true) { // El ancho si es cosido es el doble $anchoForCalculo = $isCosido ? $ancho * 2 : $ancho; @@ -403,35 +408,38 @@ class PresupuestoService extends BaseService $h2_temp = floor($maquina->ancho_impresion / $alto); // horizontales - $calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h1_temp); - // Si son mas de 2 formas - if(count($calles)>0) - $h1 = ($h1_temp * $anchoForCalculo + 2 * $calles[0]->externas + ($h1_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h1_temp : $h1_temp - 1; - else - $h1 = $h1_temp; - - $v1 = floor($maquina->alto_click / $alto); - $formas_h = $h1 * $v1; //p1 + if($a_favor_fibra){ + $calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h1_temp); + // Si son mas de 2 formas + if(count($calles)>0) + $h1 = ($h1_temp * $anchoForCalculo + 2 * $calles[0]->externas + ($h1_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h1_temp : $h1_temp - 1; + else + $h1 = $h1_temp; + $v1 = floor($maquina->alto_click / $alto); + $formas_h = $h1 * $v1; //p1 + } // verticales - $calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h2_temp); - if(count($calles)>0) - $h2 = ($h2_temp * $anchoForCalculo + 2 * $calles[0]->externas + ($h2_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h2_temp : $h2_temp - 1; - else - $h2 = $h2_temp; - $v2 = floor($maquina->alto_click / $anchoForCalculo); - $formas_v = $h2 * $v2; //p2 + else{ + $calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h2_temp); + if(count($calles)>0) + $h2 = ($h2_temp * $alto + 2 * $calles[0]->externas + ($h2_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h2_temp : $h2_temp - 1; + else + $h2 = $h2_temp; + $v2 = floor($maquina->alto_click / $anchoForCalculo); + $formas_v = $h2 * $v2; //p2 + } - $num_formas = ($formas_h > $formas_v) ? $formas_h : $formas_v; + $num_formas = $a_favor_fibra ? $formas_h : $formas_v; $num_formas = $isCosido ? $num_formas * 2 : $num_formas; // si no hay formas se devuelve n/a if ($num_formas == 0) { $response['posicion_formas'] = 'n/a'; // not available - } else if ($formas_h > $formas_v) { + } else if ($a_favor_fibra) { $response['posicion_formas'] = 'h'; $response['num_formas_horizontales'] = $h1; $response['num_formas_verticales'] = $v1; diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php index 41160640..d2991f86 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php @@ -90,26 +90,26 @@ function format(d) { ''+ ''+ ''+ - '
' + + '
' + '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '' + '
' + @@ -117,23 +117,23 @@ function format(d) { '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + '' + @@ -153,7 +153,7 @@ function format(d) { ''+ ''+ ''+ - '
' + + '
' + '
' + '' + '
'+ @@ -163,7 +163,7 @@ function format(d) { '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + @@ -204,54 +204,54 @@ function format(d) { ''+ ''+ ''+ - '
' + + '
' + (d.row_id.includes('rot')?'
': '' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + @@ -260,54 +260,54 @@ function format(d) { ''+ ''+ ''+ - '
' + + '
' + (d.row_id.includes('rot')?'
': '' + (d.row_id.includes('rot')?'
': '' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + (d.row_id.includes('rot')?'
': '' + '
' + '' + - '' + + '' + '
' + '
' + '' + @@ -316,34 +316,34 @@ function format(d) { ''+ ''+ ''+ - '
' + + '
' + (d.row_id.includes('rot')?'
': '' + (d.row_id.includes('rot')?'
': '' + (d.row_id.includes('rot')?'
': '' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - ''+ + ''+ '
' + '
' + '' + @@ -1173,7 +1173,6 @@ function change_lp_bn_maquina(){ } - function change_lp_bn_paginas(){ if( parseInt($('#lp_bn_paginas').val())>0 && @@ -1186,6 +1185,23 @@ function change_lp_bn_paginas(){ } } + +function change_lp_bn_aFavorFibra(){ + + if( parseInt($('#lp_bn_paginas').val())>0 && + parseInt($('#lp_bn_papel option:selected').val())>0 && + $('#lp_bn_gramaje option:selected').text().length>0 && + parseInt($('#lp_bn_papelImpresion option:selected').val())>0 + ){ + var rowData = tableLineasPresupuesto.row('#lp_bn').data() + rowData.aFavorFibra = $('#lp_bn_aFavorFibra').prop('checked') + tableLineasPresupuesto.row('#lp_bn').data(rowData).draw(false) + + calcularPresupuesto_rot_bn(false, true); + } +} + + function calcularPresupuesto_bn(input_data={}, updatedTipologias = false){ const dimension = getDimensionLibro(); @@ -1219,6 +1235,11 @@ function calcularPresupuesto_bn(input_data={}, updatedTipologias = false){ : v }; + // Si es inkjet, existe este check + if ($('#lp_bn_aFavorFibra').length){ + datos.a_favor_fibra = $('#lp_bn_aFavorFibra').prop('checked') + } + if(updatedTipologias){ datos.gota_negro= $('#lp_bn_gotaNegro').val() datos.gota_color= $('#lp_bn_gotaColor').val() @@ -1243,9 +1264,13 @@ function calcularPresupuesto_bn(input_data={}, updatedTipologias = false){ value.fields.papel_generico_id === input_data.papel_generico_id && value.fields.papel_impresion_id === input_data.papel_impresion_id) { + // Si viene del comparador if(Object.keys(input_data).length == 0){ value.fields.check_papel_total = $('#lp_bn' + '_checkPapel').is(":checked")?1:0 value.fields.check_impresion_total = $('#lp_bn' + '_checkClicks').is(":checked")?1:0 + // Por defecto en plana: en contra de fibra + value.fields.a_favor_fibra = false + } else{ value.fields.check_papel_total = 1 @@ -1353,6 +1378,7 @@ function eventos_lp_bn(isInkjet = false){ if(isInkjet){ $('.lp-bn-tipologia').bind("change", change_lp_bn_tipologia); $('#lp_bn_defecto').bind("click", por_defecto_lp_bn); + $('#lp_bn_aFavorFibra').bind("change", change_lp_bn_aFavorFibra); } $('#lp_bn_checkPapel').bind("change", {id_linea: 'lp_bn'}, update_total_linea); @@ -1806,6 +1832,21 @@ function por_defecto_lp_bnhq(){ } } +function change_lp_bnhq_aFavorFibra(){ + +if( parseInt($('#lp_bnhq_paginas').val())>0 && + parseInt($('#lp_bnhq_papel option:selected').val())>0 && + $('#lp_bnhq_gramaje option:selected').text().length>0 && + parseInt($('#lp_bnhq_papelImpresion option:selected').val())>0 + ){ + var rowData = tableLineasPresupuesto.row('#lp_bnhq').data() + rowData.aFavorFibra = $('#lp_bnhq_aFavorFibra').prop('checked') + tableLineasPresupuesto.row('#lp_bnhq').data(rowData).draw(false) + + calcularPresupuesto_bnhq(false, true); +} +} + function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){ @@ -1849,6 +1890,11 @@ function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){ datos.amarillo= $('#lp_bnhq_cobAmarillo').val() } + // Si es inkjet, existe este check + if ($('#lp_bnhq_aFavorFibra').length){ + datos.a_favor_fibra = $('#lp_bnhq_aFavorFibra').prop('checked') + } + $.ajax({ type: "POST", url: "/cosidotapablanda/datatable", @@ -1865,6 +1911,8 @@ function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){ if(Object.keys(input_data).length == 0){ value.fields.check_papel_total = $('#lp_bnhq' + '_checkPapel').is(":checked")?1:0 value.fields.check_impresion_total = $('#lp_bnhq' + '_checkClicks').is(":checked")?1:0 + // Por defecto en plana: en contra de fibra + value.fields.a_favor_fibra = false } else{ value.fields.check_papel_total = 1 @@ -1946,6 +1994,7 @@ function eventos_lp_bnhq(isInkjet = false){ if(isInkjet){ $('.lp-bnhq-tipologia').bind("change", change_lp_bnhq_tipologia); $('#lp_bnhq_defecto').bind("click", por_defecto_lp_bnhq); + $('#lp_bnhq_aFavorFibra').bind("change", change_lp_bnhq_aFavorFibra); } $('#lp_bnhq_checkPapel').bind("change", {id_linea: 'lp_bnhq'}, update_total_linea); @@ -2792,6 +2841,7 @@ function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=f if(data.lineas.length >0){ // Se cogen los valores de la linea con los datos correspondientes $.each(data.lineas, function(key, value) { + console.log(value.fields.num_formas) fibra = $('#lp_rot_color_aFavorFibra').prop('checked') if(fromComparador){ if(value.fields.maquina_id === input_data.maquina_id && @@ -3324,16 +3374,16 @@ function fill_lp_from_bbdd(){ switch(lp.tipo){ case 'lp_bn': - eventos_lp_bn() + eventos_lp_bn(lp.maquina_tipo=='inkjet'?true:false) break case 'lp_bnhq': - eventos_lp_bnhq() + eventos_lp_bnhq(lp.maquina_tipo=='inkjet'?true:false) break case 'lp_color': - eventos_lp_color() + eventos_lp_color(lp.maquina_tipo=='inkjet'?true:false) break case 'lp_colorhq': - eventos_lp_colorhq() + eventos_lp_colorhq(lp.maquina_tipo=='inkjet'?true:false) break case 'lp_rot_bn': eventos_lp_rot_bn() diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js index 7f80ed00..5d0e36d1 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js @@ -455,10 +455,11 @@ function getObjetoLP(lpName, _isCosido) { case 'rot_bn': case 'rot_color': - if ((pvObj.anchoImpresion / pvObj.altoForma) > (pvObj.anchoImpresion / pvObj.anchoForma)) { - let auxReg = pvObj.anchoForma; - pvObj.anchoForma = pvObj.altoForma; - pvObj.altoForma = auxReg; + // Conditional assignements depending on rotation of the printing shape + if (pvObj.orientacionFormas == 'v') { + let auxReg = pvObj.altoForma; + pvObj.altoForma = pvObj.anchoForma; + pvObj.anchoForma = auxReg; } $(pvName + '_forma').text(pvObj.anchoForma + "x" + pvObj.altoForma); pvObj.altoClick = isNaN(parseFloat(rowData.alto_click))?305:parseFloat(rowData.alto_click); From e0b7409ba54ee53ba36c9a5f0a1848d401195956 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= <“jaimejimenezortega@gmail.com”> Date: Sun, 4 Feb 2024 21:04:33 +0100 Subject: [PATCH 6/7] eliminados los bugs --- .../Presupuestos/Cosidotapablanda.php | 33 +- ci4/app/Services/PresupuestoService.php | 283 ++++++------------ .../_lineasPresupuestoItems.php | 77 +++-- 3 files changed, 169 insertions(+), 224 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index fa7fda96..b0ee05f8 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -483,7 +483,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController array_push($datosTipolog, $data); } - $a_favor_fibra = $reqData['a_favor_fibra'] ?? null; + $a_favor_fibra = $reqData['a_favor_fibra'] ?? false; $resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog, $a_favor_fibra); @@ -642,7 +642,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController } - public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null, $a_favor_fibra = null) + public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null, $a_favor_fibra = false) { $tipo = $isColor? ($isHq?'colorhq':'color'): ($isHq?'negrohq':'negro'); @@ -737,13 +737,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController } if($maquina->is_inkjet){ - $linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosInkjet); - [$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas); - $linea['fields']['precios_pliegos'] = $precio_pliego_impresion; - $linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $precio_pliego_impresion; - $linea['fields']['a_favor_fibra'] = $parametrosInkjet->a_favor_fibra; - $linea['fields']['paginas_color'] = $isColor?$datosPedido->paginas:0; - $linea['fields']['datosTipologias'] = $datosTipologias[0]; + $linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa, $parametrosInkjet->a_favor_fibra); } else{ $linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa); @@ -751,6 +745,11 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController if(array_key_exists('error', $linea)) continue; + + if($maquina->is_inkjet){ + // calculo de tintas + $linea['fields'] = array_merge($linea['fields'], PresupuestoService::calculoCosteTintas($maquina, $datosPedido, $parametrosInkjet)); + } $linea['fields']['tarifa_impresion_id'] = $tarifaId; $linea['fields']['maquina'] = $maquina->maquina; @@ -763,10 +762,6 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $linea['fields']['papel_generico_id'] = $papel_generico['id']; $linea['fields']['papel_generico'] = $papel_generico['nombre']; - if($maquina->is_inkjet){ - $linea['fields']['precio_click'] = $tarifa; - $linea['fields']['precio_click_pedido'] = $linea['fields']['clicks_pedido'] * $linea['fields']['precio_click']; - } $linea['fields']['tiempo_maquina'] = PresupuestoService::getTiempoMaquina( $linea['fields']['precio_click_pedido'], $linea['fields']['precio_click'], @@ -796,8 +791,16 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $linea['fields']['margen_impresion_horas'] = $precio_hora*($margen_precio_hora/100.0)*$tiempo; if($maquina->is_inkjet){ - $linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma)*(1+$margen_pliego_impresion); - $linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro']*$margen_pliego_impresion* ($datosPedido->tirada + $datosPedido->merma); ; + $linea['fields']['a_favor_fibra'] = $parametrosInkjet->a_favor_fibra; + $linea['fields']['paginas_color'] = $isColor?$datosPedido->paginas:0; + $linea['fields']['totalClicksPedido'] = $linea['fields']['precio_click_pedido']; + $linea['fields']['clicks_libro'] = round(ceil($linea['fields']['pliegos_libro']) * 2, 2); + $linea['fields']['clicks_pedido'] = round($linea['fields']['clicks_libro'] * ($datosPedido->tirada + $datosPedido->merma), 2); + [$ancho, $alto] = PresupuestoService::calculoDimForma($datosPedido, $parametrosInkjet); + $linea['fields']['factor_anchura'] = round($maquina->ancho_impresion / $ancho, 2); + $linea['fields']['factor_altura'] = round($maquina->alto_impresion / ($alto + PresupuestoService::MARGEN_PAGINAS_ROTATIVA), 2); + $linea['fields']['paginas_por_pliego'] = ($datosPedido->isCosido)?$linea['fields']['num_formas']['value']*2:$linea['fields']['num_formas']['value']; + $linea['fields']['datosTipologias'] = $datosTipologias[0]; $linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + // papel $linea['fields']['precio_impresion_horas'] + // horas de maquina diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index f77b4d50..46cf88e3 100755 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -38,14 +38,14 @@ class PresupuestoService extends BaseService * * @return [type] */ - public static function getCostesLinea($uso, $datosPedido, $maquina, $papel_impresion, $opciones_papel, $tarifa) + public static function getCostesLinea($uso, $datosPedido, $maquina, $papel_impresion, $opciones_papel, $tarifa, $forzar_a_favor_fibra = false) { $response['fields'] = []; if ($uso!='rotativa') { $ancho_calculo = ($uso=='cubierta' || $uso=='sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho; - $formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido,); + $formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido, $forzar_a_favor_fibra); $response['fields'] = $formas; } @@ -142,131 +142,7 @@ class PresupuestoService extends BaseService } - /** - * Devuelve los calculos para la linea de rotativa. - */ - public static function getCostesLineaInkjet($maquina, $papel_impresion, $datosPedido, $parametrosInkjet) - { - $data = []; - - $data['resolucion'] = 600; - $data['pulgada'] = 1 / 1000000000000.0; - $data['superficie'] = round((($datosPedido->ancho / 2.54) / 10) * (($datosPedido->alto / 2.54) / 10), 2); - - // posicionamos paginas en función de a favor de fibra o no - - $anchoLibro = $datosPedido->ancho; - $altoLibro = $datosPedido->alto; - - $formas = PresupuestoService::getNumFormasPlana('interior', $maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido); - $response['fields'] = $formas; - - - if ($response['fields']['num_formas']['posicion_formas'] == 'n/a') { - $response['error']['value'] = true; - $response['error']['message'] = 'no_formas_disponibles'; - return $response; - } - - $data['ancho'] = $anchoLibro; - $data['alto'] = $altoLibro; - - // si es cosido ancho x 2 - - if ($datosPedido->isCosido) { - - $data['ancho'] = $data['ancho'] * 2; - } - - // calculo de papel y clicks - $factor_anchura = round($maquina->ancho_impresion / $data['ancho'], 2); - $factor_altura = round($maquina->alto_impresion / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2); - $factor_altura_click = round($maquina->alto_click / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2); - - $multiplicador_pliego = $datosPedido->isCosido ? 4 : 2; - $paginas_por_pliego = round(floor($factor_anchura) * $factor_altura * $multiplicador_pliego, 2); - $pliegos_libro = round($paginas_por_pliego ? $datosPedido->paginas / $paginas_por_pliego : 0, 2); - $metros_papel_libro = round($pliegos_libro * ($maquina->alto_impresion / 1000.0), 2); - $metros_papel_total = round($metros_papel_libro * ($datosPedido->tirada + $datosPedido->merma), 2); - - $paginas_por_pliego_click = round(floor($factor_anchura) * $factor_altura_click * $multiplicador_pliego, 2); - $pliegos_libro_click = round($paginas_por_pliego_click ? $datosPedido->paginas / $paginas_por_pliego_click : 0, 2); - $clicks_libro = round(ceil($pliegos_libro_click) * 2, 2); - $clicks_pedido = round($clicks_libro * ($datosPedido->tirada + $datosPedido->merma), 2); - - $data['factor_altura'] = $factor_altura; - $data['factor_anchura'] = $factor_anchura; - $data['paginas_por_pliego'] = $paginas_por_pliego; - $data['pliegos_libro'] = $pliegos_libro; - $data['pliegos_pedido'] = $pliegos_libro * ($datosPedido->tirada + $datosPedido->merma); - $data['metros_papel_libro'] = $metros_papel_libro; - $data['metros_papel_total'] = $metros_papel_total; - $data['clicks_libro'] = $clicks_libro; - $data['clicks_pedido'] = $clicks_pedido; - - // calculo de tintas - $data['num_gotas_negro'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosInkjet->rotativa_negro / 100.0), 0); - $data['num_gotas_cyan'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosInkjet->rotativa_cyan / 100.0), 0); - $data['num_gotas_magenta'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosInkjet->rotativa_magenta / 100.0), 0); - $data['num_gotas_amarillo'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosInkjet->rotativa_amarillo / 100.0), 0); - - $pag_negro = $parametrosInkjet->bnPages; - $pag_color = 0; - if ($parametrosInkjet->colorPages>0) { - $pag_color = $parametrosInkjet->colorPages; - } - - // peso tintas - $data['peso_gotas_negro'] = round((($data['num_gotas_negro'] * $parametrosInkjet->rotativa_gota_negro * $data['pulgada']) / (17.91 / 20.0)) * $pag_negro * 1000, 6); - $data['peso_gotas_cyan'] = round((($data['num_gotas_cyan'] * $parametrosInkjet->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); - $data['peso_gotas_magenta'] = round((($data['num_gotas_magenta'] * $parametrosInkjet->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); - $data['peso_gotas_amarillo'] = round((($data['num_gotas_amarillo'] * $parametrosInkjet->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); - - // costes de tintas - $data['peso_gotas_negro_pedido'] = round($data['peso_gotas_negro'], 2) * ($datosPedido->tirada + $datosPedido->merma); - $data['peso_gotas_cyan_pedido'] = round($data['peso_gotas_cyan'], 2) * ($datosPedido->tirada + $datosPedido->merma); - $data['peso_gotas_magenta_pedido'] = round($data['peso_gotas_magenta'], 2) * ($datosPedido->tirada + $datosPedido->merma); - $data['peso_gotas_amarillo_pedido'] = round($data['peso_gotas_amarillo'], 2) * ($datosPedido->tirada + $datosPedido->merma); - - // precio tinta - $data['precio_tinta'] = round( - round(($data['peso_gotas_negro_pedido'] / 1000.0) * $maquina->precio_tinta_negro, 2) + - round(($data['peso_gotas_cyan_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + - round(($data['peso_gotas_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + - round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) - , 2); - - // precio pagina - $data['precio_pagina_negro'] = round($pag_negro ? $data['precio_tinta'] / ($pag_negro * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6); - $data['precio_pagina_color'] = round($pag_color ? $data['precio_tinta'] / ($pag_color * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6); - - - - $data['mano'] = PresupuestoService::computeLomoInterior($datosPedido->paginas, $papel_impresion->espesor); - // ($paginas / 2.0) * (($gramaje / 1000.0) * $papel_compra->mano); - - // peso - $data['peso'] = PresupuestoService::computePeso( - ancho: $datosPedido->isCosido ? $datosPedido->ancho / 2.0 : $datosPedido->ancho, - alto: $datosPedido->alto, - gramaje: $papel_impresion->gramaje, - paginas: $datosPedido->paginas - ); - $data['dimensiones_maquina'] = [$maquina->ancho, $maquina->alto]; - $data['dimensiones_maquina_impresion'] = [$maquina->ancho_impresion, $maquina->alto_impresion]; - $data['dimensiones_maquina_click'] = [$maquina->ancho_impresion, $maquina->alto_click]; - $data['dimensiones_libro'] = [$datosPedido->ancho, $datosPedido->alto]; - - $data['alto_click'] = $maquina->alto_click; - - $formas = PresupuestoService::getNumFormasRot($maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido); - $data['num_formas'] = $formas; - - return $data; - } - - /** * Devuelve los calculos para la linea de rotativa. */ @@ -274,32 +150,7 @@ class PresupuestoService extends BaseService { $data = []; - $data['resolucion'] = 600; - $data['pulgada'] = 1 / 1000000000000.0; - $data['superficie'] = round((($datosPedido->ancho / 2.54) / 10) * (($datosPedido->alto / 2.54) / 10), 2); - - // posicionamos paginas en función de a favor de fibra o no - - $anchoLibro = $datosPedido->ancho; - $altoLibro = $datosPedido->alto; - - if (!$parametrosRotativa->a_favor_fibra) { - $anchoLibro = $datosPedido->alto; - $altoLibro = $datosPedido->ancho; - } - - $data['ancho'] = $anchoLibro; - $data['alto'] = $altoLibro; - - // si es cosido ancho x 2 - - if ($datosPedido->isCosido) { - if (!$parametrosRotativa->a_favor_fibra) { - $data['alto'] = $data['alto'] * 2; - } else { - $data['ancho'] = $data['ancho'] * 2; - } - } + [$data['ancho'], $data['alto']] = PresupuestoService::calculoDimForma($datosPedido, $parametrosRotativa); // calculo de papel y clicks $factor_anchura = round($maquina->ancho_impresion / $data['ancho'], 2); @@ -328,41 +179,8 @@ class PresupuestoService extends BaseService $data['clicks_pedido'] = $clicks_pedido; // calculo de tintas - $data['num_gotas_negro'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_negro / 100.0), 0); - $data['num_gotas_cyan'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_cyan / 100.0), 0); - $data['num_gotas_magenta'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_magenta / 100.0), 0); - $data['num_gotas_amarillo'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_amarillo / 100.0), 0); - - $pag_negro = $parametrosRotativa->bnPages; - $pag_color = 0; - if ($parametrosRotativa->colorPages>0) { - $pag_color = $parametrosRotativa->colorPages; - } - - // peso tintas - $data['peso_gotas_negro'] = round((($data['num_gotas_negro'] * $parametrosRotativa->rotativa_gota_negro * $data['pulgada']) / (17.91 / 20.0)) * $pag_negro * 1000, 6); - $data['peso_gotas_cyan'] = round((($data['num_gotas_cyan'] * $parametrosRotativa->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); - $data['peso_gotas_magenta'] = round((($data['num_gotas_magenta'] * $parametrosRotativa->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); - $data['peso_gotas_amarillo'] = round((($data['num_gotas_amarillo'] * $parametrosRotativa->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); - - // costes de tintas - $data['peso_gotas_negro_pedido'] = round($data['peso_gotas_negro'], 2) * ($datosPedido->tirada + $datosPedido->merma); - $data['peso_gotas_cyan_pedido'] = round($data['peso_gotas_cyan'], 2) * ($datosPedido->tirada + $datosPedido->merma); - $data['peso_gotas_magenta_pedido'] = round($data['peso_gotas_magenta'], 2) * ($datosPedido->tirada + $datosPedido->merma); - $data['peso_gotas_amarillo_pedido'] = round($data['peso_gotas_amarillo'], 2) * ($datosPedido->tirada + $datosPedido->merma); - - // precio tinta - $data['precio_tinta'] = round( - round(($data['peso_gotas_negro_pedido'] / 1000.0) * $maquina->precio_tinta_negro, 2) + - round(($data['peso_gotas_cyan_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + - round(($data['peso_gotas_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + - round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) - , 2); - - // precio pagina - $data['precio_pagina_negro'] = round($pag_negro ? $data['precio_tinta'] / ($pag_negro * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6); - $data['precio_pagina_color'] = round($pag_color ? $data['precio_tinta'] / ($pag_color * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6); - + $data = array_merge($data, PresupuestoService::calculoCosteTintas($maquina, $datosPedido, $parametrosRotativa)); + // calculo de corte $data['velocidad_corte'] = $maquina->velocidad_corte; $data['precio_hora_corte'] = $maquina->precio_hora_corte; @@ -398,6 +216,84 @@ class PresupuestoService extends BaseService return $data; } + + /** + * Devuelve los calculos de las dimensiones de la forma + */ + public static function calculoDimForma($datosPedido, $parametros){ + // posicionamos paginas en función de a favor de fibra o no + if (!$parametros->a_favor_fibra) { + $anchoLibro = $datosPedido->alto; + $altoLibro = $datosPedido->ancho; + } + else{ + $anchoLibro = $datosPedido->ancho; + $altoLibro = $datosPedido->alto; + } + + // si es cosido ancho x 2 + if ($datosPedido->isCosido) { + if (!$parametros->a_favor_fibra) { + $altoLibro = $altoLibro * 2; + } else { + $anchoLibro = $anchoLibro * 2; + } + } + + return [$anchoLibro, $altoLibro]; + } + + + /** + * Devuelve los calculos para el coste de tintas + */ + public static function calculoCosteTintas($maquina, $datosPedido, $parametros) + { + $data = []; + + $data['pulgada'] = 1 / 1000000000000.0; + $data['resolucion'] = 600; + $data['superficie'] = round((($datosPedido->ancho / 2.54) / 10) * (($datosPedido->alto / 2.54) / 10), 2); + + $data['num_gotas_negro'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametros->rotativa_negro / 100.0), 0); + $data['num_gotas_cyan'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametros->rotativa_cyan / 100.0), 0); + $data['num_gotas_magenta'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametros->rotativa_magenta / 100.0), 0); + $data['num_gotas_amarillo'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametros->rotativa_amarillo / 100.0), 0); + + $pag_negro = $parametros->bnPages; + $pag_color = 0; + if ($parametros->colorPages>0) { + $pag_color = $parametros->colorPages; + } + + // peso tintas + $data['peso_gotas_negro'] = round((($data['num_gotas_negro'] * $parametros->rotativa_gota_negro * $data['pulgada']) / (17.91 / 20.0)) * $pag_negro * 1000, 6); + $data['peso_gotas_cyan'] = round((($data['num_gotas_cyan'] * $parametros->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); + $data['peso_gotas_magenta'] = round((($data['num_gotas_magenta'] * $parametros->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); + $data['peso_gotas_amarillo'] = round((($data['num_gotas_amarillo'] * $parametros->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); + + // costes de tintas + $data['peso_gotas_negro_pedido'] = round($data['peso_gotas_negro'], 2) * ($datosPedido->tirada + $datosPedido->merma); + $data['peso_gotas_cyan_pedido'] = round($data['peso_gotas_cyan'], 2) * ($datosPedido->tirada + $datosPedido->merma); + $data['peso_gotas_magenta_pedido'] = round($data['peso_gotas_magenta'], 2) * ($datosPedido->tirada + $datosPedido->merma); + $data['peso_gotas_amarillo_pedido'] = round($data['peso_gotas_amarillo'], 2) * ($datosPedido->tirada + $datosPedido->merma); + + // precio tinta + $data['precio_tinta'] = round( + round(($data['peso_gotas_negro_pedido'] / 1000.0) * $maquina->precio_tinta_negro, 2) + + round(($data['peso_gotas_cyan_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + + round(($data['peso_gotas_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + + round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + , 2); + + // precio pagina + $data['precio_pagina_negro'] = round($pag_negro ? $data['precio_tinta'] / ($pag_negro * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6); + $data['precio_pagina_color'] = round($pag_color ? $data['precio_tinta'] / ($pag_color * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6); + + return $data; + } + + public static function getNumFormasRot($maquina, $ancho, $alto, $isCosido, $a_favor_fibra = true) { // El ancho si es cosido es el doble @@ -454,7 +350,7 @@ class PresupuestoService extends BaseService return $response; } - public static function getNumFormasPlana($uso, $maquina, $ancho, $alto, $isCosido) + public static function getNumFormasPlana($uso, $maquina, $ancho, $alto, $isCosido, $forzar_a_favor_fibra = false) { $h1_temp = 0; $h2_temp = 0; @@ -471,7 +367,7 @@ class PresupuestoService extends BaseService // Generates a message like: User 123 logged into the system from 127.0.0.1 $info = [ - 'isCosido' => $anchoForCalculo, + 'isCosido' => $forzar_a_favor_fibra, ]; log_message('error', 'isCosido en formas planas: {isCosido}', $info); @@ -527,10 +423,15 @@ class PresupuestoService extends BaseService // Se calcula el numero de formas - if($uso != 'cubierta' && $uso != 'sobrecubierta'){ + if($uso != 'cubierta' && $uso != 'sobrecubierta' && !$forzar_a_favor_fibra){ $num_formas = ($formas_h > $formas_v) ? $formas_h : $formas_v; $num_formas = $isCosido ? $num_formas * 2 : $num_formas; } + else if ($forzar_a_favor_fibra){ + $num_formas = $formas_h; + $num_formas = $isCosido ? $num_formas * 2 : $num_formas; + + } else{ $num_formas = $h1*$h2; } @@ -539,7 +440,7 @@ class PresupuestoService extends BaseService // si no hay formas se devuelve n/a if ($num_formas == 0) { $response['num_formas']['posicion_formas'] = 'n/a'; // not available - } else if ($formas_h > $formas_v) { + } else if ($formas_h > $formas_v || $forzar_a_favor_fibra) { $response['num_formas']['posicion_formas'] = 'h'; $response['num_formas']['num_formas_horizontales'] = $h1; $response['num_formas']['num_formas_verticales'] = $v1; diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php index d2991f86..89d64a82 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php @@ -1197,7 +1197,7 @@ function change_lp_bn_aFavorFibra(){ rowData.aFavorFibra = $('#lp_bn_aFavorFibra').prop('checked') tableLineasPresupuesto.row('#lp_bn').data(rowData).draw(false) - calcularPresupuesto_rot_bn(false, true); + calcularPresupuesto_bn(false, true); } } @@ -1268,8 +1268,6 @@ function calcularPresupuesto_bn(input_data={}, updatedTipologias = false){ if(Object.keys(input_data).length == 0){ value.fields.check_papel_total = $('#lp_bn' + '_checkPapel').is(":checked")?1:0 value.fields.check_impresion_total = $('#lp_bn' + '_checkClicks').is(":checked")?1:0 - // Por defecto en plana: en contra de fibra - value.fields.a_favor_fibra = false } else{ @@ -1524,7 +1522,7 @@ function change_lp_color_tipologia(){ } -function por_defecto_lp_bn(){ +function por_defecto_lp_color(){ if( parseInt($('#lp_color_paginas').val())>0 && parseInt($('#lp_color_papel option:selected').val())>0 && @@ -1536,6 +1534,24 @@ function por_defecto_lp_bn(){ } } + +function change_lp_color_aFavorFibra(){ + + if( parseInt($('#lp_color_paginas').val())>0 && + parseInt($('#lp_color_papel option:selected').val())>0 && + $('#lp_color_gramaje option:selected').text().length>0 && + parseInt($('#lp_color_papelImpresion option:selected').val())>0 + ){ + var rowData = tableLineasPresupuesto.row('#lp_color').data() + rowData.aFavorFibra = $('#lp_color_aFavorFibra').prop('checked') + tableLineasPresupuesto.row('#lp_color').data(rowData).draw(false) + + calcularPresupuesto_color(false, true); + } +} + + + function calcularPresupuesto_color(input_data={}, updatedTipologias = false){ const dimension = getDimensionLibro(); @@ -1578,6 +1594,11 @@ function calcularPresupuesto_color(input_data={}, updatedTipologias = false){ datos.amarillo= $('#lp_color_cobAmarillo').val() } + // Si es inkjet, existe este check + if ($('#lp_color_aFavorFibra').length){ + datos.a_favor_fibra = $('#lp_color_aFavorFibra').prop('checked') + } + $.ajax({ type: "POST", url: "/cosidotapablanda/datatable", @@ -1676,6 +1697,7 @@ function eventos_lp_color(isInkjet = false){ if(isInkjet){ $('.lp-color-tipologia').bind("change", change_lp_color_tipologia); $('#lp_color_defecto').bind("click", por_defecto_lp_color); + $('#lp_color_aFavorFibra').bind("change", change_lp_color_aFavorFibra); } $('#lp_color_checkPapel').bind("change", {id_linea: 'lp_color'}, update_total_linea); @@ -1834,17 +1856,17 @@ function por_defecto_lp_bnhq(){ function change_lp_bnhq_aFavorFibra(){ -if( parseInt($('#lp_bnhq_paginas').val())>0 && - parseInt($('#lp_bnhq_papel option:selected').val())>0 && - $('#lp_bnhq_gramaje option:selected').text().length>0 && - parseInt($('#lp_bnhq_papelImpresion option:selected').val())>0 - ){ - var rowData = tableLineasPresupuesto.row('#lp_bnhq').data() - rowData.aFavorFibra = $('#lp_bnhq_aFavorFibra').prop('checked') - tableLineasPresupuesto.row('#lp_bnhq').data(rowData).draw(false) - - calcularPresupuesto_bnhq(false, true); -} + if( parseInt($('#lp_bnhq_paginas').val())>0 && + parseInt($('#lp_bnhq_papel option:selected').val())>0 && + $('#lp_bnhq_gramaje option:selected').text().length>0 && + parseInt($('#lp_bnhq_papelImpresion option:selected').val())>0 + ){ + var rowData = tableLineasPresupuesto.row('#lp_bnhq').data() + rowData.aFavorFibra = $('#lp_bnhq_aFavorFibra').prop('checked') + tableLineasPresupuesto.row('#lp_bnhq').data(rowData).draw(false) + + calcularPresupuesto_bnhq(false, true); + } } @@ -1892,7 +1914,7 @@ function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){ // Si es inkjet, existe este check if ($('#lp_bnhq_aFavorFibra').length){ - datos.a_favor_fibra = $('#lp_bnhq_aFavorFibra').prop('checked') + datos.a_favor_fibra = $('#lp_bnhq_aFavorFibra').prop('checked')?1:0 } $.ajax({ @@ -1911,8 +1933,6 @@ function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){ if(Object.keys(input_data).length == 0){ value.fields.check_papel_total = $('#lp_bnhq' + '_checkPapel').is(":checked")?1:0 value.fields.check_impresion_total = $('#lp_bnhq' + '_checkClicks').is(":checked")?1:0 - // Por defecto en plana: en contra de fibra - value.fields.a_favor_fibra = false } else{ value.fields.check_papel_total = 1 @@ -2155,6 +2175,21 @@ function por_defecto_lp_colorhq(){ } +function change_lp_colorhq_aFavorFibra(){ + + if( parseInt($('#lp_colorhq_paginas').val())>0 && + parseInt($('#lp_colorhq_papel option:selected').val())>0 && + $('#lp_colorhq_gramaje option:selected').text().length>0 && + parseInt($('#lp_colorhq_papelImpresion option:selected').val())>0 + ){ + var rowData = tableLineasPresupuesto.row('#lp_colorhq').data() + rowData.aFavorFibra = $('#lp_colorhq_aFavorFibra').prop('checked') + tableLineasPresupuesto.row('#lp_colorhq').data(rowData).draw(false) + + calcularPresupuesto_colorhq(false, true); + } +} + function calcularPresupuesto_colorhq(input_data={}, updatedTipologias = false){ @@ -2198,6 +2233,11 @@ function calcularPresupuesto_colorhq(input_data={}, updatedTipologias = false){ datos.amarillo= $('#lp_colorhq_cobAmarillo').val() } + // Si es inkjet, existe este check + if ($('#lp_colorhq_aFavorFibra').length){ + datos.a_favor_fibra = $('#lp_colorhq_aFavorFibra').prop('checked')?1:0 + } + $.ajax({ type: "POST", url: "/cosidotapablanda/datatable", @@ -2295,6 +2335,7 @@ function eventos_lp_colorhq(isInkjet = false){ if(isInkjet){ $('.lp-colorhq-tipologia').bind("change", change_lp_colorhq_tipologia); $('#lp_colorhq_defecto').bind("click", por_defecto_lp_colorhq); + $('#lp_colorhq_aFavorFibra').bind("change", change_lp_colorhq_aFavorFibra); } $('#lp_colorhq_checkPapel').bind("change", {id_linea: 'lp_colorhq'}, update_total_linea); From a3045a9d74e547f95ce5ec0c68799bfec498b909 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 5 Feb 2024 10:02:31 +0100 Subject: [PATCH 7/7] se multiplica *2 porque se imprime a doble cara --- ci4/app/Controllers/Presupuestos/Cosidotapablanda.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index b0ee05f8..add9d42e 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -783,7 +783,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController continue; } - $linea['fields']['tipo_maquina'] = $maquina->is_inkjet?'inkjet':'toner'; + $linea['fields']['tipo_maquina'] = $maquina->is_inkjet?'inkjet':'toner'; $linea['fields']['precio_hora'] = $precio_hora*(1+$margen_precio_hora/100.0); $linea['fields']['precio_hora_margen'] = $margen_precio_hora; $linea['fields']['horas_maquina'] = $tiempo; @@ -799,7 +799,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController [$ancho, $alto] = PresupuestoService::calculoDimForma($datosPedido, $parametrosInkjet); $linea['fields']['factor_anchura'] = round($maquina->ancho_impresion / $ancho, 2); $linea['fields']['factor_altura'] = round($maquina->alto_impresion / ($alto + PresupuestoService::MARGEN_PAGINAS_ROTATIVA), 2); - $linea['fields']['paginas_por_pliego'] = ($datosPedido->isCosido)?$linea['fields']['num_formas']['value']*2:$linea['fields']['num_formas']['value']; + $linea['fields']['paginas_por_pliego'] = ($datosPedido->isCosido)?$linea['fields']['num_formas']['value']*2:$linea['fields']['num_formas']['value'] * 2; // Se multiplica *2 porque es doble cara $linea['fields']['datosTipologias'] = $datosTipologias[0]; $linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + // papel