diff --git a/ci4/app/Controllers/Js_loader.php b/ci4/app/Controllers/Js_loader.php new file mode 100644 index 00000000..691a5842 --- /dev/null +++ b/ci4/app/Controllers/Js_loader.php @@ -0,0 +1,26 @@ +response->setHeader('Content-Type', 'text/javascript'); + return view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/comparador.js'); + + } + + +} + \ No newline at end of file diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index 9f086deb..c8fbf198 100644 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -138,7 +138,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $this->viewData['presupuestoEntity'] = isset($sanitizedData) ? new PresupuestoEntity($sanitizedData) : new PresupuestoEntity(); $this->viewData['clienteList'] = $this->getClienteListItems($presupuestoEntity->cliente_id ?? null); - $this->viewData['incReiList'] = array('incidencia'=>lang('Presupuestos.incidencia'), 'reimpresion'=>lang('Presupuestos.reimpresion'), 'sin_cargo'=>lang('Presupuestos.sinCargo')); + $this->viewData['incReiList'] = array('incidencia' => lang('Presupuestos.incidencia'), 'reimpresion' => lang('Presupuestos.reimpresion'), 'sin_cargo' => lang('Presupuestos.sinCargo')); $this->viewData['paisList'] = $this->getPaisListItems(); $this->viewData['papelFormatoList'] = $this->getPapelFormatoListItems($presupuestoEntity->papel_formato_id ?? null); $this->viewData['papelGenericoNegroList'] = $this->getPapelGenericoNegro(); @@ -147,9 +147,9 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $this->viewData['papelGenericoColorHQList'] = $this->getPapelGenericoColorHQ(); $this->viewData['papelGenericoCubiertaList'] = $this->getPapelGenericoCubierta(); $this->viewData['papelGenericoSobrecubiertaList'] = $this->getPapelGenericoSobreCubierta(); - - - + + + /* $this->viewData['formaPagoList'] = $this->getFormaPagoListItems(); @@ -375,7 +375,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $this->viewData['papelGenericoColorHQList'] = $this->getPapelGenericoColorHQ(); $this->viewData['papelGenericoCubiertaList'] = $this->getPapelGenericoCubierta(); $this->viewData['papelGenericoSobrecubiertaList'] = $this->getPapelGenericoSobreCubierta(); - + $this->viewData['formAction'] = route_to('updatePresupuesto', $id); @@ -391,46 +391,102 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController { if ($this->request->isAJAX()) { $reqData = $this->request->getPost(); - if (!isset($reqData['draw']) || !isset($reqData['columns'])) { - $errstr = 'No data available in response to this specific request.'; - $response = $this->respond(Collection::datatable([], 0, 0, $errstr), 400, $errstr); - return $response; + + $table_type = $reqData['table_type'] ?? null; + + if (is_null($table_type)) { + if (!isset($reqData['draw']) || !isset($reqData['columns'])) { + $errstr = 'No data available in response to this specific request.'; + $response = $this->respond(Collection::datatable([], 0, 0, $errstr), 400, $errstr); + return $response; + } + + $search = $reqData['search']['value']; } $start = $reqData['start'] ?? 0; $length = $reqData['length'] ?? 5; - $search = $reqData['search']['value']; + $requestedOrder = $reqData['order']['0']['column'] ?? 0; $order = PresupuestoModel::SORTABLE[$requestedOrder >= 0 ? $requestedOrder : 0]; $dir = $reqData['order']['0']['dir'] ?? 'asc'; - $table_type = $reqData['table_type'] ?? null; - - if (is_null($table_type)){ - return $this->failNotFound('Table type not found', 404); - } - - switch($table_type){ - case 'comp_int_bn': - - $datosPedido = (object)array( - 'paginas' => $reqData['paginas'] ?? 0, - 'tirada' => $reqData['tirada'] ?? 0, - 'merma' => $reqData['merma'] ?? 0, - 'ancho' => $reqData['alto'] ?? 100000, - 'alto' => $reqData['ancho'] ?? 100000, - 'isCosido' => true, // JJO esto es custom por cada tipo de presupuesto - ); - - $papel_generico_id = $reqData['papel_generico_id'] ?? 0; - $gramaje = $reqData['gramaje'] ?? 0; - - $resourceData = $this->getCompBnData($datosPedido, $papel_generico_id, $gramaje); - break; - - default: - break; - } + + if (is_null($table_type)) { + $resourceData = $this->model->getResource($search)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); + foreach ($resourceData as $item) : + if (isset($item->comentarios_pdf) && strlen($item->comentarios_pdf) > 100) : + $item->comentarios_pdf = character_limiter($item->comentarios_pdf, 100); + endif; + if (isset($item->causa_cancelacion) && strlen($item->causa_cancelacion) > 100) : + $item->causa_cancelacion = character_limiter($item->causa_cancelacion, 100); + endif; + if (isset($item->comentarios) && strlen($item->comentarios) > 100) : + $item->comentarios = character_limiter($item->comentarios, 100); + endif; + if (isset($item->comentarios_safekat) && strlen($item->comentarios_safekat) > 100) : + $item->comentarios_safekat = character_limiter($item->comentarios_safekat, 100); + endif; + if (isset($item->comentarios_tarifa) && strlen($item->comentarios_tarifa) > 100) : + $item->comentarios_tarifa = character_limiter($item->comentarios_tarifa, 100); + endif; + if (isset($item->tirada_alternativa_json_data) && strlen($item->tirada_alternativa_json_data) > 100) : + $item->tirada_alternativa_json_data = character_limiter($item->tirada_alternativa_json_data, 100); + endif; + if (isset($item->titulo) && strlen($item->titulo) > 100) : + $item->titulo = character_limiter($item->titulo, 100); + endif; + if (isset($item->paginas_color_posicion) && strlen($item->paginas_color_posicion) > 100) : + $item->paginas_color_posicion = character_limiter($item->paginas_color_posicion, 100); + endif; + if (isset($item->aprobado_json_data) && strlen($item->aprobado_json_data) > 100) : + $item->aprobado_json_data = character_limiter($item->aprobado_json_data, 100); + endif; + if (isset($item->comparador_json_data) && strlen($item->comparador_json_data) > 100) : + $item->comparador_json_data = character_limiter($item->comparador_json_data, 100); + endif; + if (isset($item->ws_externo_json_data) && strlen($item->ws_externo_json_data) > 100) : + $item->ws_externo_json_data = character_limiter($item->ws_externo_json_data, 100); + endif; + endforeach; + } else { + + switch ($table_type) { + case 'comp_int_bn': + + $datosPedido = (object)array( + 'paginas' => intval($reqData['paginas']) ?? 0, + 'tirada' => intval($reqData['tirada']) ?? 0, + 'merma' => intval($reqData['merma']) ?? 0, + 'ancho' => intval($reqData['alto']) ?? 100000, + 'alto' => intval($reqData['ancho']) ?? 100000, + 'isCosido' => true, // JJO esto es custom por cada tipo de presupuesto + ); + + $papel_generico = [ + 'id' => $reqData['papel_generico_id'] ?? 0, + 'nombre' => $reqData['papel_generico'] ?? "", + ]; + + $gramaje = $reqData['gramaje'] ?? 0; + + $resourceData = $this->getCompBnData($datosPedido, $papel_generico, $gramaje); + + $newTokenHash = csrf_hash(); + $csrfTokenName = csrf_token(); + $data = [ + 'lineas' => $resourceData, + $csrfTokenName => $newTokenHash + ]; + //return json_encode(array("data"=>$resourceData)); + return $this->respond($data); + break; + + default: + break; + } + } + return $this->respond(Collection::datatable( $resourceData, $this->model->getResource()->countAllResults(), @@ -441,10 +497,11 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController } } - private function getCompBnData($datosPedido, $papel_generico_id, $gramaje){ + private function getCompBnData($datosPedido, $papel_generico, $gramaje) + { $uso = 'interior'; $tipo = 'negro'; - + $opciones_papel = array( 'bn' => 1, 'cubierta' => 0, @@ -455,15 +512,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController // Se obtienen los papeles disponibles $papelimpresionmodel = new PapelImpresionModel(); $papeles = $papelimpresionmodel->getIdPapelesImpresionForPresupuesto( - papel_generico_id: $papel_generico_id, + papel_generico_id: $papel_generico['id'], gramaje: $gramaje, options: $opciones_papel ); - $resultado = json_encode( - array('data' => array()) - ); - + + $lineas = array(); // Para cada papel, se obtienen las maquinas disponibles foreach ($papeles as $papel) { $maquinamodel = new MaquinaModel(); @@ -476,14 +531,23 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController // Se recorren las máquinas y se calcula el coste de linea por cada una foreach ($maquinas as $maquina) { - $tarifamodel = new MaquinasTarifasImpresionModel(); + $tarifamodel = new MaquinasTarifasImpresionModel(); $tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso, $tipo); - $linea = PresupuestoService::getCostesLinea($uso, $tipo, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa); + $linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa); + $linea['fields']['maquina'] = $maquina->maquina; + $linea['fields']['maquina_id'] = $maquina->maquina_id; + $linea['fields']['papel_impresion'] = $papel->nombre; + $linea['fields']['papel_impresion_id'] = $papel->id; + $linea['fields']['paginas'] = $datosPedido->paginas; + $linea['fields']['gramaje'] = $gramaje; + $linea['fields']['papel_generico_id'] = $papel_generico['id']; + $linea['fields']['papel_generico_id'] = $papel_generico['nombre']; + + array_push($lineas, $linea); } } - return $resultado; - + return $lineas; } public function allItemsSelect() @@ -512,7 +576,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController public function menuItems() { if ($this->request->isAJAX()) { - + $reqData = $this->request->getPost(); $tipo = $reqData['tipo'] ?? null; @@ -520,12 +584,12 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $searchStr = goSanitize($this->request->getPost('searchTerm'))[0]; - if ($tipo == 'gramaje'){ + if ($tipo == 'gramaje') { // En este caso contiene el nombre del papel generico $model = new PapelGenericoModel(); $menu = $model->getGramajeComparador($datos, $searchStr); } - + $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); @@ -567,7 +631,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController { $papelFormatoModel = model('App\Models\Configuracion\PapelFormatoModel'); $data = $papelFormatoModel->getElementsForMenu(); - array_unshift($data, (object)['id'=>'', 'tamanio' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papelFormatoId'))])]); + array_unshift($data, (object)['id' => '', 'tamanio' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papelFormatoId'))])]); return $data; } diff --git a/ci4/app/Controllers/Presupuestos/Js_loader.php b/ci4/app/Controllers/Presupuestos/Js_loader.php index f753fee7..89baad3c 100644 --- a/ci4/app/Controllers/Presupuestos/Js_loader.php +++ b/ci4/app/Controllers/Presupuestos/Js_loader.php @@ -16,10 +16,9 @@ class Js_loader extends BaseController function comparadorCosidoTapablanda_js() { - $this->load->view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/comparador.js', $data); + $this->load->view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/comparador.js'); $this->output->set_content_type('text/javascript'); } - } \ No newline at end of file diff --git a/ci4/app/Controllers/Test.php b/ci4/app/Controllers/Test.php index 5a4d5f45..c6d7621a 100644 --- a/ci4/app/Controllers/Test.php +++ b/ci4/app/Controllers/Test.php @@ -2,8 +2,7 @@ namespace App\Controllers; -use App\Models\Presupuestos\PresupuestoModel; -use App\Services\PresupuestoService; +use App\Controllers\BaseController; class Test extends BaseController { @@ -16,12 +15,21 @@ class Test extends BaseController public function index() { - PresupuestoService::test(); + //PresupuestoService::test(); + return view('themes/backend/vuexy/form/test_js/viewTest'); + } + + function test_js() + { + /*$this->response->setHeader('Content-Type', 'text/javascript'); + return view('themes/backend/vuexy/form/test_js/test_js.js');*/ + + } public function pruebaJJO() { - PresupuestoService::test2(); + //PresupuestoService::test2(); } } \ No newline at end of file diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index 48173d27..38a70819 100644 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -95,7 +95,7 @@ class PresupuestoService extends BaseService * * @return [type] */ - public static function getCostesLinea($uso, $tipo, $datosPedido, $maquina, $papel_impresion, $opciones_papel, $tarifa) + public static function getCostesLinea($uso, $datosPedido, $maquina, $papel_impresion, $opciones_papel, $tarifa) { $response['fields'] = []; @@ -117,7 +117,7 @@ class PresupuestoService extends BaseService if ($response['fields']['num_formas']['posicion_formas'] == 'n/a') { $response['error']['value'] = true; $response['error']['message'] = 'no_formas_disponibles'; - return response; + return $response; } // precio del pliego de impresion 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 8bf30aaa..fc07f7f3 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php @@ -69,10 +69,10 @@
= lang('MaquinasTarifasImpresions.negro') ?>