diff --git a/ci4/app/Config/Routes/CatalogoRoutes.php b/ci4/app/Config/Routes/CatalogoRoutes.php
index db286b1e..84448eb5 100644
--- a/ci4/app/Config/Routes/CatalogoRoutes.php
+++ b/ci4/app/Config/Routes/CatalogoRoutes.php
@@ -8,12 +8,28 @@ use CodeIgniter\Router\RouteCollection;
$routes->group('catalogo', ['namespace' => 'App\Controllers\Catalogo'], function ($routes) {
/* Libros */
$routes->group('libros', ['namespace' => 'App\Controllers\Catalogo'], function ($routes) {
+ /**======================
+ * CRUD
+ *========================**/
$routes->get('', 'CatalogoLibros::index', ['as' => 'CatalogoLibrosList']);
$routes->get('gettarifas', 'CatalogoLibros::getSelect2');
$routes->match(['get', 'post'], 'add', 'CatalogoLibros::add', ['as' => 'CatalogoLibrosAdd']);
$routes->match(['get', 'post'], 'edit/(:num)', 'CatalogoLibros::edit/$1', ['as' => 'CatalogoLibrosEdit']);
$routes->get('delete/(:num)', 'CatalogoLibros::delete/$1', ['as' => 'CatalogoLibrosDelete']);
$routes->get('datatable', 'CatalogoLibros::datatable', ['as' => 'CatalogoLibrosDT']);
- $routes->get('select', 'CatalogoLibros::show_select', ["as" => "CatalogoLibrosShow"]);
+
+
+ /**======================
+ * AJAX
+ *========================**/
+ $routes->get('clientlist', 'CatalogoLibros::getClientList', ['as' => 'clientList']);
+
+
+ /**======================
+ * FILES
+ *========================**/
+ $routes->post('get_files', 'CatalogoLibros::get_files');
+ $routes->post('upload_files', 'CatalogoLibros::upload_files');
+
});
});
\ No newline at end of file
diff --git a/ci4/app/Controllers/Catalogo/CatalogoLibros.php b/ci4/app/Controllers/Catalogo/CatalogoLibros.php
index 19773d9e..62de748e 100644
--- a/ci4/app/Controllers/Catalogo/CatalogoLibros.php
+++ b/ci4/app/Controllers/Catalogo/CatalogoLibros.php
@@ -3,8 +3,8 @@ namespace App\Controllers\Catalogo;
use App\Controllers\BaseResourceController;
use App\Entities\Catalogo\CatalogoLibroEntity;
-use App\Models\Collection;
use App\Models\Catalogo\CatalogoLibroModel;
+use App\Models\Clientes\ClienteModel;
use Hermawan\DataTables\DataTable;
class CatalogoLibros extends BaseResourceController
@@ -178,6 +178,10 @@ class CatalogoLibros extends BaseResourceController
endif; // $noException && $successfulResult
endif; // ($requestMethod === 'post')
+ $catalogoLibrosEntity->clienteName = model('App\Models\Clientes\ClienteModel')->find($catalogoLibrosEntity->cliente_id)->nombre;
+ $catalogoLibrosEntity->createdUser = model('App\Models\Usuarios\UserModel')->getFullName($catalogoLibrosEntity->user_created_id);
+ $catalogoLibrosEntity->updatedUser = model('App\Models\Usuarios\UserModel')->getFullName($catalogoLibrosEntity->user_update_id);
+
$this->viewData['catalogoLibrosEntity'] = $catalogoLibrosEntity;
$this->viewData['formAction'] = route_to('CatalogoLibrosEdit', $id);
@@ -297,4 +301,102 @@ class CatalogoLibros extends BaseResourceController
}
}
+
+ /* IMN */
+ public function getClientList()
+ {
+ $search = $this->request->getGet("q") ?? "";
+ $data = (new ClienteModel())->getIdName($search);
+ return $this->response->setJSON($data);
+
+ }
+
+ public function get_files()
+ {
+
+ // Check if the request is a POST request
+ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
+
+ $presupuesto_id = $this->request->getPost()['presupuesto_id'] ?? 0;
+
+ $model = model('App\Models\Presupuestos\PresupuestoFicheroModel');
+ $files = $model->getFiles($presupuesto_id);
+
+ $result = [];
+
+ foreach ($files as $file) {
+
+ $size = filesize($file->file_path);
+ $splitPath = explode("presupuestos/", $file->file_path);
+
+ // se crea un objeto con el nombre del fichero y el tamaño
+ $obj = (object) array(
+ 'name' => $file->nombre,
+ 'size' => $size,
+ 'hash' => $splitPath[1] ?? $file->file_path
+ );
+
+
+ // se añade el objeto al array
+ array_push($result, $obj);
+ }
+
+ return json_encode($result);
+ }
+ }
+
+ public function upload_files()
+ {
+
+ $model = model('App\Models\Presupuestos\PresupuestoFicheroModel');
+
+ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
+
+ $presupuesto_id = $_POST['presupuesto_id'];
+ $old_files = json_decode($_POST['oldFiles']);
+ $ftp = new SafekatFtpClient();
+
+ // Comprobar si se han subido archivos
+ if (!empty($_FILES['file']) || !empty($old_files)) {
+
+
+ // Borrar los archivos existentes del presupuesto
+ $ftp->removeFiles($presupuesto_id);
+ $model->deleteFiles($presupuesto_id, $old_files);
+
+ if (!empty($_FILES['file'])) {
+ $files = $_FILES['file'];
+
+ // Iterar sobre los archivos
+ for ($i = 0; $i < count($files['name']); $i++) {
+ // Aquí puedes acceder a las propiedades del archivo
+ $name = $files['name'][$i];
+ $extension = explode('.', $files['name'][$i])[1];
+ $tmp_name = $files['tmp_name'][$i];
+
+ $new_name = $model->saveFileInBBDD($presupuesto_id, $name, $extension, auth()->id());
+
+ // Se sube el fichero
+ // Pero primero se comprueba que la carpeta presupuestos exista
+ if (!is_dir(WRITEPATH . 'uploads/presupuestos')) {
+ mkdir(WRITEPATH . 'uploads/presupuestos', 0777, true);
+ }
+
+ if (!is_null($new_name)) {
+ $path = WRITEPATH . 'uploads/presupuestos/' . $new_name;
+ move_uploaded_file($tmp_name, $path);
+ }
+ }
+ $ftp->uploadFilePresupuesto($presupuesto_id);
+ }
+ } else {
+ // Borrar los archivos existentes del presupuesto
+ $ftp->removeFiles($presupuesto_id);
+ $model->deleteFiles($presupuesto_id);
+ }
+ }
+ return json_encode(['message' => 'Archivos subidos correctamente']);
+ }
+
+
}
diff --git a/ci4/app/Controllers/Sistema/Intranet.php b/ci4/app/Controllers/Sistema/Intranet.php
index e9da0b31..c01d9b96 100644
--- a/ci4/app/Controllers/Sistema/Intranet.php
+++ b/ci4/app/Controllers/Sistema/Intranet.php
@@ -56,10 +56,33 @@ class Intranet extends Controller
}
}
- function orden_trabajo($ot_id,$resource_name)
+ function orden_trabajo($ot_id, $resource_name)
{
helper('file');
- $resource_path = WRITEPATH . 'uploads/orden_trabajo/'.$ot_id. '/' . $resource_name;
+ $resource_path = WRITEPATH . 'uploads/orden_trabajo/' . $ot_id . '/' . $resource_name;
+ if (file_exists($resource_path)) {
+ // Get the mime type of the file
+ $mime_type = mime_content_type($resource_path);
+
+ // Get an instance of the Response class
+ $response = service('response');
+
+ // Set the content type
+ $response->setContentType($mime_type);
+
+ // Set the output
+ $response->setBody(file_get_contents($resource_path));
+
+ // Send the response to the browser
+ $response->send();
+ }
+
+ }
+
+ function catalogo($catalogo_id, $resource_name)
+ {
+ helper('file');
+ $resource_path = WRITEPATH . 'uploads/catalogo/' . $catalogo_id . '/' . $resource_name;
if (file_exists($resource_path)) {
// Get the mime type of the file
$mime_type = mime_content_type($resource_path);
diff --git a/ci4/app/Models/Catalogo/CatalogoLibroModel.php b/ci4/app/Models/Catalogo/CatalogoLibroModel.php
index 7839b7e2..4218e51a 100644
--- a/ci4/app/Models/Catalogo/CatalogoLibroModel.php
+++ b/ci4/app/Models/Catalogo/CatalogoLibroModel.php
@@ -4,15 +4,16 @@ namespace App\Models\Catalogo;
use CodeIgniter\Model;
use App\Entities\Catalogo\CatalogoLibroEntity;
+use App\Models\Clientes\ClienteModel;
class CatalogoLibroModel extends Model
{
- protected $table = 'catalogo_libros';
- protected $primaryKey = 'id';
+ protected $table = 'catalogo_libros';
+ protected $primaryKey = 'id';
- protected $returnType = CatalogoLibroEntity::class;
- protected $useSoftDeletes = true;
- protected $useTimestamps = true;
+ protected $returnType = CatalogoLibroEntity::class;
+ protected $useSoftDeletes = true;
+ protected $useTimestamps = true;
protected $allowedFields = [
'cliente_id',
@@ -68,16 +69,16 @@ class CatalogoLibroModel extends Model
];
protected $useAutoIncrement = true;
- protected $protectFields = true;
+ protected $protectFields = true;
- protected $createdField = 'created_at';
- protected $updatedField = 'updated_at';
- protected $deletedField = 'deleted_at';
+ protected $createdField = 'created_at';
+ protected $updatedField = 'updated_at';
+ protected $deletedField = 'deleted_at';
// Opcional: reglas de validación
- protected $validationRules = [];
+ protected $validationRules = [];
protected $validationMessages = [];
- protected $skipValidation = false;
+ protected $skipValidation = false;
@@ -107,4 +108,19 @@ class CatalogoLibroModel extends Model
return $builder;
}
+ public function getClientList($search = "")
+ {
+ $clienteModel = new ClienteModel();
+
+ $query = $clienteModel->builder()
+ ->select('id, nombre as name') // O el campo que quieras usar como "name"
+ ->where('deleted_at', null);
+ if ($search != "") {
+ $query->groupStart()
+ ->orLike("nombre", $search)
+ ->groupEnd();
+ }
+ return $query->get()->getResultObject();
+ }
+
}
diff --git a/ci4/app/Views/themes/vuexy/form/catalogo/_datosGeneralesFormItems.php b/ci4/app/Views/themes/vuexy/form/catalogo/_datosGeneralesFormItems.php
index 875a18ba..6a106eb1 100644
--- a/ci4/app/Views/themes/vuexy/form/catalogo/_datosGeneralesFormItems.php
+++ b/ci4/app/Views/themes/vuexy/form/catalogo/_datosGeneralesFormItems.php
@@ -32,8 +32,12 @@
-
-
+
+
@@ -81,8 +85,8 @@
-
+
diff --git a/ci4/app/Views/themes/vuexy/form/catalogo/_ficherosLibroFormItems.php b/ci4/app/Views/themes/vuexy/form/catalogo/_ficherosLibroFormItems.php
index 3d71d73b..afbba834 100644
--- a/ci4/app/Views/themes/vuexy/form/catalogo/_ficherosLibroFormItems.php
+++ b/ci4/app/Views/themes/vuexy/form/catalogo/_ficherosLibroFormItems.php
@@ -12,19 +12,34 @@
-
-
-
- Arrastre los ficheros
o haz click para
subir ficheros
-
-
-
+
+
Ficheros
+
+
+
+ Arrastre aquí los ficheros o haga click
+
+
+
+
+
+
+
-
+
diff --git a/ci4/app/Views/themes/vuexy/form/catalogo/_trackingFormItems.php b/ci4/app/Views/themes/vuexy/form/catalogo/_trackingFormItems.php
index c77b3acd..ceb4796b 100644
--- a/ci4/app/Views/themes/vuexy/form/catalogo/_trackingFormItems.php
+++ b/ci4/app/Views/themes/vuexy/form/catalogo/_trackingFormItems.php
@@ -4,15 +4,15 @@
= lang("Catalogo.created_by_at") ?>
- ,
-
+ = $catalogoLibrosEntity->createdUser ?>,
+ = $catalogoLibrosEntity->created_at ?>
= lang("Catalogo.updated_by_at") ?>
- ,
-
+ = $catalogoLibrosEntity->updatedUser ?>,
+
diff --git a/ci4/app/Views/themes/vuexy/form/catalogo/viewCatalogoLibrosForm.php b/ci4/app/Views/themes/vuexy/form/catalogo/viewCatalogoLibrosForm.php
index 87e3559a..256bc986 100644
--- a/ci4/app/Views/themes/vuexy/form/catalogo/viewCatalogoLibrosForm.php
+++ b/ci4/app/Views/themes/vuexy/form/catalogo/viewCatalogoLibrosForm.php
@@ -36,4 +36,16 @@
+= $this->endSection() ?>
+
+
+= $this->section('css') ?>
+
+
+= $this->endSection() ?>
+
+
+= $this->section("additionalExternalJs") ?>
+
+
= $this->endSection() ?>
\ No newline at end of file
diff --git a/httpdocs/assets/js/safekat/pages/catalogo/catalogo.js b/httpdocs/assets/js/safekat/pages/catalogo/catalogo.js
new file mode 100644
index 00000000..66525870
--- /dev/null
+++ b/httpdocs/assets/js/safekat/pages/catalogo/catalogo.js
@@ -0,0 +1,528 @@
+import ClassSelect from '../../components/select2.js';
+import Ajax from '../../components/ajax.js';
+
+class Catalogo {
+
+ constructor() {
+
+ this.cliente = new ClassSelect($("#clienteId"), '/catalogo/libros/clientlist', "Seleccione un cliente");
+
+ this.encuadernacion = new ClassSelect($("#encuadernacion"), '/importador/getencuadernacion', "Seleccione una encuadernación");
+
+ this.compPapelNegroSelected = new ClassSelect($("#compPapelNegroSelected"), '/presupuestoadmin/papelgenerico', "Seleccione un papel", false,
+ {
+
+ tipo_impresion: () => this.encuadernacion.getVal(),
+ tirada: () => $('#tirada').val(),
+ ancho: () => this.getDimensionLibro().ancho,
+ alto: () => this.getDimensionLibro().alto,
+ sopalas: 0,
+ lomo: 0,
+ tipo: () => $('#isHq').val() ? 'negrohq' : 'negro',
+ });
+ this.compGramajeNegro = new ClassSelect($('#compGramajeNegro'), '/presupuestoadmin/papelgramaje', 'Seleccione un gramaje', false,
+ {
+ tipo_impresion: () => this.encuadernacion.getVal(),
+ papel_generico: () => this.compPapelNegroSelected.getVal(),
+ tirada: () => $('#tirada').val(),
+ ancho: () => this.getDimensionLibro().ancho,
+ alto: () => this.getDimensionLibro().alto,
+ sopalas: 0,
+ lomo: 0,
+ tipo: () => $('#isHq').val() ? 'negrohq' : 'negro',
+ });
+ this.compPapelColorSelected = new ClassSelect($("#compPapelColorSelected"), '/presupuestoadmin/papelgenerico', "Seleccione un papel", false,
+ {
+ tipo_impresion: () => this.encuadernacion.getVal(),
+ tirada: () => $('#tirada').val(),
+ ancho: () => this.getDimensionLibro().ancho,
+ alto: () => this.getDimensionLibro().alto,
+ sopalas: 0,
+ lomo: 0,
+ tipo: () => $('#isHq').val() ? 'colorhq' : 'color',
+ });
+ this.compGramajeColor = new ClassSelect($('#compGramajeColor'), '/presupuestoadmin/papelgramaje', 'Seleccione un gramaje', false,
+ {
+ tipo_impresion: () => this.encuadernacion.getVal(),
+ papel_generico: () => this.compPapelColorSelected.getVal(),
+ tirada: () => $('#tirada').val(),
+ ancho: () => this.getDimensionLibro().ancho,
+ alto: () => this.getDimensionLibro().alto,
+ sopalas: 0,
+ lomo: 0,
+ tipo: () => $('#isHq').val() ? 'colorhq' : 'color',
+ });
+ this.compPapelCubiertaSelected = new ClassSelect($("#compPapelCubiertaSelected"), '/presupuestoadmin/papelgenerico', "Seleccione un papel", false,
+ {
+ tipo_impresion: this.encuadernacion.getVal(),
+ tirada: () => $('#tirada').val(),
+ ancho: () => this.getDimensionLibro().ancho,
+ alto: () => this.getDimensionLibro().alto,
+ sopalas: () => $('#compSolapasCubierta').val(),
+ lomo: () => 0,
+ tipo: 'colorhq',
+ uso: 'cubierta',
+ });
+ this.compGramajeCubierta = new ClassSelect($('#compGramajeCubierta'), '/presupuestoadmin/papelgramaje', 'Seleccione un gramaje', false,
+ {
+ tipo_impresion: () => this.encuadernacion.getVal(),
+ papel_generico: () => this.compPapelCubiertaSelected.getVal(),
+ tirada: () => $('#tirada').val(),
+ ancho: () => this.getDimensionLibro().ancho,
+ alto: () => this.getDimensionLibro().alto,
+ sopalas: () => $('#compSolapasCubierta').val(),
+ lomo: 0,
+ tipo: 'colorhq',
+ });
+ this.compSobrecubiertaSelected = new ClassSelect($("#compPapelSobrecubiertaSelected"), '/presupuestoadmin/papelgenerico', "Seleccione un papel", false,
+ {
+ tipo_impresion: this.encuadernacion.getVal(),
+ tirada: () => $('#tirada').val(),
+ ancho: () => this.getDimensionLibro().ancho,
+ alto: () => this.getDimensionLibro().alto,
+ sopalas: () => $('#compSolapasSobrecubierta').val(),
+ lomo: () => 0,
+ tipo: 'colorhq',
+ uso: 'sobrecubierta',
+ });
+ this.compGramajeSobrecubierta = new ClassSelect($('#compGramajeSobrecubierta'), '/presupuestoadmin/papelgramaje', 'Seleccione un gramaje', false,
+ {
+ tipo_impresion: () => this.encuadernacion.getVal(),
+ papel_generico: () => this.compPapelCubiertaSelected.getVal(),
+ tirada: () => $('#tirada').val(),
+ ancho: () => this.getDimensionLibro().ancho,
+ alto: () => this.getDimensionLibro().alto,
+ sopalas: () => $('#compSolapasSobrecubierta').val(),
+ lomo: 0,
+ tipo: 'colorhq',
+ });
+
+ this.acabadoCubierta = new ClassSelect($("#compAcabadoCubiertaSelected"),
+ '/serviciosacabados/getacabados',
+ '',
+ false,
+ {
+ "cubierta": 1
+ }
+ );
+ this.acabadosSobrecubierta = new ClassSelect($("#compAcabadoSobrecubiertaSelected"),
+ '/serviciosacabados/getacabados',
+ '',
+ false,
+ {
+ "sobrecubierta": 1
+ }
+ );
+
+ this.dropzone = null;
+ this.submitFiles = $("#submit-all-files");
+
+
+ this.openBtn = $('#openOld');
+
+ }
+
+ init() {
+
+ // Fuerza el foco en el campo de búsqueda de select2
+ $(document).on('select2:open', () => {
+ document.querySelector('.select2-search__field').focus();
+ });
+
+ let clienteId = $("#clienteId").val();
+ let clienteName = $("#clienteId").text();
+ this.cliente.init();
+ this.cliente.setOption(clienteId, clienteName);
+
+ this.encuadernacion.init();
+
+ this.compPapelNegroSelected.init();
+ this.compGramajeNegro.init();
+ this.compPapelColorSelected.init();
+ this.compGramajeColor.init();
+ this.compPapelCubiertaSelected.init();
+ this.compGramajeCubierta.init();
+ this.compSobrecubiertaSelected.init();
+ this.compGramajeSobrecubierta.init();
+
+ this.acabadoCubierta.init();
+ this.acabadosSobrecubierta.init();
+
+ this.cliente.item.on('change', () => {
+
+
+ });
+
+
+ this.submitFiles.on('click', this.#btnUploadFiles.bind(this));
+
+
+
+
+
+
+
+ $(document).on('change', '.warning-change', function () {
+ $(this).addClass('bg-warning');
+ let select2Container = $(this).next('.select2').find('.select2-selection');
+ select2Container.addClass('bg-warning');
+ });
+ }
+
+ init_dropzone() {
+
+ let id = this.presupuesto_id;
+ Dropzone.autoDiscover = false;
+
+ const previewTemplate = ``;
+
+ this.dropzone = new Dropzone('#dropzone-multi', {
+ url: "/presupuestos/presupuestocliente/upload_files",
+ addRemoveLinks: true,
+ previewTemplate: previewTemplate,
+ paramName: "file",
+ uploadMultiple: true,
+ parallelUploads: 4, // Ajusta este número al máximo número de archivos que esperas subir a la vez
+ maxFiles: 5, // Ajusta este número al máximo número de archivos que esperas subir a la vez
+ autoProcessQueue: true,
+ dictRemoveFile: "Eliminar",
+ acceptedFiles: 'image/*, application/pdf',
+ maxFilesize: 5e+7, // Bytes
+ init: function () {
+ let thisDropzone = this;
+ $('#loader').show();
+
+ $.ajax({
+ url: "/presupuestos/presupuestocliente/get_files",
+ type: 'POST',
+ data: { presupuesto_id: id }
+
+ }).done(function (response) {
+ if (response == null || response == "") {
+ return;
+ }
+ let values = JSON.parse(response);
+ for (var i = 0; i < values.length; i++) {
+ var mockFile = { name: values[i].name, size: values[i].size, hash: values[i].hash };
+
+ thisDropzone.files.push(mockFile); // add to files array
+ thisDropzone.emit("addedfile", mockFile);
+ thisDropzone.emit("thumbnail", mockFile, window.location.host + "/sistema/intranet/catalogo/" + values[i].hash);
+ thisDropzone.emit("complete", mockFile);
+ thisDropzone.options.success.call(thisDropzone, mockFile);
+ };
+ }).always(function () {
+ $('#loader').hide();
+ });
+
+ this.on("addedfile", function (file) {
+ if (file.hash) {
+ var viewButton = Dropzone.createElement("Ver");
+ file.previewElement.appendChild(viewButton);
+ // Listen to the view button click event
+ viewButton.addEventListener("click", function (e) {
+
+ window.open(window.location.protocol + "//" + window.location.host + "/sistema/intranet/catalogo/" + file.hash, '_blank');
+ });
+ }
+ });
+ },
+ });
+ }
+
+ #btnUploadFiles() {
+
+ var files = this.dropzone.files;
+ $('#loader').show();
+
+ var formData = new FormData();
+ var oldFiles = [];
+ var counter = 0;
+ for (var i = 0; i < files.length; i++) {
+
+ if (files[i].upload) {
+ var file = files[i];
+ formData.append('file[' + counter + ']', file);
+ counter += 1;
+ }
+ else {
+ oldFiles.push(files[i].name);
+ }
+ }
+ formData.append('oldFiles', JSON.stringify(oldFiles));
+
+ formData.append('presupuesto_id', this.presupuesto_id);
+
+ $.ajax({
+ url: "/catalogo/libros/upload_files",
+ type: 'POST',
+ data: formData,
+ processData: false, // Indicar a jQuery que no procese los datos
+ contentType: false // Indicar a jQuery que no establezca el tipo de contenido
+ }).done(function (response) {
+ popSuccessAlert("Archivos actualizados correctamente");
+ }).always(function () {
+ $('#loader').hide();
+ });
+ }
+
+
+ #btnPreview() {
+
+ if (this.divPreview.hasClass('d-none')) {
+ this.btnPreviewCubierta.text('Ocultar desarrollo cubierta');
+ this.divPreview.removeClass('d-none');
+ this.btnDownloadPreviewCubierta.parent().removeClass('d-none')
+ this.generate();
+ }
+ else {
+ this.btnPreviewCubierta.text('Mostrar desarrollo cubierta');
+ this.btnDownloadPreviewCubierta.parent().addClass('d-none')
+ this.divPreview.addClass('d-none');
+ }
+ }
+
+
+
+ collectData() {
+
+ let data = {};
+
+ data.id;
+ data.cliente_id = $("#clienteId").val();
+
+ data.paginas = $('#paginas').val();
+ data.tirada = $('#tirada').val();
+ data.papel_formato_id = $('#tamanio').val();
+ data.papel_formato_personalizado = $('#papelFormatoPersonalizado').prop('checked') ? 1 : 0;
+ data.papel_formato_ancho = $('#papelFormatoAncho').val();
+ data.papel_formato_alto = $('#papelFormatoAlto').val();
+
+ data.encuadernacion = this.encuadernacion.getVal();
+ data.isHq = $('#isHq').val();
+
+ data.paginas_bn = $('#compPaginasNegro').val();
+ data.papel_bn = this.compPapelNegroSelected.getVal();
+ data.gramaje_bn = this.compGramajeNegro.getVal();
+
+ data.paginas_color = $('#compPaginasColor').val();
+ data.papel_color = this.compPapelColorSelected.getVal();
+ data.gramaje_color = this.compGramajeColor.getVal();
+
+ data.paginas_cubierta = $('#compCarasCubierta').val();
+ data.papel_cubierta = this.compPapelCubiertaSelected.getVal();
+ data.gramaje_cubierta = this.compGramajeCubierta.getVal();
+ data.solapas_cubierta = $('#compSolapasCubierta').val();
+ data.acabado_cubierta = this.acabadoCubierta.getVal();
+
+ data.sobrecubierta = $('#compSobrecubierta').val();
+ data.papel_sobrecubierta = this.compSobrecubiertaSelected.getVal();
+ data.gramaje_sobrecubierta = this.compGramajeSobrecubierta.getVal();
+ data.solapas_sobrecubierta = $('#compSolapasSobrecubierta').val();
+ data.acabado_sobrecubierta = this.acabadosSobrecubierta.getVal();
+
+ data.servicios = {
+ marcapaginas: $('#marcapaginas').prop('checked') ? 1 : 0,
+ serviciosExtra: []
+ };
+
+
+
+ return data;
+ }
+
+
+
+
+
+ getDimensionLibro() {
+ let ancho = 0;
+ let alto = 0;
+ if ($('#papelFormatoPersonalizado').prop('checked')) {
+ ancho = $('#papelFormatoAncho').val();
+ alto = $('#papelFormatoAlto').val();
+ }
+ else {
+ const text = $('#tamanio').text();
+ ancho = text.split('x')[0];
+ alto = text.split('x')[1];
+ }
+ return { ancho, alto };
+ }
+
+
+ fillInitialData(data) {
+
+ $('#paginas').val(data.datosGenerales.paginas);
+ $('#tirada').val(data.datosGenerales.tirada);
+ if (data.datosGenerales.papel_formato_personalizado) {
+ $('#papelFormatoPersonalizado').prop('checked', true);
+ $('#tamanio').addClass('d-none');
+ $('#formatoPersonalizado').removeClass('d-none');
+ $('#papelFormatoAncho').val(data.datosGenerales.papel_formato_ancho);
+ $('#papelFormatoAlto').val(data.datosGenerales.papel_formato_alto);
+ }
+ else {
+ $('#tamanio').removeClass('d-none');
+ $('#formatoPersonalizado').addClass('d-none');
+ $('#papelFormatoPersonalizado').prop('checked', false);
+ $('#tamanio').append('');
+ $('#tamanio').val(data.datosGenerales.papel_formato_id).trigger('change');
+ }
+
+ if (data.encuadernacion) {
+ $('#encuadernacion_old').val(data.encuadernacion.encuadernacionOld);
+ // check if data.encuadernacion.encuadernacion exists and is not empty
+ if (data.encuadernacion.encuadernacion) {
+ this.encuadernacion.setOption(data.encuadernacion.encuadernacion.id, data.encuadernacion.encuadernacion.encuadernacion);
+ }
+ }
+
+ if (data.lineas) {
+ if (data.lineas.isHq) {
+ $('#isHq').val(data.lineas.isHq);
+ }
+ else {
+ $('#isHq').val(0);
+ }
+
+ if (data.lineas.bn && data.lineas.bn.paginas) {
+ $('#compPaginasNegro').val(data.lineas.bn.paginas);
+ $('#compPapelNegroOrigen').val(data.lineas.bn.papel_nombre);
+ this.compGramajeNegro.setOption(parseFloat(data.lineas.bn.gramaje).toFixed(0), parseFloat(data.lineas.bn.gramaje).toFixed(0));
+ this.compPapelNegroSelected.item.prop('disabled', false);
+ this.compPapelNegroSelected.setOption(data.lineas.bn.new_papel_id, data.lineas.bn.new_papel_nombre);
+ }
+ else {
+ $('#compPaginasNegro').val(0);
+ $('#compPapelNegroOrigen').val("");
+ this.compGramajeNegro.empty();
+ this.compPapelNegroSelected.empty();
+ this.compPapelNegroSelected.item.prop('disabled', true);
+ this.compGramajeNegro.item.prop('disabled', true);
+ }
+
+ if (data.lineas.color && data.lineas.color.paginas) {
+ $('#compPaginasColor').val(data.lineas.color.paginas);
+ $('#compPapelColorOrigen').val(data.lineas.color.papel_nombre);
+ this.compGramajeColor.setOption(parseFloat(data.lineas.color.gramaje).toFixed(0), parseFloat(data.lineas.color.gramaje).toFixed(0));
+ this.compPapelColorSelected.item.prop('disabled', false);
+ this.compPapelColorSelected.setOption(data.lineas.color.new_papel_id, data.lineas.color.new_papel_nombre);
+ }
+ else {
+ $('#compPaginasColor').val(0);
+ $('#compPapelColorOrigen').val("");
+ this.compGramajeColor.empty();
+ this.compPapelColorSelected.empty();
+ this.compPapelColorSelected.item.prop('disabled', true);
+ }
+
+ if (data.lineas.cubierta && data.lineas.cubierta.paginas) {
+ $('#compPaginasCubierta').val(data.lineas.cubierta.paginas);
+ $('#compPapelCubiertaOrigen').val(data.lineas.cubierta.papel_nombre);
+ this.compGramajeCubierta.setOption(parseFloat(data.lineas.cubierta.gramaje).toFixed(0), parseFloat(data.lineas.cubierta.gramaje).toFixed(0));
+ $('#compSolapasCubierta').val(parseFloat(data.lineas.cubierta.solapas).toFixed(0));
+ this.compPapelCubiertaSelected.item.prop('disabled', false);
+ this.compPapelCubiertaSelected.setOption(data.lineas.cubierta.new_papel_id, data.lineas.cubierta.new_papel_nombre);
+ }
+ else {
+ $('#compPaginasCubierta').val(0);
+ $('#compPapelCubiertaOrigen').val("");
+ this.compGramajeCubierta.empty();
+ $('#compSolapasCubierta').val("");
+ this.compPapelCubiertaSelected.empty();
+ this.compPapelCubiertaSelected.item.prop('disabled', true);
+ }
+
+ if (data.lineas.sobrecubierta && data.lineas.sobrecubierta.paginas) {
+ $('#compSobrecubierta').val(1);
+ $('#compPapelSobrecubiertaOrigen').val(data.lineas.sobrecubierta.papel_nombre);
+ this.compGramajeSobrecubierta.setOption(parseFloat(data.lineas.sobrecubierta.gramaje).toFixed(0), parseFloat(data.lineas.sobrecubierta.gramaje).toFixed(0));
+ $('#compSolapasSobrecubierta').val(parseFloat(data.lineas.sobrecubierta.solapas).toFixed(0));
+ this.compSobrecubiertaSelected.item.prop('disabled', false);
+ this.compSobrecubiertaSelected.setOption(data.lineas.sobrecubierta.new_papel_id, data.lineas.sobrecubierta.new_papel_nombre);
+ }
+ else {
+ $('#compSobrecubierta').val(0);
+ $('#compPapelSobrecubiertaOrigen').val("");
+ this.compGramajeSobrecubierta.empty();
+ $('#compSolapasSobrecubierta').val("");
+ this.compSobrecubiertaSelected.empty();
+ this.compSobrecubiertaSelected.item.prop('disabled', true);
+ }
+
+ if (data.acabados) {
+ if (data.acabados.cubierta && data.acabados.cubierta.acabadoOld) {
+ $('#compAcabadoCubiertaOrigen').val(data.acabados.cubierta.acabadoOld);
+ this.acabadoCubierta.setOption(data.acabados.cubierta.acabado.id, data.acabados.cubierta.acabado.name);
+ this.acabadoCubierta.item.prop('disabled', false);
+ }
+ else {
+ $('#compAcabadoCubiertaOrigen').val("");
+ this.acabadoCubierta.empty();
+ this.acabadoCubierta.item.prop('disabled', true);
+ }
+
+ if (data.acabados.sobrecubierta && data.acabados.sobrecubierta.acabadoOld) {
+ $('#compAcabadoSobrecubiertaOrigen').val(data.acabados.sobrecubierta.acabadoOld);
+ this.acabadosSobrecubierta.setOption(data.acabados.sobrecubierta.acabado.id, data.acabados.sobrecubierta.acabado.name);
+ this.acabadosSobrecubierta.item.prop('disabled', false);
+ }
+ else {
+ $('#compAcabadoSobrecubiertaOrigen').val("");
+ this.acabadosSobrecubierta.empty();
+ this.acabadosSobrecubierta.item.prop('disabled', true);
+ }
+ }
+
+ if (data.servicios.ferro == 1) {
+ $('#ferro').prop('checked', true);
+ }
+ else {
+ $('#ferro').prop('checked', false);
+ }
+ if (data.servicios.ferroDigital == 1) {
+ $('#ferroDigital').prop('checked', true);
+ }
+ else {
+ $('#ferroDigital').prop('checked', false);
+ }
+ if (data.servicios.marcapaginas == 1) {
+ $('#marcapaginas').prop('checked', true);
+ }
+ else {
+ $('#marcapaginas').prop('checked', false);
+ }
+ if (data.servicios.prototipo == 1) {
+ $('#prototipo').prop('checked', true);
+ }
+ else {
+ $('#prototipo').prop('checked', false);
+ }
+ }
+ this.makeImport.prop('disabled', false);
+ }
+}
+
+document.addEventListener('DOMContentLoaded', function () {
+
+ let catalogo = new Catalogo();
+ catalogo.init();
+});
+
+export default Catalogo;
\ No newline at end of file