diff --git a/ci4/app/Config/PedidoXML.php b/ci4/app/Config/PedidoXML.php
index 9bce6c7c..18d494ca 100644
--- a/ci4/app/Config/PedidoXML.php
+++ b/ci4/app/Config/PedidoXML.php
@@ -13,6 +13,7 @@ class PedidoXML extends BaseConfig
public string $password;
public string $base_dir; # FTP server directory
public bool $xml_enabled;
+ public int $id_offset;
public function __construct() {
parent::__construct();
@@ -22,6 +23,7 @@ class PedidoXML extends BaseConfig
$this->password = env("HIDRIVE_PASS","A77h3b0X4OA2rOYAf4w2");
$this->base_dir = env("HIDRIVE_PATH_ROOT","/home/admin/safekat"); # FTP server directory
$this->xml_enabled = env("FTP_XML_ENABLED",false);
+ $this->id_offset = env("XML_OFFSET_CUSTOMER_ID",1000000);
}
}
diff --git a/ci4/app/Config/RBAC/permissionMatrix.php b/ci4/app/Config/RBAC/permissionMatrix.php
index cb1c244e..c13aa388 100644
--- a/ci4/app/Config/RBAC/permissionMatrix.php
+++ b/ci4/app/Config/RBAC/permissionMatrix.php
@@ -9,10 +9,10 @@ const SK_PERMISSION_MATRIX = [
"plantilla-tarifa.edit",
"plantilla-tarifa.delete",
"plantilla-tarifa.menu",
- "perfil.create",
- "perfil.edit",
- "perfil.delete",
- "perfil.menu",
+ "direcciones.create",
+ "direcciones.edit",
+ "direcciones.delete",
+ "direcciones.menu",
"presupuesto.create",
"presupuesto.edit",
"presupuesto.delete",
@@ -21,6 +21,14 @@ const SK_PERMISSION_MATRIX = [
"presupuesto-cliente.edit",
"presupuesto-cliente.delete",
"presupuesto-cliente.menu",
+ "pedidos-activos.view",
+ "pedidos-activos.menu",
+ "pedidos-finalizados.view",
+ "pedidos-finalizados.menu",
+ "pedidos-cancelados.view",
+ "pedidos-cancelados.menu",
+ "pedidos-todos.view",
+ "pedidos-todos.menu",
"tarifa-preimpresion.create",
"tarifa-preimpresion.edit",
"tarifa-preimpresion.delete",
@@ -37,14 +45,14 @@ const SK_PERMISSION_MATRIX = [
"tarifa-encuadernacion.edit",
"tarifa-encuadernacion.delete",
"tarifa-encuadernacion.menu",
- "tarifa-envio.create",
- "tarifa-envio.edit",
- "tarifa-envio.delete",
- "tarifa-envio.menu",
"tarifa-extra.create",
"tarifa-extra.edit",
"tarifa-extra.delete",
"tarifa-extra.menu",
+ "tarifa-envio.create",
+ "tarifa-envio.edit",
+ "tarifa-envio.delete",
+ "tarifa-envio.menu",
"proveedores.create",
"proveedores.edit",
"proveedores.delete",
@@ -61,10 +69,6 @@ const SK_PERMISSION_MATRIX = [
"paises.edit",
"paises.delete",
"paises.menu",
- "formas-pago.create",
- "formas-pago.edit",
- "formas-pago.delete",
- "formas-pago.menu",
"maquinas.create",
"maquinas.edit",
"maquinas.delete",
@@ -89,48 +93,48 @@ const SK_PERMISSION_MATRIX = [
"roles-permisos.edit",
"roles-permisos.delete",
"roles-permisos.menu",
- "ubicaciones.create",
- "ubicaciones.edit",
- "ubicaciones.delete",
- "ubicaciones.menu",
- "series-facturas.create",
- "series-facturas.edit",
- "series-facturas.delete",
- "series-facturas.menu",
],
"cliente-admin" => [
- "perfil.edit",
- "perfil.menu",
- "direcciones.create",
- "direcciones.edit",
- "direcciones.delete",
- "direcciones.menu",
"presupuesto-cliente.create",
"presupuesto-cliente.edit",
"presupuesto-cliente.delete",
"presupuesto-cliente.menu",
+ "pedidos-activos.view",
+ "pedidos-activos.menu",
+ "pedidos-finalizados.view",
+ "pedidos-finalizados.menu",
+ "pedidos-cancelados.view",
+ "pedidos-cancelados.menu",
+ "pedidos-todos.view",
+ "pedidos-todos.menu",
],
"cliente-editor" => [
- "perfil.create",
- "perfil.edit",
- "perfil.delete",
- "perfil.menu",
- "direcciones.create",
- "direcciones.edit",
- "direcciones.delete",
- "direcciones.menu",
"presupuesto-cliente.create",
"presupuesto-cliente.edit",
- "presupuesto-cliente.delete",
"presupuesto-cliente.menu",
+ "pedidos-activos.view",
+ "pedidos-activos.menu",
+ "pedidos-finalizados.view",
+ "pedidos-finalizados.menu",
+ "pedidos-cancelados.view",
+ "pedidos-cancelados.menu",
+ "pedidos-todos.view",
+ "pedidos-todos.menu",
],
"comercial" => [
"token.token",
"token.menu",
],
"produccion" => [
- "token.token",
- "token.menu",
+ "clientes.create",
+ "clientes.edit",
+ "clientes.menu",
+ "direcciones.create",
+ "direcciones.edit",
+ "direcciones.menu",
+ "presupuesto.create",
+ "presupuesto.edit",
+ "presupuesto.menu",
],
"maquina" => [
"token.token",
@@ -163,10 +167,10 @@ const SK_PERMISSION_MATRIX = [
"plantilla-tarifa.edit",
"plantilla-tarifa.delete",
"plantilla-tarifa.menu",
- "perfil.create",
- "perfil.edit",
- "perfil.delete",
- "perfil.menu",
+ "direcciones.create",
+ "direcciones.edit",
+ "direcciones.delete",
+ "direcciones.menu",
"presupuesto.create",
"presupuesto.edit",
"presupuesto.delete",
@@ -175,6 +179,14 @@ const SK_PERMISSION_MATRIX = [
"presupuesto-cliente.edit",
"presupuesto-cliente.delete",
"presupuesto-cliente.menu",
+ "pedidos-activos.view",
+ "pedidos-activos.menu",
+ "pedidos-finalizados.view",
+ "pedidos-finalizados.menu",
+ "pedidos-cancelados.view",
+ "pedidos-cancelados.menu",
+ "pedidos-todos.view",
+ "pedidos-todos.menu",
"tarifa-preimpresion.create",
"tarifa-preimpresion.edit",
"tarifa-preimpresion.delete",
@@ -195,10 +207,6 @@ const SK_PERMISSION_MATRIX = [
"tarifa-envio.edit",
"tarifa-envio.delete",
"tarifa-envio.menu",
- "tarifa-extra.create",
- "tarifa-extra.edit",
- "tarifa-extra.delete",
- "tarifa-extra.menu",
"proveedores.create",
"proveedores.edit",
"proveedores.delete",
@@ -239,13 +247,5 @@ const SK_PERMISSION_MATRIX = [
"roles-permisos.edit",
"roles-permisos.delete",
"roles-permisos.menu",
- "ubicaciones.create",
- "ubicaciones.edit",
- "ubicaciones.delete",
- "ubicaciones.menu",
- "series-facturas.create",
- "series-facturas.edit",
- "series-facturas.delete",
- "series-facturas.menu",
],
];
diff --git a/ci4/app/Config/RBAC/permissions.php b/ci4/app/Config/RBAC/permissions.php
index 014dbd2a..4c640b77 100644
--- a/ci4/app/Config/RBAC/permissions.php
+++ b/ci4/app/Config/RBAC/permissions.php
@@ -45,6 +45,10 @@ const SK_PERMISSIONS = [
'tarifa-encuadernacion.edit' => 'Can edit',
'tarifa-encuadernacion.delete' => 'Can delete',
'tarifa-encuadernacion.menu' => 'Menu shall be visualize',
+ 'tarifa-extra.create' => 'Can create',
+ 'tarifa-extra.edit' => 'Can edit',
+ 'tarifa-extra.delete' => 'Can delete',
+ 'tarifa-extra.menu' => 'Menu shall be visualize',
'tarifa-envio.create' => 'Can create',
'tarifa-envio.edit' => 'Can edit',
'tarifa-envio.delete' => 'Can delete',
diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php
index d9dfbf9a..11ae7fd4 100644
--- a/ci4/app/Config/Routes.php
+++ b/ci4/app/Config/Routes.php
@@ -77,8 +77,6 @@ $routes->group('tarifas', ['namespace' => 'App\Controllers\Tarifas'], function (
$routes->get('delete/(:num)', 'TarifaAcabados::delete/$1', ['as' => 'tarifaAcabadoDelete']);
$routes->post('datatable', 'TarifaAcabados::datatable', ['as' => 'tarifaAcabadoDT']);
$routes->get('select', 'TarifaAcabados::show_select', ["as" => "showSelectTarifaAcabado"]);
- $routes->get('gettarifas', 'TarifaAcabados::getSelect2');
-
$routes->group('lineas', ['namespace' => 'App\Controllers\Tarifas\Acabados'], function ($routes) {
$routes->post('datatable', 'TarifaAcabadosLineas::datatable', ['as' => 'tarifaAcabadoLineasDT']);
$routes->post('datatable_editor', 'TarifaAcabadosLineas::datatable_editor', ['as' => 'tarifaAcabadoLineasDTE']);
diff --git a/ci4/app/Config/Services.php b/ci4/app/Config/Services.php
index 3f76f76e..8d209990 100755
--- a/ci4/app/Config/Services.php
+++ b/ci4/app/Config/Services.php
@@ -3,6 +3,8 @@
namespace Config;
use App\Services\FTPService;
+use App\Services\MaquinaService;
+use App\Services\PapelImpresionService;
use CodeIgniter\Config\BaseService;
use App\Services\ProductionService;
use App\Services\TarifaMaquinaService;
@@ -38,4 +40,12 @@ class Services extends BaseService
public static function tarifa_maquina(){
return new TarifaMaquinaService();
}
+ public static function papel_impresion()
+ {
+ return new PapelImpresionService();
+ }
+ public static function maquina()
+ {
+ return new MaquinaService();
+ }
}
diff --git a/ci4/app/Config/Validation.php b/ci4/app/Config/Validation.php
index d07aade1..1c8614bf 100755
--- a/ci4/app/Config/Validation.php
+++ b/ci4/app/Config/Validation.php
@@ -42,7 +42,22 @@ class Validation extends BaseConfig
// --------------------------------------------------------------------
// Rules
// --------------------------------------------------------------------
-
+ /**
+ * Maquina duplicate validation
+ *
+ * @var array
+ */
+ public array $maquina_duplicate = [
+ "name" => "required|string"
+ ];
+ /**
+ * PapelImpresion duplicate validation
+ *
+ * @var array
+ */
+ public array $papel_impresion_duplicate = [
+ "name" => "required|string"
+ ];
/**========================================================================
* TARIFA MAQUINA ACABADO
*========================================================================**/
diff --git a/ci4/app/Controllers/Configuracion/MaquinaTarea.php b/ci4/app/Controllers/Configuracion/MaquinaTarea.php
new file mode 100644
index 00000000..4115850d
--- /dev/null
+++ b/ci4/app/Controllers/Configuracion/MaquinaTarea.php
@@ -0,0 +1,86 @@
+maquinaTareaModel = model(MaquinaTareaModel::class);
+ }
+
+
+ public function index()
+ {
+ $this->viewData['breadcrumb'] = [
+ ['title' => lang("App.menu_configuration"), 'route' => "javascript:void(0);", 'active' => false],
+ ['title' => lang("App.menu_maquina_tareas"), 'route' => site_url('configuracion/maquina-tareas'), 'active' => true]
+ ];
+ return view(static::$viewPath . $this->indexRoute, $this->viewData);
+ }
+ public function viewForm(int $maquina_tarea_id)
+ {
+ $maquinaTarea = $this->maquinaTareaModel->find($maquina_tarea_id);
+ $this->viewData['breadcrumb'] = [
+ ['title' => lang("App.menu_configuration"), 'route' => "javascript:void(0);", 'active' => false],
+ ['title' => lang("App.menu_maquina_tareas"), 'route' => site_url('configuracion/maquina-tareas'), 'active' => false],
+ ['title' => $maquinaTarea->name, 'route' => site_url('configuracion/maquina-tareas/edit/' . $maquina_tarea_id), 'active' => true]
+ ];
+ $this->viewData["model"] = $maquinaTarea;
+
+ return view(static::$viewPath . $this->editRoute, $this->viewData);
+ }
+ public function show(int $id)
+ {
+ $data = $this->maquinaTareaModel->find($id);
+ return $this->response->setJSON($data);
+ }
+ public function update_servicio_cliente(int $id)
+ {
+ $data = $this->request->getPost();
+ $status = $this->maquinaTareaModel->update($id, [
+ "name" => $data["name"],
+ "description" => $data["description"]
+ ]);
+
+ return $this->response->setJSON(["message" => lang("App.global_alert_save_success"), "status" => $status]);
+ }
+ public function store()
+ {
+ $bodyData = $this->request->getPost();
+ $r = $this->maquinaTareaModel->insert($bodyData);
+ return $this->response->setJSON(["message" => lang("App.global_alert_save_success"), "status" => $r,"data" => $bodyData]);
+ }
+ public function delete(int $maquina_tarea_id){
+ $r = $this->maquinaTareaModel->delete($maquina_tarea_id);
+ return $this->response->setJSON(["message" => lang("App.user_alert_delete"), "status" => $r]);
+ }
+ public function datatable()
+ {
+ $query = $this->maquinaTareaModel->getQueryDatatable()->orderBy("created_at", "DESC");
+ return DataTable::of($query)
+ ->edit('created_at', fn($q) => $q->created_at ? Time::createFromFormat('Y-m-d H:i:s', $q->created_at)->format("d/m/Y H:i") : "")
+ ->add("action", fn($q) => $q->id)
+ ->toJson(true);
+ }
+}
diff --git a/ci4/app/Controllers/Configuracion/Maquinas.php b/ci4/app/Controllers/Configuracion/Maquinas.php
index 406f44f8..bb7fb49b 100755
--- a/ci4/app/Controllers/Configuracion/Maquinas.php
+++ b/ci4/app/Controllers/Configuracion/Maquinas.php
@@ -9,6 +9,8 @@ use App\Models\Collection;
use App\Entities\Configuracion\Maquina;
use App\Models\Configuracion\MaquinaModel;
+use App\Services\MaquinaService;
+use CodeIgniter\Validation\Validation;
class Maquinas extends \App\Controllers\BaseResourceController
{
@@ -26,18 +28,19 @@ class Maquinas extends \App\Controllers\BaseResourceController
protected static $viewPath = 'themes/vuexy/form/configuracion/maquinas/';
protected $indexRoute = 'maquinaList';
-
+ protected MaquinaService $maquinaService;
+ protected Validation $validation;
public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger)
{
$this->viewData['pageTitle'] = lang('Maquinas.moduleTitle');
$this->viewData['usingSweetAlert'] = true;
-
+ $this->maquinaService = service('maquina');
+ $this->validation = service('validation');
// 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 (IMN)
@@ -385,6 +388,19 @@ class Maquinas extends \App\Controllers\BaseResourceController
];
return $tipoOptions;
}
+ public function duplicate(int $maquina_id)
+ {
+ $bodyData = $this->request->getPost();
+ $validated = $this->validation->run($bodyData,'maquina_duplicate');
+ if($validated){
+ $this->maquinaService->setMaquina($maquina_id);
+ $duplicated = $this->maquinaService->duplicate($bodyData['name']);
+ return $this->response->setJSON(["data" => $duplicated]);
+ }else{
+ return $this->response->setJSON(["errors" => $this->validation->getErrors()])->setStatusCode(400);
+ }
+
+ }
}
diff --git a/ci4/app/Controllers/Configuracion/Maquinaspapelesimpresion.php b/ci4/app/Controllers/Configuracion/Maquinaspapelesimpresion.php
index 59d87354..c6e5239d 100755
--- a/ci4/app/Controllers/Configuracion/Maquinaspapelesimpresion.php
+++ b/ci4/app/Controllers/Configuracion/Maquinaspapelesimpresion.php
@@ -225,7 +225,9 @@ class Maquinaspapelesimpresion extends \App\Controllers\BaseResourceController {
];
// Se checkea que no haya otro papel con ese gramaje seleccionado y que la accion sea activar ese papel
- if($this->model->getPapelActivo($maquina_id, $gramaje)->countAllResults() != 0 && intval($active)==1){
+ // Esta funcionalidad esta mal: habría que comprobar también que tienen el mismo papel genérico. Se opta por
+ // quitar la condición el 22012025
+ /*if($this->model->getPapelActivo($maquina_id, $gramaje)->countAllResults() != 0 && intval($active)==1){
$response['error']= lang('MaquinasPapelImpresion.gramaje_duplicado');;
$ret_vals = [
'DT_RowId' => 'row_'. $papel_id,
@@ -235,9 +237,9 @@ class Maquinaspapelesimpresion extends \App\Controllers\BaseResourceController {
];
$response['data'] = $ret_vals;
}
- else{
+ else{*/
$this->model->updateRows([$data]);
- }
+ //}
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
diff --git a/ci4/app/Controllers/Configuracion/Papelesgenericos.php b/ci4/app/Controllers/Configuracion/Papelesgenericos.php
index 1792dd93..7196d9ba 100755
--- a/ci4/app/Controllers/Configuracion/Papelesgenericos.php
+++ b/ci4/app/Controllers/Configuracion/Papelesgenericos.php
@@ -314,8 +314,15 @@ class Papelesgenericos extends \App\Controllers\BaseResourceController
$cubierta = goSanitize($this->request->getGet('cubierta'))[0] ?? 0;
$tapa_dura = goSanitize($this->request->getGet('tapa_dura'))[0] ?? null;
- $menu = $this->model->getPapelCliente($tipo, $cubierta, $selected_papel, $tapa_dura, false, $POD);
- $menu2 = $this->model->getPapelCliente($tipo, $cubierta, $selected_papel, $tapa_dura, true, $POD);
+ $ancho = floatval($this->request->getGet('ancho') ?? 0);
+ $alto = floatval($this->request->getGet('alto') ?? 0);
+ $solapas = floatval($this->request->getGet('solapas') ?? 0);
+ $lomo = floatval($this->request->getGet('lomo') ?? 0);
+
+ $anchoLibro = 2* $ancho + 2 * $solapas + $lomo;
+
+ $menu = $this->model->getPapelCliente($tipo, $cubierta, $selected_papel, $tapa_dura, false, $POD, $anchoLibro, $alto, $tirada);
+ $menu2 = $this->model->getPapelCliente($tipo, $cubierta, $selected_papel, $tapa_dura, true, $POD, $anchoLibro, $alto, $tirada);
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
@@ -349,8 +356,17 @@ class Papelesgenericos extends \App\Controllers\BaseResourceController
}
$tipo = goSanitize($this->request->getGet('tipo'))[0];
$cubierta = goSanitize($this->request->getGet('cubierta'))[0] ?? 0;
+
+ $ancho = floatval($this->request->getGet('ancho') ?? 0);
+ $alto = floatval($this->request->getGet('alto') ?? 0);
+ $solapas = floatval($this->request->getGet('solapas') ?? 0);
+ $lomo = floatval($this->request->getGet('lomo') ?? 0);
- $items = $this->model->getPapelCliente($tipo, $cubierta, null, true, $POD);
+ $tapa_dura = $this->request->getGet('tapa_dura') ?? 0;
+
+ $anchoLibro = 2* $ancho + 2 * $solapas + $lomo;
+
+ $items = $this->model->getPapelCliente($tipo, $cubierta, null, $tapa_dura, true, $POD, $anchoLibro, $alto, $tirada);
$items = array_map(function ($item) {
return [
'id' => $item->id,
diff --git a/ci4/app/Controllers/Configuracion/Papelesimpresion.php b/ci4/app/Controllers/Configuracion/Papelesimpresion.php
index fb3a0363..e5beef97 100755
--- a/ci4/app/Controllers/Configuracion/Papelesimpresion.php
+++ b/ci4/app/Controllers/Configuracion/Papelesimpresion.php
@@ -22,6 +22,7 @@ use
use App\Models\Collection;
+use CodeIgniter\Validation\Validation;
@@ -35,7 +36,6 @@ use App\Models\Configuracion\PapelImpresionTipologiaModel;
use App\Models\Configuracion\MaquinasPapelesImpresionModel;
use App\Models\Configuracion\MaquinaModel;
-
class Papelesimpresion extends \App\Controllers\BaseResourceController
{
@@ -52,6 +52,7 @@ class Papelesimpresion extends \App\Controllers\BaseResourceController
protected static $viewPath = 'themes/vuexy/form/configuracion/papel/';
protected $indexRoute = 'papelImpresionList';
+ protected Validation $validation;
public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger)
{
@@ -66,6 +67,7 @@ class Papelesimpresion extends \App\Controllers\BaseResourceController
$this->delete_flag = 1;
$this->tpModel = new PapelImpresionTipologiaModel();
+ $this->validation = service("validation");
// Breadcrumbs
$this->viewData['breadcrumb'] = [
@@ -443,4 +445,27 @@ class Papelesimpresion extends \App\Controllers\BaseResourceController
$ma_pa_model->updateRows($active_values);
}
}
+ /**
+ * Duplica el papel impresion y sus relaciones
+ *
+ * @param int $papel_impresion_id
+ * @return Response
+ */
+ public function duplicate( int $papel_impresion_id)
+ {
+ $bodyData = $this->request->getPost();
+ $validated = $this->validation->run($bodyData, "papel_impresion_duplicate");
+ if($validated){
+ $papelImpresionEntity = $this->model->find($papel_impresion_id);
+ $papelImpresionService = service('papel_impresion');
+ $duplicated = $papelImpresionService
+ ->setPapelImpresionEntity($papelImpresionEntity)
+ ->duplicate($bodyData["name"]);
+ return $this->response->setJSON(["data" => $duplicated]);
+
+ }else{
+ return $this->response->setJSON(["errors" => $this->validation->getErrors()])->setStatusCode(400);
+ }
+
+ }
}
diff --git a/ci4/app/Controllers/Configuracion/ServicioCliente.php b/ci4/app/Controllers/Configuracion/ServicioCliente.php
deleted file mode 100644
index bc282142..00000000
--- a/ci4/app/Controllers/Configuracion/ServicioCliente.php
+++ /dev/null
@@ -1,89 +0,0 @@
-servicioClienteModel = model(ServicioClienteModel::class);
- }
-
-
- public function index()
- {
- $this->viewData['breadcrumb'] = [
- ['title' => lang("App.menu_configuration"), 'route' => "javascript:void(0);", 'active' => false],
- ['title' => lang("App.menu_servicios_cliente"), 'route' => site_url('configuracion/servicios'), 'active' => true]
- ];
- return view(static::$viewPath . $this->indexRoute, $this->viewData);
- }
- public function viewForm(int $servicio_cliente_id)
- {
- $servicioCliente = $this->servicioClienteModel->find($servicio_cliente_id);
- $this->viewData['breadcrumb'] = [
- ['title' => lang("App.menu_configuration"), 'route' => "javascript:void(0);", 'active' => false],
- ['title' => lang("App.menu_servicios_cliente"), 'route' => site_url('configuracion/servicios'), 'active' => false],
- ['title' => $servicioCliente->nombre, 'route' => site_url('configuracion/servicios/edit/' . $servicio_cliente_id), 'active' => true]
- ];
- $this->viewData["model"] = $servicioCliente;
-
- return view(static::$viewPath . 'ServicioClienteEdit', $this->viewData);
- }
- public function show(int $id)
- {
- $data = $this->servicioClienteModel->find($id)->withAllTarifas();
- return $this->response->setJSON($data);
- }
- public function update_servicio_cliente(int $id)
- {
- $data = $this->request->getPost();
- $status = $this->servicioClienteModel->update($id, [
- "nombre" => $data["nombre"],
- "code" => $data["code"]
- ]);
- if (isset($data["tarifa_manipulado_id"])) {
- $this->servicioClienteModel->upsertTarifaManipulado($id, $data["tarifa_manipulado_id"]);
- }else if(isset($data["tarifa_acabado_id"])) {
-
- $this->servicioClienteModel->upsertTarifaAcabado($id, $data["tarifa_acabado_id"]);
- }else{
- $this->servicioClienteModel->detachTarifas($id);
- }
-
- return $this->response->setJSON(["message" => lang("App.global_success"), "status" => $status]);
- }
- public function store()
- {
- // $this->servicioClienteModel->update($id,[$this->request->getPost()]);
- return $this->response->setJSON([]);
- }
- public function datatable()
- {
- $query = $this->servicioClienteModel->getQueryDatatable()->orderBy("created_at", "DESC");
- return DataTable::of($query)
- ->edit('created_at', fn($q) => $q->created_at ? Time::createFromFormat('Y-m-d H:i:s', $q->created_at)->format("d/m/Y H:i") : "")
- ->add("action", fn($q) => $q->id)
- ->toJson(true);
- }
-}
diff --git a/ci4/app/Controllers/Configuracion/Users.php b/ci4/app/Controllers/Configuracion/Users.php
index 8fcc153e..c537dd57 100755
--- a/ci4/app/Controllers/Configuracion/Users.php
+++ b/ci4/app/Controllers/Configuracion/Users.php
@@ -89,6 +89,8 @@ class Users extends \App\Controllers\GoBaseController
// Marcar el username como NULL
$sanitizedData = $this->sanitized($postData, true);
+ $email = $sanitizedData['email'];
+ unset($sanitizedData['email']);
$noException = true;
@@ -100,7 +102,7 @@ class Users extends \App\Controllers\GoBaseController
try {
// The Email is unique
- if ($this->user_model->isEmailUnique($sanitizedData['email'])) {
+ if ($this->user_model->isEmailUnique($email)) {
// Crear el usuario si pasa la validación
$user = new \CodeIgniter\Shield\Entities\User([
@@ -109,8 +111,6 @@ class Users extends \App\Controllers\GoBaseController
'last_name' => $sanitizedData['last_name'],
'cliente_id' => $sanitizedData['cliente_id'],
'comments' => $sanitizedData['comments'],
- 'email' => $sanitizedData['email'],
- 'password' => $sanitizedData['password'],
'status' => $sanitizedData['status'] ?? 0,
'active' => $sanitizedData['active'] ?? 0,
]);
diff --git a/ci4/app/Controllers/Js_loader.php b/ci4/app/Controllers/Js_loader.php
index e402c125..c2c056ce 100755
--- a/ci4/app/Controllers/Js_loader.php
+++ b/ci4/app/Controllers/Js_loader.php
@@ -33,13 +33,6 @@ class Js_loader extends BaseController
}
-
- function datosLibro_js()
- {
- $this->response->setHeader('Content-Type', 'text/javascript');
- return view('themes/vuexy/form/presupuestos/admin/_datosLibroItems.js');
- }
-
function previsualizador_js()
{
$this->response->setHeader('Content-Type', 'text/javascript');
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoacabados.php b/ci4/app/Controllers/Presupuestos/Presupuestoacabados.php
index 18dc5743..39f80e0f 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestoacabados.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestoacabados.php
@@ -69,30 +69,61 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
return;
endif;
- $postData = $this->request->getJSON();
- $tarifas = array_column($postData->datos, 'tarifa_id');
- $tirada = $postData->tirada ?? 0;
- $POD = $postData->POD ?? 0;
- $result = [];
-
- if (count($tarifas) > 0) {
- foreach ($tarifas as $tarifa) {
- $values = $this->model->getPrecioTarifa($tarifa, $tirada, $POD);
- array_push($result, $values);
- }
- }
+ $postData = $this->request->getPost();
+ $datos_tarifas = $postData['datos'] ?? [];
+ $tirada = $postData['tirada'] ?? 0;
+ $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
+
+ $result = $this->getServiciosAcabados($datos_tarifas, $tirada, $POD);
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
- 'lines' => $result,
+ 'lineas' => $result,
$csrfTokenName => $newTokenHash
];
return $this->respond($data);
}
- public function datatable()
+ public function getServiciosAcabados($datos_tarifas, $tirada, $POD){
+
+ $model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
+ $result = [];
+ if (count($datos_tarifas) > 0) {
+ foreach ($datos_tarifas as $tarifa) {
+ $proveedor = $tarifa['proveedor_id'] == '' ? -1 : $tarifa['proveedor_id'];
+
+ $values = $model->getPrecioTarifa($tarifa['tarifa_id'], $tirada, $proveedor, $POD);
+ $values[0]->cubierta = $tarifa['cubierta'] ?? 0;
+ $values[0]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0;
+ array_push($result, $values[0]);
+ }
+ }
+ return $result;
+ }
+
+ public function cargar()
+ {
+ if($this->request->isAJAX()) {
+ $presupuesto_id = $this->request->getGet('presupuesto_id') ?? null;
+
+ $rows = $this->model->getResource($presupuesto_id)->get()->getResultObject();
+
+ $newTokenHash = csrf_hash();
+ $csrfTokenName = csrf_token();
+ $data = [
+ 'rows' => $rows,
+ $csrfTokenName => $newTokenHash
+ ];
+
+ return $this->respond($data);
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
+ public function getRowValues()
{
if ($this->request->isAJAX()) {
$reqData = $this->request->getPost();
@@ -100,7 +131,7 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
$tarifa_acabado_id = $reqData['tarifa_acabado_id'] ?? 0;
$tirada = $reqData['tirada'] ?? 0;
$proveedor_id = $reqData['proveedor_id'] ?? -1;
- $POD = $reqData['POD'] ?? 0;
+ $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
@@ -195,4 +226,6 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
return $this->failUnauthorized('Invalid request', 403);
}
}
+
+
}
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
index a302751f..91b2b751 100644
--- a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
@@ -6,6 +6,8 @@ use App\Entities\Presupuestos\PresupuestoEntity;
use App\Models\Collection;
use App\Models\Configuracion\MaquinaModel;
use App\Models\Configuracion\PapelGenericoModel;
+use App\Models\Configuracion\PapelFormatoModel;
+use App\Models\Clientes\ClienteModel;
use App\Models\Configuracion\PapelImpresionModel;
use App\Models\Configuracion\TipoPresupuestoModel;
use App\Models\Presupuestos\PresupuestoAcabadosModel;
@@ -17,6 +19,7 @@ use App\Models\Presupuestos\PresupuestoModel;
use App\Models\Presupuestos\PresupuestoPreimpresionesModel;
use App\Models\Presupuestos\PresupuestoServiciosExtraModel;
use App\Services\PresupuestoService;
+use App\Services\PresupuestoClienteService;
use Exception;
class Presupuestoadmin extends \App\Controllers\BaseResourceController
@@ -78,12 +81,9 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
public function add($tipo_impresion_id = null)
{
+ if ($this->request->getPost()):
-
-
- if ($this->request->getPost()) :
-
- $nullIfEmpty = true; // !(phpversion() >= '8.1');
+ $nullIfEmpty = false; // !(phpversion() >= '8.1');
$postData = $this->request->getPost();
@@ -101,36 +101,36 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
}
$noException = true;
- if ($successfulResult = $this->canValidate($this->model->validationRulesAdd, $this->model->validationMessagesAdd)) : // if ($successfulResult = $this->validate($this->formValidationRules) ) :
+ if ($successfulResult = $this->canValidate($this->model->validationRulesAdd, $this->model->validationMessagesAdd)): // if ($successfulResult = $this->validate($this->formValidationRules) ) :
- if ($this->canValidate($this->model->validationRulesAdd, $this->model->validationMessagesAdd)) :
+ if ($this->canValidate($this->model->validationRulesAdd, $this->model->validationMessagesAdd)):
try {
$successfulResult = $this->model->skipValidation(true)->save($sanitizedData);
} catch (\Exception $e) {
$noException = false;
$this->dealWithException($e);
}
- else :
+ else:
$this->viewData['errorMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('Presupuestos.presupuesto'))]);
$this->session->setFlashdata('formErrors', $this->model->errors());
endif;
$thenRedirect = true; // Change this to false if you want your user to stay on the form after submission
endif;
- if ($noException && $successfulResult) :
+ if ($noException && $successfulResult):
$id = $this->model->db->insertID();
$message = lang('Basic.global.saveSuccess', [lang('Basic.global.record')]) . '.';
- if ($thenRedirect) :
- if (!empty($this->indexRoute)) :
+ if ($thenRedirect):
+ if (!empty($this->indexRoute)):
//return redirect()->to(route_to( $this->indexRoute ) )->with('sweet-success', $message);
return redirect()->to(site_url('presupuestoadmin/edit/' . $id))->with('sweet-success', $message);
- else :
+ else:
return $this->redirect2listView('sweet-success', $message);
endif;
- else :
+ else:
$this->session->setFlashData('sweet-success', $message);
endif;
@@ -146,10 +146,10 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$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['paisList'] = $this->getPaisListItems();
- $this->viewData['papelFormatoList'] = $this->getPapelFormatoListItems($presupuestoEntity->papel_formato_id ?? null);
$this->viewData['POD'] = $this->getPOD();
+ $this->viewData['pais_default_id'] = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_pais_defecto')->value;
+ $this->viewData['pais_default'] = model('App\Models\Configuracion\PaisModel')->find($this->viewData['pais_default_id'])->nombre;
$this->viewData['formAction'] = route_to('createPresupuestoAdmin', $tipo_impresion_id);
@@ -164,20 +164,20 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
public function edit($requestedId = null)
{
- if ($requestedId == null) :
+ if ($requestedId == null):
return $this->redirect2listView();
endif;
$id = filter_var($requestedId, FILTER_SANITIZE_URL);
$presupuestoEntity = $this->model->find($id);
- if ($presupuestoEntity == false) :
+ if ($presupuestoEntity == false):
$message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('Presupuestos.presupuesto')), $id]);
return $this->redirect2listView('sweet-error', $message);
endif;
-
- if ($this->request->getPost()) :
+
+ if ($this->request->getPost()):
$nullIfEmpty = true; // !(phpversion() >= '8.1');
@@ -249,16 +249,16 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$successfulResult = false;
} else {
- if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) )
+ if ($successfulResult = $this->canValidate()): // if ($successfulResult = $this->validate($this->formValidationRules) )
- if ($this->canValidate()) :
+ if ($this->canValidate()):
try {
$successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData);
} catch (\Exception $e) {
$noException = false;
$this->dealWithException($e);
}
- else :
+ else:
$this->viewData['warningMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('Presupuestos.presupuesto'))]);
$this->session->setFlashdata('formErrors', $this->model->errors());
@@ -270,16 +270,16 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
endif;
}
- if ($noException && $successfulResult) :
+ 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)) :
+ if ($thenRedirect):
+ if (!empty($this->indexRoute)):
return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
- else :
+ else:
if ($this->request->isAJAX()) {
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
@@ -293,14 +293,14 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
}
endif;
- else :
+ else:
if ($this->request->isAJAX()) {
- if($presupuestoEntity->estado_id==1 && $presupuestoEntity->confirmar==1){
+ if ($presupuestoEntity->estado_id == 1 && $presupuestoEntity->confirmar == 1) {
$this->model->confirmarPresupuesto($id);
PresupuestoService::crearPedido($id);
}
-
+
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
@@ -327,60 +327,20 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
else
$this->viewData['comp_data'] = "";
- $this->viewData['clienteList'] = $this->getClienteListItems($presupuestoEntity->cliente_id ?? null);
- $this->viewData['paisList'] = $this->getPaisListItems();
- $this->viewData['ccaaList'] = $this->getCcaaListItems();
-
- $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['papelFormatoList'] = $this->getPapelFormatoListItems($presupuestoEntity->papel_formato_id ?? null);
- $this->viewData['papelGenericoNegroList'] = $this->getPapelGenericoNegro();
- $this->viewData['papelGenericoNegroHQList'] = $this->getPapelGenericoNegroHQ();
- $this->viewData['papelGenericoColorList'] = $this->getPapelGenericoColor();
- $this->viewData['papelGenericoColorHQList'] = $this->getPapelGenericoColorHQ();
- $this->viewData['papelGenericoCubiertaList'] = $this->getPapelGenericoCubierta();
- $this->viewData['papelGenericoGuardasList'] = $this->getPapelGenericoGuardas();
- $this->viewData['papelGenericoSobrecubiertaList'] = $this->getPapelGenericoSobreCubierta();
- $this->viewData['papelGenericoRotativaNegroList'] = $this->getPapelGenericoRotativaNegro();
- $this->viewData['papelGenericoRotativaColorList'] = $this->getPapelGenericoRotativaColor();
-
- // Acabados exteriores
- $this->viewData['acabadosCubierta'] = $this->getAcabadosCubierta();
- $this->viewData['acabadosSobrecubierta'] = $this->getAcabadosSobrecubierta();
-
- // Lineas Presupuesto
- [$cambios_lineas, $this->viewData['lineasPresupuesto']] = $this->getLineasPresupuesto($presupuestoEntity);
- $this->viewData['presupuestoEntity']->cambios_lineas=$cambios_lineas;
-
- // Servicios
- $this->viewData['serviciosPreimpresion'] = $this->getServiciosPreimpresion();
- $this->viewData['serviciosEncuadernacion'] = $this->getServiciosEncuadernacion();
- $this->viewData['serviciosManipulado'] = $this->getServiciosManipulado();
- $this->viewData['serviciosAcabado'] = $this->getServiciosAcabado();
- $this->viewData['serviciosExtra'] = $this->getServiciosExtra();
-
- [$cambios_en_servicios, $servicios] = $this->getLineasServicios($presupuestoEntity);
- $this->viewData['presupuestoEntity']->cambios_servicios=$cambios_en_servicios;
-
- $this->viewData['serviciosEncuadernacionList'] = $servicios->serviciosEncuadernacion;
- $this->viewData['serviciosAcabadosList'] = $servicios->serviciosAcabado;
- $this->viewData['serviciosManipuladoList'] = $servicios->serviciosManipulado;
- $this->viewData['serviciosPreimpresionList'] = $servicios->serviciosPreimpresion;
- $this->viewData['serviciosExtraList'] = $servicios->serviciosExtra;
-
- // Direciones presupuesto
- [$cambios_en_direcciones, $this->viewData['direccionesList']] = $this->getLineasDirecciones($presupuestoEntity);
- $this->viewData['presupuestoEntity']->cambios_direcciones=$cambios_en_direcciones;
-
$this->viewData['POD'] = $this->getPOD();
$this->viewData['serviciosAutomaticos'] = [
- 'retractilado' => 3,
- 'retractilado5' => 5,
- 'ferro' => 24,
- 'prototipo' => 9,
- 'fajaColor' => 16,
- 'plegadoGuardas' => 62,
+ 'solapas_cubierta' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('servicio_solapas_cubierta')->value,
+ 'solapas_sobrecubierta' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('servicio_solapas_sobrecubierta')->value,
+ 'solapas_faja' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('servicio_solapas_faja')->value,
+ 'retractilado' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_retractilado')->value,
+ 'retractilado5' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_retractilado5')->value,
+ 'ferro' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_ferro')->value,
+ 'prototipo' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_prototipo')->value,
+ 'plegado_guardas' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_guardas')->value,
+ 'solapas_grandes_cubierta' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_exceso_solapas_cubierta')->value,
+ 'solapas_grandes_sobrecubierta' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_exceso_solapas_sobrecubierta')->value,
+ 'solapas_grandes_faja' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_exceso_solapas_faja')->value,
];
$this->viewData['tipo_impresion_id'] = $presupuestoEntity->tipo_impresion_id; // Cosido tapa blanda JJO
@@ -391,7 +351,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
// Si se ha llamado a esta funcion porque se ha duplicado el presupuesto
// se actualiza la bbdd para que sólo ejecute algunas funciones una vez
- if($presupuestoEntity->is_duplicado){
+ if ($presupuestoEntity->is_duplicado) {
$this->model->removeIsDuplicado($presupuestoEntity->id);
}
@@ -411,22 +371,23 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
public function delete($id = null)
{
if (!empty(static::$pluralObjectNameCc) && !empty(static::$singularObjectNameCc)) {
- $objName = mb_strtolower(lang(ucfirst(static::$pluralObjectNameCc).'.'.static::$singularObjectNameCc));
+ $objName = mb_strtolower(lang(ucfirst(static::$pluralObjectNameCc) . '.' . static::$singularObjectNameCc));
} else {
$objName = lang('Basic.global.record');
}
-
- if (!$this->soft_delete){
+
+ if (!$this->soft_delete) {
if (!$this->model->delete($id)) {
return $this->failNotFound(lang('Basic.global.deleteError', [$objName]));
}
- }
- else{
+ } else {
$datetime = (new \CodeIgniter\I18n\Time("now"));
- $rawResult = $this->model->where('id',$id)
- ->set(['deleted_at' => $datetime->format('Y-m-d H:i:s'),
- 'is_deleted' => $this->delete_flag])
+ $rawResult = $this->model->where('id', $id)
+ ->set([
+ 'deleted_at' => $datetime->format('Y-m-d H:i:s'),
+ 'is_deleted' => $this->delete_flag
+ ])
->update();
if (!$rawResult) {
return $this->failNotFound(lang('Basic.global.deleteError', [$objName]));
@@ -468,6 +429,331 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
return $response;
}
+ public function cargar($id)
+ {
+ if ($this->request->isAJAX()) {
+
+ $modelPapelFormato = new PapelFormatoModel();
+ $modelCliente = new ClienteModel();
+ $modelPapelGenerico = new PapelGenericoModel();
+
+
+ $presupuesto = $this->model->find($id);
+ $data = [];
+ if ($presupuesto) {
+
+ $data['lc'] = $presupuesto->lomo_cubierta;
+ $data['lsc'] = $presupuesto->lomo_sobrecubierta;
+ $data['tipo_impresion'] = $presupuesto->tipo_impresion_id;
+ $data['cosido'] = $presupuesto->cosido;
+ $data['POD'] = $this->getPOD();
+
+ $data['datosGenerales']['id'] = $presupuesto->id;
+ $data['datosGenerales']['state'] = intval($presupuesto->estado_id);
+ $data['datosGenerales']['updated_at'] = date('d/m/Y', strtotime($presupuesto->updated_at));
+ $data['datosGenerales']['created_at'] = date('d/m/Y', strtotime($presupuesto->created_at));
+ $data['datosGenerales']['inc_rei'] = $presupuesto->inc_rei == null ? 0 : $presupuesto->inc_rei;
+ $data['datosGenerales']['titulo'] = $presupuesto->titulo;
+ $data['datosGenerales']['autor'] = $presupuesto->autor;
+ $data['datosGenerales']['coleccion'] = $presupuesto->coleccion;
+ $data['datosGenerales']['numero_edicion'] = $presupuesto->numero_edicion;
+ $data['datosGenerales']['isbn'] = $presupuesto->isbn;
+ $data['datosGenerales']['pais'] = $presupuesto->pais_id;
+ $data['datosGenerales']['pais_nombre'] = model('App\Models\Configuracion\PaisModel')->find($presupuesto->pais_id)->nombre;
+ $data['datosGenerales']['cliente']['id'] = $presupuesto->cliente_id;
+ $data['datosGenerales']['cliente']['nombre'] = $modelCliente->getNombre($presupuesto->cliente_id);
+ $data['datosGenerales']['referenciaCliente'] = $presupuesto->referencia_cliente;
+
+
+ $data['datosLibro']['papelFormatoId'] = $presupuesto->papel_formato_id;
+ $data['datosLibro']['papelFormatoNombre'] = $modelPapelFormato->getNombre($presupuesto->papel_formato_id);
+ $data['datosLibro']['papelFormatoPersonalizado'] = $presupuesto->papel_formato_personalizado;
+ $data['datosLibro']['papelFormatoAncho'] = $presupuesto->papel_formato_ancho;
+ $data['datosLibro']['papelFormatoAlto'] = $presupuesto->papel_formato_alto;
+ $data['datosLibro']['paginas'] = $presupuesto->paginas;
+ $data['datosLibro']['tirada'] = $presupuesto->tirada;
+ $data['datosLibro']['merma'] = $presupuesto->merma;
+ $data['datosLibro']['mermaCubierta'] = $presupuesto->merma_cubierta;
+ $data['datosLibro']['solapasCubierta'] = $presupuesto->solapas;
+ $data['datosLibro']['solapasSobrecubierta'] = $presupuesto->solapas_sobrecubierta;
+ $data['datosLibro']['solapasCubiertaAncho'] = $presupuesto->solapas_ancho;
+ $data['datosLibro']['solapasSobrecubiertaAncho'] = $presupuesto->solapas_ancho_sobrecubierta;
+ $data['datosLibro']['fajaColor'] = $presupuesto->faja_color;
+ $data['datosLibro']['fajaColorSolapasAncho'] = $presupuesto->solapas_ancho_faja_color;
+ $data['datosLibro']['fajaColorAlto'] = $presupuesto->alto_faja_color;
+
+ $modelAcabado = model("App\Models\Tarifas\Acabados\TarifaAcabadoModel");
+ $data['datosLibro']['acabadoCubierta']['id'] = $presupuesto->acabado_cubierta_id;
+ if ($presupuesto->acabado_cubierta_id == 0) {
+ $data['datosLibro']['acabadoCubierta']['text'] = "Ninguno";
+ } else {
+ $data['datosLibro']['acabadoCubierta']['text'] = $modelAcabado->find($presupuesto->acabado_cubierta_id)->nombre;
+ }
+ $data['datosLibro']['acabadoSobrecubierta']['id'] = $presupuesto->acabado_sobrecubierta_id;
+ if ($presupuesto->acabado_sobrecubierta_id == 0) {
+ $data['datosLibro']['acabadoSobrecubierta']['text'] = "Ninguno";
+ } else {
+ $data['datosLibro']['acabadoSobrecubierta']['text'] = $modelAcabado->find($presupuesto->acabado_sobrecubierta_id)->nombre;
+ }
+ $data['datosLibro']['prototipo'] = $presupuesto->prototipo;
+ $data['datosLibro']['ferro'] = $presupuesto->ferro;
+ $data['datosLibro']['ferroDigital'] = $presupuesto->ferro_digital;
+ $data['datosLibro']['marcapaginas'] = $presupuesto->marcapaginas;
+ $data['datosLibro']['retractilado'] = $presupuesto->retractilado;
+ $data['datosLibro']['retractilado5'] = $presupuesto->retractilado5;
+
+ $data['comparador']['tipo_impresion'] = $presupuesto->comp_tipo_impresion;
+ $data['comparador']['json_data'] = json_decode($presupuesto->comparador_json_data, true);
+ if ($data['comparador']['json_data'] != null) {
+ foreach ($data['comparador']['json_data'] as &$item) {
+ if(intval($item['papel_id'])>0)
+ $item['papel_nombre'] = $modelPapelGenerico->getNombre($item['papel_id'])['nombre'];
+ }
+ }
+ $data['comparador']['posPagColor'] = $presupuesto->comp_pos_paginas_color;
+ $data['comparador']['lomoRedondo'] = $presupuesto->lomo_redondo;
+ $data['comparador']['cabezada'] = $presupuesto->cabezada;
+
+ $data['lineasPresupuesto'] = $this->loadLineasPresupuesto($presupuesto);
+
+ $data['servicios'] = $this->getLineasServicios($presupuesto)[1];
+
+ if (intval($presupuesto->envios_recoge_cliente) == 1) {
+ $data['direcciones']['entrega_taller'] = 1;
+ } else {
+ $data['direcciones']['entrega_taller'] = 0;
+ $data['direcciones'] = $this->obtenerDireccionesEnvio($id, $presupuesto->cliente_id);
+ }
+
+ $data['comentarios_cliente'] = $presupuesto->comentarios_cliente;
+ $data['comentarios_safekat'] = $presupuesto->comentarios_safekat;
+ $data['comentarios_presupuesto'] = $presupuesto->comentarios_presupuesto;
+ $data['comentarios_produccion'] = $presupuesto->comentarios_produccion;
+
+ $data['tiradasAlternativas'] = json_decode($presupuesto->tirada_alternativa_json_data);
+
+ $data['resumen']['total_coste_papel'] = $presupuesto->total_coste_papel;
+ $data['resumen']['total_margenPercent_papel'] = $presupuesto->total_margenPercent_papel;
+ $data['resumen']['total_margen_papel'] = $presupuesto->total_margen_papel;
+ $data['resumen']['total_coste_impresion'] = $presupuesto->total_coste_impresion;
+ $data['resumen']['total_margenPercent_impresion'] = $presupuesto->total_margenPercent_impresion;
+ $data['resumen']['total_margen_impresion'] = $presupuesto->total_margen_impresion;
+ $data['resumen']['total_coste_servicios'] = $presupuesto->total_coste_servicios;
+ $data['resumen']['total_margenPercent_servicios'] = $presupuesto->total_margenPercent_servicios;
+ $data['resumen']['total_margen_servicios'] = $presupuesto->total_margen_servicios;
+ $data['resumen']['total_coste_envios'] = $presupuesto->total_coste_envios;
+ $data['resumen']['total_margen_envios'] = $presupuesto->total_margen_envios;
+ $data['resumen']['total_costes'] = $presupuesto->total_costes;
+ $data['resumen']['porcentajeMargen'] =
+ round(($presupuesto->total_costes + $presupuesto->total_margenes) > 0 ?
+ 100 * $presupuesto->total_margenes / ($presupuesto->total_costes + $presupuesto->total_margenes) :
+ 0, 0);
+ $data['resumen']['total_margenes'] = $presupuesto->total_margenes;
+ $data['resumen']['total_antes_descuento'] = $presupuesto->total_antes_descuento;
+ $data['resumen']['total_descuentoPercent'] = $presupuesto->total_descuentoPercent;
+ $data['resumen']['total_descuento'] = $presupuesto->total_descuento;
+ $data['resumen']['total_presupuesto'] = $presupuesto->total_presupuesto;
+ $data['resumen']['total_precio_unidad'] = $presupuesto->total_precio_unidad;
+ $data['resumen']['total_factor'] = is_numeric($presupuesto->total_factor) ? $presupuesto->total_factor : 0;
+ $data['resumen']['total_factor_ponderado'] = is_numeric($presupuesto->total_factor_ponderado) ? $presupuesto->total_factor_ponderado : 0;
+ if ($presupuesto->estado_id == 2) {
+ $data['resumen']['total_aceptado'] = $presupuesto->total_aceptado;
+ }
+ return $this->respond([
+ 'status' => 1,
+ 'data' => $data
+ ]);
+ }
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
+
+ public function obtenerComparadorInterior()
+ {
+
+ if ($this->request->isAJAX()) {
+
+ $cliente_id = $this->request->getPost('cliente_id');
+ $datosPedido = $this->request->getPost('datosPedido');
+ $papel_generico = $this->request->getPost('papel_generico');
+ $gramaje = $this->request->getPost('gramaje');
+ $paginas_color = $this->request->getPost('paginas_color');
+ $isColor = $this->request->getPost('isColor') ? 1 : 0;
+ $isHq = $this->request->getPost('isHq') ? 1 : 0;
+ $tipo_impresion_id = $this->request->getPost('tipo_impresion_id');
+ $uso = $this->request->getPost('uso');
+
+ $tipo_maquina = $this->request->getPost('tipo_maquina');
+
+ $data = array(
+ 'cliente_id' => $cliente_id,
+ 'datosPedido' => (object) $datosPedido,
+ 'papel_generico' => $papel_generico,
+ 'gramaje' => $gramaje,
+ 'papelInteriorDiferente' => true,
+ 'paginas_color' => $paginas_color,
+ 'isColor' => $isColor,
+ 'isHq' => $isHq,
+ 'tipo_impresion_id' => $tipo_impresion_id,
+ 'uso' => $uso
+ );
+
+ if ($tipo_maquina == 'rotativa') {
+ $data['papelInteriorDiferente'] = false;
+ $lineas = PresupuestoClienteService::obtenerPresupuestoClienteInteriorRotativa($data, true);
+ } else
+ $lineas = PresupuestoClienteService::obtenerPresupuestoClienteInterior($data, true);
+ return $this->respond(
+ [
+ 'status' => 1,
+ 'data' => $lineas
+ ]
+ );
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
+
+ public function obtenerComparadorExteriores()
+ {
+
+ $lineasCubierta = null;
+ $lineasSobrecubierta = null;
+
+ if ($this->request->isAJAX()) {
+
+ $cubierta = $this->request->getPost('cubierta') ?? false;
+ $sobrecubierta = $this->request->getPost('sobrecubierta') ?? false;
+
+ // cubierta y sobrecubierta siempre colorhq
+ $isColor = true;
+ $isHq = true;
+
+ if ($cubierta) {
+
+ $cliente_id = $cubierta['cliente_id'];
+ $datosPedido = $cubierta['datosPedido'];
+ $papel_generico = $cubierta['papel_generico'];
+ $gramaje = $cubierta['gramaje'];
+ $paginas_color = $cubierta['datosPedido']['paginas'] ?? 0;
+ $tipo_impresion_id = $cubierta['tipo_impresion_id'];
+ $uso = $cubierta['uso'];
+ $lomoRedondo = $cubierta['lomoRedondo'] ?? false;
+
+ $data = array(
+ 'cliente_id' => $cliente_id,
+ 'datosPedido' => (object) $datosPedido,
+ 'papel_generico' => $papel_generico,
+ 'gramaje' => $gramaje,
+ 'paginas_color' => $paginas_color,
+ 'isColor' => 1, // cubierta y sobre cubierta colorhq
+ 'isHq' => 1, // cubierta y sobre cubierta colorhq
+ 'tipo_impresion_id' => $tipo_impresion_id,
+ 'uso' => $uso,
+ 'lomoRedondo' => $lomoRedondo
+ );
+ $lineasCubierta = PresupuestoClienteService::obtenerCubierta($data, true);
+ }
+
+ if ($sobrecubierta) {
+
+ $cliente_id = $sobrecubierta['cliente_id'];
+ $datosPedido = $sobrecubierta['datosPedido'];
+ $papel_generico = $sobrecubierta['papel_generico'];
+ $gramaje = $sobrecubierta['gramaje'];
+ $paginas_color = $sobrecubierta['datosPedido']['paginas'] ?? 0;
+ $tipo_impresion_id = $sobrecubierta['tipo_impresion_id'];
+ $faja = intval($sobrecubierta['faja'] ?? 0);
+ $uso = $faja==1? 'faja' : $sobrecubierta['uso'];
+
+
+ $data = array(
+ 'cliente_id' => $cliente_id,
+ 'datosPedido' => (object) $datosPedido,
+ 'papel_generico' => $papel_generico,
+ 'gramaje' => $gramaje,
+ 'paginas_color' => $paginas_color,
+ 'isColor' => 1, // cubierta y sobre cubierta colorhq
+ 'isHq' => 1, // cubierta y sobre cubierta colorhq
+ 'tipo_impresion_id' => $tipo_impresion_id,
+ 'uso' => $uso
+ );
+ $lineasSobrecubierta = PresupuestoClienteService::obtenerSobrecubierta($data, true);
+ }
+
+ return $this->respond(
+ [
+ 'status' => 1,
+ 'data' => (object) array(
+ 'cubierta' => $lineasCubierta,
+ 'sobrecubierta' => $lineasSobrecubierta
+ )
+ ]
+ );
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
+
+ public function obtenerComparadorGuardas()
+ {
+
+ if ($this->request->isAJAX()) {
+
+ $cliente_id = $this->request->getPost('cliente_id');
+ $datosPedido = $this->request->getPost('datosPedido');
+ $papel_generico = $this->request->getPost('papel_generico');
+ $gramaje = $this->request->getPost('gramaje');
+ $paginas_color = $this->request->getPost('paginas_color');
+ $isColor = $this->request->getPost('isColor');
+ $isHq = $this->request->getPost('isHq');
+ $tipo_impresion_id = $this->request->getPost('tipo_impresion_id');
+ $uso = $this->request->getPost('uso');
+
+ // cubierta y sobrecubierta siempre colorhq
+ $isColor = true;
+ $isHq = true;
+
+ // Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico
+ // y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral
+ // o wire-o tapa dura, las guardas se imprimen como hojas sueltas
+ if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) {
+ $datosPedido['isCosido'] = true;
+ } else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
+ $datosPedido['isCosido'] = false;
+ }
+
+ $datosPedido['paginas_impresion'] = $datosPedido['paginas'];
+
+ $data = array(
+ 'cliente_id' => $cliente_id,
+ 'datosPedido' => (object) $datosPedido,
+ 'papel_generico' => $papel_generico,
+ 'gramaje' => $gramaje,
+ 'papelInteriorDiferente' => true,
+ 'paginas_color' => $paginas_color,
+ 'isColor' => $isColor,
+ 'isHq' => $isHq,
+ 'tipo_impresion_id' => $tipo_impresion_id,
+ 'uso' => $uso
+ );
+
+ $lineas = PresupuestoClienteService::obtenerGuardas($data, true);
+ return $this->respond(
+ [
+ 'status' => 1,
+ 'data' => $lineas
+ ]
+ );
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
public function datatable()
{
@@ -506,178 +792,45 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$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) :
+ 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) :
+ if (isset($item->causa_cancelacion) && strlen($item->causa_cancelacion) > 100):
$item->causa_cancelacion = character_limiter($item->causa_cancelacion, 100);
endif;
- if (isset($item->comentarios_cliente) && strlen($item->comentarios_cliente) > 100) :
+ if (isset($item->comentarios_cliente) && strlen($item->comentarios_cliente) > 100):
$item->comentarios_cliente = character_limiter($item->comentarios_cliente, 100);
endif;
- if (isset($item->comentarios_safekat) && strlen($item->comentarios_safekat) > 100) :
+ 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) :
+ if (isset($item->comentarios_tarifa) && strlen($item->comentarios_tarifa) > 100):
$item->comentarios_tarifa = character_limiter($item->comentarios_tarifa, 100);
endif;
- if (isset($item->comentarios_produccion) && strlen($item->comentarios_produccion) > 100) :
+ if (isset($item->comentarios_produccion) && strlen($item->comentarios_produccion) > 100):
$item->comentarios_produccion = character_limiter($item->comentarios_produccion, 100);
endif;
- if (isset($item->tirada_alternativa_json_data) && strlen($item->tirada_alternativa_json_data) > 100) :
+ 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) :
+ 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) :
+ 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) :
+ 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) :
+ 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) :
+ 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 {
-
- $isColor = $reqData['color'] ?? false;
- $isHq = $reqData['hq'] ?? false;
-
- $datosPedido = (object)array(
- 'paginas' => intval($reqData['paginas']) ?? 0,
- 'tirada' => intval($reqData['tirada']) ?? 0,
- 'merma' => intval($reqData['merma']) ?? 0,
- 'ancho' => intval($reqData['ancho']) ?? 100000,
- 'alto' => intval($reqData['alto']) ?? 100000,
- 'a_favor_fibra' => $reqData['a_favor_fibra'] ?? 1,
- 'isCosido' => (new TipoPresupuestoModel())->get_isCosido($tipo_impresion_id), // 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;
-
- $cliente_id = $reqData['cliente_id'] ?? -1;
-
- $resourceData = [];
-
- if ($type == 'interior' || $type == 'guardas') {
-
- $datosTipolog = $reqData['negro'] ?? null;
- if (!is_null($datosTipolog)) {
- $datosTipolog = [];
- $data = (object)array(
- 'negro' => floatval($reqData['negro']) ?? 0,
- 'cyan' => floatval($reqData['cyan']) ?? 0,
- 'magenta' => floatval($reqData['magenta']) ?? 0,
- 'amarillo' => floatval($reqData['amarillo']) ?? 0,
- 'cg' => floatval($reqData['cg']) ?? 0,
- 'gota_negro' => floatval($reqData['gota_negro']) ?? 0,
- 'gota_color' => floatval($reqData['gota_color']) ?? 0,
- );
- array_push($datosTipolog, $data);
- }
-
- if ($type == 'guardas') {
-
- $datosPedido->paginas_impresion = intval($reqData['paginas_impresion']) ?? 0;
- // Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico
- // y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral
- // o wire-o tapa dura, las guardas se imprimen como hojas sueltas
- if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) {
- $datosPedido->isCosido = true;
- } else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
- $datosPedido->isCosido = false;
- }
- }
-
- $a_favor_fibra = $reqData['a_favor_fibra'] ?? false;
-
- $input_data = array(
- 'uso' => $type,
- 'tipo_impresion_id' => $tipo_impresion_id,
- 'datosPedido' => $datosPedido,
- 'papel_generico' => $papel_generico,
- 'gramaje' => $gramaje,
- 'isColor' => $isColor,
- 'isHq' => $isHq,
- 'cliente_id' => $cliente_id,
- 'datosTipolog' => $datosTipolog,
- 'a_favor_fibra' => $a_favor_fibra
- );
-
- $resourceData = PresupuestoService::obtenerComparadorPlana($input_data);
-
- } else if ($type == 'interior_rot') {
-
- $paginas = (object)array(
- 'negro' => intval($reqData['paginas_negro'] ?? 0),
- 'color' => intval($reqData['paginas_color'] ?? 0),
- );
-
- $datosTipolog = $reqData['negro'] ?? null;
- if (!is_null($datosTipolog)) {
- $datosTipolog = [];
- $data = (object)array(
- 'negro' => floatval($reqData['negro']) ?? 0,
- 'cyan' => floatval($reqData['cyan']) ?? 0,
- 'magenta' => floatval($reqData['magenta']) ?? 0,
- 'amarillo' => floatval($reqData['amarillo']) ?? 0,
- 'gota_negro' => floatval($reqData['gota_negro']) ?? 0,
- 'gota_color' => floatval($reqData['gota_color']) ?? 0,
- );
- array_push($datosTipolog, $data);
- }
-
- $input_data = [
- 'datosPedido' => $datosPedido,
- 'papel_generico' => $papel_generico,
- 'gramaje' => $gramaje,
- 'paginas' => $paginas,
- 'cliente_id' => $cliente_id,
- 'datosTipolog' => $datosTipolog
- ];
-
- $resourceData = PresupuestoService::obtenerComparadorRotativa($input_data);
-
- } else if ($type == 'cubierta' || $type == 'sobrecubierta') {
-
- $datosPedido->solapas = $reqData['solapas'];
- $datosPedido->solapas_ancho = $reqData['solapas_ancho'];
- $datosPedido->lomo = $reqData['lomo'];
-
- $input_data = array(
- 'uso' => $type,
- 'tipo_impresion_id' => $tipo_impresion_id,
- 'datosPedido' => $datosPedido,
- 'papel_generico' => $papel_generico,
- 'gramaje' => $gramaje,
- 'isColor' => 1, // Cubierta y sobrecubierta siempre color HQ
- 'isHq' => 1,
- 'cliente_id' => $cliente_id,
- );
-
- $resourceData = PresupuestoService::obtenerComparadorPlana($input_data);
- }
-
- $newTokenHash = csrf_hash();
- $csrfTokenName = csrf_token();
- $data = [
- 'lineas' => $resourceData,
- $csrfTokenName => $newTokenHash
- ];
-
- return $this->respond($data);
}
return $this->respond(Collection::datatable(
@@ -691,6 +844,159 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
}
+ public function getLineaPresupuesto()
+ {
+ if ($this->request->isAJAX()) {
+
+ $reqData = $this->request->getPost();
+
+ $type = $reqData['type'] ?? null;
+ // por defecto, se deja cosido tapa blanda por ahora JJO
+ $tipo_impresion_id = $reqData['tipo_impresion_id'] ?? 4;
+
+ $isColor = $reqData['color'] ?? false;
+ $isHq = $reqData['hq'] ?? false;
+
+ $datosPedido = (object) array(
+ 'paginas' => intval($reqData['paginas']) ?? 0,
+ 'tirada' => intval($reqData['tirada']) ?? 0,
+ 'merma' => intval($reqData['merma']) ?? 0,
+ 'ancho' => intval($reqData['ancho']) ?? 100000,
+ 'alto' => intval($reqData['alto']) ?? 100000,
+ 'a_favor_fibra' => $reqData['a_favor_fibra'] ?? 1,
+ 'isCosido' => intval((new TipoPresupuestoModel())->get_isCosido($tipo_impresion_id)), // JJO esto es custom por cada tipo de presupuesto
+ );
+
+ $papel_generico = [
+ 'id' => $reqData['papel_generico_id'] ?? 0,
+ 'nombre' => $reqData['papel_generico'] ?? "",
+ ];
+
+ if ($papel_generico['id'] != 0 && $papel_generico['nombre'] == "") {
+ $modelPapelGenerico = new PapelGenericoModel();
+ $papel_generico['nombre'] = $modelPapelGenerico->getNombre($papel_generico['id'])['nombre'];
+ }
+
+ $gramaje = $reqData['gramaje'] ?? 0;
+
+ $cliente_id = $reqData['cliente_id'] ?? -1;
+
+ $resourceData = [];
+
+ if ($type == 'interior' || $type == 'guardas') {
+
+ $datosTipolog = $reqData['negro'] ?? null;
+ if (!is_null($datosTipolog)) {
+ $datosTipolog = [];
+ $data = (object) array(
+ 'negro' => floatval($reqData['negro']) ?? 0,
+ 'cyan' => floatval($reqData['cyan']) ?? 0,
+ 'magenta' => floatval($reqData['magenta']) ?? 0,
+ 'amarillo' => floatval($reqData['amarillo']) ?? 0,
+ 'cg' => floatval($reqData['cg']) ?? 0,
+ 'gota_negro' => floatval($reqData['gota_negro']) ?? 0,
+ 'gota_color' => floatval($reqData['gota_color']) ?? 0,
+ );
+ array_push($datosTipolog, $data);
+ }
+
+ if ($type == 'guardas') {
+
+ $datosPedido->paginas_impresion = intval($reqData['paginas_impresion']) ?? 0;
+ // Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico
+ // y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral
+ // o wire-o tapa dura, las guardas se imprimen como hojas sueltas
+ if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) {
+ $datosPedido->isCosido = true;
+ } else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
+ $datosPedido->isCosido = false;
+ }
+ }
+
+ $a_favor_fibra = $reqData['a_favor_fibra'] ?? false;
+
+ $input_data = array(
+ 'uso' => $type,
+ 'tipo_impresion_id' => $tipo_impresion_id,
+ 'datosPedido' => $datosPedido,
+ 'papel_generico' => $papel_generico,
+ 'gramaje' => $gramaje,
+ 'isColor' => $isColor,
+ 'isHq' => $isHq,
+ 'cliente_id' => $cliente_id,
+ 'datosTipolog' => $datosTipolog,
+ 'a_favor_fibra' => $a_favor_fibra
+ );
+
+ $resourceData = PresupuestoService::obtenerComparadorPlana($input_data);
+
+ } else if ($type == 'interior_rot') {
+
+ $paginas = (object) array(
+ 'negro' => intval($reqData['paginas_negro'] ?? 0),
+ 'color' => intval($reqData['paginas_color'] ?? 0),
+ );
+
+ $datosTipolog = $reqData['negro'] ?? null;
+ if (!is_null($datosTipolog)) {
+ $datosTipolog = [];
+ $data = (object) array(
+ 'negro' => floatval($reqData['negro']) ?? 0,
+ 'cyan' => floatval($reqData['cyan']) ?? 0,
+ 'magenta' => floatval($reqData['magenta']) ?? 0,
+ 'amarillo' => floatval($reqData['amarillo']) ?? 0,
+ 'gota_negro' => floatval($reqData['gota_negro']) ?? 0,
+ 'gota_color' => floatval($reqData['gota_color']) ?? 0,
+ );
+ array_push($datosTipolog, $data);
+ }
+
+ $input_data = [
+ 'datosPedido' => $datosPedido,
+ 'papel_generico' => $papel_generico,
+ 'gramaje' => $gramaje,
+ 'paginas' => $paginas,
+ 'cliente_id' => $cliente_id,
+ 'datosTipolog' => $datosTipolog
+ ];
+
+ $resourceData = PresupuestoService::obtenerComparadorRotativa($input_data);
+
+ } else if ($type == 'cubierta' || $type == 'sobrecubierta' || $type == 'faja') {
+
+ $datosPedido->solapas = $reqData['solapas'];
+ $datosPedido->solapas_ancho = $reqData['solapas_ancho'];
+ $datosPedido->lomo = $reqData['lomo'];
+
+ $input_data = array(
+ 'uso' => $type,
+ 'tipo_impresion_id' => $tipo_impresion_id,
+ 'datosPedido' => $datosPedido,
+ 'papel_generico' => $papel_generico,
+ 'gramaje' => $gramaje,
+ 'isColor' => 1, // Cubierta y sobrecubierta siempre color HQ
+ 'isHq' => 1,
+ 'cliente_id' => $cliente_id,
+ );
+
+ $resourceData = PresupuestoService::obtenerComparadorPlana($input_data);
+ }
+
+ $newTokenHash = csrf_hash();
+ $csrfTokenName = csrf_token();
+ $data = [
+ 'lineas' => $resourceData,
+ $csrfTokenName => $newTokenHash
+ ];
+
+ return $this->respond($data);
+
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
+
public function datatable_2()
{
if ($this->request->isAJAX()) {
@@ -719,25 +1025,22 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
];
return $this->respond($data);
- }
-
- else if ($tipo == 'duplicar'){
+ } else if ($tipo == 'duplicar') {
$presupuesto_id = $reqData['presupuesto_id'] ?? -1;
$result = $this->duplicarPresupuesto($presupuesto_id);
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
- if($result['success']){
+ if ($result['success']) {
$data = [
'id' => $result['id'],
$csrfTokenName => $newTokenHash
- ];
+ ];
return $this->respond($data);
- }
- else{
+ } else {
$data = [
'error' => $result['message'],
$csrfTokenName => $newTokenHash
- ];
+ ];
return $this->respond($data);
}
}
@@ -754,6 +1057,260 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
}
}
+ public function getPapelGenerico()
+ {
+
+ if ($this->request->isAJAX()) {
+
+ $POD_value = $this->getPOD();
+ $tirada = $this->request->getGet("tirada");
+ $isPOD = intval($tirada) <= intval($POD_value);
+
+ $tipo_impresion_id = $this->request->getGet("tipo_impresion");
+ $tapa_dura = model('App\Models\Configuracion\TipoPresupuestoModel')->get_isTapaDura(intval($tipo_impresion_id));
+
+ $ancho = $this->request->getGet('ancho') ?? 0;
+ $alto = $this->request->getGet('alto') ?? 0;
+ $solapas = $this->request->getGet('solapas') ?? 0;
+ $lomo = $this->request->getGet('lomo') ?? 0;
+
+ $anchoLibro = 2* $ancho + 2 * $solapas + $lomo;
+
+ $tipo = $this->request->getGet("tipo");
+
+ $uso = $this->request->getGet("uso") ?? 'interior';
+ $cubierta = false;
+ if ($uso == 'cubierta') {
+ $cubierta = true;
+ }
+ $sobrecubierta = false;
+ if ($uso == 'sobrecubierta') {
+ $sobrecubierta = true;
+ }
+ $guardas = false;
+ if ($uso == 'guardas') {
+ $guardas = true;
+ }
+ $rotativa = false;
+ if ($uso == 'rotativa') {
+ $rotativa = true;
+ }
+
+ $model = model('App\Models\Configuracion\PapelGenericoModel');
+ $query = $model->getPapelForComparador(
+ $tipo,
+ $cubierta,
+ $sobrecubierta,
+ $rotativa,
+ $guardas,
+ $tapa_dura,
+ $isPOD,
+ $anchoLibro,
+ $alto,
+ $tirada);
+ if ($this->request->getGet("q")) {
+ $query->groupStart()
+ ->orLike("lg_papel_generico.nombre", $this->request->getGet("q"))
+ ->groupEnd();
+ }
+
+ return $this->response->setJSON($query->orderBy("t1.nombre", "asc")->get()->getResultObject());
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
+ public function getGramaje()
+ {
+ if ($this->request->isAJAX()) {
+
+ $papel_generico_id = $this->request->getGet("papel_generico");
+
+ $POD_value = $this->getPOD();
+ $tirada = $this->request->getGet("tirada");
+ $isPOD = intval($tirada) <= intval($POD_value);
+
+ $ancho = $this->request->getGet('ancho') ?? 0;
+ $alto = $this->request->getGet('alto') ?? 0;
+ $solapas = $this->request->getGet('solapas') ?? 0;
+ $lomo = $this->request->getGet('lomo') ?? 0;
+
+ $anchoLibro = 2* $ancho + 2 * $solapas + $lomo;
+
+ $tipo_impresion_id = $this->request->getGet("tipo_impresion");
+ $tapa_dura = model('App\Models\Configuracion\TipoPresupuestoModel')->get_isTapaDura(intval($tipo_impresion_id));
+
+ $tipo = $this->request->getGet("tipo");
+
+ $uso = $this->request->getGet("uso") ?? 'interior';
+ $cubierta = false;
+ if ($uso == 'cubierta') {
+ $cubierta = true;
+ }
+ $sobrecubierta = false;
+ if ($uso == 'sobrecubierta') {
+ $sobrecubierta = true;
+ }
+ $guardas = false;
+ if ($uso == 'guardas') {
+ $guardas = true;
+ }
+ $rotativa = false;
+ if ($uso == 'rotativa') {
+ $rotativa = true;
+ }
+
+ $model = model('App\Models\Configuracion\PapelGenericoModel');
+ $query = $model->getGramajeForComparador($tipo,
+ $papel_generico_id,
+ $cubierta,
+ $sobrecubierta,
+ $rotativa,
+ $guardas,
+ $tapa_dura,
+ $isPOD,
+ $anchoLibro,
+ $alto,
+ $tirada);
+ if ($this->request->getGet("q")) {
+ $query->groupStart()
+ ->orLike("lg_papel_impresion.gramaje", $this->request->getGet("q"))
+ ->groupEnd();
+ }
+
+ return $this->response->setJSON($query->orderBy("t2.gramaje", "asc")->get()->getResultObject());
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
+
+ public function getPapelImpresion()
+ {
+
+ if ($this->request->isAJAX()) {
+
+ $papel_generico_id = $this->request->getGet('papel_generico');
+ $gramaje = $this->request->getGet('gramaje');
+
+ $tipo_impresion_id = $this->request->getGet("tipo_impresion");
+ $tapa_dura = model('App\Models\Configuracion\TipoPresupuestoModel')->get_isTapaDura(intval($tipo_impresion_id));
+
+ $tipo = $this->request->getGet("tipo");
+
+ $uso = $this->request->getGet("uso") ?? 'interior';
+
+ $model = model('App\Models\Configuracion\PapelImpresionModel');
+ $query = $model->getPapelesImpresionForMenu(
+ $papel_generico_id,
+ $gramaje,
+ $tipo,
+ $uso,
+ $tapa_dura,
+ false
+ );
+ if ($this->request->getGet("q")) {
+ $query->groupStart()
+ ->orLike("lg_papel_impresion.nombre", $this->request->getGet("q"))
+ ->groupEnd();
+ }
+
+ return $this->response->setJSON($query->orderBy("t1.nombre", "asc")->get()->getResultObject());
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
+
+ public function getMaquinas()
+ {
+
+ if ($this->request->isAJAX()) {
+
+ $ancho = $this->request->getGet('ancho');
+ $alto = $this->request->getGet('alto');
+ $tirada = $this->request->getGet('tirada');
+ $merma = $this->request->getGet('merma');
+ $tipo_impresion_id = $this->request->getGet('tipo_impresion');
+ $isCosido = (new TipoPresupuestoModel())->get_isCosido($tipo_impresion_id);
+ $papel_impresion_id = $this->request->getGet('papel_impresion');
+ $tarifa_tipo = $this->request->getGet("tarifa_tipo"); // negro, color, negrohq, colorhq
+ $uso_tarifa = $this->request->getGet("uso_tarifa") ?? 'interior'; // interior, cubierta, sobrecubierta
+ $is_rotativa = $this->request->getGet('is_rotativa') ?? 0;
+ $lomo_redondo = $this->request->getGet('lomo_redondo');
+ $lomo = $this->request->getGet('lomo');
+ $solapas = $this->request->getGet('solapas');
+ $solapas_ancho = $this->request->getGet('solapas_ancho');
+
+ $model = model('App\Models\Configuracion\MaquinaModel');
+ $query = $model->getMaquinaImpresionForPresupuesto(
+ $is_rotativa,
+ $tarifa_tipo,
+ $uso_tarifa,
+ intval($tirada) + intval($merma),
+ $papel_impresion_id
+ );
+ if ($this->request->getGet("q")) {
+ $query->groupStart()
+ ->orLike("lg_maquinas.nombre", $this->request->getGet("q"))
+ ->groupEnd();
+ }
+ $data = $query->orderBy("t1.nombre", "asc")->get()->getResultObject();
+
+ $query = $model->db->getLastQuery();
+ $datosPedido = ((object) array(
+ 'ancho' => $ancho,
+ 'alto' => $alto,
+ 'isCosido' => $isCosido,
+ 'lomo' => $lomo,
+ 'solapas' => $solapas,
+ 'solapas_ancho' => $solapas_ancho,
+ ));
+
+ for ($i = 0; $i < count($data); $i++) {
+
+ if ($is_rotativa) {
+
+ $has_error = true;
+ for ($f = 0; $f < 2; $f++) {
+
+ $parametrosRotativa = (object) array(
+ 'a_favor_fibra' => $f,
+ );
+ $values = [];
+ [$values['ancho'], $values['alto']] = PresupuestoService::calculoDimForma($datosPedido, $parametrosRotativa);
+
+ $factor_anchura = round($data[$i]->ancho_impresion / $values['ancho'], 2);
+
+ if (floor($factor_anchura) != 0) {
+ $has_error = false;
+ }
+ }
+ if ($has_error) {
+ unset($data[$i]);
+ }
+ } else {
+
+ if ($uso_tarifa != 'interior') {
+ $datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($uso_tarifa, $tipo_impresion_id, $datosPedido, $data[$i]->maquina_id, $lomo_redondo);
+ $datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($uso_tarifa, $tipo_impresion_id, $datosPedido);
+ }
+
+ $ancho_calculo = ($uso_tarifa == 'cubierta' || $uso_tarifa == 'sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho;
+ $alto_calculo = ($uso_tarifa == 'cubierta' || $uso_tarifa == 'sobrecubierta') ? $datosPedido->altoExteriores : $datosPedido->alto;
+ $formas = PresupuestoService::getNumFormasPlana($uso_tarifa, $data[$i], $ancho_calculo, $alto_calculo, $datosPedido->isCosido);
+ if ($formas['num_formas']['posicion_formas'] == 'n/a') {
+ unset($data[$i]);
+ }
+ }
+ }
+
+ return $this->response->setJSON($data);
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
private function getStringsFromTipoImpresion($tipo_impresion_id)
{
@@ -761,7 +1318,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
switch ($tipo_impresion_id) {
- // Fresado tapa dura
+ // Fresado tapa dura
case 1:
$viewData['pageTitle'] = lang('Presupuestos.moduleTitleFresadoTD');
$viewData['isCosido'] = 0;
@@ -769,7 +1326,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$breadcrumbTitle = lang("App.menu_libros_fresasdo_tapa_dura");
break;
- // Fresado tapa blanda
+ // Fresado tapa blanda
case 2:
$viewData['pageTitle'] = lang('Presupuestos.moduleTitleFresadoTB');
$viewData['isCosido'] = 0;
@@ -777,7 +1334,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$breadcrumbTitle = lang("App.menu_libros_fresasdo_tapa_blanda");
break;
- // Cosido tapa dura
+ // Cosido tapa dura
case 3:
$viewData['pageTitle'] = lang('Presupuestos.moduleTitleCosidoTD');
$viewData['isCosido'] = 1;
@@ -785,7 +1342,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$breadcrumbTitle = lang("App.menu_libros_cosido_tapa_dura");
break;
- // Cosido tapa blanda
+ // Cosido tapa blanda
case 4:
$viewData['pageTitle'] = lang('Presupuestos.moduleTitleCosidoTB');
$viewData['isCosido'] = 1;
@@ -793,7 +1350,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$breadcrumbTitle = lang("App.menu_libros_cosido_tapa_blanda");
break;
- // Espiral tapa dura
+ // Espiral tapa dura
case 5:
$viewData['pageTitle'] = lang('Presupuestos.moduleTitleEspiralTD');
$viewData['isCosido'] = 0;
@@ -801,7 +1358,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$breadcrumbTitle = lang("App.menu_libros_espiral_tapa_dura");
break;
- // Espiral tapa blanda
+ // Espiral tapa blanda
case 6:
$viewData['pageTitle'] = lang('Presupuestos.moduleTitleEspiralTB');
$viewData['isCosido'] = 0;
@@ -809,7 +1366,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$breadcrumbTitle = lang("App.menu_libros_espiral_tapa_blanda");
break;
- // Wire-o tapa dura
+ // Wire-o tapa dura
case 7:
$viewData['pageTitle'] = lang('Presupuestos.moduleTitleWireoTD');
$viewData['isCosido'] = 0;
@@ -817,7 +1374,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$breadcrumbTitle = lang("App.menu_libros_wireo_tapa_dura");
break;
- // Wire-o tapa blanda
+ // Wire-o tapa blanda
case 8:
$viewData['pageTitle'] = lang('Presupuestos.moduleTitleWireoTB');
$viewData['isCosido'] = 0;
@@ -825,7 +1382,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$breadcrumbTitle = lang("App.menu_libros_wireo_tapa_blanda");
break;
- // Grapado
+ // Grapado
case 21:
$viewData['pageTitle'] = lang('Presupuestos.moduleTitleGrapado');
$viewData['isCosido'] = 0;
@@ -845,7 +1402,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
return $viewData;
}
-
+
/**
* Duplica un presupuesto dado por su ID.
@@ -860,67 +1417,68 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
* Si ocurre una excepción, la clave 'success' será false y una clave 'message' contendrá el mensaje de la excepción.
* @throws \Exception Si ocurre un error durante la operación.
*/
- private function duplicarPresupuesto($id){
+ private function duplicarPresupuesto($id)
+ {
- try{
-
- $presupuesto = $this->model->find($id);
- $presupuesto->titulo = $presupuesto->titulo .' - ' . lang('Presupuestos.duplicado');
- $presupuesto->is_duplicado = 1;
- $presupuesto->estado_id = 1;
- $new_id = $this->model->insert($presupuesto);
-
- $presupuestoAcabadosModel = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
- foreach ($presupuestoAcabadosModel->where('presupuesto_id', $presupuesto->id)->findAll() as $acabado) {
- $acabado->presupuesto_id = $new_id;
- $presupuestoAcabadosModel->insert($acabado);
- }
-
- $presupuestoEncuadernacionesModel = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel');
- foreach ($presupuestoEncuadernacionesModel->where('presupuesto_id', $presupuesto->id)->findAll() as $encuadernacion) {
- $encuadernacion->presupuesto_id = $new_id;
- $presupuestoEncuadernacionesModel->insert($encuadernacion);
- }
-
- $presupuestoManipuladosModel = model('App\Models\Presupuestos\PresupuestoManipuladosModel');
- foreach ($presupuestoManipuladosModel->where('presupuesto_id', $presupuesto->id)->findAll() as $manipulado) {
- $manipulado->presupuesto_id = $new_id;
- $presupuestoManipuladosModel->insert($manipulado);
- }
-
- $presupuestoPreimpresionesModel = model('App\Models\Presupuestos\PresupuestoPreimpresionesModel');
- foreach ($presupuestoPreimpresionesModel->where('presupuesto_id', $presupuesto->id)->findAll() as $preimpresion) {
- $preimpresion->presupuesto_id = $new_id;
- $presupuestoPreimpresionesModel->insert($preimpresion);
- }
+ try {
- $presupuestoServiciosExtraModel = model('App\Models\Presupuestos\PresupuestoServiciosExtraModel');
- foreach ($presupuestoServiciosExtraModel->where('presupuesto_id', $presupuesto->id)->findAll() as $servicioExtra) {
- $servicioExtra->presupuesto_id = $new_id;
- $presupuestoServiciosExtraModel->insert($preimpresion);
- }
-
- $presupuestoDireccionesModel = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
- foreach ($presupuestoDireccionesModel->where('presupuesto_id', $presupuesto->id)->findAll() as $direccion) {
- $direccion->presupuesto_id = $new_id;
- $presupuestoDireccionesModel->insert($direccion);
- }
-
- $presupuestoLineaModel = model('App\Models\Presupuestos\PresupuestoLineaModel');
- $presupuestoLineaModel->duplicateLineasPresupuesto($presupuesto->id, $new_id);
-
- return [
- 'success' => true,
- 'id' => $new_id
- ];
-
- }catch(\Exception $e){
- return [
- 'success' => false,
- 'message' => $e->getMessage()
- ];
- }
- }
+ $presupuesto = $this->model->find($id);
+ $presupuesto->titulo = $presupuesto->titulo . ' - ' . lang('Presupuestos.duplicado');
+ $presupuesto->is_duplicado = 1;
+ $presupuesto->estado_id = 1;
+ $new_id = $this->model->insert($presupuesto);
+
+ $presupuestoAcabadosModel = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
+ foreach ($presupuestoAcabadosModel->where('presupuesto_id', $presupuesto->id)->findAll() as $acabado) {
+ $acabado->presupuesto_id = $new_id;
+ $presupuestoAcabadosModel->insert($acabado);
+ }
+
+ $presupuestoEncuadernacionesModel = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel');
+ foreach ($presupuestoEncuadernacionesModel->where('presupuesto_id', $presupuesto->id)->findAll() as $encuadernacion) {
+ $encuadernacion->presupuesto_id = $new_id;
+ $presupuestoEncuadernacionesModel->insert($encuadernacion);
+ }
+
+ $presupuestoManipuladosModel = model('App\Models\Presupuestos\PresupuestoManipuladosModel');
+ foreach ($presupuestoManipuladosModel->where('presupuesto_id', $presupuesto->id)->findAll() as $manipulado) {
+ $manipulado->presupuesto_id = $new_id;
+ $presupuestoManipuladosModel->insert($manipulado);
+ }
+
+ $presupuestoPreimpresionesModel = model('App\Models\Presupuestos\PresupuestoPreimpresionesModel');
+ foreach ($presupuestoPreimpresionesModel->where('presupuesto_id', $presupuesto->id)->findAll() as $preimpresion) {
+ $preimpresion->presupuesto_id = $new_id;
+ $presupuestoPreimpresionesModel->insert($preimpresion);
+ }
+
+ $presupuestoServiciosExtraModel = model('App\Models\Presupuestos\PresupuestoServiciosExtraModel');
+ foreach ($presupuestoServiciosExtraModel->where('presupuesto_id', $presupuesto->id)->findAll() as $servicioExtra) {
+ $servicioExtra->presupuesto_id = $new_id;
+ $presupuestoServiciosExtraModel->insert($preimpresion);
+ }
+
+ $presupuestoDireccionesModel = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
+ foreach ($presupuestoDireccionesModel->where('presupuesto_id', $presupuesto->id)->findAll() as $direccion) {
+ $direccion->presupuesto_id = $new_id;
+ $presupuestoDireccionesModel->insert($direccion);
+ }
+
+ $presupuestoLineaModel = model('App\Models\Presupuestos\PresupuestoLineaModel');
+ $presupuestoLineaModel->duplicateLineasPresupuesto($presupuesto->id, $new_id);
+
+ return [
+ 'success' => true,
+ 'id' => $new_id
+ ];
+
+ } catch (\Exception $e) {
+ return [
+ 'success' => false,
+ 'message' => $e->getMessage()
+ ];
+ }
+ }
public function allItemsSelect()
{
@@ -1042,232 +1600,51 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
protected function getClienteListItems($selId = null)
{
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Clientes.cliente'))])];
- if (!empty($selId)) :
+ if (!empty($selId)):
$clienteModel = model('App\Models\Clientes\ClienteModel');
$selOption = $clienteModel->where('id', $selId)->findColumn('nombre');
- if (!empty($selOption)) :
+ if (!empty($selOption)):
$data[$selId] = $selOption[0];
endif;
endif;
return $data;
}
- protected function getPaisListItems()
- {
- $paisModel = model('App\Models\Configuracion\PaisModel');
- $onlyActiveOnes = true;
- $data = $paisModel->getAllForMenu('id, nombre', 'nombre', $onlyActiveOnes);
-
- return $data;
- }
-
- protected function getCcaaListItems($selId = null)
- {
- $ccaaModel = model('App\Models\Configuracion\ComunidadAutonomaModel');
- $onlyActiveOnes = true;
- $data = $ccaaModel->getAllForMenu('id, nombre', 'nombre', $onlyActiveOnes);
-
- return $data;
- }
-
-
- protected function getAcabadosCubierta()
- {
- $model = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
- $data = $model->getServiciosAcabadoCubierta();
- array_unshift($data, (object)['id' => '', 'label' => lang('Basic.global.None')]);
- return $data;
- }
-
- protected function getAcabadosSobrecubierta()
- {
- $model = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
- $data = $model->getServiciosAcabadoSobrecubierta();
- array_unshift($data, (object)['id' => '', 'label' => lang('Basic.global.None')]);
- return $data;
- }
-
-
- protected function getPapelGenericoRotativaNegro()
- {
- $model = model('App\Models\Configuracion\PapelGenericoModel');
- $data = $model->getPapelForComparador('negro', false, false, true);
- array_unshift($data, (object)array(
- "id" => 0,
- "nombre" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papel'))])
- ));
- return $data;
- }
-
- protected function getPapelGenericoRotativaColor()
- {
- $model = model('App\Models\Configuracion\PapelGenericoModel');
- $data = $model->getPapelForComparador('color', false, false, true);
- array_unshift($data, (object)array(
- "id" => 0,
- "nombre" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papel'))])
- ));
- return $data;
- }
-
- protected function getPapelGenericoNegro()
- {
- $model = model('App\Models\Configuracion\PapelGenericoModel');
- $data = $model->getPapelForComparador('negro', false, false);
- array_unshift($data, (object)array(
- "id" => 0,
- "nombre" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papel'))])
- ));
- return $data;
- }
-
- protected function getPapelGenericoNegroHQ()
- {
- $model = model('App\Models\Configuracion\PapelGenericoModel');
- $data = $model->getPapelForComparador('negrohq', false, false);
- array_unshift($data, (object)array(
- "id" => 0,
- "nombre" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papel'))])
- ));
- return $data;
- }
-
- protected function getPapelGenericoColor()
- {
- $model = model('App\Models\Configuracion\PapelGenericoModel');
- $data = $model->getPapelForComparador('color', false, false);
- array_unshift($data, (object)array(
- "id" => 0,
- "nombre" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papel'))])
- ));
- return $data;
- }
-
- protected function getPapelGenericoColorHQ()
- {
- $model = model('App\Models\Configuracion\PapelGenericoModel');
- $data = $model->getPapelForComparador('colorhq', false, false);
- array_unshift($data, (object)array(
- "id" => 0,
- "nombre" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papel'))])
- ));
- return $data;
- }
-
- protected function getPapelGenericoCubierta()
- {
- $model = model('App\Models\Configuracion\PapelGenericoModel');
- $data = $model->getPapelForComparador('colorhq', true, false);
- array_unshift($data, (object)array(
- "id" => 0,
- "nombre" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papel'))])
- ));
- return $data;
- }
-
- protected function getPapelGenericoGuardas()
- {
- $model = model('App\Models\Configuracion\PapelGenericoModel');
- $data = $model->getPapelForComparador('colorhq', false, false, false, true);
- array_unshift($data, (object)array(
- "id" => 0,
- "nombre" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papel'))])
- ));
- return $data;
- }
-
- protected function getPapelGenericoSobreCubierta()
- {
- $model = model('App\Models\Configuracion\PapelGenericoModel');
- $data = $model->getPapelForComparador('colorhq', false, true);
- array_unshift($data, (object)array(
- "id" => 0,
- "nombre" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papel'))])
- ));
- return $data;
- }
-
- protected function getServiciosPreimpresion()
- {
- $model = model('App\Models\Tarifas\TarifapreimpresionModel');
- $data = $model->getServiciosPreimpresionSelector();
- array_unshift($data, (object)array(
- "value" => 0,
- "label" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.servicioPreimpresion'))])
- ));
- return $data;
- }
-
- protected function getServiciosExtra()
- {
- $model = model('App\Models\Tarifas\TarifaextraModel');
- $data = $model->getServiciosExtraSelector();
- array_unshift($data, (object)array(
- "value" => 0,
- "label" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.servicioExtra'))])
- ));
- return $data;
- }
-
- protected function getServiciosEncuadernacion()
- {
- $model = model('App\Models\Tarifas\TarifaEncuadernacionModel');
- $data = $model->getServiciosEncuadernacionSelector();
- return $data;
- }
-
- protected function getPapelFormatoListItems($selId = null)
- {
- $papelFormatoModel = model('App\Models\Configuracion\PapelFormatoModel');
- $data = $papelFormatoModel->getElementsForMenu();
- array_shift($data);
- array_unshift($data, (object)['id' => '', 'tamanio' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.papelFormatoId'))])]);
- return $data;
- }
-
- protected function getServiciosAcabado()
- {
- $model = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
- $data = $model->getServiciosAcabadoSelector();
- return $data;
- }
-
- protected function getServiciosManipulado()
- {
- $model = model('App\Models\Tarifas\TarifaManipuladoModel');
- $data = $model->getServiciosManipuladoSelector();
- array_unshift($data, (object)array(
- "value" => 0,
- "label" => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Presupuestos.servicioManipulado'))])
- ));
- return $data;
- }
-
protected function getPOD()
{
return model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
}
- protected function getLineasPresupuesto($presupuestoEntity){
+ protected function loadLineasPresupuesto($presupuestoEntity)
+ {
$lineas = (new PresupuestoLineaModel())->getLineasPresupuesto($presupuestoEntity->id);
-
+
+ $modelPapel = new PapelGenericoModel();
+ foreach ($lineas as $linea) {
+ $linea->papel_generico = (new PapelGenericoModel())->find($linea->papel_id)->nombre;
+ if($linea->tipo == 'lp_faja'){
+ $linea->alto_faja = $presupuestoEntity->alto_faja_color;
+ }
+ }
+
$input_data = [];
$input_data['presupuesto'] = $presupuestoEntity;
-
- return PresupuestoService::checkLineasPresupuesto($input_data, $lineas);
+
+ return [false, $lineas];
}
- protected function getLineasServicios($presupuestoEntity){
-
- $serviciosPresupuesto = (object)array();
+ protected function getLineasServicios($presupuestoEntity)
+ {
+
+ $serviciosPresupuesto = (object) array();
$serviciosPresupuesto->serviciosAcabado = (new PresupuestoAcabadosModel())->getResource($presupuestoEntity->id)->get()->getResultObject();
$serviciosPresupuesto->serviciosPreimpresion = (new PresupuestoPreimpresionesModel())->getResource($presupuestoEntity->id)->get()->getResultObject();
$serviciosPresupuesto->serviciosEncuadernacion = (new PresupuestoEncuadernacionesModel())->getResource($presupuestoEntity->id)->get()->getResultObject();
$serviciosPresupuesto->serviciosManipulado = (new PresupuestoManipuladosModel())->getResource($presupuestoEntity->id)->get()->getResultObject();
$serviciosPresupuesto->serviciosExtra = (new PresupuestoServiciosExtraModel())->getResource($presupuestoEntity->id)->get()->getResultObject();
-
+
$input_data = [];
$input_data['presupuesto_id'] = $presupuestoEntity->id;
$input_data['tipo_impresion_id'] = $presupuestoEntity->tipo_impresion_id;
@@ -1275,19 +1652,17 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$input_data['POD'] = $this->getPOD();
$input_data['paginas'] = $presupuestoEntity->paginas;
$input_data['is_duplicado'] = $presupuestoEntity->is_duplicado;
-
- if($presupuestoEntity->papel_formato_personalizado){
- $input_data['ancho'] = $presupuestoEntity->papel_formato_ancho ;
- $input_data['alto'] = $presupuestoEntity->papel_formato_alto ;
- }
- else{
+
+ if ($presupuestoEntity->papel_formato_personalizado) {
+ $input_data['ancho'] = $presupuestoEntity->papel_formato_ancho;
+ $input_data['alto'] = $presupuestoEntity->papel_formato_alto;
+ } else {
$model = model("App\Models\Configuracion\PapelFormatoModel");
$papel = $model->find($presupuestoEntity->papel_formato_id);
- if($papel){
+ if ($papel) {
$input_data['ancho'] = $papel->ancho;
$input_data['alto'] = $papel->alto;
- }
- else{
+ } else {
$input_data['ancho'] = 0;
$input_data['alto'] = 0;
}
@@ -1296,11 +1671,25 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
return PresupuestoService::checkLineasServicios($input_data, $serviciosPresupuesto);
}
- protected function getLineasDirecciones($presupuestoEntity){
+ protected function getLineasDirecciones($presupuestoEntity)
+ {
$model = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
$direccionesEnvio = $model->where('presupuesto_id', $presupuestoEntity->id)->findAll();
-
+
return PresupuestoService::checkLineasEnvios($direccionesEnvio);
}
+
+ protected function obtenerDireccionesEnvio($id, $cliente_id)
+ {
+ $model = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
+ $model_direcciones = model('App\Models\Clientes\ClienteDireccionesModel');
+ $direcciones = $model
+ ->join('lg_proveedores', 'presupuesto_direcciones.proveedor_id = lg_proveedores.id')
+ ->join('lg_paises', 'presupuesto_direcciones.pais_id = lg_paises.id')
+ ->select('presupuesto_direcciones.*, lg_proveedores.nombre AS proveedor, lg_paises.nombre AS pais')
+ ->where('presupuesto_id', $id)->findAll();
+
+ return $direcciones;
+ }
}
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
index 4a92cd16..d729e12a 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
@@ -1586,7 +1586,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if (!is_null($new_name)) {
$path = WRITEPATH . 'uploads/presupuestos/' . $new_name;
move_uploaded_file($tmp_name, $path);
+<<<<<<< HEAD
+=======
+
+>>>>>>> main
}
}
$ftp->uploadFilePresupuesto($presupuesto_id);
@@ -2384,7 +2388,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_exceso_solapas_faja')->value
];
+<<<<<<< HEAD
// se comprueba si $datos guardas es un array
+=======
+ // se comprueba si $datos guardas es un array
+>>>>>>> main
if (is_array($datos_guardas)) {
if (count($datos_guardas) > 0) {
array_push($servicios, $servicio_plegado_guardas); // Plegado de guardas
@@ -2407,7 +2415,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
array_push($servicios, $servicio_solapas_cubierta);
if (!is_null($sobreCubierta) && $sobreCubierta) // Si hay sobrecubierta, siempre con solapas
array_push($servicios, $servicio_solapas_sobrecubierta);
+<<<<<<< HEAD
/* TO-DO
+=======
+ /* TO-DO
+>>>>>>> main
if (!is_null($faja) && $faja) // Si hay faja, siempre con solapas
array_push($servicios, $servicio_solapas_faja);
*/
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestodirecciones.php b/ci4/app/Controllers/Presupuestos/Presupuestodirecciones.php
index d99d9fd3..ddbe042a 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestodirecciones.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestodirecciones.php
@@ -44,7 +44,7 @@ class Presupuestodirecciones extends \App\Controllers\BaseResourceController
$att = $reqData['att'] ?? "";
$email = $reqData['email'] ?? "";
$direccion = $reqData['direccion'] ?? "";
- $pais_id = $reqData['paisId'] ?? -1;
+ $pais_id = $reqData['pais_id'] ?? -1;
$provincia = $reqData['provincia'] ?? "";
$municipio = $reqData['municipio'] ?? "";
$cp = $reqData['cp'] ?? "";
@@ -145,6 +145,7 @@ class Presupuestodirecciones extends \App\Controllers\BaseResourceController
$reqData = $this->request->getJSON();
if($reqData->tipo=='get_tarifa'){
+
$peso = $reqData->peso ?? 0;
$paisId = $reqData->paisId ?? 0;
$cp = $reqData->cp ?? 0;
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoencuadernaciones.php b/ci4/app/Controllers/Presupuestos/Presupuestoencuadernaciones.php
index 69198d50..c66085b1 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestoencuadernaciones.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestoencuadernaciones.php
@@ -1,4 +1,5 @@
-request->getJSON();
$tarifas = array_column($postData->datos, 'tarifa_id');
- if(count($tarifas)>0){
+ if (count($tarifas) > 0) {
$this->model->deleteServiciosNotInArray($requestedId, $tarifas);
- }
- else{
+ } else {
$this->model->deleteAllServicios($requestedId);
}
- if(count($tarifas)>0){
+ if (count($tarifas) > 0) {
$this->model->updateTarifas($requestedId, $postData->datos);
}
@@ -57,7 +57,7 @@ class Presupuestoencuadernaciones extends \App\Controllers\BaseResourceControlle
$data = [
$csrfTokenName => $newTokenHash
];
-
+
return $this->respond($data);
}
@@ -65,136 +65,177 @@ class Presupuestoencuadernaciones extends \App\Controllers\BaseResourceControlle
{
$tarifaModel = model('App\Models\Tarifas\TarifaEncuadernacionModel');
- if ($requestedId == null) :
+ if ($requestedId == null):
return;
endif;
- $postData = $this->request->getJSON();
- $tarifas = array_column($postData->datos, 'tarifa_id');
- $tirada = $postData->tirada ?? 0;
- $paginas = $postData->paginas ?? 0;
- $POD = $postData->POD ?? 0;
- $ancho = $postData->ancho ?? 0;
- $alto = $postData->alto ?? 0;
- $result = [];
-
- if(count($tarifas)>0){
- foreach ($tarifas as $tarifa){
- if($tarifaModel->isTarifaPorHoras($tarifa)){
- $values = $this->model->getPrecioTarifaHoras($tarifa, $paginas, $tirada, -1, $POD);
- }else{
- $values = $this->model->getPrecioTarifa($tarifa, $paginas, $tirada, $ancho, $alto, -1, $POD);
- }
- array_push($result, $values);
- }
- }
+ $postData = $this->request->getPost();
+ $datos_tarifas = $postData['datos'] ?? [];
+ $tirada = $postData['tirada'] ?? 0;
+ $paginas = $postData['paginas'] ?? 0;
+ $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
+ $ancho = $postData['ancho'] ?? 0;
+ $alto = $postData['alto'] ?? 0;
+ $result = $this->getServiciosEncuadernacion($datos_tarifas, $tirada, $paginas, $ancho, $alto, $POD);
+
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
- 'lines' => $result,
+ 'lineas' => $result,
$csrfTokenName => $newTokenHash
];
-
+
return $this->respond($data);
}
+ public function getServiciosEncuadernacion($datos_tarifas, $tirada, $paginas, $ancho, $alto, $POD)
+ {
+ $result = [];
+ $tarifaModel = model('App\Models\Tarifas\TarifaEncuadernacionModel');
+ $model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel');
+
+
+ if (count($datos_tarifas) > 0) {
+ foreach ($datos_tarifas as $tarifa) {
+ if ($tarifaModel->isTarifaPorHoras($tarifa['tarifa_id'])) {
+ $values = $model->getPrecioTarifaHoras($tarifa['tarifa_id'], $paginas, $tirada, -1, $POD);
+ } else {
+ $values = $model->getPrecioTarifa($tarifa['tarifa_id'], $paginas, $tirada, $ancho, $alto, -1, $POD);
+ }
+ array_push($result, $values[0]);
+ }
+ }
+ return $result;
+ }
+
public function datatable()
{
if ($this->request->isAJAX()) {
$reqData = $this->request->getPost();
$tipo = $reqData['tipo'] ?? null;
- if(is_null($tipo) || $tipo=='tarifa'){
+ if (is_null($tipo) || $tipo == 'tarifa') {
$tarifa_encuadernacion_id = $reqData['tarifa_encuadernacion_id'] ?? 0;
$proveedor_id = $reqData['proveedor_id'] ?? 0;
- }
- else{
+ } else {
$solapas = $reqData['solapas'] ?? 0;
}
$paginas = $reqData['paginas'] ?? 0;
$tirada = $reqData['tirada'] ?? 0;
$ancho = $reqData['ancho'] ?? 0;
$alto = $reqData['alto'] ?? 0;
-
+
$POD = $reqData['POD'] ?? 0;
$paginas_cuadernillo = $reqData['paginas_por_cuadernillo'] ?? null;
-
+
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
-
+
$tarifaModel = model('App\Models\Tarifas\TarifaEncuadernacionModel');
- if(is_null($tipo)){
- if($tarifaModel->isTarifaPorHoras($tarifa_encuadernacion_id)){
+ if (is_null($tipo)) {
+ if ($tarifaModel->isTarifaPorHoras($tarifa_encuadernacion_id)) {
$values = $this->model->getPrecioTarifaHoras($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD, $paginas_cuadernillo);
- }else{
+ } else {
$values = $this->model->getPrecioTarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $POD);
}
- }
-
- else if($tipo=='tarifa'){
- if($tarifaModel->isTarifaPorHoras($tarifa_encuadernacion_id)){
+ } else if ($tipo == 'tarifa') {
+ if ($tarifaModel->isTarifaPorHoras($tarifa_encuadernacion_id)) {
$values = $this->model->getPrecioTarifaHoras($tarifa_encuadernacion_id, $paginas, $tirada, -1, $POD);
- }
- else{
+ } else {
$values = $this->model->getPrecioTarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, -1, $POD);
}
- }
-
- else{
+ } 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
];
-
+
return $this->respond($data);
-
+
} else {
return $this->failUnauthorized('Invalid request', 403);
}
}
-
+
+ public function getRowValues()
+ {
+ if ($this->request->isAJAX()) {
+
+ $tarifaModel = model('App\Models\Tarifas\TarifaEncuadernacionModel');
+
+ $reqData = $this->request->getPost();
+
+ $tarifa_enc_id = $reqData['tarifa_enc_id'] ?? 0;
+ $tirada = $reqData['tirada'] ?? 0;
+ $paginas = $reqData['paginas'] ?? 0;
+ $ancho = $reqData['ancho'] ?? 0;
+ $alto = $reqData['alto'] ?? 0;
+ $proveedor_id = $reqData['proveedor_id'] ?? -1;
+ $paginas_cuadernillo = $reqData['paginas_por_cuadernillo'] ?? 32;
+ $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
+
+
+ $newTokenHash = csrf_hash();
+ $csrfTokenName = csrf_token();
+
+ if ($tarifaModel->isTarifaPorHoras($tarifa_enc_id)) {
+ $values = $this->model->getPrecioTarifaHoras($tarifa_enc_id, $paginas, $tirada, $proveedor_id, $POD, $paginas_cuadernillo);
+ } else {
+ $values = $this->model->getPrecioTarifa($tarifa_enc_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $POD);
+ }
+
+ $data = [
+ 'values' => $values,
+ $csrfTokenName => $newTokenHash
+ ];
+
+ return $this->respond($data);
+
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
public function menuItems()
{
if ($this->request->isAJAX()) {
$reqData = $this->request->getPost();
- try{
+ try {
$tarifa_id = $reqData['tarifa_id'] ?? -1;
$paginas = $reqData['paginas'] ?? 0;
$tirada = $reqData['tirada'] ?? 0;
$ancho = $reqData['ancho'] ?? 0;
$alto = $reqData['alto'] ?? 0;
- //$searchStr = goSanitize($this->request->getPost('searchTerm'))[0];
+ $paginas_cuadernillo = $reqData['paginas_por_cuadernillo'] ?? 32;
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
- $menu = $this->model->getProveedoresForSelector($tarifa_id, $paginas, $tirada, $ancho, $alto);
+ $menu = $this->model->getProveedoresForSelector($tarifa_id, $paginas, $tirada, $ancho, $alto, $paginas_cuadernillo);
$data = [
'menu' => $menu,
$csrfTokenName => $newTokenHash
];
- }
- catch(Exception $e){
+ } catch (Exception $e) {
$data = [
'error' => $e,
$csrfTokenName => $newTokenHash
];
- }
- finally{
+ } finally {
return $this->respond($data);
}
-
+
} else {
return $this->failUnauthorized('Invalid request', 403);
}
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php b/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php
index 0423bb19..6c3b77ab 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestomanipulados.php
@@ -63,6 +63,27 @@ class Presupuestomanipulados extends \App\Controllers\BaseResourceController
return $this->respond($data);
}
+ public function getServicioSolapas(){
+
+ if($this->request->isAJAX()){
+
+ $servicio = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('servicio_solapas')->value;
+
+ $newTokenHash = csrf_hash();
+ $csrfTokenName = csrf_token();
+
+ $data = [
+ 'service' => $servicio,
+ $csrfTokenName => $newTokenHash
+ ];
+
+ return $this->respond($data);
+ }
+ else{
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
public function update($requestedId = null)
{
@@ -70,28 +91,38 @@ class Presupuestomanipulados extends \App\Controllers\BaseResourceController
return;
endif;
- $postData = $this->request->getJSON();
- $tarifas = array_column($postData->datos, 'tarifa_id');
- $tirada = $postData->tirada ?? 0;
- $POD = $postData->POD ?? 0;
- $result = [];
-
- if(count($tarifas)>0){
- foreach ($tarifas as $tarifa){
- $values = $this->model->getPrecioTarifa($tarifa, $tirada, $POD);
- array_push($result, $values);
- }
- }
+ $postData = $this->request->getPost();
+ $tarifas = $postData['datos'] ?? [];
+ $tirada = $postData['tirada'] ?? 0;
+ $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
+
+ $result = $this->getServiciosManipulado($tarifas, $tirada, $POD);
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
- 'lines' => $result,
+ 'lineas' => $result,
$csrfTokenName => $newTokenHash
];
return $this->respond($data);
}
+
+ public function getServiciosManipulado($datos_tarifas, $tirada, $POD)
+ {
+ $result = [];
+ $model = model('App\Models\Presupuestos\PresupuestoManipuladosModel');
+
+ if (count($datos_tarifas) > 0) {
+ foreach ($datos_tarifas as $tarifa) {
+ $values = $model->getPrecioTarifa($tarifa, $tirada, $POD);
+ $values[0]->cubierta = $tarifa['cubierta'] ?? 0;
+ $values[0]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0;
+ array_push($result, $values[0]);
+ }
+ }
+ return $result;
+ }
public function datatable()
@@ -101,7 +132,7 @@ class Presupuestomanipulados extends \App\Controllers\BaseResourceController
$tarifa_manipulado_id = $reqData['tarifa_manipulado_id'] ?? 0;
$tirada = $reqData['tirada'] ?? 0;
- $POD = $reqData['POD'] ?? 0;
+ $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
$tipo = $reqData['tipo'] ?? null;
@@ -129,4 +160,29 @@ class Presupuestomanipulados extends \App\Controllers\BaseResourceController
}
}
+ public function getRowValues()
+ {
+ if ($this->request->isAJAX()) {
+ $reqData = $this->request->getPost();
+
+ $tarifa_manipulado_id = $reqData['tarifa_manipulado_id'] ?? 0;
+ $tirada = $reqData['tirada'] ?? 0;
+ $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
+
+ $newTokenHash = csrf_hash();
+ $csrfTokenName = csrf_token();
+
+ $values = $this->model->getPrecioTarifa($tarifa_manipulado_id, $tirada, $POD);
+
+ $data = [
+ 'values' => $values,
+ $csrfTokenName => $newTokenHash
+ ];
+
+ return $this->respond($data);
+
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
}
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestopreimpresiones.php b/ci4/app/Controllers/Presupuestos/Presupuestopreimpresiones.php
index 465ad7be..06e99718 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestopreimpresiones.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestopreimpresiones.php
@@ -110,4 +110,47 @@ class Presupuestopreimpresiones extends \App\Controllers\BaseResourceController
}
}
+ public function getRowValues()
+ {
+ if ($this->request->isAJAX()) {
+ $reqData = $this->request->getPost();
+
+ $tarifa_preimpresion_id = $reqData['tarifa_preimpresion_id'] ?? 0;
+
+ $newTokenHash = csrf_hash();
+ $csrfTokenName = csrf_token();
+
+ $values = $this->model->getPrecioTarifa($tarifa_preimpresion_id);
+
+ $data = [
+ 'values' => $values,
+ $csrfTokenName => $newTokenHash
+ ];
+
+ return $this->respond($data);
+
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
+ public function cargar()
+ {
+ if($this->request->isAJAX()) {
+ $presupuesto_id = $this->request->getGet('presupuesto_id') ?? null;
+
+ $rows = $this->model->getResource($presupuesto_id)->get()->getResultObject();
+
+ $newTokenHash = csrf_hash();
+ $csrfTokenName = csrf_token();
+ $data = [
+ 'rows' => $rows,
+ $csrfTokenName => $newTokenHash
+ ];
+
+ return $this->respond($data);
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
}
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoserviciosextra.php b/ci4/app/Controllers/Presupuestos/Presupuestoserviciosextra.php
index 09497d14..0e5bc23b 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestoserviciosextra.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestoserviciosextra.php
@@ -110,4 +110,28 @@ class Presupuestoserviciosextra extends \App\Controllers\BaseResourceController
}
}
+ public function getRowValues()
+ {
+ if ($this->request->isAJAX()) {
+ $reqData = $this->request->getPost();
+
+ $tarifa_extra_id = $reqData['tarifa_extra_id'] ?? 0;
+
+ $newTokenHash = csrf_hash();
+ $csrfTokenName = csrf_token();
+
+ $values = $this->model->getPrecioTarifa($tarifa_extra_id);
+
+ $data = [
+ 'values' => $values,
+ $csrfTokenName => $newTokenHash
+ ];
+
+ return $this->respond($data);
+
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
+
}
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestotiradasalternativas.php b/ci4/app/Controllers/Presupuestos/Presupuestotiradasalternativas.php
index 05702a7e..60b5e12f 100644
--- a/ci4/app/Controllers/Presupuestos/Presupuestotiradasalternativas.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestotiradasalternativas.php
@@ -82,7 +82,12 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
+ $id = $reqData['id'] ?? 0;
+
$json_data = $reqData['json_tiradas'] ?? null;
+ $json_data_acabados = $reqData['json_acabados'] ?? null;
+ $json_data_encuadernacion = $reqData['json_encuadernaciones'] ?? null;
+ $json_data_manipulado = $reqData['json_manipulado'] ?? null;
$cliente_id = $reqData['cliente_id'] ?? 0;
$tipo_impresion_id = $reqData['tipo_impresion_id'] ?? 4;
@@ -95,7 +100,7 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
foreach ($data as $linea) {
// Se obtienen los valores de cada linea para el calculo del precio
- $datosPedido = (object)array(
+ $datosPedido = (object) array(
'paginas' => intval($linea['paginas']) ?? 0,
'tirada' => intval($reqData['tirada']) ?? 0,
'merma' => intval($reqData['merma']) ?? 0,
@@ -144,24 +149,24 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$uso = 'interior';
$tipo = strpos($linea['row_id'], "_bn") !== false ? 'negro' : 'color';
$paginas_negro = isset($linea['numPagColor']) ? intval($datosPedido->paginas) - intval($linea['numPagColor']) : 0;
- $paginas_color = $linea['numPagColor'] ?? 0;
- $paginas = (object)array(
+ $paginas_color = $linea['numPagColor'] ?? 0;
+ $paginas = (object) array(
'negro' => $paginas_negro,
'color' => $paginas_color,
);
- $parametrosRotativa = (object)array(
+ $parametrosRotativa = (object) array(
'a_favor_fibra' => $datosPedido->a_favor_fibra,
- 'bnPages' => $paginas->negro,
- 'colorPages' => $paginas->color,
+ 'bnPages' => $paginas->negro,
+ 'colorPages' => $paginas->color,
'rotativa_gota_negro' => 0,
'rotativa_gota_color' => 0,
);
- $parametrosRotativa->rotativa_gota_negro = floatval($linea['gotaNegro']?? 0);
- $parametrosRotativa->rotativa_gota_color = floatval($linea['gotaColor']?? 0);
- $parametrosRotativa->rotativa_negro = floatval($linea['cobNegro'] ?? 0);
- $parametrosRotativa->rotativa_cyan = floatval($linea['cobCyan'] ?? 0);
- $parametrosRotativa->rotativa_magenta = floatval($linea['cobMagenta']?? 0);
- $parametrosRotativa->rotativa_amarillo = floatval($linea['cobAmarillo']?? 0);
+ $parametrosRotativa->rotativa_gota_negro = floatval($linea['gotaNegro'] ?? 0);
+ $parametrosRotativa->rotativa_gota_color = floatval($linea['gotaColor'] ?? 0);
+ $parametrosRotativa->rotativa_negro = floatval($linea['cobNegro'] ?? 0);
+ $parametrosRotativa->rotativa_cyan = floatval($linea['cobCyan'] ?? 0);
+ $parametrosRotativa->rotativa_magenta = floatval($linea['cobMagenta'] ?? 0);
+ $parametrosRotativa->rotativa_amarillo = floatval($linea['cobAmarillo'] ?? 0);
break;
case 'lp_cubierta':
$uso = 'cubierta';
@@ -194,14 +199,14 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$datosTipolog = $linea['gotaNegro'] ?? null;
if (!is_null($datosTipolog)) {
$datosTipolog = [];
- $data_temp = (object)array(
+ $data_temp = (object) array(
'negro' => floatval($linea['cobNegro'] ?? 0),
'cyan' => floatval($linea['cobCyan'] ?? 0),
- 'magenta' => floatval($linea['cobMagenta']?? 0),
- 'amarillo' => floatval($linea['cobAmarillo']?? 0),
+ 'magenta' => floatval($linea['cobMagenta'] ?? 0),
+ 'amarillo' => floatval($linea['cobAmarillo'] ?? 0),
'cg' => floatval($linea['cobCG'] ?? 0),
- 'gota_negro' => floatval($linea['gotaNegro']?? 0),
- 'gota_color' => floatval($linea['gotaColor']?? 0),
+ 'gota_negro' => floatval($linea['gotaNegro'] ?? 0),
+ 'gota_color' => floatval($linea['gotaColor'] ?? 0),
);
array_push($datosTipolog, $data_temp);
}
@@ -213,13 +218,13 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$datosLinea['datosPedido'] = $datosPedido;
$datosLinea['cliente_id'] = $cliente_id;
$datosLinea['papel'] = $papel;
- if(isset($isColor))
- $datosLinea['isColor'] = $isColor;
- if(isset($opciones_papel))
+ if (isset($isColor))
+ $datosLinea['isColor'] = $isColor;
+ if (isset($opciones_papel))
$datosLinea['opciones_papel'] = $opciones_papel;
- if(isset($parametrosRotativa))
+ if (isset($parametrosRotativa))
$datosLinea['parametrosRotativa'] = $parametrosRotativa;
- if(isset($paginas))
+ if (isset($paginas))
$datosLinea['paginas'] = $paginas;
$datosLinea['maquina'] = $maquina;
$datosLinea['papel_generico'] = $papel_generico;
@@ -257,19 +262,113 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$linea_coste['total_coste'] +=
$linea_coste['fields']['precio_tinta'];
if (strpos($linea['row_id'], 'lp_rot') === 0) {
- $linea_coste['total_coste'] +=
- $linea_coste['fields']['total_corte'];
- }
+ $linea_coste['total_coste'] +=
+ $linea_coste['fields']['total_corte'];
+ }
}
-
+
$linea_coste['total_margen'] = $linea_coste['fields']['margen_papel_pedido'] +
$linea_coste['fields']['margen_impresion_horas'] +
$linea_coste['fields']['margen_click_pedido'];
-
+
unset($linea_coste['fields']);
array_push($values, $linea_coste);
}
+
+ // Calculo de los servicios (presimpresion y extra no dependen de nada)
+ $servicios = (object) (['coste' => 0.0, 'margen' => 0.0]);
+
+ if ($json_data_acabados) {
+ $json_data_acabados = json_decode($json_data_acabados, true);
+ if (count($json_data_acabados) > 0) {
+
+ $acabados = new Presupuestoacabados();
+ $POD = (new \App\Models\Configuracion\ConfigVariableModel())->getVariable('POD')->value;
+ $result = $acabados->getServiciosAcabados($json_data_acabados, $reqData['tirada'], $POD);
+ if (count($result) > 0) {
+ foreach ($result as $servicio) {
+ $coste = round($servicio->total / (1 + $servicio->margen / 100), 2);
+ $margen = round($servicio->total - $coste, 2);
+ $servicios->coste += $coste;
+ $servicios->margen += $margen;
+ }
+ }
+ }
+ }
+
+ if ($json_data_encuadernacion) {
+ $json_data_encuadernacion = json_decode($json_data_encuadernacion, true);
+ if (count($json_data_encuadernacion) > 0) {
+
+ $encuadernacion = new Presupuestoencuadernaciones();
+ $POD = (new \App\Models\Configuracion\ConfigVariableModel())->getVariable('POD')->value;
+ $result = $encuadernacion->getServiciosEncuadernacion($json_data_encuadernacion, $reqData['tirada'], $reqData['paginas'], $reqData['ancho'], $reqData['alto'], $POD);
+ if (count($result) > 0) {
+ foreach ($result as $servicio) {
+ $coste = round($servicio->total / (1 + $servicio->margen / 100), 2);
+ $margen = round($servicio->total - $coste, 2);
+ $servicios->coste += $coste;
+ $servicios->margen += $margen;
+ }
+ }
+ }
+ }
+
+ if ($json_data_manipulado) {
+ $json_data_manipulado = json_decode($json_data_manipulado, true);
+ if (count($json_data_manipulado) > 0) {
+ $manipulados = new Presupuestomanipulados();
+ $POD = (new \App\Models\Configuracion\ConfigVariableModel())->getVariable('POD')->value;
+ $result = $manipulados->getServiciosManipulado($json_data_manipulado, $reqData['tirada'], $POD);
+ if (count($result) > 0) {
+ foreach ($result as $servicio) {
+ $coste = round($servicio->total / (1 + $servicio->margen / 100), 2);
+ $margen = round($servicio->total - $coste, 2);
+ $servicios->coste += $coste;
+ $servicios->margen += $margen;
+ }
+ }
+ }
+ }
+
+ $json_envios = $reqData['json_envios'] ?? null;
+ $coste_envio = 0.0;
+ $margen_envio = 0.0;
+ $tirada_base = floatval($reqData['tirada_base']);
+ $peso_libro = floatval($reqData['peso_libro']);
+ // el primer envio con la tirada base
+ $model = model('App\Models\Tarifas\TarifaEnvioModel');
+ $envios = $model->getTarifaEnvio(1, 18000, $tirada_base * $peso_libro/1000.0, "cajas");
+ $resultado = $this->calcular_envio($envios, $tirada_base * $peso_libro/1000.0);
+ $coste_envio += $resultado->coste;
+ $margen_envio += $resultado->margen;
+
+ if ($json_envios) {
+ $json_envios = json_decode($json_envios, true);
+ if (count($json_envios) > 0) {
+ //la primera linea es el envio base
+ for($i = 1; $i < count($json_envios); $i++) {
+
+ $porcentaje = ($json_envios[$i]['cantidad']) / $tirada_base * 100.0;
+ $cantidad = floor($reqData['tirada'] * $porcentaje / 100.0);
+ $peso_envio = $cantidad * $peso_libro / 1000.0;
+
+ $paisId = $json_envios[$i]['pais_id'];
+ $cp = $json_envios[$i]['cp'];
+ $tipo_envio = $json_envios[$i]['entregaPieCalle'] == 1 ? 'palets' : 'cajas';
+
+ $model = model('App\Models\Tarifas\TarifaEnvioModel');
+ $envios = $model->getTarifaEnvio($paisId, $cp, $peso_envio, $tipo_envio);
+
+ $resultado = $this->calcular_envio($envios, $peso_envio);
+ $coste_envio += $resultado->coste;
+ $margen_envio += $resultado->margen;
+ }
+ }
+ }
+
+
} else {
$values = [];
}
@@ -279,8 +378,36 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$response[$csrfTokenName] = $newTokenHash;
$response['lineas'] = $values;
+ $response['servicios'] = $servicios;
+ $response['envios'] = (object) (['coste' => $coste_envio, 'margen' => $margen_envio]);
return $this->respond($response);
-
+
+ }
+
+ private function calcular_envio($envio, $peso_envio)
+ {
+ $coste_envio = 0.0;
+ $margen_envio = 0.0;
+ if (count(value: $envio) > 0) {
+ $envio = $envio[0];
+ if ($envio->id != null) {
+
+ if ($peso_envio > $envio->peso_max || floatval($envio->precio_max) == 0) {
+ $coste_envio += number_format(floatval($envio->precio_min) + ($peso_envio - floatval($envio->peso_min)) * floatval($envio->precio_adicional), 2);
+ }
+ // si no se calcula linealmente
+ else {
+ $m = (($envio->precio_max - $envio->precio_min) / ($envio->peso_max - $envio->peso_min));
+ $b = $envio->precio_max - $m * $envio->peso_max;
+ $coste_envio = number_format($m * $peso_envio + $b, 2);
+
+ }
+
+ $margen_envio += $coste_envio * $envio->margen / 100.0;
+ }
+ }
+
+ return (object) (['coste' => $coste_envio, 'margen' => $margen_envio]);
}
}
diff --git a/ci4/app/Controllers/Tarifas/Acabados/TarifaAcabados.php b/ci4/app/Controllers/Tarifas/Acabados/TarifaAcabados.php
index 7c4d4c54..e2553235 100644
--- a/ci4/app/Controllers/Tarifas/Acabados/TarifaAcabados.php
+++ b/ci4/app/Controllers/Tarifas/Acabados/TarifaAcabados.php
@@ -336,4 +336,25 @@ class TarifaAcabados extends BaseResourceController
}
return $this->response->setJSON($query->get()->getResultObject());
}
+
+ public function getSelect2()
+ {
+ if ($this->request->isAJAX()) {
+ $query = $this->model->builder()->select(
+ [
+ "id",
+ "nombre as name"
+ ]
+ )->where("deleted_at", null);
+ if ($this->request->getGet("q")) {
+ $query->groupStart()
+ ->orLike("lg_tarifas_acabado.nombre", $this->request->getGet("q"))
+ ->groupEnd();
+ }
+
+ return $this->response->setJSON($query->get()->getResultObject());
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
}
diff --git a/ci4/app/Controllers/Tarifas/Tarifaextra.php b/ci4/app/Controllers/Tarifas/Tarifaextra.php
index 1b5591a4..28ea2f1b 100755
--- a/ci4/app/Controllers/Tarifas/Tarifaextra.php
+++ b/ci4/app/Controllers/Tarifas/Tarifaextra.php
@@ -239,4 +239,25 @@ class Tarifaextra extends \App\Controllers\GoBaseController
}
}
+ public function getSelect2()
+ {
+ if ($this->request->isAJAX()) {
+ $query = $this->model->builder()->select(
+ [
+ "id",
+ "nombre as name"
+ ]
+ )->where("deleted_at", null)
+ ->where("mostrar_en_presupuesto", 1);
+ if ($this->request->getGet("q")) {
+ $query->groupStart()
+ ->orLike("tarifa_extra.nombre", $this->request->getGet("q"))
+ ->groupEnd();
+ }
+
+ return $this->response->setJSON($query->get()->getResultObject());
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
}
diff --git a/ci4/app/Controllers/Tarifas/Tarifapreimpresion.php b/ci4/app/Controllers/Tarifas/Tarifapreimpresion.php
index 5b6ada95..6d26178e 100755
--- a/ci4/app/Controllers/Tarifas/Tarifapreimpresion.php
+++ b/ci4/app/Controllers/Tarifas/Tarifapreimpresion.php
@@ -242,4 +242,25 @@ class Tarifapreimpresion extends \App\Controllers\GoBaseController
}
}
+ public function getSelect2()
+ {
+ if ($this->request->isAJAX()) {
+ $query = $this->model->builder()->select(
+ [
+ "id",
+ "nombre as name"
+ ]
+ )->where("deleted_at", null)
+ ->where("mostrar_en_presupuesto", 1);
+ if ($this->request->getGet("q")) {
+ $query->groupStart()
+ ->orLike("lg_tarifa_preimpresion.nombre", $this->request->getGet("q"))
+ ->groupEnd();
+ }
+
+ return $this->response->setJSON($query->get()->getResultObject());
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
}
diff --git a/ci4/app/Controllers/Tarifas/Tarifasencuadernacion.php b/ci4/app/Controllers/Tarifas/Tarifasencuadernacion.php
index 4fea5fe3..11d8b273 100755
--- a/ci4/app/Controllers/Tarifas/Tarifasencuadernacion.php
+++ b/ci4/app/Controllers/Tarifas/Tarifasencuadernacion.php
@@ -356,4 +356,26 @@ class Tarifasencuadernacion extends \App\Controllers\BaseResourceController
}
return $dimensiones;
}
+
+ public function getSelect2()
+ {
+ if ($this->request->isAJAX()) {
+ $query = $this->model->builder()->select(
+ [
+ "id",
+ "nombre as name"
+ ]
+ )->where("deleted_at", null)
+ ->where("mostrar_en_presupuesto", 1);
+ if ($this->request->getGet("q")) {
+ $query->groupStart()
+ ->orLike("tarifa_encuadernacion.nombre", $this->request->getGet("q"))
+ ->groupEnd();
+ }
+
+ return $this->response->setJSON($query->get()->getResultObject());
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
}
diff --git a/ci4/app/Controllers/Tarifas/Tarifasmanipulado.php b/ci4/app/Controllers/Tarifas/Tarifasmanipulado.php
index ce497cd4..a55c900b 100755
--- a/ci4/app/Controllers/Tarifas/Tarifasmanipulado.php
+++ b/ci4/app/Controllers/Tarifas/Tarifasmanipulado.php
@@ -310,4 +310,26 @@ class Tarifasmanipulado extends \App\Controllers\BaseResourceController
}
return $this->response->setJSON($query->get()->getResultObject());
}
+
+ public function getSelect2()
+ {
+ if ($this->request->isAJAX()) {
+ $query = $this->model->builder()->select(
+ [
+ "id",
+ "nombre as name"
+ ]
+ )->where("deleted_at", null)
+ ->where("mostrar_en_presupuesto", 1);
+ if ($this->request->getGet("q")) {
+ $query->groupStart()
+ ->orLike("lg_tarifa_manipulado.nombre", $this->request->getGet("q"))
+ ->groupEnd();
+ }
+
+ return $this->response->setJSON($query->get()->getResultObject());
+ } else {
+ return $this->failUnauthorized('Invalid request', 403);
+ }
+ }
}
diff --git a/ci4/app/Entities/Configuracion/Maquina.php b/ci4/app/Entities/Configuracion/Maquina.php
index 11b5496b..1ccdef6a 100755
--- a/ci4/app/Entities/Configuracion/Maquina.php
+++ b/ci4/app/Entities/Configuracion/Maquina.php
@@ -1,7 +1,12 @@
"int",
"user_updated_id" => "int",
];
+
+ public function papeles_impresion() : ?array
+ {
+ $m = model(MaquinasPapelesImpresionModel::class);
+ return $m->asArray()->where('maquina_id',$this->attributes['id'])->findAll();
+ }
+ public function maquina_defecto(): ?array
+ {
+ $m = model(MaquinasDefectoModel::class);
+ return $m->asArray()->where('maquina_id',$this->attributes['id'])->findAll();
+ }
+ public function maquina_calles() : ?array
+ {
+ $m = model(MaquinasCallesModel::class);
+ return $m->asArray()->where('maquina_id',$this->attributes['id'])->findAll();
+ }
+ public function tarifas_impresion() : ?array
+ {
+ $m = model(MaquinasTarifasImpresionModel::class);
+ return $m->asArray()->where('maquina_id',$this->attributes['id'])->findAll();
+ }
+ public function withAll() : self
+ {
+ $this->attributes['papeles_impresion'] = $this->papeles_impresion();
+ $this->attributes['maquina_calles'] = $this->maquina_calles();
+ $this->attributes['maquina_defecto'] = $this->maquina_defecto();
+ $this->attributes['tarifas_impresion'] = $this->tarifas_impresion();
+
+ return $this;
+ }
}
diff --git a/ci4/app/Entities/Configuracion/PapelImpresion.php b/ci4/app/Entities/Configuracion/PapelImpresion.php
index 4d79a06e..d977764c 100755
--- a/ci4/app/Entities/Configuracion/PapelImpresion.php
+++ b/ci4/app/Entities/Configuracion/PapelImpresion.php
@@ -1,6 +1,9 @@
"boolean",
"is_deleted" => "int",
];
+
+ public function tipologia() : ?array
+ {
+ $m = model(PapelImpresionTipologiaModel::class);
+ return $m->asArray()->where('papel_impresion_id',$this->attributes["id"])->findAll();
+ }
+ public function maquinas_impresion() : ?array
+ {
+ $m = model(MaquinasPapelesImpresionModel::class);
+ return $m->asArray()->where('papel_impresion_id',$this->attributes["id"])->findAll();
+ }
+ public function margen() : ?array
+ {
+ $m = model(PapelImpresionMargenModel::class);
+ return $m->asArray()->where('papel_impresion_id',$this->attributes["id"])->findAll();
+ }
}
diff --git a/ci4/app/Entities/Presupuestos/PresupuestoEntity.php b/ci4/app/Entities/Presupuestos/PresupuestoEntity.php
index 660beb08..92eca96c 100755
--- a/ci4/app/Entities/Presupuestos/PresupuestoEntity.php
+++ b/ci4/app/Entities/Presupuestos/PresupuestoEntity.php
@@ -31,7 +31,6 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"retractilado" => false,
"retractilado5" => false,
"guardas" => false,
- "faja_color" => false,
"recoger_en_taller" => false,
"ferro" => false,
"ferro_digital" => false,
@@ -53,6 +52,9 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"solapas_ancho" => 0.0,
"solapas_sobrecubierta" => false,
"solapas_ancho_sobrecubierta" => 0.0,
+ "faja_color" => false,
+ "solapas_ancho_faja_color" => 0.0,
+ "alto_faja_color" => 0.0,
"cosido" => false,
"sobrecubiertas" => false,
"sobrecubiertas_ancho" => 0.0,
@@ -63,6 +65,7 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"comentarios_pdf" => null,
"comentarios_tarifa" => null,
"comentarios_produccion" => null,
+ "comentarios_presupuesto" => null,
"lomo_cubierta" => null,
"lomo_sobrecubierta" => null,
"total_presupuesto" => null,
@@ -107,6 +110,7 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
'paginasCuadernillo' => null,
'lomo_redondo' => null,
'cabezada' => null,
+ 'envio_base' => null,
];
protected $casts = [
"cliente_id" => "int",
@@ -116,11 +120,9 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"tipologia_id" => "?int",
"pais_id" => "int",
"estado_id" => "int",
- "inc_rei" => "?int",
"retractilado" => "boolean",
"retractilado5" => "boolean",
"guardas" => "boolean",
- "faja_color" => "boolean",
"recoger_en_taller" => "boolean",
"ferro" => "boolean",
"ferro_digital" => "boolean",
@@ -136,6 +138,9 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"solapas_ancho" => "float",
"solapas_sobrecubierta" => "boolean",
"solapas_ancho_sobrecubierta" => "float",
+ "faja_color" => "boolean",
+ "solapas_ancho_faja_color" => "float",
+ "alto_faja_color" => "float",
"cosido" => "boolean",
"sobrecubiertas" => "boolean",
"sobrecubiertas_ancho" => "float",
diff --git a/ci4/app/Entities/Configuracion/TareaMaquinaEntity.php b/ci4/app/Entities/Tarifas/Maquinas/TareaMaquinaEntity.php
similarity index 100%
rename from ci4/app/Entities/Configuracion/TareaMaquinaEntity.php
rename to ci4/app/Entities/Tarifas/Maquinas/TareaMaquinaEntity.php
diff --git a/ci4/app/Entities/Usuarios/UserEntity.php b/ci4/app/Entities/Usuarios/UserEntity.php
index 61f750ce..34206cad 100755
--- a/ci4/app/Entities/Usuarios/UserEntity.php
+++ b/ci4/app/Entities/Usuarios/UserEntity.php
@@ -13,6 +13,7 @@ class UserEntity extends \CodeIgniter\Entity\Entity
"status" => null,
"status_message" => null,
'active' => null,
+ "comments" => null,
"last_active" => null,
"created_at" => null,
"updated_at" => null,
diff --git a/ci4/app/Language/es/App.php b/ci4/app/Language/es/App.php
index f2f5f26f..d41d02fe 100755
--- a/ci4/app/Language/es/App.php
+++ b/ci4/app/Language/es/App.php
@@ -32,7 +32,8 @@ return [
"global_pdf" => "PDF",
"global_prev" => "Anterior",
"global_next" => "Siguiente",
-
+ "global_save_file" => "Guardar ficheros",
+ "global_upload_files" => "Subir ficheros",
// LOGIN - Index
"login_title" => "Iniciar sesión en su cuenta",
"login_email" => "Correo Electrónico",
@@ -695,7 +696,7 @@ return [
"menu_papelgenerico" => "Papel generico",
"menu_papelimpresion" => "Papel impresión",
"menu_series_facturas" => "Series facturas",
- "menu_servicios_cliente" => "Servicios cliente",
+ "menu_maquina_tareas" => "Tareas máquinas",
"menu_ubicaciones" => "Ubicaciones",
"menu_serviciocliente" => "Servicio cliente",
"menu_tamanioformatos" => "Tamaño formatos",
diff --git a/ci4/app/Language/es/Basic.php b/ci4/app/Language/es/Basic.php
index bb333f54..be74f2d1 100755
--- a/ci4/app/Language/es/Basic.php
+++ b/ci4/app/Language/es/Basic.php
@@ -28,6 +28,8 @@ return [
'Profile' => 'Perfil',
'Roles' => 'Roles',
'Save' => 'Guardar',
+ 'Copy' => 'Copiar',
+ 'Duplicate' => 'Duplicar',
'Sections' => 'Secciones',
'SignOut' => 'Desconectar',
'Success' => 'Éxito',
diff --git a/ci4/app/Language/es/ServicioCliente.php b/ci4/app/Language/es/MaquinaTarea.php
similarity index 71%
rename from ci4/app/Language/es/ServicioCliente.php
rename to ci4/app/Language/es/MaquinaTarea.php
index 5218a72b..4e259c7e 100644
--- a/ci4/app/Language/es/ServicioCliente.php
+++ b/ci4/app/Language/es/MaquinaTarea.php
@@ -2,13 +2,14 @@
return [
- "cardTitle" => "Servicios cliente",
+ "cardTitle" => "Máquina tareas",
+ "tarea_new" => "Crear tarea",
"infoTarifaManipulado" => "La tarifa seleccionada estará asociada al servicio.",
"infoTarifaAcabado" => "La tarifa seleccionada estará asociada al servicio.",
"datatable" => [
"nombre" => "Nombre",
- "code" => "Código",
+ "description" => "Descripción",
"created_at" => "Fecha creación",
]
];
\ No newline at end of file
diff --git a/ci4/app/Language/es/Maquinas.php b/ci4/app/Language/es/Maquinas.php
index 3ee7b210..6971e9fa 100755
--- a/ci4/app/Language/es/Maquinas.php
+++ b/ci4/app/Language/es/Maquinas.php
@@ -43,6 +43,7 @@ return [
'velocidad' => 'Velocidad',
'velocidadCorte' => 'Velocidad Corte',
'maquina_tarea' => 'Máquina tarea',
+ 'namePlaceholderDuplicated' => "Inserte el nombre de la máquina a duplicar ...",
'validation' => [
'alto_menor_alto_impresion' => 'El campo \'Alto impresión\' debe ser menor que \'Alto\'',
'ancho_menor_ancho_impresion' => '\'Ancho Impresión\' debe ser menor que \'Ancho\'',
diff --git a/ci4/app/Language/es/PapelImpresion.php b/ci4/app/Language/es/PapelImpresion.php
index 939442db..0b2f919c 100755
--- a/ci4/app/Language/es/PapelImpresion.php
+++ b/ci4/app/Language/es/PapelImpresion.php
@@ -39,6 +39,7 @@ return [
'activo' => 'Activo?',
'useInClient' => 'Usar en presup. cliente',
'userUpdateId' => 'ID usuario actualización',
+ 'namePlaceholderDuplicated' => 'Inserte el nombre del papel que se va a duplicar',
'consumo_tintas_rotativas' => 'Consumo tintas',
'maquinas_papel' => 'Máquinas seleccionadas',
diff --git a/ci4/app/Language/es/Presupuestos.php b/ci4/app/Language/es/Presupuestos.php
index b9bcfc34..cc5f99b8 100755
--- a/ci4/app/Language/es/Presupuestos.php
+++ b/ci4/app/Language/es/Presupuestos.php
@@ -130,6 +130,8 @@ return [
'estucadoMate170gr' => 'Estucado mate 170 gr',
'estucadoMate200gr' => 'Estucado mate 200 gr',
+ 'acabadoNinguno' => 'Ninguno',
+
'fajaColor' => 'Imprimir faja a color',
'compInteriorPlana' => 'Interior en plana',
'compInteriorRotativa' => 'Interior en rotativa',
@@ -143,6 +145,7 @@ return [
'libro' => 'Libro',
'totalPapelPedido' => 'Papel pedido',
'lomo' => 'Lomo',
+ 'lomoRedondo' => 'Lomo redondo',
'peso' => 'Peso',
'click' => 'Click',
'totalClicks' => 'Total clicks',
@@ -163,6 +166,7 @@ return [
'solapasSobrecubierta' => 'Solapas sobrecub.',
'solapasAnchoCubierta' => 'Ancho solapas cub.',
'solapasAnchoSobrecubierta' => 'Ancho solapas sobrecub.',
+
'sinImpresion' => 'Sin impresion',
'unaCara' => '1 cara',
'dosCaras' => '2 caras',
@@ -195,6 +199,7 @@ return [
'totalLinea' => 'TOTAL LÍNEA',
'verCalculos' => 'Cálculos',
'metrosMinuto' => 'Metros x min.',
+ 'clicksMinuto' => 'Clicks x min.',
'resolucion' => 'Resolución (dpi)',
'areaPaginas' => 'Área páginas (in)',
'gotasNegro' => 'Nº gotas negro',
@@ -272,12 +277,14 @@ return [
'previewConfiguracionGuardas' => 'Configuración de guardas',
'previewConfiguracionCubierta' => 'Configuración de cubierta',
'previewConfiguracionSobrecubierta' => 'Configuración de sobrecubierta',
+ 'previewConfiguracionFaja' => 'Configuración de faja',
'previewEsquemaCubierta' => 'Esquema de cubierta',
'previewConfiguracionEsquemaCubierta' => 'Configuración esquema de cubierta',
'previewMaquinaPlana' => 'Configuración del papel: Plana',
'previewMaquinaRotativa' => 'Configuración del papel: Rotativa',
'previewCubierta' => 'Configuración del papel: Cubierta',
'previewSobrecubierta' => 'Configuración del papel: Sobrecubierta',
+ 'previewFaja' => 'Configuración del papel: Faja',
'previewPapelGenerico' => 'Papel Genérico',
'previewPapelCompra' => 'Papel de Compra',
'previewAreaImpresion' => 'Área de Impresión',
@@ -313,7 +320,7 @@ return [
'tiradasAlternativas' => 'Tiradas alternativas',
'tiradasInfoIVA' => 'Los precios mostrados no incluyen IVA',
'tiradaMargen' => 'Margen',
- 'tiradaEnvio' => 'Coste Envío',
+ 'tiradaEnvio' => 'Precio Envío',
'tiradaImpresion' => 'Coste Impresión',
'duplicado' => 'DUPLICADO',
@@ -328,7 +335,7 @@ return [
'actualizacionSolapasCubierta' => 'El tamaño de las solapas de la cubierta se ha actualizado debido a que supera el máximo permitido (este valor depende del ancho del libro y del número de páginas).',
'actualizacionSolapasSobrecubierta' => 'El tamaño de las solapas de la sobrecubierta se ha actualizado debido a que supera el máximo permitido (este valor depende del ancho del libro y del número de páginas).',
-
+ 'files' => 'Ficheros',
'titulos' => [
'libroFresadoTapaDura' => 'Rústica Fresado tapa dura',
'libroFresadoTapaBlanda' => 'Rústica Fresado tapa blanda',
@@ -369,6 +376,9 @@ return [
'paginas' => 'El campo páginas tiene que ser mayor que cero',
'paginasLP' => 'El número de páginas no coincide con el total',
'tiradas' => 'El campo tiradas tiene que ser mayor que cero',
+ 'seleccionePapel' => 'Seleccione un papel',
+ 'seleccioneGramaje' => 'Seleccione un gramaje',
+ 'seleccioneCliente' => 'Seleccione un cliente',
'dimension' => 'La dimensión del libro tiene que ser mayor que 60mm',
'lineaDuplicada' => 'Ya existe ese tipo de linea en el presupuesto',
'errorRotColor' => 'Papeles y gramajes deben ser iguales en color y BN',
@@ -380,6 +390,8 @@ return [
'noInterior' => 'No se hay resultados para el interior',
'noCubiertaSobrecubierta' => 'No se hay resultados para cubierta/sobrecubierta',
'errorPresupuesto' => 'Se ha producido un error al calcular el presupuesto. Póngase en contacto con el administrador',
+ 'error_sobrecubierta_sin_solapas' => 'Debe seleccionar "sobrecubierta" en los datos del libro para introducir el ancho de solapa',
+ 'error_faja_sin_solapas' => 'Debe seleccionar "faja" en los datos del libro para introducir el ancho de solapa'
],
];
diff --git a/ci4/app/Language/es/Tarifaacabado.php b/ci4/app/Language/es/Tarifaacabado.php
index 3c6622ff..5bdd61e9 100755
--- a/ci4/app/Language/es/Tarifaacabado.php
+++ b/ci4/app/Language/es/Tarifaacabado.php
@@ -9,6 +9,7 @@ return [
'id' => 'ID',
'moduleTitle' => 'Tarifas Acabado',
'nombre' => 'Nombre',
+ 'margen' => 'Margen',
'precioMin' => 'Precio Mínimo',
'importeFijo' => 'Importe Fijo',
'mostrar_en_presupuesto' => 'Mostrar en presupuesto',
diff --git a/ci4/app/Libraries/SafekatFtpClient.php b/ci4/app/Libraries/SafekatFtpClient.php
index 98259ba2..663e8c7a 100644
--- a/ci4/app/Libraries/SafekatFtpClient.php
+++ b/ci4/app/Libraries/SafekatFtpClient.php
@@ -58,12 +58,14 @@ class SafekatFtpClient
public function uploadFilePresupuesto(int $presupuesto_id)
{
try {
+ if ($this->xml_enabled == false) return false;
$model = model(PresupuestoFicheroModel::class);
$modelPedidoLinea = model(PedidoLineaModel::class);
$pedidoLinea = $modelPedidoLinea->findByPresupuesto($presupuesto_id);
- $rootIdExtern = 1e6 + $pedidoLinea->pedido_id;
+ $rootIdExtern = $this->pedido_xml_config->id_offset + $pedidoLinea->pedido_id;
$presupuestoFiles = $model->getFiles($presupuesto_id);
$this->ftp->login(username: $this->username, password: $this->password);
+
foreach ($presupuestoFiles as $key => $value) {
$filename = array_reverse(explode("/", $value->file_path))[0];
$remoteDir = implode("/", [$this->base_dir,"pedidos_files",$rootIdExtern]);
@@ -73,6 +75,29 @@ class SafekatFtpClient
}
$this->ftp->put($remoteFile,$value->file_path,mode:$this->ftp::SOURCE_LOCAL_FILE);
}
+ $this->ftp->disconnect();
+ } catch (Exception $e) {
+ log_message('error', $e->getMessage());
+ throw $e;
+ }
+ }
+ public function removeFiles(int $presupuesto_id)
+ {
+ try {
+ // if ($this->xml_enabled == false) return false;
+ $model = model(PresupuestoFicheroModel::class);
+ $modelPedidoLinea = model(PedidoLineaModel::class);
+ $pedidoLinea = $modelPedidoLinea->findByPresupuesto($presupuesto_id);
+ $rootIdExtern = $this->pedido_xml_config->id_offset + $pedidoLinea->pedido_id;
+ $presupuestoFiles = $model->getFiles($presupuesto_id);
+ $this->ftp->login(username: $this->username, password: $this->password);
+
+ foreach ($presupuestoFiles as $key => $value) {
+ $filename = array_reverse(explode("/", $value->file_path))[0];
+ $remoteFile = implode("/", [$this->base_dir,"pedidos_files",$rootIdExtern,$filename]);
+ $this->ftp->delete($remoteFile);
+ }
+ $this->ftp->disconnect();
} catch (Exception $e) {
log_message('error', $e->getMessage());
throw $e;
diff --git a/ci4/app/Models/Clientes/ClienteDireccionesModel.php b/ci4/app/Models/Clientes/ClienteDireccionesModel.php
index e60eab05..7f2c96a6 100755
--- a/ci4/app/Models/Clientes/ClienteDireccionesModel.php
+++ b/ci4/app/Models/Clientes/ClienteDireccionesModel.php
@@ -99,7 +99,7 @@ class ClienteDireccionesModel extends \App\Models\BaseModel
->table($this->table . " t1")
->select(
"t1.id AS id, t1.cliente_id AS cliente_id, t2.nombre as cliente_nombre, t1.att AS att, t1.alias AS alias,
- t1.email AS email, t1.direccion AS direccion, t1.pais_id AS pais_id, t3.nombre AS pais,
+ t1.email AS email, t1.direccion AS direccion, t1.pais_id AS pais_id, t3.nombre AS pais, t3.nombre AS pais,
t1.municipio AS municipio, t1.provincia AS provincia, t1.cp AS cp, t1.telefono AS telefono"
);
diff --git a/ci4/app/Models/Configuracion/MaquinaModel.php b/ci4/app/Models/Configuracion/MaquinaModel.php
index c1f5424b..159d5e02 100755
--- a/ci4/app/Models/Configuracion/MaquinaModel.php
+++ b/ci4/app/Models/Configuracion/MaquinaModel.php
@@ -330,7 +330,7 @@ class MaquinaModel extends \App\Models\BaseModel
->table($this->table . " t1")
->distinct('t1.id')
->select(
- "t1.id AS maquina_id, t1.nombre AS maquina, t1.ancho_impresion AS ancho_impresion,
+ "t1.id AS id, t1.id AS maquina_id, t1.nombre AS maquina, t1.nombre AS nombre, t1.ancho_impresion AS ancho_impresion,
t1.alto_impresion AS alto_impresion, t1.ancho AS ancho, t1.alto AS alto,
t1.is_rotativa AS is_rotativa, t1.is_inkjet AS is_inkjet, t1.alto_click AS alto_click, t1.velocidad AS velocidad,
t1.precio_tinta_negro AS precio_tinta_negro, t1.precio_tinta_color AS precio_tinta_color, t1.precio_tinta_cg AS precio_tinta_cg,
@@ -361,7 +361,7 @@ class MaquinaModel extends \App\Models\BaseModel
$builder->where("t2.uso", $uso_tarifa);
}
- return $builder->orderBy("t1.id", "asc")->get()->getResultObject();
+ return $builder;
}
diff --git a/ci4/app/Models/Configuracion/MaquinaTareaModel.php b/ci4/app/Models/Configuracion/MaquinaTareaModel.php
index 536b7fd9..b1f44991 100644
--- a/ci4/app/Models/Configuracion/MaquinaTareaModel.php
+++ b/ci4/app/Models/Configuracion/MaquinaTareaModel.php
@@ -3,6 +3,9 @@
namespace App\Models\Configuracion;
use App\Entities\Tarifas\Maquinas\TareaMaquinaEntity;
+use CodeIgniter\Database\BaseBuilder;
+use CodeIgniter\Database\MySQLi\Builder;
+use CodeIgniter\Database\Query;
use CodeIgniter\Model;
class MaquinaTareaModel extends Model
@@ -55,14 +58,19 @@ class MaquinaTareaModel extends Model
* @return array
*
*/
- public function getSelectQuery(?string $q = null) : array
+ public function getSelectQuery(?string $q = null): array
{
- $query = $this->builder()->select(["id","name","description"])
- ->where("deleted_at",null);
- if($q){
- $query->like("nombre",$q);
+ $query = $this->builder()->select(["id", "name", "description"])
+ ->where("deleted_at", null);
+ if ($q) {
+ $query->like("nombre", $q);
}
return $query->get()->getResultArray();
}
+ public function getQueryDatatable(): BaseBuilder
+ {
+ return $this->builder()->select(["id","name","description","created_at"])
+ ->where("deleted_at", null);
+ }
}
diff --git a/ci4/app/Models/Configuracion/MaquinasCallesModel.php b/ci4/app/Models/Configuracion/MaquinasCallesModel.php
index 817be4d3..df4538ef 100755
--- a/ci4/app/Models/Configuracion/MaquinasCallesModel.php
+++ b/ci4/app/Models/Configuracion/MaquinasCallesModel.php
@@ -42,7 +42,7 @@ class MaquinasCallesModel extends \App\Models\BaseModel
protected $validationRules = [
"formas" => [
- "rules" => "required|int",
+ "rules" => "required|integer",
],
"internas" => [
"rules" => "required|decimal",
diff --git a/ci4/app/Models/Configuracion/PapelGenericoModel.php b/ci4/app/Models/Configuracion/PapelGenericoModel.php
index 4f2d8cf9..41aa10d7 100755
--- a/ci4/app/Models/Configuracion/PapelGenericoModel.php
+++ b/ci4/app/Models/Configuracion/PapelGenericoModel.php
@@ -129,141 +129,225 @@ class PapelGenericoModel extends \App\Models\BaseModel
return empty($search)
? $builder
: $builder
- ->groupStart()
- ->like("t1.id", $search)
- ->orLike("t1.nombre", $search)
- ->orLike("t1.code", $search)
- ->orLike("t1.code_ot", $search)
- ->orLike("t1.id", $search)
- ->orLike("t1.nombre", $search)
- ->orLike("t1.code", $search)
- ->orLike("t1.code_ot", $search)
- ->groupEnd();
+ ->groupStart()
+ ->like("t1.id", $search)
+ ->orLike("t1.nombre", $search)
+ ->orLike("t1.code", $search)
+ ->orLike("t1.code_ot", $search)
+ ->orLike("t1.id", $search)
+ ->orLike("t1.nombre", $search)
+ ->orLike("t1.code", $search)
+ ->orLike("t1.code_ot", $search)
+ ->groupEnd();
}
- public function getPapelForComparador($tipo, $is_cubierta = false, $is_sobrecubierta = false, $rotativa = false, $is_guardas = false, $mostrar_cliente = null)
- {
+ public function getPapelForComparador(
+ $tipo,
+ $is_cubierta = false,
+ $is_sobrecubierta = false,
+ $rotativa = false,
+ $is_guardas = false,
+ $tapa_dura = false,
+ $POD = false,
+ $ancho = 0,
+ $alto = 0,
+ $tirada = 0
+ ) {
/*
1.-> Tipo impresion
2.-> Maquina
3.-> Papeles impresion asociados a esa maquina
4.-> papeles genericos que aparecen en esos papeles impresion
*/
+
+ if ($POD == true && ($tipo == 'color' || $tipo == 'negro')) {
+ if ($tipo == 'color')
+ $tipo = 'colorhq';
+ else if ($tipo == 'negro')
+ $tipo = 'negrohq';
+ }
+
$builder = $this->db
->table($this->table . " t1")
->select(
- "t1.id as id, t1.nombre AS nombre"
+ "t1.id as id, t1.nombre AS nombre",
// for debug, t2.nombre AS nombre_papel_impresion, t4.nombre AS maquina_nombre, t5.uso AS tarifa_uso, t5.tipo AS tarifa_tipo"
)
- ->distinct('t1.id')
- ->join("lg_papel_impresion t2", "t2.papel_generico_id = t1.id", "left")
- ->join("lg_maquina_papel_impresion t3", "t3.papel_impresion_id = t2.id", "left")
- ->join("lg_maquinas t4", "t3.maquina_id = t4.id", "left")
- ->join("lg_maquinas_tarifas_impresion t5", "t5.maquina_id = t4.id", "left")
+ ->join("lg_papel_impresion t2", "t2.papel_generico_id = t1.id", "inner")
+ ->join("lg_maquina_papel_impresion t3", "t3.papel_impresion_id = t2.id", "inner")
+ ->join("lg_maquinas t4", "t3.maquina_id = t4.id", "inner")
+ ->join("lg_maquinas_tarifas_impresion t5", "t5.maquina_id = t4.id", "inner")
->where("t1.is_deleted", 0)
+ ->where("t1.show_in_client", 1)
->where("t2.is_deleted", 0)
->where("t2.isActivo", 1)
->where("t3.active", 1)
->where("t4.is_deleted", 0)
->where("t4.tipo", "impresion")
+ ->where("t4.min <= ", $tirada)
+ ->where("t4.max >= ", $tirada)
->where("t5.is_deleted", 0)
- ->where("t5.tipo", $tipo);
+ ->where("t5.tipo", $tipo)
+ ->distinct('t1.id');
+
+ // Validación adicional para asegurar que t1.id esté presente en las combinaciones con t3.active = 1
+ $builder->whereIn("t1.id", function ($subQuery) {
+ $subQuery->select("t1_inner.id")
+ ->from("lg_papel_generico t1_inner")
+ ->join("lg_papel_impresion t2_inner", "t2_inner.papel_generico_id = t1_inner.id", "inner")
+ ->join("lg_maquina_papel_impresion t3_inner", "t3_inner.papel_impresion_id = t2_inner.id", "inner")
+ ->where("t3_inner.active", 1);
+ });
+
+ $builder->groupStart()
+ ->groupStart()
+ ->where("t4.ancho_impresion >", $ancho)
+ ->where("t4.alto_impresion >", $alto)
+ ->groupEnd()
+ ->orGroupStart()
+ ->where("t4.ancho_impresion >", $alto)
+ ->where("t4.alto_impresion >", $ancho)
+ ->groupEnd()
+ ->orGroupStart()
+ ->where("t4.ancho_impresion >", $alto)
+ ->where("t4.is_rotativa", 1)
+ ->groupEnd()
+ ->groupEnd();
if ($is_cubierta == true) {
-
$builder->where("t2.cubierta", 1);
$builder->where("t5.uso", 'cubierta');
- }
-
- if ($is_sobrecubierta == true) {
+ if ($tapa_dura == true) {
+ $builder->where("t2.use_for_tapa_dura", 1);
+ }
+ } else if ($is_sobrecubierta == true) {
$builder->where("t2.sobrecubierta", 1);
$builder->where("t5.uso", 'sobrecubierta');
- }
-
- if ($is_cubierta == false && $is_sobrecubierta == false) {
- $builder->where("t5.uso", 'interior');
- }
-
- if ($is_guardas == true) {
+ } else if ($is_guardas == true) {
$builder->where("t2.guardas", 1);
+ } else {
+ $builder->where("t2.interior", 1);
+ $builder->where("t5.uso", 'interior');
+ if ($tipo == 'negro' || $tipo == 'negrohq')
+ $builder->where("t2.bn", 1);
+ else if ($tipo == 'color' || $tipo == 'colorhq')
+ $builder->where("t2.color", 1);
}
- if ($rotativa == true) {
+ if ($tipo == 'colorhq' || $tipo == 'negrohq') {
+ $builder->where("t2.rotativa", 0);
+ } else if ($rotativa && $POD == false) {
$builder->where("t2.rotativa", 1);
+ } else if ($POD) {
+ $builder->where("t2.rotativa", 0);
}
- if ($mostrar_cliente != null) {
- $builder->where("t1.show_in_client", $mostrar_cliente);
- }
-
- $data = $builder->orderBy("t1.nombre", "asc")->get()->getResultObject();
- //var_dump($this->db->getLastQuery());
- return $data;
+ //$query = $this->db->getLastQuery();
+ return $builder;
}
- public function getGramajeComparador(string $papel_generico_nombre = "", $uso = "", $ejemplares = 0)
- {
- if ($uso == 'cubierta' || $uso == 'sobrecubierta')
- $tipo = 'colorhq';
- else
- $tipo = $uso; // color y colorhq valen para los dos
- if ($uso == 'bn')
- $tipo = "negro";
- if ($uso == 'bnhq')
- $tipo = "negrohq";
+ public function getGramajeForComparador(
+ $tipo,
+ $selected_papel_id,
+ $is_cubierta = false,
+ $is_sobrecubierta = false,
+ $rotativa = false,
+ $is_guardas = false,
+ $tapa_dura = false,
+ $POD = false,
+ $ancho = 0,
+ $alto = 0,
+ $tirada = 0
+ ) {
+ if ($POD == true && ($tipo == 'color' || $tipo == 'negro')) {
+ if ($tipo == 'color')
+ $tipo = 'colorhq';
+ else if ($tipo == 'negro')
+ $tipo = 'negrohq';
+ }
+
$builder = $this->db
->table($this->table . " t1")
->select(
- "t2.gramaje AS text"
+ "t2.gramaje as id, t2.gramaje as nombre",
+ // for debug, t2.nombre AS nombre_papel_impresion, t4.nombre AS maquina_nombre, t5.uso AS tarifa_uso, t5.tipo AS tarifa_tipo"
)
- ->join("lg_papel_impresion t2", "t2.papel_generico_id = t1.id", "left")
- ->join("lg_maquina_papel_impresion t3", "t3.papel_impresion_id = t2.id", "left")
- ->join("lg_maquinas t4", "t3.maquina_id = t4.id", "left")
- ->join("lg_maquinas_tarifas_impresion t5", "t5.maquina_id = t4.id", "left")
+ ->join("lg_papel_impresion t2", "t2.papel_generico_id = t1.id", "inner")
+ ->join("lg_maquina_papel_impresion t3", "t3.papel_impresion_id = t2.id", "inner")
+ ->join("lg_maquinas t4", "t3.maquina_id = t4.id", "inner")
+ ->join("lg_maquinas_tarifas_impresion t5", "t5.maquina_id = t4.id", "inner")
+ ->where("t1.id", $selected_papel_id)
->where("t1.is_deleted", 0)
+ ->where("t1.show_in_client", 1)
->where("t2.is_deleted", 0)
->where("t2.isActivo", 1)
->where("t3.active", 1)
->where("t4.is_deleted", 0)
+ ->where("t4.min <= ", $tirada)
+ ->where("t4.max >= ", $tirada)
->where("t4.tipo", "impresion")
+ ->where("t5.is_deleted", 0)
->where("t5.tipo", $tipo)
- ->where("t1.nombre", $papel_generico_nombre);
+ ->distinct('t2.gramaje');
- $uso_tarifa = 'interior';
+ // Validación adicional para asegurar que t1.id esté presente en las combinaciones con t3.active = 1
+ $builder->whereIn("t1.id", function ($subQuery) {
+ $subQuery->select("t1_inner.id")
+ ->from("lg_papel_generico t1_inner")
+ ->join("lg_papel_impresion t2_inner", "t2_inner.papel_generico_id = t1_inner.id", "inner")
+ ->join("lg_maquina_papel_impresion t3_inner", "t3_inner.papel_impresion_id = t2_inner.id", "inner")
+ ->where("t3_inner.active", 1);
+ });
- if ($uso == 'bn' || $uso == 'bnhq')
- $builder->where("t2.bn", 1);
- else if ($uso == 'color' || $uso == 'colorhq')
- $builder->where("t2.color", 1);
- else if ($uso == 'cubierta') {
- $uso_tarifa = 'cubierta';
+ $builder->groupStart()
+ ->groupStart()
+ ->where("t4.ancho_impresion >", $ancho)
+ ->where("t4.alto_impresion >", $alto)
+ ->groupEnd()
+ ->orGroupStart()
+ ->where("t4.ancho_impresion >", $alto)
+ ->where("t4.alto_impresion >", $ancho)
+ ->groupEnd()
+ ->orGroupStart()
+ ->where("t4.ancho_impresion >", $alto)
+ ->where("t4.is_rotativa", 1)
+ ->groupEnd()
+ ->groupEnd();
+
+ if ($is_cubierta == true) {
$builder->where("t2.cubierta", 1);
- } else if ($uso == 'sobrecubierta') {
- $uso_tarifa = 'sobrecubierta';
+ $builder->where("t5.uso", 'cubierta');
+ if ($tapa_dura == true) {
+ $builder->where("t2.use_for_tapa_dura", 1);
+ }
+ } else if ($is_sobrecubierta == true) {
$builder->where("t2.sobrecubierta", 1);
+ $builder->where("t5.uso", 'sobrecubierta');
+ } else if ($is_guardas == true) {
+ $builder->where("t2.guardas", 1);
+ } else {
+ $builder->where("t2.interior", 1);
+ $builder->where("t5.uso", 'interior');
+ if ($tipo == 'negro' || $tipo == 'negrohq')
+ $builder->where("t2.bn", 1);
+ else if ($tipo == 'color' || $tipo == 'colorhq')
+ $builder->where("t2.color", 1);
}
- $builder->where("t5.uso", $uso_tarifa);
-
- $builder->where("t4.min <=", $ejemplares);
- $builder->where("t4.max >=", $ejemplares);
-
- $values = $builder->orderBy("t2.gramaje", "asc")->get()->getResultObject();
- $id = 1;
- foreach ($values as $value) {
- $value->id = $id;
- $id++;
+ if ($tipo == 'colorhq' || $tipo == 'negrohq') {
+ $builder->where("t2.rotativa", 0);
+ } else if ($rotativa && $POD == false) {
+ $builder->where("t2.rotativa", 1);
+ } else if ($POD) {
+ $builder->where("t2.rotativa", 0);
}
- $values_array = array_map(function ($value) {
- return $value->text;
- }, $values);
- $unique_values = array_unique($values_array);
- return array_values(array_intersect_key($values, $unique_values));
+ //$query = $this->db->getLastQuery();
+ return $builder;
}
//tipo: negro, negrohq, color, colorhq
@@ -323,12 +407,20 @@ class PapelGenericoModel extends \App\Models\BaseModel
}, $values);
$unique_values = array_unique($values_array);
return array_values(array_intersect_key($values, $unique_values));
-
}
- public function getPapelCliente($tipo, $is_cubierta = false, $selected_papel_id = null, $tapa_dura = null, $papel_especial = false, $POD = null)
- {
+ public function getPapelCliente(
+ $tipo,
+ $is_cubierta = false,
+ $selected_papel_id = null,
+ $tapa_dura = null,
+ $papel_especial = false,
+ $POD = null,
+ $ancho = 0,
+ $alto = 0,
+ $tirada = 0
+ ) {
/*
1.-> Tipo impresion
2.-> Maquina
@@ -337,9 +429,9 @@ class PapelGenericoModel extends \App\Models\BaseModel
*/
if ($POD == true && ($tipo == 'color' || $tipo == 'negro')) {
- if($tipo == 'color')
+ if ($tipo == 'color')
$tipo = 'colorhq';
- else if($tipo == 'negro')
+ else if ($tipo == 'negro')
$tipo = 'negrohq';
}
@@ -363,6 +455,8 @@ class PapelGenericoModel extends \App\Models\BaseModel
->where("t2.use_in_client", 1)
->where("t3.active", 1)
->where("t4.is_deleted", 0)
+ ->where("t4.min <= ", $tirada)
+ ->where("t4.max >= ", $tirada)
->where("t4.tipo", "impresion")
->where("t5.is_deleted", 0)
->where("t5.tipo", $tipo)
@@ -386,6 +480,8 @@ class PapelGenericoModel extends \App\Models\BaseModel
->where("t2.use_in_client", 1)
->where("t3.active", 1)
->where("t4.is_deleted", 0)
+ ->where("t4.min <= ", $tirada)
+ ->where("t4.max >= ", $tirada)
->where("t4.tipo", "impresion")
->where("t5.is_deleted", 0)
->where("t5.tipo", $tipo)
@@ -400,10 +496,25 @@ class PapelGenericoModel extends \App\Models\BaseModel
->where("t3_inner.active", 1);
});
+ $builder->groupStart()
+ ->groupStart()
+ ->where("t4.ancho_impresion >", $ancho)
+ ->where("t4.alto_impresion >", $alto)
+ ->groupEnd()
+ ->orGroupStart()
+ ->where("t4.ancho_impresion >", $alto)
+ ->where("t4.alto_impresion >", $ancho)
+ ->groupEnd()
+ ->orGroupStart()
+ ->where("t4.ancho_impresion >", $alto)
+ ->where("t4.is_rotativa", 1)
+ ->groupEnd()
+ ->groupEnd();
+
if ($is_cubierta == true) {
$builder->where("t2.cubierta", 1);
$builder->where("t5.uso", 'cubierta');
- if($tapa_dura == true){
+ if ($tapa_dura == true) {
$builder->where("t2.use_for_tapa_dura", 1);
}
} else {
@@ -417,19 +528,16 @@ class PapelGenericoModel extends \App\Models\BaseModel
if ($papel_especial == true) {
$builder->where("t1.show_in_client_special", 1);
- }
- else{
+ } else {
$builder->where("t1.show_in_client_special", 0);
}
if ($tipo == 'colorhq' || $tipo == 'negrohq') {
$builder->where("t2.rotativa", 0);
- }
- else{
- if($POD == false){
+ } else {
+ if ($POD == false) {
$builder->where("t2.rotativa", 1);
- }
- else if ($POD == true){
+ } else if ($POD == true) {
$builder->where("t2.rotativa", 0);
}
}
diff --git a/ci4/app/Models/Configuracion/PapelImpresionModel.php b/ci4/app/Models/Configuracion/PapelImpresionModel.php
index de9473b9..3625daa7 100755
--- a/ci4/app/Models/Configuracion/PapelImpresionModel.php
+++ b/ci4/app/Models/Configuracion/PapelImpresionModel.php
@@ -279,8 +279,15 @@ class PapelImpresionModel extends \App\Models\BaseModel
//tipo: negro, negrohq, color, colorhq
//uso: interior, rotativa, cubierta, sobrecubierta
- public function getPapelesImpresionForMenu($papel_generico = null, $gramaje = null, $tipo = null, $uso = "")
- {
+ public function getPapelesImpresionForMenu(
+ $papel_generico = null,
+ $gramaje = null,
+ $tipo = null,
+ $uso = "",
+ $tapaDura = false,
+ $forInkjet = false
+ ) {
+
$builder = $this->db
->table($this->table . " t1")
->distinct("t1.id")
@@ -289,7 +296,7 @@ class PapelImpresionModel extends \App\Models\BaseModel
->join("lg_maquinas t4", "t3.maquina_id = t4.id", "left")
->join("lg_maquinas_tarifas_impresion t5", "t4.id = t5.maquina_id", "left")
->select(
- "t1.id AS id, t1.nombre AS text"
+ "t1.id AS id, t1.nombre AS nombre"
);
$builder->where("t1.is_deleted", 0);
@@ -304,24 +311,31 @@ class PapelImpresionModel extends \App\Models\BaseModel
$builder->where("t2.id", $papel_generico);
$builder->where("t1.gramaje", $gramaje);
- if ($uso == 'cubierta')
+ if ($uso == 'cubierta') {
+ if ($tapaDura)
+ $builder->where("t1.use_for_tapa_dura", 1);
$builder->where("t1.cubierta", 1);
- else if ($uso == 'sobrecubierta')
+ } else if ($uso == 'sobrecubierta')
$builder->where("t1.sobrecubierta", 1);
else if ($uso == 'guardas')
$builder->where("t1.guardas", 1);
else {
+ $builder->where("t1.interior", 1);
if ($tipo == 'negro' || $tipo == 'negrohq')
$builder->where("t1.bn", 1);
else if ($tipo == 'color' || $tipo == 'colorhq')
$builder->where("t1.color", 1);
}
- if ($uso == 'rotativa')
+ if ($uso == 'rotativa') {
$builder->where("t1.rotativa", 1);
- else
+ $builder->where("t4.is_rotativa", 1);
+ } else
$builder->where("t1.rotativa", 0);
- return $builder->orderBy("t1.id", "asc")->get()->getResultObject();
+ if ($forInkjet)
+ $builder->where("t1.inkjet", 1);
+
+ return $builder;
}
public function getNombre($id)
@@ -355,5 +369,5 @@ class PapelImpresionModel extends \App\Models\BaseModel
return "";
}
-
+
}
diff --git a/ci4/app/Models/Presupuestos/PresupuestoAcabadosModel.php b/ci4/app/Models/Presupuestos/PresupuestoAcabadosModel.php
index c0dcf401..410f3117 100755
--- a/ci4/app/Models/Presupuestos/PresupuestoAcabadosModel.php
+++ b/ci4/app/Models/Presupuestos/PresupuestoAcabadosModel.php
@@ -72,25 +72,37 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
$tarifa_value = $modelTarifa->getTarifaPresupuestoAcabado($tarifa_acabado_id, $tirada, $proveedor_id);
if (count($tarifa_value)>0) {
- $result_data = $this->calcularTarifa($tarifa_value[0], $tirada, $POD<$tirada?false:true);
- $ret_array[] = (object)[
- 'tarifa_id'=> $tarifa_value[0]->tarifa_acabado_id,
- 'tarifa_nombre'=> $tarifa_value[0]->tarifa_acabado_nombre,
- 'precio_unidad'=> $result_data[0],
- 'total'=> $result_data[1],
- 'margen'=> $result_data[2],
- 'proveedor' => $tarifa_value[0]->proveedor_nombre,
- 'proveedor_id' => $tarifa_value[0]->proveedor_id,
- ];
+ $ret_array = [];
+ foreach ($tarifa_value as $tarifa) {
+ $result_data = $this->calcularTarifa($tarifa, $tirada, $POD<$tirada?false:true);
+ array_push($ret_array, (object)[
+ 'tarifa_id'=> $tarifa->tarifa_acabado_id,
+ 'tarifa_nombre'=> $tarifa->tarifa_acabado_nombre,
+ 'nombre'=> $tarifa->tarifa_acabado_nombre,
+ 'precio_unidad'=> round($result_data[0], 2),
+ 'total'=> round($result_data[1], 2),
+ 'precio_total'=> round($result_data[1], 2),
+ 'margen'=> $result_data[2],
+ 'proveedor' => $tarifa->proveedor_nombre,
+ 'proveedor_id' => $tarifa->proveedor_id,
+ ]);
+ }
+ usort($ret_array, function($a, $b) {
+ return $a->precio_total <=> $b->precio_total;
+ });
return $ret_array;
}
else{
$ret_array[] = (object)[
'tarifa_id'=> $tarifa_acabado_id,
'tarifa_nombre'=> $modelTarifa->getNombreTarifaAcabado($tarifa_acabado_id)[0]->nombre,
+ 'nombre'=> $modelTarifa->getNombreTarifaAcabado($tarifa_acabado_id)[0]->nombre,
'precio_unidad' => 0,
+ 'total' => 0,
+ 'precio_total' => 0,
'margen' => 0,
- 'total'=> 0,
+ 'proveedor' => '',
+ 'proveedor_id' => 0,
];
return $ret_array;
}
@@ -194,7 +206,7 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
$builder = $this->db
->table($this->table . " t1")
->select(
- "t1.id AS id, t1.tarifa_acabado_id AS tarifa_acabado_id, t1.precio_unidad AS precio_unidad,
+ "t1.id AS id, t1.tarifa_acabado_id AS tarifa_acabado_id, t1.tarifa_acabado_id AS tarifa_id, t1.precio_unidad AS precio_unidad,
t1.precio_total AS precio_total, t1.margen AS margen, t2.nombre AS nombre, t1.cubierta AS cubierta, t1.sobrecubierta AS sobrecubierta,
t1.proveedor_id AS proveedor_id, t3.nombre AS proveedor,"
);
diff --git a/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php b/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php
index 7ce6c1c4..b4360ea1 100755
--- a/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php
+++ b/ci4/app/Models/Presupuestos/PresupuestoEncuadernacionesModel.php
@@ -84,9 +84,11 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$datos = [
'tarifa_id'=> $tarifa['tarifa_id'],
'tarifa_nombre'=> $tarifa_proveedor->tarifa_enc_nombre,
+ 'nombre'=> $tarifa_proveedor->tarifa_enc_nombre,
'precio_unidad'=> $result_data[0],
'tiempo' => $tiempo,
'total'=> $result_data[1],
+ 'precio_total'=> $result_data[1],
'margen' => $result_data[2],
'proveedor' => $tarifa_proveedor->proveedor_nombre,
'proveedor_id' => $tarifa_proveedor->proveedor_id,
@@ -117,10 +119,12 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
(object)[
'tarifa_id'=> $tarifa['tarifa_id'],
'tarifa_nombre'=> $tarifa['tarifa_nombre'],
+ 'nombre'=> $tarifa['tarifa_nombre'],
'proveedor' => lang('Presupuestos.no_disponible'),
'precio_unidad'=> 0,
'tiempo' => null,
'total'=> 0,
+ 'precio_total'=> 0,
'margen' => 0,
]);
}
@@ -135,9 +139,11 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
array_push($result_array, (object)[
'tarifa_id'=> $tarifa_proveedor->tarifa_enc_id,
'tarifa_nombre'=> $tarifa_proveedor->tarifa_enc_nombre,
+ 'nombre'=> $tarifa_proveedor->tarifa_enc_nombre,
'precio_unidad'=> $result_data[0],
'tiempo' => null,
'total'=> $result_data[1],
+ 'precio_total'=> $result_data[1],
'margen'=> $result_data[2],
'proveedor' => $tarifa_proveedor->proveedor_nombre,
'proveedor_id' => $tarifa_proveedor->proveedor_id,
@@ -159,10 +165,12 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
(object)[
'tarifa_id'=> $tarifa['tarifa_id'] ,
'tarifa_nombre'=> $tarifa['tarifa_nombre'],
+ 'nombre'=> $tarifa['tarifa_nombre'],
'proveedor' => lang('Presupuestos.no_disponible'),
'precio_unidad'=> 0,
'tiempo' => null,
'total'=> 0,
+ 'precio_total'=> 0,
'margen' => 0,
]);
}
@@ -173,17 +181,17 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
}
- public function getProveedoresForSelector($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto){
+ public function getProveedoresForSelector($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $paginasCuadernillo = 32){
$proveedores = [];
$modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel');
- $tiempo = $this->calcularTiempo(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos
-
if($modelTarifa->isTarifaPorHoras($tarifa_encuadernacion_id)){
+ $tiempo = $this->calcularTiempoCosido(16, $paginas, $tirada, $paginasCuadernillo); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacionHoras($tarifa_encuadernacion_id, $tiempo, $tirada);
}
else{
+ $tiempo = $this->calcularTiempo(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto);
}
if (count($tarifa_value)>0) {
@@ -215,9 +223,11 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
array_push($ret_array, (object)[
'tarifa_id'=> $tarifa->tarifa_enc_id,
'tarifa_nombre'=> $tarifa->tarifa_enc_nombre,
+ 'nombre'=> $tarifa->tarifa_enc_nombre,
'precio_unidad'=> $result_data[0],
'tiempo' => null,
'total'=> $result_data[1],
+ 'precio_total'=> $result_data[1],
'margen'=> $result_data[2],
'proveedor' => $tarifa->proveedor_nombre,
'proveedor_id' => $tarifa->proveedor_id,
@@ -237,10 +247,12 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$ret_array[] = (object)[
'tarifa_id'=> $tarifa_encuadernacion_id,
'tarifa_nombre'=> $modelTarifa->getNombreTarifaEncuadernacion($tarifa_encuadernacion_id)[0]->nombre,
+ 'nombre'=> $modelTarifa->getNombreTarifaEncuadernacion($tarifa_encuadernacion_id)[0]->nombre,
'proveedor' => lang('Presupuestos.no_disponible'),
'precio_unidad'=> 0,
'tiempo' => null,
'total'=> 0,
+ 'precio_total'=> 0,
'margen'=> 0,
];
return $ret_array;
@@ -286,9 +298,11 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
(object)[
'tarifa_id'=> $tarifa_proveedor->tarifa_enc_id,
'tarifa_nombre'=> $tarifa_proveedor->tarifa_enc_nombre,
+ 'nombre'=> $tarifa_proveedor->tarifa_enc_nombre,
'precio_unidad'=> $result_data[0],
'tiempo' => $tiempo,
'paginas_por_cuadernillo' => $paginas_cuadernillo,
+ 'precio_total'=> $result_data[1],
'total'=> $result_data[1],
'margen' => $result_data[2],
'proveedor' => $tarifa_proveedor->proveedor_nombre,
@@ -310,11 +324,13 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$ret_array[] = (object)[
'tarifa_id'=> $tarifa_encuadernacion_id,
'tarifa_nombre'=> $modelTarifa->getNombreTarifaEncuadernacion($tarifa_encuadernacion_id)[0]->nombre,
+ 'nombre'=> $modelTarifa->getNombreTarifaEncuadernacion($tarifa_encuadernacion_id)[0]->nombre,
'proveedor' => lang('Presupuestos.no_disponible'),
'precio_unidad'=> 0,
'tiempo' => null,
'paginas_por_cuadernillo' => null,
'total'=> 0,
+ 'precio_total'=> 0,
'margen' => 0,
];
return $ret_array;
diff --git a/ci4/app/Models/Presupuestos/PresupuestoManipuladosModel.php b/ci4/app/Models/Presupuestos/PresupuestoManipuladosModel.php
index 8612e8a4..72211db4 100755
--- a/ci4/app/Models/Presupuestos/PresupuestoManipuladosModel.php
+++ b/ci4/app/Models/Presupuestos/PresupuestoManipuladosModel.php
@@ -50,28 +50,37 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
$modelTarifa = model('App\Models\Tarifas\TarifaManipuladoModel');
$tarifa_value = $modelTarifa->getTarifaPresupuestoManipulado($tarifa_manipulado_id, $tirada);
if (count($tarifa_value)>0) {
+ $ret_array = [];
+ foreach($tarifa_value as $tarifa){
+ $result_data = $this->calcularTarifa($tarifa, $tirada, $POD<$tirada?false:true);
+ array_push($ret_array, (object)[
+ 'tarifa_id'=> $tarifa->tarifa_manipulado_id,
+ 'tarifa_nombre'=> $tarifa->tarifa_manipulado_nombre,
+ 'nombre'=> $tarifa->tarifa_manipulado_nombre,
+ 'precio_unidad'=> $result_data[0],
+ 'total'=> $result_data[1],
+ 'precio_total'=> $result_data[1],
+ 'margen' => $result_data[2],
+ ]);
+ }
+
+ usort($ret_array, function($a, $b) {
+ return $a->precio_total <=> $b->precio_total;
+ });
- $result_data = $this->calcularTarifa($tarifa_value[0], $tirada, $POD<$tirada?false:true);
- $ret_array[] = (object)[
- 'tarifa_id'=> $tarifa_value[0]->tarifa_manipulado_id,
- 'tarifa_nombre'=> $tarifa_value[0]->tarifa_manipulado_nombre,
- 'precio_unidad'=> $result_data[0],
- 'total'=> $result_data[1],
- 'margen' => $result_data[2],
- ];
return $ret_array;
}
else{
$ret_array[] = (object)[
'tarifa_id'=> $tarifa_manipulado_id,
'tarifa_nombre'=> $modelTarifa->getNombreTarifaManipulado($tarifa_manipulado_id)[0]->nombre,
+ 'nombre'=> $modelTarifa->getNombreTarifaManipulado($tarifa_manipulado_id)[0]->nombre,
'precio_unidad' => 0,
'total'=> 0,
'margen' => 0,
];
return $ret_array;
}
- return [];
}
private function calcularTarifa($tarifa, $tirada, $is_POD=false){
@@ -170,8 +179,10 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
array_push($tarifas, (object)[
'tarifa_id'=> $tarifa_value[0]->tarifa_manipulado_id,
'tarifa_nombre'=> $tarifa_value[0]->tarifa_manipulado_nombre,
+ 'nombre'=> $tarifa_value[0]->tarifa_manipulado_nombre,
'precio_unidad'=> $result_data[0],
'total'=> $result_data[1],
+ 'precio_total'=> $result_data[1],
'margen'=> $result_data[2],
]);
}
@@ -180,8 +191,10 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
(object)[
'tarifa_id'=> $tarifa['tarifa_id'] ,
'tarifa_nombre'=> $tarifa['tarifa_nombre'],
+ 'nombre'=> $tarifa['tarifa_nombre'],
'precio_unidad' => 0,
'total'=> 0,
+ 'precio_total'=> 0,
'margen' => 0,
]);
}
diff --git a/ci4/app/Models/Presupuestos/PresupuestoModel.php b/ci4/app/Models/Presupuestos/PresupuestoModel.php
index 135efbc2..f515e833 100755
--- a/ci4/app/Models/Presupuestos/PresupuestoModel.php
+++ b/ci4/app/Models/Presupuestos/PresupuestoModel.php
@@ -54,7 +54,6 @@ class PresupuestoModel extends \App\Models\BaseModel
"retractilado",
"retractilado5",
"guardas",
- "faja_color",
"recoger_en_taller",
"ferro",
"ferro_digital",
@@ -76,6 +75,9 @@ class PresupuestoModel extends \App\Models\BaseModel
"solapas_ancho",
"solapas_sobrecubierta",
"solapas_ancho_sobrecubierta",
+ "solapas_ancho_faja_color",
+ "faja_color",
+ "alto_faja_color",
"cosido",
"sobrecubiertas",
"sobrecubiertas_ancho",
@@ -85,6 +87,7 @@ class PresupuestoModel extends \App\Models\BaseModel
"comentarios_safekat",
"comentarios_pdf",
"comentarios_tarifa",
+ "comentarios_presupuesto",
"comentarios_produccion",
"lomo_cubierta",
"lomo_sobrecubierta",
@@ -132,6 +135,7 @@ class PresupuestoModel extends \App\Models\BaseModel
'paginasCuadernillo',
'lomo_redondo',
'cabezada',
+ 'envio_base',
];
protected $returnType = "App\Entities\Presupuestos\PresupuestoEntity";
@@ -412,6 +416,7 @@ class PresupuestoModel extends \App\Models\BaseModel
'ferro_digital' => $data['ferro_digital'] ? 1 : 0,
'marcapaginas' => $data['marcapaginas'] ? 1 : 0,
'prototipo' => $data['prototipo'] ? 1 : 0,
+ 'envio_base' => $data['envio_base'],
'papel_formato_id' => is_null($papel_formato_id) ? 0 : $papel_formato_id->id,
'papel_formato_personalizado' => !$papel_formato_id ? 1 : 0,
'papel_formato_ancho' => !$papel_formato_id ? $data['tamanio']['ancho'] : null,
@@ -557,7 +562,7 @@ class PresupuestoModel extends \App\Models\BaseModel
// -- SOBRECUBIERTA --
if ($data['sobrecubierta']) {
$values['sobrecubierta'] = array(
- 'papel_id' => intval($data['sobrecubierta']['papel']),
+ 'papel_id' => intval($data['sobrecubierta']['papel']['id']),
'gramaje' => intval($data['sobrecubierta']['gramaje']),
'imprimir' => 1,
);
diff --git a/ci4/app/Models/Presupuestos/PresupuestoPreimpresionesModel.php b/ci4/app/Models/Presupuestos/PresupuestoPreimpresionesModel.php
index a2828855..f59520ea 100755
--- a/ci4/app/Models/Presupuestos/PresupuestoPreimpresionesModel.php
+++ b/ci4/app/Models/Presupuestos/PresupuestoPreimpresionesModel.php
@@ -51,19 +51,30 @@ class PresupuestoPreimpresionesModel extends \App\Models\BaseModel
$tarifa_value = $modelTarifa->getTarifaPresupuestoPreimpresion($tarifa_preimpresion_id);
if (count($tarifa_value)>0) {
- $result_data = $this->calcularTarifa($tarifa_value[0]);
- $ret_array[] = (object)[
- 'tarifa_id'=> $tarifa_value[0]->tarifa_preimpresion_id,
- 'tarifa_nombre'=> $tarifa_value[0]->tarifa_preimpresion_nombre,
- 'precio'=> $result_data[0],
- 'margen'=> $result_data[1],
- ];
+
+ $ret_array = [];
+ foreach ($tarifa_value as $tarifa) {
+ $result_data = $this->calcularTarifa($tarifa);
+ array_push($ret_array, (object)[
+ 'tarifa_id'=> $tarifa->tarifa_preimpresion_id,
+ 'tarifa_nombre'=> $tarifa->tarifa_preimpresion_nombre,
+ 'nombre'=> $tarifa->tarifa_preimpresion_nombre,
+ 'precio'=> $result_data[0],
+ 'margen'=> $result_data[1],
+ ]);
+ }
+
+ usort($ret_array, function($a, $b) {
+ return $a->precio <=> $b->precio;
+ });
+
return $ret_array;
}
else{
$ret_array[] = (object)[
'tarifa_id'=> $tarifa_preimpresion_id,
'tarifa_nombre'=> $modelTarifa->getNombreTarifaPreimpresion($tarifa_preimpresion_id)[0]->nombre,
+ 'nombre'=> $modelTarifa->getNombreTarifaPreimpresion($tarifa_preimpresion_id)[0]->nombre,
'precio' => 0,
'margen' => 0,
];
@@ -146,7 +157,7 @@ class PresupuestoPreimpresionesModel extends \App\Models\BaseModel
$builder = $this->db
->table($this->table . " t1")
->select(
- "t1.id AS id, t1.tarifa_preimpresion_id AS tarifa_preimpresion_id, t1.precio AS precio, t1.margen AS margen, t2.nombre AS nombre"
+ "t1.id AS id, t1.tarifa_preimpresion_id AS tarifa_preimpresion_id, t1.tarifa_preimpresion_id AS tarifa_id, t1.precio AS precio, t1.margen AS margen, t2.nombre AS nombre"
);
$builder->where('t1.presupuesto_id', $presupuesto_id);
diff --git a/ci4/app/Models/Presupuestos/PresupuestoServiciosExtraModel.php b/ci4/app/Models/Presupuestos/PresupuestoServiciosExtraModel.php
index 75e9b1ef..f7141ebb 100755
--- a/ci4/app/Models/Presupuestos/PresupuestoServiciosExtraModel.php
+++ b/ci4/app/Models/Presupuestos/PresupuestoServiciosExtraModel.php
@@ -50,19 +50,27 @@ class PresupuestoServiciosExtraModel extends \App\Models\BaseModel
$tarifa_value = $modelTarifa->getTarifaPresupuestoExtra($tarifa_extra_id);
if (count($tarifa_value)>0) {
- $result_data = $this->calcularTarifa($tarifa_value[0]);
- $ret_array[] = (object)[
- 'tarifa_id'=> $tarifa_value[0]->tarifa_extra_id,
- 'tarifa_nombre'=> $tarifa_value[0]->tarifa_extra_nombre,
- 'precio'=> $result_data[0],
- 'margen'=> $result_data[1],
- ];
+ $ret_array = [];
+ foreach($tarifa_value as $tarifa){
+ $result_data = $this->calcularTarifa($tarifa);
+ array_push($ret_array, (object)[
+ 'tarifa_id'=> $tarifa->tarifa_extra_id,
+ 'tarifa_nombre'=> $tarifa->tarifa_extra_nombre,
+ 'nombre'=> $tarifa->tarifa_extra_nombre,
+ 'precio'=> $result_data[0],
+ 'margen'=> $result_data[1],
+ ]);
+ }
+ usort($ret_array, function($a, $b) {
+ return $a->precio <=> $b->precio;
+ });
return $ret_array;
}
else{
$ret_array[] = (object)[
'tarifa_id'=> $tarifa_extra_id,
'tarifa_nombre'=> $modelTarifa->getNombreTarifaExtra($tarifa_extra_id)[0]->nombre,
+ 'tarifa'=> $modelTarifa->getNombreTarifaExtra($tarifa_extra_id)[0]->nombre,
'precio' => 0,
'margen' => 0,
];
diff --git a/ci4/app/Models/Tarifas/TarifaEnvioModel.php b/ci4/app/Models/Tarifas/TarifaEnvioModel.php
index c5348c6e..c73aff07 100755
--- a/ci4/app/Models/Tarifas/TarifaEnvioModel.php
+++ b/ci4/app/Models/Tarifas/TarifaEnvioModel.php
@@ -98,11 +98,13 @@ class TarifaEnvioModel extends \App\Models\BaseModel
// Si el pais es españa se tienen que tener en cuenta los postales
// Se busca primero la tarifa a la que corresponde
$builder = $this->db->table($this->table . " t1")
- ->select("t1.id AS tarifa_envio_id, t2.importe_fijo as importe_fijo")
+ ->select("t1.id AS tarifa_envio_id, t2.importe_fijo as importe_fijo, t3.nombre as pais")
->join("tarifas_envios_zonas t2", "t1.id = t2.tarifa_envio_id")
+ ->join("lg_paises t3", "t1.pais_id = t3.id")
->where("t1.pais_id", $paisId)
->where("t1.is_deleted", 0)
->where("t2.is_deleted", 0);
+
if ($paisId == 1) { // España
$builder->where("CAST(t2.cp_inicial AS UNSIGNED)<=", intval($cp))
@@ -117,10 +119,12 @@ class TarifaEnvioModel extends \App\Models\BaseModel
$precio_tarifas = $model->getEnvioPrecio($tarifa->tarifa_envio_id, $peso, $tipo_envio);
foreach ($precio_tarifas as $precio_tarifa) {
$precio_tarifa->importe_fijo = $tarifa->importe_fijo;
+ $precio_tarifa->pais = $tarifa->pais;
array_push($resultado, $precio_tarifa);
}
}
+
return $resultado;
}
}
diff --git a/ci4/app/Models/Usuarios/UserModel.php b/ci4/app/Models/Usuarios/UserModel.php
index a4748d14..d4e2d993 100755
--- a/ci4/app/Models/Usuarios/UserModel.php
+++ b/ci4/app/Models/Usuarios/UserModel.php
@@ -20,14 +20,13 @@ class UserModel extends \App\Models\BaseModel
protected $allowedFields = [
"username",
- "email",
"first_name",
"last_name",
"client_id",
"status",
"status_message",
"active",
- "country",
+ "comments",
"last_active",
"created_at",
"updated_at",
@@ -39,143 +38,25 @@ class UserModel extends \App\Models\BaseModel
protected $validationRules = [
- "address" => [
- "label" => "Users.address",
- "rules" => "trim|max_length[255]",
- ],
- "blocked" => [
- "label" => "Users.blocked",
- "rules" => "required|permit_empty",
- ],
- "city" => [
- "label" => "Users.city",
- "rules" => "trim|max_length[255]",
- ],
- "country" => [
- "label" => "Users.country",
- "rules" => "trim|max_length[2]",
- ],
- "date_birth" => [
- "label" => "Users.dateBirth",
- "rules" => "valid_date|permit_empty",
- ],
- "email" => [
- "label" => "Users.email",
- "rules" => "trim|required|max_length[150]|valid_email",
- ],
- "email_confirmed" => [
- "label" => "Users.emailConfirmed",
- "rules" => "required|integer",
- ],
"first_name" => [
"label" => "Users.firstName",
"rules" => "trim|max_length[150]",
],
- "language" => [
- "label" => "Users.language",
- "rules" => "trim|max_length[10]",
- ],/*
- "last_access" => [
- "label" => "Users.lastAccess",
- "rules" => "valid_date",
- ],*/
- "last_ip" => [
- "label" => "Users.lastIp",
- "rules" => "max_length[50]",
- ],
"last_name" => [
"label" => "Users.lastName",
"rules" => "trim|max_length[150]",
],
- "mobile" => [
- "label" => "Users.mobile",
- "rules" => "trim|max_length[50]",
- ],
- "password" => [
- "label" => "Users.password",
- "rules" => "required|max_length[35]",
- ],
- "picture" => [
- "label" => "Users.picture",
- "rules" => "trim|max_length[150]",
- ],
- "state" => [
- "label" => "Users.state",
- "rules" => "trim|max_length[255]",
- ],
- "zip_code" => [
- "label" => "Users.zipCode",
- "rules" => "trim|max_length[50]",
- ],
];
protected $validationMessages = [
- "address" => [
- "max_length" => "Users.validation.address.max_length",
- ],
-
- "blocked" => [
- "required" => "Users.validation.email_confirmed.required",
- ],
- "city" => [
- "max_length" => "Users.validation.city.max_length",
- ],
- "country" => [
- "max_length" => "Users.validation.country.max_length",
- "required" => "Users.validation.country.required",
- ],
- "date_birth" => [
- "valid_date" => "Users.validation.date_birth.valid_date",
- ],
- "email" => [
- "max_length" => "Users.validation.email.max_length",
- "required" => "Users.validation.email.required",
- "valid_email" => "Users.validation.email.valid_email",
- ],
- "email_confirmed" => [
- "integer" => "Users.validation.email_confirmed.integer",
- "required" => "Users.validation.email_confirmed.required",
- ],
"first_name" => [
"max_length" => "Users.validation.first_name.max_length",
"required" => "Users.validation.first_name.required",
],
-
- "language" => [
- "max_length" => "Users.validation.language.max_length",
- "required" => "Users.validation.language.required",
- ],
- "last_access" => [
- "required" => "Users.validation.last_access.required",
- "valid_date" => "Users.validation.last_access.valid_date",
- ],
- "last_ip" => [
- "max_length" => "Users.validation.last_ip.max_length",
- "required" => "Users.validation.last_ip.required",
- ],
"last_name" => [
"max_length" => "Users.validation.last_name.max_length",
"required" => "Users.validation.last_name.required",
- ],
- "mobile" => [
- "max_length" => "Users.validation.mobile.max_length",
- "required" => "Users.validation.mobile.required",
- ],
- "password" => [
- "max_length" => "Users.validation.password.max_length",
- "required" => "Users.validation.password.required",
- ],
- "picture" => [
- "max_length" => "Users.validation.picture.max_length",
- "required" => "Users.validation.picture.required",
- ],
- "state" => [
- "max_length" => "Users.validation.state.max_length",
- "required" => "Users.validation.state.required",
- ],
- "zip_code" => [
- "max_length" => "Users.validation.zip_code.max_length",
- ],
+ ],
];
public function getGroupsTitles($user_token){
diff --git a/ci4/app/Services/MaquinaService.php b/ci4/app/Services/MaquinaService.php
new file mode 100644
index 00000000..05737527
--- /dev/null
+++ b/ci4/app/Services/MaquinaService.php
@@ -0,0 +1,84 @@
+maquinaModel = model(MaquinaModel::class);
+ $this->maquinaDefectoModel = model(MaquinasDefectoModel::class);
+ $this->maquinaCalleModel = model(MaquinasCallesModel::class);
+ $this->maquinaPapelesImpresionModel = model(MaquinasPapelesImpresionModel::class);
+ $this->maquinaTarifaImpresionModel = model(MaquinasTarifasImpresionModel::class);
+
+
+ }
+ public function setMaquina(int $maquina_id): self
+ {
+ $this->maquina = $this->maquinaModel->find($maquina_id);
+ return $this;
+ }
+ public function duplicate(string $newName): ?Maquina
+ {
+
+ $maquina_array = $this->maquina->toArray();
+ $maquina_array['nombre'] = $newName;
+ $maquinaDuplicatedId = $this->maquinaModel->insert($maquina_array);
+ $maquinaWithAllRelations = $this->maquina->withAll()->toArray();
+
+ $maquina_defecto = $maquinaWithAllRelations['maquina_defecto'];
+ $maquina_papeles_impresion = $maquinaWithAllRelations['papeles_impresion'];
+ $maquina_calles = $maquinaWithAllRelations['maquina_calles'];
+ $maquina_tarifas_impresion = $maquinaWithAllRelations['tarifas_impresion'];
+
+
+ foreach ($maquina_defecto as $md)
+ {
+ unset($md['id']);
+ $md['maquina_id'] = $maquinaDuplicatedId;
+ $this->maquinaDefectoModel->insert($md);
+
+ }
+ foreach ($maquina_papeles_impresion as $mpi)
+ {
+ unset($mpi['id']);
+ $mpi['maquina_id'] = $maquinaDuplicatedId;
+ $this->maquinaPapelesImpresionModel->insert($mpi);
+ }
+ foreach ($maquina_calles as $mc)
+ {
+ unset($mc['id']);
+ $mc['maquina_id'] = $maquinaDuplicatedId;
+ $this->maquinaCalleModel->insert($mc);
+ }
+ foreach ($maquina_tarifas_impresion as $mti)
+ {
+ unset($mti['id']);
+ $mti['maquina_id'] = $maquinaDuplicatedId;
+ $this->maquinaTarifaImpresionModel->insert($mti);
+ }
+ return $this->maquinaModel->find($maquinaDuplicatedId)->withAll();
+ }
+}
diff --git a/ci4/app/Services/PapelImpresionService.php b/ci4/app/Services/PapelImpresionService.php
new file mode 100644
index 00000000..3ba1393a
--- /dev/null
+++ b/ci4/app/Services/PapelImpresionService.php
@@ -0,0 +1,76 @@
+papelImpresionModel = model(PapelImpresionModel::class);
+ $this->papelImpresionModel = model(PapelImpresionModel::class);
+ $this->papelImpresionMargenModel = model(PapelImpresionMargenModel::class);
+ $this->papelImpresionTipologiaModel = model(PapelImpresionTipologiaModel::class);
+ $this->papelImpresionMaquinaModel = model(MaquinasPapelesImpresionModel::class);
+ }
+ public function setPapelImpresionEntity(PapelImpresion $papelImpresionEntity): self
+ {
+ $this->papelImpresion = $papelImpresionEntity;
+ return $this;
+ }
+ public function duplicate(string $newName): ?PapelImpresion
+ {
+ $papelImpresionRow = $this->papelImpresion?->toArray();
+ $papelImpresionMargenes = $this->papelImpresion->margen();
+ $papelImpresionTipologias = $this->papelImpresion->tipologia();
+ $papelImpresionMaquinas = $this->papelImpresion->maquinas_impresion();
+
+ $papelImpresionRow['nombre'] = $newName;
+ if ($this->papelImpresion) {
+ unset($papelImpresionRow["id"]);
+ $papelImpresionDuplicatedId = $this->papelImpresionModel->insert($papelImpresionRow);
+ }
+ if ($papelImpresionMargenes) {
+ foreach ($papelImpresionMargenes as $papelImpresionMargen) {
+ unset($papelImpresionMargen["id"]);
+ $papelImpresionMargen['papel_impresion_id'] = $papelImpresionDuplicatedId;
+ $this->papelImpresionMargenModel->insert($papelImpresionMargen);
+ }
+ }
+ if ($papelImpresionTipologias) {
+ foreach ($papelImpresionTipologias as $papelImpresionTipologia) {
+ unset($papelImpresionTipologia["id"]);
+ $papelImpresionTipologia['papel_impresion_id'] = $papelImpresionDuplicatedId;
+ $this->papelImpresionTipologiaModel->insert($papelImpresionTipologia);
+ }
+ }
+ if ($papelImpresionMaquinas) {
+ foreach ($papelImpresionMaquinas as $papelImpresionMaquina) {
+ unset($papelImpresionMaquina["id"]);
+ $papelImpresionMaquina['papel_impresion_id'] = $papelImpresionDuplicatedId;
+ $this->papelImpresionMaquinaModel->insert($papelImpresionMaquina);
+ }
+ }
+ $papelImpresionDuplicated = $this->papelImpresionModel->find($papelImpresionDuplicatedId);
+ return $papelImpresionDuplicated;
+ }
+}
diff --git a/ci4/app/Services/PresupuestoClienteService.php b/ci4/app/Services/PresupuestoClienteService.php
index 2868f4bf..17c4acc8 100644
--- a/ci4/app/Services/PresupuestoClienteService.php
+++ b/ci4/app/Services/PresupuestoClienteService.php
@@ -65,7 +65,7 @@ class PresupuestoClienteService extends BaseService
}
}
- public static function obtenerCubierta($data)
+ public static function obtenerCubierta($data, $return_raw=false)
{
$uso = $data['uso'];
@@ -76,7 +76,6 @@ class PresupuestoClienteService extends BaseService
$isColor = $data['isColor'];
$isHq = $data['isHq'];
$cliente_id = $data['cliente_id'];
- $paginas_color = $data['paginas_color'];
$lomoRedondo = $data['lomoRedondo'];
$lineas_cubierta = [];
@@ -102,6 +101,14 @@ class PresupuestoClienteService extends BaseService
}
if (count($lineas_cubierta) > 0) {
+ if($return_raw){
+ $lineas_cubierta = array_values(array_unique($lineas_cubierta, SORT_REGULAR));
+
+ return[
+ 'cubierta' => $lineas_cubierta
+ ];
+ }
+
usort(
$lineas_cubierta,
function ($a, $b) {
@@ -119,7 +126,7 @@ class PresupuestoClienteService extends BaseService
return $lineas_cubierta;
}
- public static function obtenerSobrecubierta($data)
+ public static function obtenerSobrecubierta($data, $return_raw=false)
{
$uso = $data['uso'];
@@ -154,6 +161,14 @@ class PresupuestoClienteService extends BaseService
}
if (count($lineas_sobrecubierta) > 0) {
+ if($return_raw){
+ $lineas_sobrecubierta = array_values(array_unique($lineas_sobrecubierta, SORT_REGULAR));
+
+ return[
+ 'sobrecubierta' => $lineas_sobrecubierta
+ ];
+ }
+
usort(
$lineas_sobrecubierta,
function ($a, $b) {
@@ -171,7 +186,7 @@ class PresupuestoClienteService extends BaseService
return $lineas_sobrecubierta;
}
- public static function obtenerGuardas($data)
+ public static function obtenerGuardas($data, $return_raw=false)
{
$uso = $data['uso'];
@@ -205,6 +220,14 @@ class PresupuestoClienteService extends BaseService
}
if (count($lineas_guardas) > 0) {
+ if($return_raw){
+ $lineas_guardas = array_values(array_unique($lineas_guardas, SORT_REGULAR));
+
+ return[
+ 'guardas' => $lineas_guardas
+ ];
+ }
+
usort(
$lineas_guardas,
function ($a, $b) {
@@ -241,28 +264,31 @@ class PresupuestoClienteService extends BaseService
* - isHq: si es alta calidad
* - paginas_color: número de páginas a color
*/
- private static function obtenerPresupuestoClienteInterior($data)
+ public static function obtenerPresupuestoClienteInterior($data, $return_raw = false)
{
$uso = $data['uso'];
$tipo_impresion_id = $data['tipo_impresion_id'];
$datosPedido = $data['datosPedido'];
+ $paginas_color = $data['paginas_color'];
if ($data['papelInteriorDiferente'] == false)
$papel_generico = $data['papel_generico'];
else {
$papel_generico = $data['papel_generico']['negro'];
- $papel_generico_color = $data['papel_generico']['color'];
+ if($paginas_color>0)
+ $papel_generico_color = $data['papel_generico']['color'];
}
if ($data['papelInteriorDiferente'] == false)
$gramaje = $data['gramaje'];
else {
$gramaje = $data['gramaje']['negro'];
- $gramaje_color = $data['gramaje']['color'];
+ if($paginas_color>0)
+ $gramaje_color = $data['gramaje']['color'];
}
$isColor = $data['isColor'];
$isHq = $data['isHq'];
$cliente_id = $data['cliente_id'];
- $paginas_color = $data['paginas_color'];
+
$paginas_negro = $datosPedido->paginas - $paginas_color;
@@ -293,6 +319,14 @@ class PresupuestoClienteService extends BaseService
}
if (count($linea_negro_plana) > 0) {
+ /*if($return_raw){
+ $linea_negro_plana = array_values(array_unique($linea_color_plana, SORT_REGULAR));
+
+ return[
+ 'negro' => $linea_negro_plana
+ ];
+ }*/
+
usort(
$linea_negro_plana,
function ($a, $b) {
@@ -335,6 +369,14 @@ class PresupuestoClienteService extends BaseService
}
if (count($linea_color_plana) > 0) {
+ /*if($return_raw){
+ $linea_color_plana = array_values(array_unique($linea_color_plana, SORT_REGULAR));
+
+ return[
+ 'color' => $linea_color_plana
+ ];
+ }*/
+
usort(
$linea_color_plana,
function ($a, $b) {
@@ -349,6 +391,16 @@ class PresupuestoClienteService extends BaseService
}
}
+
+ if($return_raw){
+ $linea_negro_plana = array_values(array_unique($linea_negro_plana, SORT_REGULAR));
+ $linea_color_plana = array_values(array_unique($linea_color_plana, SORT_REGULAR));
+
+ return[
+ 'negro' => $linea_negro_plana,
+ 'color' => $linea_color_plana
+ ];
+ }
// Si hay negro y color, y se hace con el mismo papel, hay que buscar la combinación
// más económica con la misma máquna
if (
@@ -493,7 +545,7 @@ class PresupuestoClienteService extends BaseService
* - isHq: si es alta calidad
* - paginas_color: número de páginas a color
*/
- private static function obtenerPresupuestoClienteInteriorRotativa($data)
+ public static function obtenerPresupuestoClienteInteriorRotativa($data, $return_raw = false)
{
$datosPedido = $data['datosPedido'];
$papel_generico = $data['papel_generico'];
@@ -532,6 +584,14 @@ class PresupuestoClienteService extends BaseService
if (count($linea_rotativa) > 0) {
+ if($return_raw){
+ $linea_rotativa = array_values(array_unique($linea_rotativa, SORT_REGULAR));
+
+ return[
+ 'rotativa' => $linea_rotativa,
+ ];
+ }
+
usort(
$linea_rotativa,
function ($a, $b) {
diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php
index a9495780..24d404a3 100755
--- a/ci4/app/Services/PresupuestoService.php
+++ b/ci4/app/Services/PresupuestoService.php
@@ -83,8 +83,13 @@ class PresupuestoService extends BaseService
$parametrosInkjet->rotativa_cg = $datosTipologias[0]->cg;
}
+ $uso_tarifa = $uso;
+ if($uso == 'guardas')
+ $uso_tarifa = 'interior';
+ else if ($uso == 'faja')
+ $uso_tarifa = 'sobrecubierta';
$tarifamodel = new \App\Models\Configuracion\MaquinasTarifasImpresionModel();
- $datos_tarifa = $tarifamodel->getTarifa($maquina->maquina_id, ($uso == 'guardas') ? 'interior' : $uso, $tipo);
+ $datos_tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso_tarifa, $tipo);
if (count($datos_tarifa) > 0) {
$tarifaId = $datos_tarifa[0];
$tarifa = $datos_tarifa[1];
@@ -128,7 +133,7 @@ class PresupuestoService extends BaseService
$clientePreciosModel = new \App\Models\Clientes\ClientePreciosModel();
$config = (object) [
- "tipo" => ($uso == 'guardas') ? 'interior' : $uso,
+ "tipo" => $uso_tarifa,
"tipo_maquina" => $maquina->is_inkjet ? 'inkjet' : 'toner',
"tipo_impresion" => $tipo
];
@@ -235,7 +240,9 @@ class PresupuestoService extends BaseService
return [];
}
- [$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas);
+ $paginas_pedido = (intval($datosPedido->tirada) + intval($datosPedido->merma))*intval($datosPedido->paginas);
+
+ [$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $paginas_pedido);
$linea['fields']['tarifa_impresion_id'] = $tarifaId;
@@ -332,8 +339,8 @@ class PresupuestoService extends BaseService
if ($uso != 'rotativa') {
- $ancho_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho;
- $alto_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->altoExteriores : $datosPedido->alto;
+ $ancho_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') ? $datosPedido->anchoExteriores : $datosPedido->ancho;
+ $alto_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') ? $datosPedido->altoExteriores : $datosPedido->alto;
$formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $alto_calculo, $datosPedido->isCosido, $forzar_a_favor_fibra);
$response['fields'] = $formas;
}
@@ -345,8 +352,10 @@ class PresupuestoService extends BaseService
return $response;
}
+ $paginas_pedido = (intval($datosPedido->tirada) + intval($datosPedido->merma)) * intval($datosPedido->paginas);
+
// precio del pliego de impresion
- [$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel_impresion, $datosPedido->paginas);
+ [$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel_impresion, $paginas_pedido);
$precio_click = 0;
$precio_click_pedido = 0;
@@ -362,10 +371,12 @@ class PresupuestoService extends BaseService
$margen_click = $tarifa * ($tarifa_margen / 100.0);
//interior (bn o color)
- if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0) {
+ if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0 || $uso == 'faja') {
// precio papel
- $pliegos_libro = ceil(($datosPedido->paginas / 2.0) / $response['fields']['num_formas']['value']);
- if ($pliegos_libro < 1)
+ $pliegos_libro = ($datosPedido->paginas / 2.0) / $response['fields']['num_formas']['value'];
+ if($uso != 'faja')
+ $pliegos_libro = ceil($pliegos_libro);
+ if ($uso != 'faja' && $pliegos_libro < 1) // faja pueden entrar más de una forma
$pliegos_libro = 1;
$pliegos_pedido = $pliegos_libro * ($datosPedido->tirada + $datosPedido->merma);
$precio_libro = $pliegos_libro * ($precio_pliego_impresion + $margen_pliego_impresion);
@@ -462,7 +473,7 @@ class PresupuestoService extends BaseService
[$data['ancho'], $data['alto']] = PresupuestoService::calculoDimForma($datosPedido, $parametrosRotativa);
// calculo de papel y clicks
- $factor_anchura = round($maquina->ancho_impresion / $data['ancho'], 2);
+ $factor_anchura = floor($maquina->ancho_impresion / $data['ancho']);
$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);
@@ -471,12 +482,12 @@ class PresupuestoService extends BaseService
}
$multiplicador_pliego = $datosPedido->isCosido ? 4 : 2;
- $paginas_por_pliego = round(floor($factor_anchura) * $factor_altura * $multiplicador_pliego, 2);
+ $paginas_por_pliego = round($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);
+ $paginas_por_pliego_click = round($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);
@@ -518,12 +529,15 @@ class PresupuestoService extends BaseService
$data['alto_click'] = $maquina->alto_click;
+ $direccion_fibra = ($parametrosRotativa->a_favor_fibra === "false" || $parametrosRotativa->a_favor_fibra === 0 ||
+ $parametrosRotativa->a_favor_fibra === "0" || $parametrosRotativa->a_favor_fibra === false)? 0 : 1;
+
$formas = PresupuestoService::getNumFormasRot(
$maquina,
$datosPedido->ancho,
$datosPedido->alto,
$datosPedido->isCosido,
- $parametrosRotativa->a_favor_fibra
+ $direccion_fibra
);
$data['num_formas'] = $formas;
@@ -537,7 +551,7 @@ class PresupuestoService extends BaseService
public static function calculoDimForma($datosPedido, $parametros)
{
// posicionamos paginas en función de a favor de fibra o no
- if (!$parametros->a_favor_fibra) {
+ if ($parametros->a_favor_fibra === "false" || $parametros->a_favor_fibra === 0 || $parametros->a_favor_fibra === "0" || $parametros->a_favor_fibra === false) {
$anchoLibro = $datosPedido->alto;
$altoLibro = $datosPedido->ancho;
} else {
@@ -547,7 +561,7 @@ class PresupuestoService extends BaseService
// si es cosido ancho x 2
if ($datosPedido->isCosido) {
- if (!$parametros->a_favor_fibra) {
+ if ($parametros->a_favor_fibra === "false" || $parametros->a_favor_fibra === 0 || $parametros->a_favor_fibra === "0" || $parametros->a_favor_fibra === false) {
$altoLibro = $altoLibro * 2;
} else {
$anchoLibro = $anchoLibro * 2;
@@ -686,7 +700,7 @@ class PresupuestoService extends BaseService
$h2_temp = 0;
// El ancho si es cosido es el doble
- if ($uso != 'cubierta' && $uso != 'sobrecubierta') {
+ if ($uso != 'cubierta' && $uso != 'sobrecubierta' && $uso != 'faja') {
$anchoForCalculo = $isCosido ? $ancho * 2 : $ancho;
} else {
$anchoForCalculo = $ancho;
@@ -843,7 +857,7 @@ class PresupuestoService extends BaseService
$ancho_total = 0;
$sangre_cubierta = self::SANGRE_FORMAS_CUBIERTA;
if ($datosPedido->ancho >= 210) {
- $sangre_cubierta = 15;
+ $sangre_cubierta = 10;
}
if ($datosPedido) {
@@ -924,8 +938,8 @@ class PresupuestoService extends BaseService
if ($datosPedido) {
$alto_total = floatval($datosPedido->alto);
$sangre_cubierta = self::SANGRE_FORMAS_CUBIERTA;
- if ($datosPedido->alto >= 297) {
- $sangre_cubierta = 15;
+ if ($datosPedido->alto >= 267) {
+ $sangre_cubierta = 10;
}
// Tapa dura (cosido y fresado)
if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) {
@@ -938,7 +952,7 @@ class PresupuestoService extends BaseService
$alto_total += (7 + 2 * self::SANGRE_FORMAS);
}
// Tapa dura (espiral y wire-0)
- if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
+ else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
// Sólo se le añade los 20mm de sangre por cada lado
$alto_total += (2 * self::SANGRE_FORMAS_CUBIERTA);
}
@@ -1687,7 +1701,7 @@ class PresupuestoService extends BaseService
uso_tarifa: $uso,
tirada: $datosPedido->tirada + $datosPedido->merma,
papel_impresion_id: $papel->id,
- );
+ )->orderBy("t1.id", "asc")->get()->getResultObject();
$data['uso'] = $uso;
$data['tipo'] = $tipo;
@@ -1754,7 +1768,8 @@ class PresupuestoService extends BaseService
$tipo = $isColor ? ($isHq ? 'colorhq' : 'color') : ($isHq ? 'negrohq' : 'negro');
- $opciones_papel = PresupuestoService::get_opciones_papel($uso, $isColor);
+ $uso_papel = $uso == 'faja' ? 'sobrecubierta': $uso;
+ $opciones_papel = PresupuestoService::get_opciones_papel($uso_papel, $isColor);
// Se obtienen los papeles disponibles
$papelimpresionmodel = new PapelImpresionModel();
@@ -1772,18 +1787,18 @@ class PresupuestoService extends BaseService
$maquinas = $maquinamodel->getMaquinaImpresionForPresupuesto(
is_rotativa: 0,
tarifa_tipo: $tipo,
- uso_tarifa: ($uso == 'guardas') ? 'interior' : $uso,
+ uso_tarifa: ($uso == 'guardas') ? 'interior' : $uso_papel,
tirada: $datosPedido->tirada + $datosPedido->merma,
papel_impresion_id: $papel->id,
- );
+ )->orderBy("t1.id", "asc")->get()->getResultObject();
// Se recorren las máquinas y se calcula el coste de linea por cada una
foreach ($maquinas as $maquina) {
- if ($uso == 'cubierta' || $uso == 'sobrecubierta') {
+ if ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') {
- $datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($uso, $tipo_impresion_id, $datosPedido, $maquina->maquina_id, $lomoRedondo);
- $datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($uso, $tipo_impresion_id, $datosPedido);
+ $datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($uso_papel, $tipo_impresion_id, $datosPedido, $maquina->maquina_id, $lomoRedondo);
+ $datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($uso_papel, $tipo_impresion_id, $datosPedido);
}
$data['uso'] = $uso;
diff --git a/ci4/app/Views/themes/vuexy/components/dropzone.php b/ci4/app/Views/themes/vuexy/components/dropzone.php
new file mode 100644
index 00000000..886d4d24
--- /dev/null
+++ b/ci4/app/Views/themes/vuexy/components/dropzone.php
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+ Arrastre aquí los ficheros o haga click
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+= $this->section('css') ?>
+
+= $this->endSection() ?>
+= $this->section('additionalExternalJs') ?>
+
+= $this->endSection() ?>
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/components/forms/maquina_tarea.php b/ci4/app/Views/themes/vuexy/components/forms/maquina_tarea.php
new file mode 100644
index 00000000..9bbd34d4
--- /dev/null
+++ b/ci4/app/Views/themes/vuexy/components/forms/maquina_tarea.php
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/components/forms/servicio_cliente.php b/ci4/app/Views/themes/vuexy/components/forms/servicio_cliente.php
deleted file mode 100644
index a90d9058..00000000
--- a/ci4/app/Views/themes/vuexy/components/forms/servicio_cliente.php
+++ /dev/null
@@ -1,61 +0,0 @@
-
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/components/tables/servicios_cliente_table.php b/ci4/app/Views/themes/vuexy/components/tables/maquina_tarea_table.php
similarity index 54%
rename from ci4/app/Views/themes/vuexy/components/tables/servicios_cliente_table.php
rename to ci4/app/Views/themes/vuexy/components/tables/maquina_tarea_table.php
index 1631175b..5fa49f48 100644
--- a/ci4/app/Views/themes/vuexy/components/tables/servicios_cliente_table.php
+++ b/ci4/app/Views/themes/vuexy/components/tables/maquina_tarea_table.php
@@ -2,9 +2,9 @@
- | = lang('ServicioCliente.datatable.nombre') ?> |
- = lang('ServicioCliente.datatable.code') ?> |
- = lang('ServicioCliente.datatable.created_at') ?> |
+ = lang('MaquinaTarea.datatable.nombre') ?> |
+ = lang('MaquinaTarea.datatable.description') ?> |
+ = lang('MaquinaTarea.datatable.created_at') ?> |
= lang('Basic.global.Action') ?> |
diff --git a/ci4/app/Views/themes/vuexy/form/configuracion/servicios_cliente/ServicioClienteEdit.php b/ci4/app/Views/themes/vuexy/form/configuracion/maquina_tareas/editMaquinaTarea.php
similarity index 58%
rename from ci4/app/Views/themes/vuexy/form/configuracion/servicios_cliente/ServicioClienteEdit.php
rename to ci4/app/Views/themes/vuexy/form/configuracion/maquina_tareas/editMaquinaTarea.php
index fa36dee6..c2643b44 100644
--- a/ci4/app/Views/themes/vuexy/form/configuracion/servicios_cliente/ServicioClienteEdit.php
+++ b/ci4/app/Views/themes/vuexy/form/configuracion/maquina_tareas/editMaquinaTarea.php
@@ -9,14 +9,14 @@
= view('themes/_commonPartialsBs/_alertBoxes'); ?>
- = view('themes/vuexy/components/forms/servicio_cliente', ["id" => "formServicioCliente"]); ?>
+ = view('themes/vuexy/components/forms/maquina_tarea', ["id" => "maquina-tarea-form", "model" => $model]); ?>
@@ -31,7 +31,15 @@
= $this->endSection() ?>
+
+= $this->section('css') ?>
+" />
+
+
+= $this->endSection() ?>
+
= $this->section("additionalExternalJs") ?>
-
+
+
+
= $this->endSection() ?>
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/configuracion/maquina_tareas/viewMaquinaTarea.php b/ci4/app/Views/themes/vuexy/form/configuracion/maquina_tareas/viewMaquinaTarea.php
new file mode 100644
index 00000000..57f08f63
--- /dev/null
+++ b/ci4/app/Views/themes/vuexy/form/configuracion/maquina_tareas/viewMaquinaTarea.php
@@ -0,0 +1,56 @@
+= $this->include('themes/_commonPartialsBs/select2bs5') ?>
+= $this->include('themes/_commonPartialsBs/datatables') ?>
+= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
+= $this->extend('themes/vuexy/main/defaultlayout') ?>
+
+= $this->section('content'); ?>
+
+
+
+
+
+
+
+
+ = view('themes/_commonPartialsBs/_alertBoxes'); ?>
+
+
+
+ = view('themes/vuexy/components/tables/maquina_tarea_table', ["id" => "maquina-tarea-datatable"]); ?>
+
+
+
+
+
+ = view('themes/vuexy/components/forms/maquina_tarea', ["id" => "maquina-tarea-form", "model" => null]); ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+= $this->endSection() ?>
+= $this->section('css') ?>
+
+= $this->endSection() ?>
+= $this->section("additionalExternalJs") ?>
+
+
+
+= $this->endSection() ?>
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/configuracion/maquinas/viewMaquinaForm.php b/ci4/app/Views/themes/vuexy/form/configuracion/maquinas/viewMaquinaForm.php
index 04da18ad..13ac995d 100644
--- a/ci4/app/Views/themes/vuexy/form/configuracion/maquinas/viewMaquinaForm.php
+++ b/ci4/app/Views/themes/vuexy/form/configuracion/maquinas/viewMaquinaForm.php
@@ -10,7 +10,7 @@
-
@@ -253,7 +280,7 @@
url: '= route_to('updateMaquinaPapelOnTarifasChange') ?>',
data: {
maquina_id: id,
- isRotativa: isRotativa.watch,
+ isRotativa: ()=>{ return $('#isRotativa').prop('checked')?1:0},
isInkjet: $('#isTinta').prop('checked'),
= csrf_token() ?? "token" ?>: = csrf_token() ?>v,
},
@@ -435,11 +462,7 @@
yeniden(json.= csrf_token() ?>);
if(json.error){
document.getElementById("check_" + json.data.papel_impresion_id).checked = false;
- Swal.fire({
- icon: 'error',
- title: '= lang('Basic.global.sweet.error_tittle') ?>',
- text: json.error,
- });
+ popErrorAlert(json.error, 'sk-alert-2');
}
});
@@ -543,7 +566,7 @@
url: '= route_to('dataTableOfMaquinasPapelesImpresion') ?>',
data: function (d) {
d.maquina_id = id;
- d.isRotativa = isRotativa.watch;
+ d.isRotativa = $('#isRotativa').prop('checked')?1:0;
d.webguard_token = '= csrf_hash() ?>';
},
method: 'POST',
@@ -821,6 +844,7 @@
= $this->section('additionalExternalJs') ?>
+
diff --git a/ci4/app/Views/themes/vuexy/form/configuracion/papel/viewPapelImpresionForm.php b/ci4/app/Views/themes/vuexy/form/configuracion/papel/viewPapelImpresionForm.php
index 77ddfcd7..074deae0 100644
--- a/ci4/app/Views/themes/vuexy/form/configuracion/papel/viewPapelImpresionForm.php
+++ b/ci4/app/Views/themes/vuexy/form/configuracion/papel/viewPapelImpresionForm.php
@@ -6,28 +6,28 @@
= $this->section("content") ?>
-
-
-
- rotativa == true || $papelImpresion->inkjet == true)): ?>
+ rotativa == true || $papelImpresion->inkjet == true)): ?>
-
-
+
+
-
-
-
-
-
-
-
-
- | = lang('MaquinasPapelImpresion.activo') ?> |
- = lang('Maquinas.nombre') ?> |
- = lang('Maquinas.ancho') ?> |
- = lang('Maquinas.alto') ?> |
- = lang('Maquinas.anchoImpresion') ?> |
- = lang('Maquinas.altoImpresion') ?> |
- = lang('Basic.global.Action') ?> |
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ | = lang('MaquinasPapelImpresion.activo') ?> |
+ = lang('Maquinas.nombre') ?> |
+ = lang('Maquinas.ancho') ?> |
+ = lang('Maquinas.alto') ?> |
+ = lang('Maquinas.anchoImpresion') ?> |
+ = lang('Maquinas.altoImpresion') ?> |
+ = lang('Basic.global.Action') ?> |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
">
+
+
+
+
+
-
-
-
+
-= $this->endSection() ?>
+ = $this->endSection() ?>
-
-
-
-= $this->section("additionalInlineJs") ?>
+ = $this->section('additionalExternalJs') ?>
+
+ = $this->endSection() ?>
+
+
+
+ = $this->section("additionalInlineJs") ?>
var theTable;
@@ -150,134 +177,134 @@
const url_parts = url.split('/');
let id = -1;
if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
+ id = url_parts[url_parts.length-1];
}
$('#papelGenericoId').select2({
-
- allowClear: false,
- ajax: {
- url: '= route_to("menuItemsOfPapelesGenericos") ?>',
- type: 'post',
- dataType: 'json',
- data: function (params) {
- return {
- id: 'id',
- text: 'nombre',
- searchTerm: params.term,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function (response) {
+ allowClear: false,
+ ajax: {
+ url: '= route_to("menuItemsOfPapelesGenericos") ?>',
+ type: 'post',
+ dataType: 'json',
- yeniden(response.= csrf_token() ?>);
+ data: function (params) {
+ return {
+ id: 'id',
+ text: 'nombre',
+ searchTerm: params.term,
+ = csrf_token() ?? "token" ?> : = csrf_token() ?>v
+ };
+ },
+ delay: 60,
+ processResults: function (response) {
- return {
- results: response.menu
- };
- },
+ yeniden(response.= csrf_token() ?>);
- cache: true
- }
+ return {
+ results: response.menu
+ };
+ },
+
+ cache: true
+ }
});
// Delete row
$(document).on('click', '.btn-delete', function(e) {
- $(".btn-remove").attr('data-id', $(this).attr('data-id'));
- if($(this).closest('table').attr('id').includes('margenes')){
- $(".btn-remove").attr('table', "margenes");
- }
- else if($(this).closest('table').attr('id').includes('tipologias')){
- $(".btn-remove").attr('table', "tipologias");
- }
- else{
- $(".btn-remove").attr('table', );
- }
+ $(".btn-remove").attr('data-id', $(this).attr('data-id'));
+ if($(this).closest('table').attr('id').includes('margenes')){
+ $(".btn-remove").attr('table', "margenes");
+ }
+ else if($(this).closest('table').attr('id').includes('tipologias')){
+ $(".btn-remove").attr('table', "tipologias");
+ }
+ else{
+ $(".btn-remove").attr('table', );
+ }
});
-
+
$(document).on('click', '.btn-remove', function(e) {
- const dataId = $(this).attr('data-id');
- const row = $(this).closest('tr');
- if ($.isNumeric(dataId)) {
+ const dataId = $(this).attr('data-id');
+ const row = $(this).closest('tr');
+ if ($.isNumeric(dataId)) {
- if($(this).attr('table').includes('margenes')){
- remove_margenes(dataId, row);
- }
- else if ($(this).attr('table').includes('tipologias')){
- remove_tipologias(dataId, row);
- }
- }
+ if($(this).attr('table').includes('margenes')){
+ remove_margenes(dataId, row);
+ }
+ else if ($(this).attr('table').includes('tipologias')){
+ remove_tipologias(dataId, row);
+ }
+ }
});
-= $this->endSection() ?>
+ = $this->endSection() ?>
-
+
-
-
-
-= $this->section("additionalInlineJs") ?>
+
+
+
+ = $this->section("additionalInlineJs") ?>
- var theTable3;
- const lastColNr3 = $('#tableOfPapelimpresionmargenes').find("tr:first th").length - 1;
- const actionBtns3 = function(data) {
+ var theTable3;
+ const lastColNr3 = $('#tableOfPapelimpresionmargenes').find("tr:first th").length - 1;
+ const actionBtns3 = function(data) {
return `
-
-
-
- `;
- };
+
+
+
+ `;
+ };
-
- // Definición del editor
- var editor3 = new $.fn.dataTable.Editor( {
+
+ // Definición del editor
+ var editor3 = new $.fn.dataTable.Editor( {
ajax: {
- url: "= route_to('editorOfPapelImpresionMargenes') ?>",
- headers: {
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
- },
+ url: "= route_to('editorOfPapelImpresionMargenes') ?>",
+ headers: {
+ = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
+ },
+ },
+ table : "#tableOfPapelimpresionmargenes",
+ idSrc: 'id',
+ fields: [
+ {
+ name: "paginas_min",
+ attr: {
+ type: "number"
+ }
+ },{
+ name: "paginas_max",
+ attr: {
+ type: "number"
+ }
+ },{
+ name: "margen",
+ attr: {
+ type: "number"
+ }
+ }, {
+ "name": "papel_impresion_id",
+ "type": "hidden"
+ }, {
+ "name": "deleted_at",
+ "type": "hidden"
+ }, {
+ "name": "is_deleted",
+ "type": "hidden"
},
- table : "#tableOfPapelimpresionmargenes",
- idSrc: 'id',
- fields: [
- {
- name: "paginas_min",
- attr: {
- type: "number"
- }
- },{
- name: "paginas_max",
- attr: {
- type: "number"
- }
- },{
- name: "margen",
- attr: {
- type: "number"
- }
- }, {
- "name": "papel_impresion_id",
- "type": "hidden"
- }, {
- "name": "deleted_at",
- "type": "hidden"
- }, {
- "name": "is_deleted",
- "type": "hidden"
- },
]
- } );
+ } );
- // Definición de la tabla
- theTable3 = $('#tableOfPapelimpresionmargenes').DataTable({
+ // Definición de la tabla
+ theTable3 = $('#tableOfPapelimpresionmargenes').DataTable({
processing: true,
serverSide: true,
autoWidth: true,
@@ -288,504 +315,508 @@
lengthChange: false,
searching: false,
info: false,
- "dom": '<"mt-4"><"float-end"B><"float-start"l><"mt-4 mb-3"p>',
- stateSave: true,
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
- ajax : $.fn.dataTable.pipeline( {
- url: '= route_to('dataTableOfPapelImpresionMargen') ?>',
- data: {
- id_PI: id,
- },
- method: 'POST',
- headers: {'X-Requested-With': 'XMLHttpRequest'},
- async: true,
- }),
- columns : [
- { 'data': 'paginas_min' },
- { 'data': 'paginas_max' },
- { 'data': 'margen' },
- { data: actionBtns3,
- className: 'row-edit dt-center'}
- ],
- columnDefs: [
- {
- orderable: false,
- searchable: false,
- targets: [lastColNr3]
- }
- ],
- buttons: [ {
- className: 'btn btn-primary float-end me-sm-3 me-1',
- extend: "createInline",
- editor: editor3,
- formOptions: {
- submitTrigger: -1,
- submitHtml: ''
- }
- } ]
- });
-
-
- // Activate an inline edit on click of a table cell
- $(document).on('click', '.btn-edit3', function(e) {
- editor3.inline(
- theTable3.cells(this.parentNode.parentNode.parentNode, '*').nodes(),
- {
- cancelHtml: '',
- cancelTrigger: 'span.cancel',
- submitHtml: '',
- submitTrigger: 'span.edit',
- submit: 'allIfChanged'
- }
- );
- } );
-
-
- // Obtención del id para editar
- editor3.on( 'preSubmit', function ( e, d, type ) {
- if ( type === 'create'){
- d.data[0]['papel_impresion_id'] = id;
- }
- else if(type === 'edit' ) {
- for (v in d.data){
- d.data[v]['papel_impresion_id'] = id;
- }
- }
- });
-
- // Refrescar token
- editor3.on( 'postSubmit', function ( e, json, data, action ) {
-
- yeniden(json.= csrf_token() ?>);
- });
-
- // Refrescar tabla
- editor3.on( 'submitSuccess', function ( e, json, data, action ) {
-
- theTable3.clearPipeline();
- theTable3.draw();
- });
-
-
- // Delete row
- function remove_margenes(dataId, row){
-
- $.ajax({
- url: `/configuracion/papelimpresionmargenes/delete/${dataId}`,
- method: 'GET',
- }).done((data, textStatus, jqXHR) => {
- $('#confirm2delete').modal('toggle');
- theTable3.clearPipeline();
- theTable3.row($(row)).invalidate().draw();
- popSuccessAlert(data.msg ?? jqXHR.statusText);
- }).fail((jqXHR, textStatus, errorThrown) => {
- popErrorAlert(jqXHR.responseJSON.messages.error)
- });
- }
-
-
-= $this->endSection() ?>
-
-
-
-
-= $this->section("additionalInlineJs") ?>
-
- var theTable;
- const lastColNr = $('#tableOfPapelimpresiontipologias').find("tr:first th").length - 1;
- const actionBtns = function(data) {
- return `
-
-
-
- `;
- };
-
- $('#cubierta').on('change', function() {
- if($(this).is(':checked')) {
- $('#useForTapaDura').prop('disabled', false);
- $('#useForTapaDura').prop('checked', false);
- }
- else{
- $('#useForTapaDura').prop('disabled', true);
- }
- });
-
-
- // Etiquetas para las tipologias
- const tipoTypes = [
- {label:'= lang('ImpresionTipologias.negro') ?>', value:'negro'},
- {label:'= lang('ImpresionTipologias.color') ?>', value: 'color'},
- {label:'= lang('ImpresionTipologias.bicolor') ?>', value: 'bicolor'}
- ];
-
-
- // Definición del editor
- editor = new $.fn.dataTable.Editor( {
- ajax: {
- url: "= route_to('editorOfConsumoTintas') ?>",
- headers: {
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
- },
- },
- table : "#tableOfPapelimpresiontipologias",
- idSrc: 'id',
- fields: [
- {
- name: "tipo",
- type: "select",
- options: tipoTypes
- }, {
- name: "negro",
- attr: {
- type: "number"
- }
- },{
- name: "cyan",
- attr: {
- type: "number"
- }
- },{
- name: "magenta",
- attr: {
- type: "number"
- }
- },{
- name: "amarillo",
- attr: {
- type: "number"
- }
- },{
- name: "cg",
- attr: {
- type: "number"
- },
- def: 0,
- },
- {
- name: "gota_negro",
- attr: {
- type: "number"
- }
- },{
- name: "gota_color",
- attr: {
- type: "number"
- }
- }, {
- "name": "papel_impresion_id",
- "type": "hidden"
- }
- ]
- } );
-
-
- // Definición de la tabla
- theTable = $('#tableOfPapelimpresiontipologias').DataTable({
- processing: true,
- serverSide: true,
- autoWidth: true,
- responsive: true,
- scrollX: true,
- lengthMenu: [ 5],
- pageLength: 5,
- lengthChange: false,
- searching: false,
- info: false,
- "dom": '<"mt-4"><"float-end"B><"float-start"l><"mt-4 mb-3"p>',
- stateSave: true,
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
- ajax : $.fn.dataTable.pipeline( {
- url: '= route_to('dataTableOfPapelesImpresion') ?>',
- data: {
- id_PI: id,
- },
- method: 'POST',
- headers: {'X-Requested-With': 'XMLHttpRequest'},
- async: true,
- }),
- columns : [
- { 'data': 'tipo', "render": function ( data, type, row, meta ) {
- if(data=='negro')
- return '= lang('ImpresionTipologias.negro') ?>';
- else if (data=='color')
- return '= lang('ImpresionTipologias.color') ?>';
- else if (data=='bicolor')
- return '= lang('ImpresionTipologias.bicolor') ?>';
- }
- },
- { 'data': 'negro' },
- { 'data': 'cyan' },
- { 'data': 'magenta' },
- { 'data': 'amarillo' },
- { 'data': 'cg' },
- { 'data': 'gota_negro' },
- { 'data': 'gota_color' },
- { data: actionBtns,
- className: 'row-edit dt-center'}
- ],
- columnDefs: [
- {
- visible: false,
- targets: [5]
- }
- ],
- buttons: [ {
- className: 'btn btn-primary float-end me-sm-3 me-1',
- extend: "createInline",
- editor: editor,
- formOptions: {
- submitTrigger: -1,
- submitHtml: ''
- }
- } ],
- initComplete: function () {
- inkjet) { ?>
- theTable.column(5).visible(true)
-
- }
- });
-
-
- // Notificar que no se pueden añadir más tipologías
- editor.on( 'initCreate', function () {
- if ( $('#tableOfPapelimpresiontipologias').DataTable().data().count() >= 3 ){
- editor.close();
- popErrorAlert('= lang('Basic.global.sweet.maxRowsReached') ?>');
- }
- });
-
-
- // Activate an inline edit on click of a table cell
- $(document).on('click', '.btn-edit', function(e) {
- editor.inline(
- theTable.cells(this.parentNode.parentNode.parentNode, '*').nodes(),
- {
- cancelHtml: '',
- cancelTrigger: 'span.cancel',
- submitHtml: '',
- submitTrigger: 'span.edit',
- submit: 'allIfChanged'
- }
- );
- } );
-
-
- // Obtención del id para editar
- editor.on( 'preSubmit', function ( e, d, type ) {
- if ( type === 'create'){
- d.data[0]['papel_impresion_id'] = id;
- }
- else if(type === 'edit' ) {
- for (v in d.data){
- d.data[v]['papel_impresion_id'] = id;
- }
- }
- });
-
- // Refrescar token
- editor.on( 'postSubmit', function ( e, json, data, action ) {
-
- yeniden(json.= csrf_token() ?>);
- });
-
- // Refrescar tabla
- editor.on( 'submitSuccess', function ( e, json, data, action ) {
-
- theTable.clearPipeline();
- theTable.draw();
- });
-
-
- // Delete row
- function remove_tipologias(dataId, row){
-
- $.ajax({
- url: `/configuracion/papelimpresiontipologias/delete/${dataId}`,
- method: 'GET',
- }).done((data, textStatus, jqXHR) => {
- $('#confirm2delete').modal('toggle');
- theTable.clearPipeline();
- theTable.row($(row)).invalidate().draw();
- popSuccessAlert(data.msg ?? jqXHR.statusText);
- }).fail((jqXHR, textStatus, errorThrown) => {
- popErrorAlert(jqXHR.responseJSON.messages.error)
- });
- }
-
-= $this->endSection() ?>
-
-
-
-
-
-= $this->section("additionalInlineJs") ?>
-
- // Botones última columna
- const lastColNr2 = $('#tableOfMaquinas').find("tr:first th").length - 1;
- const actionBtns2 = function(data) {
- return `
-
- `;
- };
-
-
- // Definicion de la tabla
- var theTable2 = $('#tableOfMaquinas').DataTable( {
- serverSide: true,
- processing: true,
- autoWidth: true,
- responsive: true,
- lengthMenu: [ 5, 10, 25],
- order: [[ 1, "asc" ]],
- pageLength: 10,
- lengthChange: true,
- searching: true,
- paging: true,
- info: true,
dom: "lftp",
- ajax : $.fn.dataTable.pipeline( {
- url: '= route_to('dataTableOfPapelesImpresionMaquinas') ?>',
- data: function (d) {
- d.papel_id = id;
- d.isRotativa = $('#rotativa').is(':checked')?1:0;
- d.webguard_token = '= csrf_hash() ?>';
- },
- method: 'POST',
- headers: {'X-Requested-With': 'XMLHttpRequest'},
- async: true,
- }),
- columns: [
- { 'data': 'active',
- render: function (data, type, row) {
- if (type === 'display') {
- return '';
- }
- return data;
- },
- className: 'dt-body-center'
- },
- { 'data': 'maquina'},
- { 'data': 'ancho'},
- { 'data': 'alto'},
- { 'data': 'anchoimpresion'},
- { 'data': 'altoimpresion'},
- { data: actionBtns2,
- className: 'row-edit dt-center'}
- ],
- columnDefs: [
- {
- orderable: false,
- searchable: false,
- targets: [lastColNr2]
- }
- ],
- rowCallback: function (row, data) {
- // Set the checked state of the checkbox in the table
- $('input.editor-active', row).prop('checked', data.active == 1);
- },
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
- columnDefs: [
- {
- searchable: false,
- targets: [0,2,3,4,5]
- }
- ],
- } );
-
-
- // Definición del editor
- editor2 = new $.fn.dataTable.Editor( {
- ajax: {
- url: "= route_to('editorOfMaquinasPapelImpresion') ?>",
- headers: {
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
- },
- },
- table : "#tableOfMaquinas",
- idSrc: 'papel_impresion_id',
- fields: [
- {
- name: "active",
- type: "checkbox",
- separator: "|",
- ipOpts: [
- { label: '', value: 1 }
- ]
- },{
- "name": "papel_impresion_id",
- "type": "hidden"
- },{
- "name": "gramaje",
- "type": "hidden"
- },{
- "name": "maquina_id",
- "type": "hidden"
- }
- ]
- } );
- // Postsubmit del editor
- editor2.on( 'postSubmit', function ( e, json, data, action ) {
- yeniden(json.= csrf_token() ?>);
- if(json.error){
- document.getElementById("check_" + json.data.papel_impresion_id).checked = false;
- popErrorAlert(json.error);
- }
- });
+ stateSave: true,
+ language: {
+ url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
+ },
+ ajax : $.fn.dataTable.pipeline( {
+ url: '= route_to('dataTableOfPapelImpresionMargen') ?>',
+ data: {
+ id_PI: id,
+ },
+ method: 'POST',
+ headers: {'X-Requested-With': 'XMLHttpRequest'},
+ async: true,
+ }),
+ columns : [
+ { 'data': 'paginas_min' },
+ { 'data': 'paginas_max' },
+ { 'data': 'margen' },
+ { data: actionBtns3,
+ className: 'row-edit dt-center'}
+ ],
+ columnDefs: [
+ {
+ orderable: false,
+ searchable: false,
+ targets: [lastColNr3]
+ }
+ ],
+ buttons: [ {
+ className: 'btn btn-primary float-end me-sm-3 me-1',
+ extend: "createInline",
+ editor: editor3,
+ formOptions: {
+ submitTrigger: -1,
+ submitHtml: ''
+ }
+ } ]
+ });
- // Click sobre el botón editar máquina
- $(document).on('click', '.btn-edit2', function(e) {
- window.open(`/configuracion/maquinas/edit/${$(this).attr('data-id')}`);
- });
+ // Activate an inline edit on click of a table cell
+ $(document).on('click', '.btn-edit3', function(e) {
+ editor3.inline(
+ theTable3.cells(this.parentNode.parentNode.parentNode, '*').nodes(),
+ {
+ cancelHtml: '',
+ cancelTrigger: 'span.cancel',
+ submitHtml: '',
+ submitTrigger: 'span.edit',
+ submit: 'allIfChanged'
+ }
+ );
+ } );
- // Cuando se clica en un checkbox hacer submit en el editor
- theTable2.on( 'change', 'input.editor-active', function () {
- editor2
- .edit( $(this).closest('tr'), false )
- .set( 'active', $(this).prop( 'checked' ) ? 1 : 0 )
- .submit();
- } );
+ // Obtención del id para editar
+ editor3.on( 'preSubmit', function ( e, d, type ) {
+ if ( type === 'create'){
+ d.data[0]['papel_impresion_id'] = id;
+ }
+ else if(type === 'edit' ) {
+ for (v in d.data){
+ d.data[v]['papel_impresion_id'] = id;
+ }
+ }
+ });
- $('#rotativa').on('change', function() {
- if($('#inkjet').prop('checked')){
- $('#inkjet').prop('checked', false)
- }
- })
+ // Refrescar token
+ editor3.on( 'postSubmit', function ( e, json, data, action ) {
- $('#inkjet').on('change', function() {
- if($('#rotativa').prop('checked')){
- $('#rotativa').prop('checked', false)
- }
- })
+ yeniden(json.= csrf_token() ?>);
+ });
- = $this->endSection() ?>
+ // Refrescar tabla
+ editor3.on( 'submitSuccess', function ( e, json, data, action ) {
-
+ theTable3.clearPipeline();
+ theTable3.draw();
+ });
-=$this->section('css') ?>
-
- ">
-=$this->endSection() ?>
+ // Delete row
+ function remove_margenes(dataId, row){
-= $this->section('additionalExternalJs') ?>
-
-
-
-
-
-
-
-
-=$this->endSection() ?>
+ $.ajax({
+ url: `/configuracion/papelimpresionmargenes/delete/${dataId}`,
+ method: 'GET',
+ }).done((data, textStatus, jqXHR) => {
+ $('#confirm2delete').modal('toggle');
+ theTable3.clearPipeline();
+ theTable3.row($(row)).invalidate().draw();
+ popSuccessAlert(data.msg ?? jqXHR.statusText);
+ }).fail((jqXHR, textStatus, errorThrown) => {
+ popErrorAlert(jqXHR.responseJSON.messages.error)
+ });
+ }
+
+ = $this->endSection() ?>
+
+
+
+
+ = $this->section("additionalInlineJs") ?>
+
+ var theTable;
+ const lastColNr = $('#tableOfPapelimpresiontipologias').find("tr:first th").length - 1;
+ const actionBtns = function(data) {
+ return `
+
+
+
+ `;
+ };
+
+ $('#cubierta').on('change', function() {
+ if($(this).is(':checked')) {
+ $('#useForTapaDura').prop('disabled', false);
+ $('#useForTapaDura').prop('checked', false);
+ }
+ else{
+ $('#useForTapaDura').prop('disabled', true);
+ }
+ });
+
+
+ // Etiquetas para las tipologias
+ const tipoTypes = [
+ {label:'= lang('ImpresionTipologias.negro') ?>', value:'negro'},
+ {label:'= lang('ImpresionTipologias.color') ?>', value: 'color'},
+ {label:'= lang('ImpresionTipologias.bicolor') ?>', value: 'bicolor'}
+ ];
+
+
+ // Definición del editor
+ editor = new $.fn.dataTable.Editor( {
+ ajax: {
+ url: "= route_to('editorOfConsumoTintas') ?>",
+ headers: {
+ = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
+ },
+ },
+ table : "#tableOfPapelimpresiontipologias",
+ idSrc: 'id',
+ fields: [
+ {
+ name: "tipo",
+ type: "select",
+ options: tipoTypes
+ }, {
+ name: "negro",
+ attr: {
+ type: "number"
+ }
+ },{
+ name: "cyan",
+ attr: {
+ type: "number"
+ }
+ },{
+ name: "magenta",
+ attr: {
+ type: "number"
+ }
+ },{
+ name: "amarillo",
+ attr: {
+ type: "number"
+ }
+ },{
+ name: "cg",
+ attr: {
+ type: "number"
+ },
+ def: 0,
+ },
+ {
+ name: "gota_negro",
+ attr: {
+ type: "number"
+ }
+ },{
+ name: "gota_color",
+ attr: {
+ type: "number"
+ }
+ }, {
+ "name": "papel_impresion_id",
+ "type": "hidden"
+ }
+ ]
+ } );
+
+
+ // Definición de la tabla
+ theTable = $('#tableOfPapelimpresiontipologias').DataTable({
+ processing: true,
+ serverSide: true,
+ autoWidth: true,
+ responsive: true,
+ scrollX: true,
+ lengthMenu: [ 5],
+ pageLength: 5,
+ lengthChange: false,
+ searching: false,
+ info: false,
+ dom: "lftp",
+
+
+ stateSave: true,
+ language: {
+ url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
+ },
+ ajax : $.fn.dataTable.pipeline( {
+ url: '= route_to('dataTableOfPapelesImpresion') ?>',
+ data: {
+ id_PI: id,
+ },
+ method: 'POST',
+ headers: {'X-Requested-With': 'XMLHttpRequest'},
+ async: true,
+ }),
+ columns : [
+ { 'data': 'tipo', "render": function ( data, type, row, meta ) {
+ if(data=='negro')
+ return '= lang('ImpresionTipologias.negro') ?>';
+ else if (data=='color')
+ return '= lang('ImpresionTipologias.color') ?>';
+ else if (data=='bicolor')
+ return '= lang('ImpresionTipologias.bicolor') ?>';
+ }
+ },
+ { 'data': 'negro' },
+ { 'data': 'cyan' },
+ { 'data': 'magenta' },
+ { 'data': 'amarillo' },
+ { 'data': 'cg' },
+ { 'data': 'gota_negro' },
+ { 'data': 'gota_color' },
+ { data: actionBtns,
+ className: 'row-edit dt-center'}
+ ],
+ columnDefs: [
+ {
+ visible: false,
+ targets: [5]
+ }
+ ],
+ buttons: [ {
+ className: 'btn btn-primary float-end me-sm-3 me-1',
+ extend: "createInline",
+ editor: editor,
+ formOptions: {
+ submitTrigger: -1,
+ submitHtml: ''
+ }
+ } ],
+ initComplete: function () {
+ inkjet) { ?>
+ theTable.column(5).visible(true)
+
+ }
+ });
+
+
+ // Notificar que no se pueden añadir más tipologías
+ editor.on( 'initCreate', function () {
+ if ( $('#tableOfPapelimpresiontipologias').DataTable().data().count() >= 3 ){
+ editor.close();
+ popErrorAlert('= lang('Basic.global.sweet.maxRowsReached') ?>');
+ }
+ });
+
+
+ // Activate an inline edit on click of a table cell
+ $(document).on('click', '.btn-edit', function(e) {
+ editor.inline(
+ theTable.cells(this.parentNode.parentNode.parentNode, '*').nodes(),
+ {
+ cancelHtml: '',
+ cancelTrigger: 'span.cancel',
+ submitHtml: '',
+ submitTrigger: 'span.edit',
+ submit: 'allIfChanged'
+ }
+ );
+ } );
+
+
+ // Obtención del id para editar
+ editor.on( 'preSubmit', function ( e, d, type ) {
+ if ( type === 'create'){
+ d.data[0]['papel_impresion_id'] = id;
+ }
+ else if(type === 'edit' ) {
+ for (v in d.data){
+ d.data[v]['papel_impresion_id'] = id;
+ }
+ }
+ });
+
+ // Refrescar token
+ editor.on( 'postSubmit', function ( e, json, data, action ) {
+
+ yeniden(json.= csrf_token() ?>);
+ });
+
+ // Refrescar tabla
+ editor.on( 'submitSuccess', function ( e, json, data, action ) {
+
+ theTable.clearPipeline();
+ theTable.draw();
+ });
+
+
+ // Delete row
+ function remove_tipologias(dataId, row){
+
+ $.ajax({
+ url: `/configuracion/papelimpresiontipologias/delete/${dataId}`,
+ method: 'GET',
+ }).done((data, textStatus, jqXHR) => {
+ $('#confirm2delete').modal('toggle');
+ theTable.clearPipeline();
+ theTable.row($(row)).invalidate().draw();
+ popSuccessAlert(data.msg ?? jqXHR.statusText);
+ }).fail((jqXHR, textStatus, errorThrown) => {
+ popErrorAlert(jqXHR.responseJSON.messages.error)
+ });
+ }
+
+ = $this->endSection() ?>
+
+
+
+
+
+ = $this->section("additionalInlineJs") ?>
+
+ // Botones última columna
+ const lastColNr2 = $('#tableOfMaquinas').find("tr:first th").length - 1;
+ const actionBtns2 = function(data) {
+ return `
+
+ `;
+ };
+
+
+ // Definicion de la tabla
+ var theTable2 = $('#tableOfMaquinas').DataTable( {
+ serverSide: true,
+ processing: true,
+ autoWidth: true,
+ responsive: true,
+ lengthMenu: [ 5, 10, 25],
+ order: [[ 1, "asc" ]],
+ pageLength: 10,
+ lengthChange: true,
+ searching: true,
+ paging: true,
+ info: true,
+ dom: "lftp",
+ ajax : $.fn.dataTable.pipeline( {
+ url: '= route_to('dataTableOfPapelesImpresionMaquinas') ?>',
+ data: function (d) {
+ d.papel_id = id;
+ d.isRotativa = $('#rotativa').is(':checked')?1:0;
+ d.webguard_token = '= csrf_hash() ?>';
+ },
+ method: 'POST',
+ headers: {'X-Requested-With': 'XMLHttpRequest'},
+ async: true,
+ }),
+ columns: [
+ { 'data': 'active',
+ render: function (data, type, row) {
+ if (type === 'display') {
+ return '';
+ }
+ return data;
+ },
+ className: 'dt-body-center'
+ },
+ { 'data': 'maquina'},
+ { 'data': 'ancho'},
+ { 'data': 'alto'},
+ { 'data': 'anchoimpresion'},
+ { 'data': 'altoimpresion'},
+ { data: actionBtns2,
+ className: 'row-edit dt-center'}
+ ],
+ columnDefs: [
+ {
+ orderable: false,
+ searchable: false,
+ targets: [lastColNr2]
+ }
+ ],
+ rowCallback: function (row, data) {
+ // Set the checked state of the checkbox in the table
+ $('input.editor-active', row).prop('checked', data.active == 1);
+ },
+ language: {
+ url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
+ },
+ columnDefs: [
+ {
+ searchable: false,
+ targets: [0,2,3,4,5]
+ }
+ ],
+ } );
+
+
+ // Definición del editor
+ editor2 = new $.fn.dataTable.Editor( {
+ ajax: {
+ url: "= route_to('editorOfMaquinasPapelImpresion') ?>",
+ headers: {
+ = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
+ },
+ },
+ table : "#tableOfMaquinas",
+ idSrc: 'papel_impresion_id',
+ fields: [
+ {
+ name: "active",
+ type: "checkbox",
+ separator: "|",
+ ipOpts: [
+ { label: '', value: 1 }
+ ]
+ },{
+ "name": "papel_impresion_id",
+ "type": "hidden"
+ },{
+ "name": "gramaje",
+ "type": "hidden"
+ },{
+ "name": "maquina_id",
+ "type": "hidden"
+ }
+ ]
+ } );
+
+
+ // Postsubmit del editor
+ editor2.on( 'postSubmit', function ( e, json, data, action ) {
+ yeniden(json.= csrf_token() ?>);
+ if(json.error){
+ document.getElementById("check_" + json.data.papel_impresion_id).checked = false;
+ popErrorAlert(json.error);
+ }
+ });
+
+
+ // Click sobre el botón editar máquina
+ $(document).on('click', '.btn-edit2', function(e) {
+ window.open(`/configuracion/maquinas/edit/${$(this).attr('data-id')}`);
+ });
+
+
+ // Cuando se clica en un checkbox hacer submit en el editor
+ theTable2.on( 'change', 'input.editor-active', function () {
+ editor2
+ .edit( $(this).closest('tr'), false )
+ .set( 'active', $(this).prop( 'checked' ) ? 1 : 0 )
+ .submit();
+ } );
+
+ $('#rotativa').on('change', function() {
+ if($('#inkjet').prop('checked')){
+ $('#inkjet').prop('checked', false)
+ }
+ })
+
+ $('#inkjet').on('change', function() {
+ if($('#rotativa').prop('checked')){
+ $('#rotativa').prop('checked', false)
+ }
+ })
+
+ = $this->endSection() ?>
+
+
+
+
+ = $this->section('css') ?>
+
+ ">
+ = $this->endSection() ?>
+
+ = $this->section('additionalExternalJs') ?>
+
+
+
+
+
+
+
+
+
+ = $this->endSection() ?>
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/configuracion/servicios_cliente/viewServicioCliente.php b/ci4/app/Views/themes/vuexy/form/configuracion/servicios_cliente/viewServicioCliente.php
deleted file mode 100644
index e8cc5050..00000000
--- a/ci4/app/Views/themes/vuexy/form/configuracion/servicios_cliente/viewServicioCliente.php
+++ /dev/null
@@ -1,37 +0,0 @@
-= $this->include('themes/_commonPartialsBs/select2bs5') ?>
-= $this->include('themes/_commonPartialsBs/datatables') ?>
-= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
-= $this->extend('themes/vuexy/main/defaultlayout') ?>
-
-= $this->section('content'); ?>
-
-
-
-
-
-
-
-
- = view('themes/_commonPartialsBs/_alertBoxes'); ?>
-
- = view('themes/vuexy/components/tables/servicios_cliente_table', ["id" => "tableServiciosCliente"]); ?>
-
-
-
-
-
-
-
-
-
-
-
-= $this->endSection() ?>
-= $this->section("additionalExternalJs") ?>
-
-= $this->endSection() ?>
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_comentariosItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_comentariosItems.php
index 64c4289c..f5b3c691 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_comentariosItems.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_comentariosItems.php
@@ -158,7 +158,7 @@
= $this->section("additionalInlineJs") ?>
-
+/*
$("textarea[name*='comentarios_']").each(function(){
if (!$.trim($(this).val())) {
// textarea is empty or contains only white-space
@@ -167,7 +167,7 @@ $("textarea[name*='comentarios_']").each(function(){
$("#mostrar_" + $(this).attr('name')).show();
}
});
-
+*/
= $this->endSection() ?>
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.js b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.js
deleted file mode 100644
index dcfde390..00000000
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.js
+++ /dev/null
@@ -1,423 +0,0 @@
-const actionBtns_direcciones = function(data) {
- return `
-
-
- `;
-};
-
-// Funcion para obtener el peso total del libro
-function get_peso_libro(){
-
- var peso_total_libro = 0.0
- $('#tableLineasPresupuesto').DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var rowData = this.data();
- peso_total_libro += parseFloat(rowData.peso)
- })
- return peso_total_libro;
-}
-
-
-async function get_precio_envio(peso, paisId, cp, tipo_envio){
-
- data = {
- tipo: 'get_tarifa',
- peso: peso,
- paisId: paisId,
- cp: cp,
- tipo_envio: tipo_envio,
- }
- data = Object.assign(data, window.token_ajax);
-
- const response = await fetch(window.location.origin + window.url_get_precio_envio , {
- method: "POST",
- body: JSON.stringify(data),
- headers: {
- "Content-type": "application/json; charset=UTF-8",
- }
- });
-
- const values = await response.json();
- yeniden(values[window.csrf_token]);
- return values.data;
-}
-
-
-async function get_coste_envio_tiradasAlternativas(tirada){
-
- var peso_libro = get_peso_libro();
- var tirada_inicial = parseInt($('#tirada').val());
- var coste = 0.0;
- var margen = 0.0;
-
- const table = $('#tableOfDireccionesEnvio').DataTable();
- const rows = table.rows().nodes();
-
- for (let i = 0; i < rows.length; i++) {
- const rowData = table.row(rows[i]).data();
- const porcentaje = parseInt(rowData.cantidad)/tirada_inicial*100.0;
- const cantidad = Math.floor(tirada*porcentaje/100.0);
- const peso_envio = cantidad*peso_libro/1000.0;
- const datos_tarifa = await get_precio_envio(peso_envio, rowData.paisId, rowData.cp, parseInt(rowData.entregaPieCalle)==1?'palets':'cajas');
-
- if(datos_tarifa.id!=null){
-
- if(peso_envio>parseFloat(datos_tarifa.peso_max)){
- coste += (parseFloat(datos_tarifa.precio_min) + (peso_envio-parseFloat(datos_tarifa.peso_min)) * parseFloat(datos_tarifa.precio_adicional)).toFixed(2);
- }
- // si no se calcula linealmente
- else{
- m=((parseFloat(datos_tarifa.precio_max)-parseFloat(datos_tarifa.precio_min))/(parseFloat(datos_tarifa.peso_max)-parseFloat(datos_tarifa.peso_min)));
- b=parseFloat(datos_tarifa.precio_max)-m*parseFloat(datos_tarifa.peso_max);
- coste += parseFloat(m*peso_envio+b);
- }
- }
- margen += coste*datos_tarifa.margen/100.0;
- }
-
- return {coste, margen};
-}
-
-
-function checkInsertar(){
-
- var cantidad_total = 0
- $('#tableOfDireccionesEnvio').DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var data = this.data();
- cantidad_total += parseInt(data.cantidad )
- } );
- var htmlString = ''
- if(cantidad_total < parseInt($('#tirada').val())){
- $('#rowInsertar').css('display', 'flex')
- }
- else{
- $('#rowInsertar').css('display', 'none')
- }
-
- if(cantidad_total != parseInt($('#tirada').val())){
- htmlString = `
-
-
-
-
-
-
` +
- window.Presupuestos.validation.ejemplares_envio +
- `
-
-
`;
- }
- $('#alert-envios').html(htmlString)
-}
-
-
-async function updateTablaEnvios(tirada_inicial = null, tirada = null){
-
- var peso_total_libro = get_peso_libro();
-
- $('#tableOfDireccionesEnvio').DataTable().rows().every(async function ( rowIdx, tableLoop, rowLoop ) {
-
- var rowData = this.data();
-
- if(tirada_inicial!=null && tirada!=null){
- const porcentaje = parseInt(rowData.cantidad)/tirada_inicial*100.0;
- const cantidad = Math.floor(tirada*porcentaje/100.0);
- rowData.cantidad = cantidad
- }
- const peso_envio = peso_total_libro*parseInt(rowData.cantidad)/1000.0;
-
- var datos_tarifa = await get_precio_envio(peso_envio, rowData.paisId, rowData.cp, parseInt(rowData.entregaPieCalle)==1?'palets':'cajas');
-
-
- if(datos_tarifa.id!=null){
-
- if(peso_envio>parseFloat(datos_tarifa.peso_max) || parseFloat(datos_tarifa.peso_max) == 0){
- datos_tarifa.precio = parseFloat(datos_tarifa.peso_min) + (peso_envio-parseFloat(datos_tarifa.peso_min))*parseFloat(datos_tarifa.precio_adicional);
- }
- // si no se calcula linealmente
- else{
- m=((parseFloat(datos_tarifa.precio_max)-parseFloat(datos_tarifa.precio_min))/(parseFloat(datos_tarifa.peso_max)-parseFloat(datos_tarifa.peso_min)));
- b=parseFloat(datos_tarifa.precio_max)-m*parseFloat(datos_tarifa.peso_max);
- datos_tarifa.precio = parseFloat(m*peso_envio+b);
- }
-
-
- datos_tarifa.cantidad = parseInt($('#add_cantidad').val());
- datos_tarifa.peso = peso_envio;
-
- $('#tableOfDireccionesEnvio').DataTable().row(rowIdx)
- .data({
- 'tarifa_id': datos_tarifa.id,
- 'cantidad': rowData.cantidad,
- 'peso': datos_tarifa.peso.toFixed(3),
- 'att': rowData.att,
- 'email': rowData.email,
- 'direccion': rowData.direccion,
- 'cp': rowData.cp,
- 'municipio': rowData.municipio,
- 'provincia': rowData.provincia,
- 'paisId': rowData.paisId,
- 'telefono': rowData.telefono,
- 'proveedor': datos_tarifa.proveedor,
- 'proveedor_id': datos_tarifa.proveedor_id,
- 'precio': datos_tarifa.precio.toFixed(2),
- 'margen': datos_tarifa.margen,
- 'entregaPieCalle': rowData.entregaPieCalle,
- 'actionBtns_direcciones': actionBtns_direcciones,
- })
- .draw();
-
- checkInsertar()
- //updateTotales(false, false, true)
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
- }
- else{
- popErrorAlert(window.error_no_tarifa_envio, 'error-tarifa')
- }
- })
-}
-
-$('#insertar_direccion').on('click', function(){
-
- $("#addressForm").attr('action','create')
- var $newAddDialog = $("#addressForm")
- var maximaCantidad = parseInt($('#tirada').val())
- $("#add_cantidad").attr("max" , maximaCantidad);
- $("#add_cantidad").val( maximaCantidad);
- $("#add_cantidad").on('change', function(){
- $("#add_cantidad").val(parseInt($("#add_cantidad").val())>maximaCantidad ? maximaCantidad : $("#add_cantidad").val())
- })
-
- cantidad_total = 0
- tableEnvios.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var data = this.data();
- cantidad_total += parseInt(data.cantidad)
- } );
- $('#add_cantidad').attr('max-value', parseInt($('#tirada').val())-cantidad_total)
- $('#add_cantidad').val(parseInt($('#tirada').val())-cantidad_total)
- $newAddDialog.modal('show')
-})
-
-const lastColNr_direcciones = $('#tableOfDireccionesEnvio').find("tr:first th").length - 1;
-
-
-$(document).on('click', '.delete-add-row', function(e) {
- const row = $(this).closest('tr');
- tableEnvios.row( row )
- .remove()
- .draw();
- checkInsertar()
- //updateTotales(false, false, true)
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
- showBreadCrumbSaveButton(true);
-
-})
-
-$(document).on('click', '.btn-edit-add', function(e) {
- const row = $(this).closest('tr');
- var data = tableEnvios.row( row ).data()
-
- $("#addressForm").attr('action','edit')
- $("#addressForm").attr('row', row[0]._DT_RowIndex)
- $("#addressForm").attr('presupuestodireccion_id', $(this).attr('data-id'))
- var $newAddDialog = $("#addressForm")
- var maximaCantidad = parseInt($('#tirada').val())
- $("#add_cantidad").attr("max" , maximaCantidad);
- $("#add_cantidad").val( maximaCantidad);
- $("#add_cantidad").on('change', function(){
- $("#add_cantidad").val(parseInt($("#add_cantidad").val())>maximaCantidad ? maximaCantidad : $("#add_cantidad").val())
- })
-
- cantidad_total = 0
- tableEnvios.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var data2 = this.data();
- cantidad_total += parseInt(data2.cantidad)
- } );
- cantidad_total -= parseInt(data.cantidad) // Si es editar tienes que restar los de la linea actual
- $('#add_cantidad').attr('max-value', parseInt($('#tirada').val())-cantidad_total)
- $('#add_cantidad').val(parseInt($('#tirada').val())-cantidad_total)
-
- $('#add_att').val(data.att)
- $('#add_direccion').val(data.direccion)
- $('#add_email').val(data.email)
- $('#add_cp').val(data.cp)
- $('#add_municipio').val(data.municipio)
- $('#add_provincia').val(data.provincia)
- $('#add_pais_id').val(data.paisId)
- $('#add_telefono').val(data.telefono)
- $('#add_cantidad').val(data.cantidad)
- $('#add_entregaPieCalle').prop('checked', data.entregaPieCalle==1?true:false)
-
- $newAddDialog.modal('show')
-})
-
-
-
-
-
-$('#recoger_en_taller').change(function(){
- if(this.checked) {
- $('#rowTable').css('display', 'none')
- $('#rowInsertar').css('display', 'none')
- tableEnvios.clear().draw()
- }
- else{
- $('#rowTable').css('display', 'flex')
- $('#rowInsertar').css('display', 'flex')
- tableEnvios.columns.adjust();
- }
-})
-
-
-let tableEnvios = $('#tableOfDireccionesEnvio').DataTable( {
- draw:5,
- serverSide: false,
- processing: true,
- autoWidth: true,
- responsive: true,
- order: [[ 0, "asc" ]],
- pageLength: 20,
- lengthChange: false,
- searching: false,
- paging: false,
- info: false,
- scrollX: true,
-
- columns: [
- { 'data': 'tarifa_id' },
- { 'data': 'cantidad' },
- { 'data': 'peso' },
- { 'data': 'att' },
- { 'data': 'email' },
- { 'data': 'direccion' },
- { 'data': 'cp' },
- { 'data': 'municipio' },
- { 'data': 'paisId' ,
- render: function(data, type, row, meta) {
- var pais = window.paisList.find(element => element.id == data);
- return pais['nombre'];
- },
- },
- { 'data': 'telefono' },
- { 'data': 'proveedor'},
- { 'data': 'proveedor_id'},
- { 'data': 'precio' },
- { 'data': 'margen' },
- { 'data': 'entregaPieCalle' },
- {
- data: actionBtns_direcciones,
- className: 'row-edit dt-center'
- }
- ],
- columnDefs: [
- {
- orderable: false,
- searchable: false,
- targets: [lastColNr_direcciones]
- },
- {"orderData": [ 0], "targets": 0 },
-
- ],
- columnDefs: [
- {
- target: [0,11,13,14],
- visible: false,
- searchable: false
- },
- ],
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
-
- } );
-
-
-
-
-
-function save_datos_envios(){
-
- var id = $('#presupuesto_id').val()
-
- $.post( window.routes_envios.dataTableOfPresupuestoDirecciones,
- Object.assign({tipo: "clear_lineas", presupuesto_id: id}, window.token_ajax))
- .done(function( data ) {
-
- $('#tableOfDireccionesEnvio').DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var data = this.data();
- $.post( '/presupuestos/presupuestodirecciones/add',
- Object.assign({
- presupuesto_id : id,
- tarifa_id : data.tarifa_id,
- cantidad : data.cantidad,
- peso : data.peso,
- att : data.att,
- email : data.email,
- direccion : data.direccion,
- paisId : data.paisId,
- provincia : data.provincia,
- municipio : data.municipio,
- cp : data.cp,
- telefono : data.telefono,
- precio : data.precio,
- margen : data.margen,
- proveedor : data.proveedor,
- proveedor_id : data.proveedor_id,
- entregaPieCalle : data.entregaPieCalle}, window.token_ajax))
- });
-
- })
-
-}
-
-
-function load_datos_envios(){
-
- window.direccionesList.forEach((linea) => {
- tableEnvios.row
- .add({
- 'tarifa_id': linea.tarifa_id,
- 'cantidad': linea.cantidad,
- 'peso': linea.peso,
- 'att': linea.att,
- 'email': linea.email,
- 'direccion': linea.direccion,
- 'cp': linea.cp,
- 'municipio': linea.municipio,
- 'provincia': linea.provincia,
- 'paisId': linea.pais_id,
- 'telefono': linea.telefono,
- 'proveedor': linea.proveedor,
- 'proveedor_id': linea.proveedor_id,
- 'precio': linea.precio,
- 'margen': linea.margen,
- 'entregaPieCalle': linea.entregaPieCalle,
- 'actionBtns_direcciones': actionBtns_direcciones,
- })
- .draw();
- checkInsertar()
-
-
- });
-
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: false
- })
-
-}
-
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.php
index 26a0f0b7..9d3b89e7 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosEnvios.php
@@ -10,11 +10,20 @@
= view("themes/vuexy/form/presupuestos/admin/_presupuestoDireccionesForm") ?>
+
+
+
+
+
+
+
-
+
-
+
@@ -23,12 +32,13 @@
+
- | Proveedor_id |
+
- Margen |
- Entrega a pie |
+
+
@@ -55,24 +65,3 @@
-
-
-
-= $this->section("additionalInlineJs") ?>
-
-window.paisList = ;
-window.direccionesList = ;
-
-window.routes_envios = {
- dataTableOfPresupuestoDirecciones: '= route_to('dataTableOfPresupuestoDirecciones') ?>'
-}
-
-window.url_get_precio_envio = '= route_to('processDataDirecciones') ?>';
-window.error_no_tarifa_envio = '= lang('PresupuestosDirecciones.validation.no_tarifa') ?>'
-window.token_ajax= {= csrf_token() ?? "token" ?>: = csrf_token() ?>v};
-
-$( document ).ready(function() {
- load_datos_envios();
-});
-
-= $this->endSection() ?>
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosLibroItems.js b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosLibroItems.js
deleted file mode 100644
index 2e974ab5..00000000
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosLibroItems.js
+++ /dev/null
@@ -1,144 +0,0 @@
-$('#paginas').on("change", function () {
-
- const url2 = window.location.href;
- const url_parts2 = url2.split('/');
-
- if($('#tipo_impresion_id').val() == 21){
- if(parseInt($('#paginas').val()) > 80){
- $('#paginas').val(80)
- }
- }
-
- if(url_parts2[url_parts2.length-2] == 'edit'){
-
- checkPaginasPresupuesto()
-
- // Si es negro o color
- if ($('#tipoImpresion').select2('data')[0].id == 'negro' ||
- $('#tipoImpresion').select2('data')[0].id == 'color') {
- $('#compPaginasNegro').val(parseInt($('#paginas').val())-parseInt($('#compPaginasColor').val()));
- $('#compPaginasNegro').trigger('change')
- }
- // Si es negrohq o colorhq
- if ($('#tipoImpresion').select2('data')[0].id == 'negrohq' ||
- $('#tipoImpresion').select2('data')[0].id == 'colorhq') {
- $('#compPaginasNegrohq').val(parseInt($('#paginas').val())-parseInt($('#compPaginasColorhq').val()));
- $('#compPaginasNegrohq').trigger('change');
- }
-
- //update_servicios(false)
- //updateLineasPresupuesto()
- updatePresupuesto({
- update_lineas: true,
- update_servicios: true,
- update_envios: true,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
- }
-});
-
-
-$('#tirada').on("change", function (update_tiradas_alternativas = true) {
-
- calcular_mermas()
-
- const url2 = window.location.href;
- const url_parts2 = url2.split('/');
-
- if(url_parts2[url_parts2.length-2] == 'edit'){
- //update_servicios(false)
- //updateLineasPresupuesto()
- if(update_tiradas_alternativas)
- updatePresupuesto({
- update_lineas: true,
- update_servicios: false,
- update_envios: false,
- update_resumen: false,
- update_tiradas_alternativas: false
- })
- else
- updatePresupuesto({
- update_lineas: true,
- update_servicios: false,
- update_envios: false,
- update_resumen: false,
- update_tiradas_alternativas: false
- })
- checkInsertar()
- }
-})
-
-function calcular_mermas(){
-
- const tirada = parseInt($('#tirada').val())
- var merma = 0
- htmlString = ''
-
- if(tirada> parseInt($('#POD').val())){
- merma = tirada*0.1<=30 ? tirada*0.1 : 30
- }
- else{
- merma_lineas = []
- tableLineasPresupuesto.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var rowData = this.data();
- if(rowData.row_id != 'lp_guardas' && rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta'){
- const formas_linea = parseInt($('#isCosido').val())==0?parseInt(rowData.formas):parseInt(rowData.formas)/2
- if(formas_linea > tirada)
- merma_lineas.push(formas_linea-tirada)
- else
- merma_lineas.push(tirada%formas_linea)
- }
-
- })
-
-
- if(merma_lineas.length>0)
- merma = Math.max(...merma_lineas)
- else{
- htmlString = `
-
-
-
-
-
-
` +
- window.Presupuestos.validation.no_lp_for_merma +
- `
-
-
`;
-
-
- merma = 0
-
- }
-
- }
- $('#mermacubierta').val(parseInt(merma))
- $('#merma').val(parseInt(merma))
- $('#alert-datosLibro').html(htmlString)
-}
-
-
-$('#papelFormatoPersonalizado').on("click",function(){
-
- if($('#papelFormatoPersonalizado').is(':checked')){
- document.getElementById("papelFormatoAncho").style.display = "block";
- document.getElementById("papelFormatoAlto").style.display = "block";
- $('#papelFormatoId').hide();
- $('#papelFormatoId').val(0).change();
- document.getElementById("label_papelFormatoId").innerHTML =
- window.Presupuestos.papelFormatoId + " (" +
- window.Presupuestos.papelFormatoAncho + " x " + window.Presupuestos.papelFormatoAncho + ")*";
- }
- else{
- document.getElementById("papelFormatoAncho").value= "";
- document.getElementById("papelFormatoAlto").value= "";
- document.getElementById("papelFormatoAncho").style.display = "none";
- document.getElementById("papelFormatoAlto").style.display = "none";
- $('#papelFormatoId').show();
- document.getElementById("label_papelFormatoId").innerHTML =
- window.Presupuestos.papelFormatoId + '*';
- }
-});
-
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosLibroItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosLibroItems.php
index bd524b58..8a479ee5 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosLibroItems.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosLibroItems.php
@@ -1,7 +1,8 @@
-
+
@@ -41,28 +44,25 @@
+
+
+
-
@@ -96,38 +98,64 @@
-
-
-
-
- solapas == true ? 'checked' : ''; ?>>
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Entre 60 y 120 mm
+
+
+
+
-
-
-
-
-
-
-
-
- solapas_sobrecubierta == true ? 'checked' : ''; ?>>
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Entre 60 y 120 mm
+
+
+
-
+
-
-
-
- solapas == true): ?>
-
-
-
-
-
-
-
-
+
-
-
-
-
- solapas_sobrecubierta == true): ?>
-
-
-
-
-
-
+
-
+
-
= lang("Presupuestos.acabadosExteriores") ?>
+
+ = lang("Presupuestos.acabadosExteriores") ?>
+
@@ -186,49 +223,33 @@
= lang('Presupuestos.acabadoCubierta') ?>*
-
-
+
-
-
-
-
- = lang('Presupuestos.acabadoSobrecubierta') ?>*
-
-
-
-
-
-
-
+
+
+
+ = lang('Presupuestos.acabadoSobrecubierta') ?>*
+
+
+
-
+
-
-
-
+
-
-
-
= lang("Presupuestos.opcionesPresupuesto") ?>
+
+ = lang("Presupuestos.opcionesPresupuesto") ?>
+
@@ -237,207 +258,114 @@
-
+
+
-
-
-
-
- retractilado5 == true ? 'checked' : ''; ?>>
- = lang('Presupuestos.retractilado5') ?>
-
-
-
-
+
+
+
+
+ >
+ = lang('Presupuestos.retractilado5') ?>
+
+
+
+
+
+
+
+
+
+ >
+ = lang('Presupuestos.prototipo') ?>
+
+
+
+
+
+
+
-
-
-
-
- faja_color == true ? 'checked' : ''; ?>>
- = lang('Presupuestos.fajaColor') ?>
-
-
-
-
-
-
-
-
-
- prototipo == true ? 'checked' : ''; ?>>
- = lang('Presupuestos.prototipo') ?>
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+ >
+ = lang('Presupuestos.ferro') ?>
+
+
+
+
-
+
+
+
+
+
+ = lang('Presupuestos.ferroDigital') ?>
+
+
+
+
-
-
-
-
- ferro == true ? 'checked' : ''; ?>>
- = lang('Presupuestos.ferro') ?>
-
-
-
-
+
+
+
+
+
+ = lang('Presupuestos.marcapaginas') ?>
+
+
+
+
+
>
+
>
+
>
+
>
+
>
+
>
+
>
-
-
-
-
- ferro_digital == true ? 'checked' : ''; ?>>
- = lang('Presupuestos.ferroDigital') ?>
-
-
-
-
-
-
-
-
-
- marcapaginas == true ? 'checked' : ''; ?>>
- = lang('Presupuestos.marcapaginas') ?>
-
-
-
-
-
-
+
-
-
-
-
-
-= $this->section("additionalInlineJs") ?>
-
-$('#papelFormatoId').select2({
- allowClear: false,
-});
-
-
- var ancho_libro = getDimensionLibro().ancho;
- var alto_libro = getDimensionLibro().alto;
-
- $('#retractilado').on("change", function () {
- checkRetractiladoComparador(this);
- servicioRetractilado()
- });
-
-
- $('#retractilado5').on("change", function () {
- checkRetractiladoComparador(this);
- servicioRetractilado5()
- });
-
- $('#fajaColor').on("change", function () {
- servicioFajaColor()
- });
-
- $('#ferro').on("change", function () {
- servicioFerro()
- });
-
- $('#prototipo').on("change", function () {
- servicioPrototipo()
- servicioFerro()
- });
-
-
-$('#papelFormatoId').on('select2:select', event_change_formato)
-$('.formato_libro').on('change', event_change_formato)
-
-function event_change_formato(){
- ancho_libro = getDimensionLibro().ancho;
- alto_libro = getDimensionLibro().alto;
-
-
- // Si es negro o color
- if ($('#tipoImpresion').select2('data')[0].id == 'negro' ||
- $('#tipoImpresion').select2('data')[0].id == 'color') {
- $('#compPaginasNegro').trigger('change')
- }
- // Si es negrohq o colorhq
- if ($('#tipoImpresion').select2('data')[0].id == 'negrohq' ||
- $('#tipoImpresion').select2('data')[0].id == 'colorhq') {
- $('#compPaginasNegrohq').trigger('change');
- }
-
- $('.solapas_cubierta').trigger('change')
- $('.solapas_sobrecubierta').trigger('change')
-
- checkPaginasPresupuesto()
-
- updatePresupuesto({
- update_lineas: true,
- update_servicios: true,
- update_envios: true,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
- //updateLineasPresupuesto()
- //update_servicios(false)
-}
-
-
-
-
-
-$("#solapas").on("click", function () {
- var e = document.getElementById('div_solapas_ancho');
- if (document.getElementById('solapas').checked) {
- e.style.display = "block";
- }
- else {
- e.style.display = "none";
- $('#solapas_ancho').val(0)
- }
-
- $('#serv_default').click()
-});
-
-
-$("#solapas_sobrecubierta").on("click", function () {
- var e = document.getElementById('div_solapas_ancho_sobrecubierta');
- if (document.getElementById('solapas_sobrecubierta').checked) {
- e.style.display = "block";
- }
- else {
- e.style.display = "none";
- $('#solapas_ancho_sobrecubierta').val(0)
- }
-
- $('#serv_default').click()
-});
-
-let initTamanioPersonalizado = papel_formato_personalizado==true?1:0); ?>;
-if(initTamanioPersonalizado != null){
- if ( initTamanioPersonalizado){
- $('#papelFormatoId').next(".select2-container").hide();
- }
-}
-= $this->endSection() ?>
+
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosPresupuestoClienteItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosPresupuestoClienteItems.php
index bf952469..b8ad40ff 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosPresupuestoClienteItems.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosPresupuestoClienteItems.php
@@ -1,38 +1,45 @@
-
+
-
+
-
= lang("Presupuestos.tipoImpresion") ?>
+
+ = lang("Presupuestos.tipoImpresion") ?>
+
-
-
-
= lang("Presupuestos.numeroPaginas") ?>
+
+ = lang("Presupuestos.numeroPaginas") ?>
+
-
= lang("Presupuestos.papel") ?>
+
+ = lang("Presupuestos.papel") ?>
+
-
= lang("Presupuestos.gramaje") ?>
+
+ = lang("Presupuestos.gramaje") ?>
+
@@ -71,24 +86,22 @@
-
= lang('MaquinasTarifasImpresions.negro') ?>
+
+ = lang('MaquinasTarifasImpresions.negro') ?>
+
-
+
-
- $v) : ?>
-
- = $v->nombre ?>
-
-
+
-
+
@@ -99,24 +112,22 @@
-
= lang('MaquinasTarifasImpresions.negrohq') ?>
+
+ = lang('MaquinasTarifasImpresions.negrohq') ?>
+
-
+
-
- $v) : ?>
-
- = $v->nombre ?>
-
-
+
-
+
@@ -127,24 +138,22 @@
-
= lang('MaquinasTarifasImpresions.color') ?>
+
+ = lang('MaquinasTarifasImpresions.color') ?>
+
-
+
-
- $v) : ?>
-
- = $v->nombre ?>
-
-
+
-
+
@@ -155,24 +164,22 @@
-
= lang('MaquinasTarifasImpresions.colorhq') ?>
+
+ = lang('MaquinasTarifasImpresions.colorhq') ?>
+
-
+
-
- $v) : ?>
-
- = $v->nombre ?>
-
-
+
-
+
@@ -183,31 +190,197 @@
-
= lang('PapelImpresion.cubierta') ?>
-
+
+ = lang('PapelImpresion.cubierta') ?>
+
+
-
+
- = lang('Presupuestos.unaCara') ?>
+
+ = lang('Presupuestos.unaCara') ?>
+
- = lang('Presupuestos.dosCaras') ?>
+
+ = lang('Presupuestos.dosCaras') ?>
+
-
- $v) : ?>
-
- = $v->nombre ?>
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = lang('Presupuestos.lomoRedondo') ?>*
+
+
+
+
+ = lang('Presupuestos.no') ?>
+
+
+
+
+ = lang('Presupuestos.si') ?>
+
+
-
+
+ = lang('Presupuestos.cabezada') ?>
+
+
+
+ = lang('Presupuestos.blanca') ?>
+
+
+ = lang('Presupuestos.verde') ?>
+
+
+ = lang('Presupuestos.azul') ?>
+
+
+ = lang('Presupuestos.rojaAmarilla') ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = lang('PapelImpresion.sobrecubierta') ?>
+
+
+
+
+
+
+ = lang('Presupuestos.no') ?>
+
+
+
+
+ = lang('Presupuestos.si') ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = lang('PapelImpresion.guardas') ?>
+
+
+
+
+
+
+ = lang('Presupuestos.sinImpresion') ?>
+
+
+
+
+ = lang('Presupuestos.unaCara') ?>
+
+
+
+
+
+ = lang('Presupuestos.dosCaras') ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = lang('Presupuestos.faja') ?>
+
+
+
+
+
+
+ = lang('Presupuestos.no') ?>
+
+
+
+
+ = lang('Presupuestos.si') ?>
+
+
+
+
+
+
+
+
+
+
@@ -215,97 +388,25 @@
-
-
-
-
= lang('PapelImpresion.sobrecubierta') ?>
-
-
-
-
- = lang('Presupuestos.no') ?>
-
-
- = lang('Presupuestos.si') ?>
-
-
-
-
-
- $v) : ?>
-
- = $v->nombre ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
= lang('PapelImpresion.guardas') ?>
-
-
-
-
- = lang('Presupuestos.sinImpresion') ?>
-
-
- = lang('Presupuestos.unaCara') ?>
-
-
-
- = lang('Presupuestos.dosCaras') ?>
-
-
-
-
-
-
- $v) : ?>
-
- = $v->nombre ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
= lang("Presupuestos.posicionPagColor") ?>
+
+ = lang("Presupuestos.posicionPagColor") ?>
+
-
+
@@ -313,12 +414,15 @@
= lang('Presupuestos.posicionPagColor') ?>
-
+
-
= lang('Presupuestos.colorPageInstructions') ?>
+
+ = lang('Presupuestos.colorPageInstructions') ?>
+
@@ -327,52 +431,93 @@
-
+
-
+
- | = lang('Presupuestos.tipo') ?> |
- = lang('Presupuestos.paginas') ?> |
- = lang('Presupuestos.papel') ?> |
- = lang('Presupuestos.gramaje') ?> |
- = lang('Presupuestos.marca') ?> |
- = lang('Presupuestos.maquina') ?> |
- = lang('Presupuestos.numeroPliegos') ?> |
- = lang('Presupuestos.pliegosPedido') ?> |
- = lang('Presupuestos.precioPliego') ?> |
- = lang('Presupuestos.libro') ?> |
- = lang('Presupuestos.totalPapelPedido') ?> |
- = lang('Presupuestos.lomo') ?> |
- = lang('Presupuestos.peso') ?> |
- = lang('Presupuestos.horas') ?> |
- = lang('Presupuestos.precioImpresion') ?> |
- = lang('Presupuestos.total') ?> |
+
+ = lang('Presupuestos.tipo') ?>
+ |
+
+ = lang('Presupuestos.paginas') ?>
+ |
+
+ = lang('Presupuestos.papel') ?>
+ |
+
+ = lang('Presupuestos.gramaje') ?>
+ |
+
+ = lang('Presupuestos.marca') ?>
+ |
+
+ = lang('Presupuestos.maquina') ?>
+ |
+
+ = lang('Presupuestos.numeroPliegos') ?>
+ |
+
+ = lang('Presupuestos.pliegosPedido') ?>
+ |
+
+ = lang('Presupuestos.precioPliego') ?>
+ |
+
+ = lang('Presupuestos.libro') ?>
+ |
+
+ = lang('Presupuestos.totalPapelPedido') ?>
+ |
+
+ = lang('Presupuestos.lomo') ?>
+ |
+
+ = lang('Presupuestos.peso') ?>
+ |
+
+ = lang('Presupuestos.horas') ?>
+ |
+
+ = lang('Presupuestos.precioImpresion') ?>
+ |
+
+ = lang('Presupuestos.total') ?>
+ |
- | = lang('Presupuestos.total') ?> = lang("Presupuestos.compInteriorPlana") ?>: |
- 0.00 |
+
+ = lang('Presupuestos.total') ?>
+ = lang("Presupuestos.compInteriorPlana") ?>:
+ |
+
+ 0.00 |
-
-
@@ -384,39 +529,87 @@
-
+
-
+
- | = lang('Presupuestos.tipo') ?> |
- = lang('Presupuestos.paginas') ?> |
- = lang('Presupuestos.papel') ?> |
- = lang('Presupuestos.gramaje') ?> |
- = lang('Presupuestos.marca') ?> |
- = lang('Presupuestos.aFavorFibra') ?> |
- = lang('Presupuestos.maquina') ?> |
- = lang('Presupuestos.numeroPliegos') ?> |
- = lang('Presupuestos.pliegosPedido') ?> |
- = lang('Presupuestos.precioPliego') ?> |
- = lang('Presupuestos.libro') ?> |
- = lang('Presupuestos.totalPapelPedido') ?> |
- = lang('Presupuestos.lomo') ?> |
- = lang('Presupuestos.peso') ?> |
- = lang('Presupuestos.horas') ?> |
- = lang('Presupuestos.precioImpresion') ?> |
- = lang('Presupuestos.precioPagNegro') ?> |
- = lang('Presupuestos.precioPagColor') ?> |
- = lang('Presupuestos.totalTinta') ?> |
- = lang('Presupuestos.totalCorte') ?> |
- = lang('Presupuestos.total') ?> |
+
+ = lang('Presupuestos.tipo') ?>
+ |
+
+ = lang('Presupuestos.paginas') ?>
+ |
+
+ = lang('Presupuestos.papel') ?>
+ |
+
+ = lang('Presupuestos.gramaje') ?>
+ |
+
+ = lang('Presupuestos.marca') ?>
+ |
+
+ = lang('Presupuestos.aFavorFibra') ?>
+ |
+
+ = lang('Presupuestos.maquina') ?>
+ |
+
+ = lang('Presupuestos.numeroPliegos') ?>
+ |
+
+ = lang('Presupuestos.pliegosPedido') ?>
+ |
+
+ = lang('Presupuestos.precioPliego') ?>
+ |
+
+ = lang('Presupuestos.libro') ?>
+ |
+
+ = lang('Presupuestos.totalPapelPedido') ?>
+ |
+
+ = lang('Presupuestos.lomo') ?>
+ |
+
+ = lang('Presupuestos.peso') ?>
+ |
+
+ = lang('Presupuestos.horas') ?>
+ |
+
+ = lang('Presupuestos.precioImpresion') ?>
+ |
+
+ = lang('Presupuestos.precioPagNegro') ?>
+ |
+
+ = lang('Presupuestos.precioPagColor') ?>
+ |
+
+ = lang('Presupuestos.totalTinta') ?>
+ |
+
+ = lang('Presupuestos.totalCorte') ?>
+ |
+
+ = lang('Presupuestos.total') ?>
+ |
@@ -424,17 +617,20 @@
|
- = lang('Presupuestos.total') ?> = lang("Presupuestos.compInteriorRotativa") ?>: |
- 0.00 |
+
+ = lang('Presupuestos.total') ?>
+ = lang("Presupuestos.compInteriorRotativa") ?>:
+ |
+ 0.00
+ |
-
-
- = lang('Presupuestos.insertarLinea').' '.strtoupper(lang('Presupuestos.rotativa')) ?>
+
+
+ = lang('Presupuestos.insertarLinea') . ' ' . strtoupper(lang('Presupuestos.rotativa')) ?>
@@ -446,50 +642,91 @@
-
+
-
+
- | = lang('Presupuestos.tipo') ?> |
- = lang('Presupuestos.paginas') ?> |
- = lang('Presupuestos.papel') ?> |
- = lang('Presupuestos.gramaje') ?> |
- = lang('Presupuestos.marca') ?> |
- = lang('Presupuestos.maquina') ?> |
- = lang('Presupuestos.numeroPliegos') ?> |
- = lang('Presupuestos.pliegosPedido') ?> |
- = lang('Presupuestos.precioPliego') ?> |
- = lang('Presupuestos.libro') ?> |
- = lang('Presupuestos.totalPapelPedido') ?> |
- = lang('Presupuestos.lomo') ?> |
- = lang('Presupuestos.peso') ?> |
- = lang('Presupuestos.horas') ?> |
- = lang('Presupuestos.precioImpresion') ?> |
- = lang('Presupuestos.total') ?> |
+
+ = lang('Presupuestos.tipo') ?>
+ |
+
+ = lang('Presupuestos.paginas') ?>
+ |
+
+ = lang('Presupuestos.papel') ?>
+ |
+
+ = lang('Presupuestos.gramaje') ?>
+ |
+
+ = lang('Presupuestos.marca') ?>
+ |
+
+ = lang('Presupuestos.maquina') ?>
+ |
+
+ = lang('Presupuestos.numeroPliegos') ?>
+ |
+
+ = lang('Presupuestos.pliegosPedido') ?>
+ |
+
+ = lang('Presupuestos.precioPliego') ?>
+ |
+
+ = lang('Presupuestos.libro') ?>
+ |
+
+ = lang('Presupuestos.totalPapelPedido') ?>
+ |
+
+ = lang('Presupuestos.lomo') ?>
+ |
+
+ = lang('Presupuestos.peso') ?>
+ |
+
+ = lang('Presupuestos.horas') ?>
+ |
+
+ = lang('Presupuestos.precioImpresion') ?>
+ |
+
+ = lang('Presupuestos.total') ?>
+ |
- | = lang('Presupuestos.total') ?> = lang("Presupuestos.compCubiertaSobrecubierta") ?>: |
- 0.00 |
+
+ = lang('Presupuestos.total') ?>
+ = lang("Presupuestos.compCubiertaSobrecubierta") ?>:
+ |
+
+ 0.00 |
-
- = lang('Presupuestos.insertarLinea').' '.strtoupper(lang('Presupuestos.compCubiertaSobrecubierta')) ?>
+
+ = lang('Presupuestos.insertarLinea') . ' ' . strtoupper(lang('Presupuestos.compCubiertaSobrecubierta')) ?>
@@ -499,1396 +736,205 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
- | = lang('Presupuestos.tipo') ?> |
- = lang('Presupuestos.paginas') ?> |
- = lang('Presupuestos.papel') ?> |
- = lang('Presupuestos.gramaje') ?> |
- = lang('Presupuestos.marca') ?> |
- = lang('Presupuestos.maquina') ?> |
- = lang('Presupuestos.numeroPliegos') ?> |
- = lang('Presupuestos.pliegosPedido') ?> |
- = lang('Presupuestos.precioPliego') ?> |
- = lang('Presupuestos.libro') ?> |
- = lang('Presupuestos.totalPapelPedido') ?> |
- = lang('Presupuestos.lomo') ?> |
- = lang('Presupuestos.peso') ?> |
- = lang('Presupuestos.horas') ?> |
- = lang('Presupuestos.precioImpresion') ?> |
- = lang('Presupuestos.total') ?> |
-
-
-
-
-
-
- | = lang('Presupuestos.total') ?> = lang("Presupuestos.Guardas") ?>: |
- 0.00 |
-
-
-
+
+
+
+ |
+ = lang('Presupuestos.tipo') ?>
+ |
+
+ = lang('Presupuestos.paginas') ?>
+ |
+
+ = lang('Presupuestos.papel') ?>
+ |
+
+ = lang('Presupuestos.gramaje') ?>
+ |
+
+ = lang('Presupuestos.marca') ?>
+ |
+
+ = lang('Presupuestos.maquina') ?>
+ |
+
+ = lang('Presupuestos.numeroPliegos') ?>
+ |
+
+ = lang('Presupuestos.pliegosPedido') ?>
+ |
+
+ = lang('Presupuestos.precioPliego') ?>
+ |
+
+ = lang('Presupuestos.libro') ?>
+ |
+
+ = lang('Presupuestos.totalPapelPedido') ?>
+ |
+
+ = lang('Presupuestos.lomo') ?>
+ |
+
+ = lang('Presupuestos.peso') ?>
+ |
+
+ = lang('Presupuestos.horas') ?>
+ |
+
+ = lang('Presupuestos.precioImpresion') ?>
+ |
+
+ = lang('Presupuestos.total') ?>
+ |
+
+
+
+
+
+
+ |
+ = lang('Presupuestos.total') ?>
+ = lang("Presupuestos.Guardas") ?>:
+ |
+
+ 0.00 |
+
+
+
-
-
- = lang('Presupuestos.insertarLinea').' '.strtoupper(lang('Presupuestos.Guardas')) ?>
-
-
-
+
+
+ = lang('Presupuestos.insertarLinea') . ' ' . strtoupper(lang('Presupuestos.Guardas')) ?>
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+ = lang('Presupuestos.tipo') ?>
+ |
+
+ = lang('Presupuestos.paginas') ?>
+ |
+
+ = lang('Presupuestos.papel') ?>
+ |
+
+ = lang('Presupuestos.gramaje') ?>
+ |
+
+ = lang('Presupuestos.marca') ?>
+ |
+
+ = lang('Presupuestos.maquina') ?>
+ |
+
+ = lang('Presupuestos.numeroPliegos') ?>
+ |
+
+ = lang('Presupuestos.pliegosPedido') ?>
+ |
+
+ = lang('Presupuestos.precioPliego') ?>
+ |
+
+ = lang('Presupuestos.libro') ?>
+ |
+
+ = lang('Presupuestos.totalPapelPedido') ?>
+ |
+
+ = lang('Presupuestos.lomo') ?>
+ |
+
+ = lang('Presupuestos.peso') ?>
+ |
+
+ = lang('Presupuestos.horas') ?>
+ |
+
+ = lang('Presupuestos.precioImpresion') ?>
+ |
+
+ = lang('Presupuestos.total') ?>
+ |
+
+
+
+
+
+
+ |
+ = lang('Presupuestos.total') ?>
+ = lang("Presupuestos.faja") ?>:
+ |
+
+ 0.00 |
+
+
+
+
+
+
+ = lang('Presupuestos.insertarLinea') . ' ' . strtoupper(lang('Presupuestos.faja')) ?>
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-= $this->section("additionalInlineJs") ?>
-
- autosize($('#compCalPaginasColor'));
-
- function init_comparador() {
- $('#tipoImpresion').select2({
- allowClear: false,
- });
-
- $('#compPapelNegro').select2({
- allowClear: false,
- });
-
- $('#compGramajeNegro').select2({
-
- allowClear: false,
- minimumResultsForSearch: Infinity,
- ajax: {
- url: '= route_to("menuItemsOfPresupuestoAdmin") ?>',
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
- return {
- tipo: 'gramaje',
- uso: 'bn',
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- datos: $('#compPapelNegro').select2('data')[0].text.trim() ,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response.= csrf_token() ?>);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
-
- $('#compPapelNegrohq').select2({
- allowClear: false,
- });
-
- $('#compGramajeNegrohq').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- ajax: {
- url: '= route_to("menuItemsOfPresupuestoAdmin") ?>',
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
- return {
- tipo: 'gramaje',
- uso: 'bnhq',
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- datos: $('#compPapelNegrohq').select2('data')[0].text.trim() ,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response.= csrf_token() ?>);
- return {
- results: response.menu
- };
- },
- cache: true
- }
-
- });
-
- $('#compPapelColor').select2({
- allowClear: false,
- });
-
- $('#compPapelColorhq').select2({
- allowClear: false,
- });
-
- $('#compGramajeColor').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- ajax: {
- url: '= route_to("menuItemsOfPresupuestoAdmin") ?>',
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
- return {
- tipo: 'gramaje',
- uso: 'color',
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- datos: $('#compPapelColor').select2('data')[0].text.trim() ,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response.= csrf_token() ?>);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
-
- $('#compGramajeColorhq').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- ajax: {
- url: '= route_to("menuItemsOfPresupuestoAdmin") ?>',
- type: 'post',
-
- data: function (params) {
- return {
- tipo: 'gramaje',
- uso: 'colorhq',
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- datos: $('#compPapelColorhq').select2('data')[0].text.trim() ,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response.= csrf_token() ?>);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
-
- $('#compPapelCubierta').select2({
- allowClear: false,
- });
-
- $('#compGramajeCubierta').select2({
- allowClear: false,
- });
-
- $('#compPapelSobrecubierta').select2({
- allowClear: false,
- });
-
- $('#compGramajeSobrecubierta').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- });
-
- $('#encuadernacion').select2({
- allowClear: false,
- });
-
-
-
- $('#compCarasCubierta').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- });
-
- $('#compPapelGuardas').select2({
- allowClear: false,
- });
-
- $('#compCarasGuardas').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- });
-
-
- updatePapelesComparador();
- const paginasColor = document.getElementById('compCalPaginasColor');
- if (paginasColor.value.length > 0) {
- computarPaginasColor(paginasColor.value);
- }
-
- computarPaginasColor($('#compPosPaginasColor').val());
- }
-
- $('#compSobrecubierta').on('change', function(){
- if ($('#compSobrecubierta').val()==1){
- value = false
- }
- else{
- value = 'disabled'
- $('#compPapelSobrecubierta').val(0)
- $('#compGramajeSobrecubierta').val('')
- $('#compGramajeSobrecubierta').select2("destroy")
- $('#compGramajeSobrecubierta').select2({allowClear: false, minimumResultsForSearch: Infinity})
-
- }
- $('#compPapelSobrecubierta').prop('disabled', value);
- $('#compGramajeSobrecubierta').prop('disabled', value);
- })
-
- function init_lineas_comparador(){
- var comp_data =
-
- try{
- $("#compPapelNegro").val(parseInt(comp_data.bn.papel_id)).trigger('change');
-
- try{
- var newState = new Option(comp_data.bn.gramaje, comp_data.bn.gramaje, true, true);
- // Append it to the select
- $("#compGramajeNegro").append(newState).trigger('change');
- $('#compGramajeNegro').prop('disabled', false);
- }catch(e){}
- }catch(e){}
-
- try{
- $("#compPapelNegrohq").val(parseInt(comp_data.bnhq.papel_id)).trigger('change');
-
- try{
- var newState = new Option(comp_data.bnhq.gramaje, comp_data.bnhq.gramaje, true, true);
- // Append it to the select
- $("#compGramajeNegrohq").append(newState).trigger('change');
- $('#compGramajeNegrohq').prop('disabled', false);
- }catch(e){}
- }catch(e){}
-
- try{
- $("#compPapelColor").val(parseInt(comp_data.color.papel_id)).trigger('change');
-
- try{
- var newState = new Option(comp_data.color.gramaje, comp_data.color.gramaje, true, true);
- // Append it to the select
- $("#compGramajeColor").append(newState).trigger('change');
- $('#compGramajeColor').prop('disabled', false);
- }catch(e){}
- }catch(e){}
-
- try{
- $("#compPapelColorhq").val(parseInt(comp_data.colorhq.papel_id)).trigger('change');
-
- try{
- var newState = new Option(comp_data.colorhq.gramaje, comp_data.colorhq.gramaje, true, true);
- // Append it to the select
- $("#compGramajeColorhq").append(newState).trigger('change');
- $('#compGramajeColorhq').prop('disabled', false);
- }catch(e){}
- }catch(e){}
-
- try{
- $("#compCarasCubierta").val(parseInt(comp_data.cubierta.paginas)).change();
- try{
- $("#compPapelCubierta").val(parseInt(comp_data.cubierta.papel_id)).trigger('select2:select');
-
- try{
- var newState = new Option(comp_data.cubierta.gramaje, comp_data.cubierta.gramaje, true, true);
- // Append it to the select
- $("#compGramajeCubierta").append(newState).trigger('change');
- $('#compGramajeCubierta').prop('disabled', false);
- }catch(e){}
- }catch(e){}
- }catch(e){}
-
- try{
- $("#compSobrecubierta").val(parseInt(comp_data.sobrecubierta.imprimir)).change();
- try{
- $("#compPapelSobrecubierta").val(parseInt(comp_data.sobrecubierta.papel_id)).trigger('select2:select');
-
- try{
- var newState = new Option(comp_data.sobrecubierta.gramaje, comp_data.sobrecubierta.gramaje, true, true);
- // Append it to the select
- $("#compGramajeSobrecubierta").append(newState).trigger('change');
- $('#compGramajeSobrecubierta').prop('disabled', false);
- }catch(e){}
- }catch(e){}
- }catch(e){}
-
- try{
- $("#compCarasGuardas").val(parseInt(comp_data.guardas.paginas_impresion)).change();
- $("#compPapelGuardas").val(parseInt(comp_data.guardas.papel_id)).trigger('change');
- }catch(e){}
-
- }
-
- var tableCompIntPlana = new DataTable('#tableCompIntPlana',{
- scrollX: true,
- searching: false,
- paging: false,
- info: false,
- ordering: false,
- responsive: true,
- select: false,
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
- columns: [
- { 'data': 'tipo',
- 'render': function ( data, type, row, meta ) {
- if(data=='bn')
- return '= lang('Presupuestos.bn') ?>';
- else if(data=='bnhq')
- return '= lang('Presupuestos.bnhq') ?>';
- else if(data=='color')
- return '= lang('Presupuestos.color') ?>';
- else if(data=='colorhq')
- return '= lang('Presupuestos.colorhq') ?>';
- }
- },
- { 'data': 'paginas' },
- { 'data': 'papel' },
- { 'data': 'gramaje' },
- { 'data': 'marca' },
- { 'data': 'maquina' },
- { 'data': 'numeroPliegos' },
- { 'data': 'pliegosPedido' },
- { 'data': 'precioPliego' },
- { 'data': 'libro' },
- { 'data': 'totalPapelPedido' },
- { 'data': 'lomo' },
- { 'data': 'peso' },
- { 'data': 'horasMaquina' },
- { 'data': 'precioImpresion' },
- { 'data': 'total' },
- { 'data': 'maquinaId'},
- { 'data': 'maquinaVelocidad'},
- { 'data': 'tiempoMaquina'},
- { 'data': 'papelGenericoId'},
- { 'data': 'papelImpresionId'},
- { 'data': 'tarifa_impresion_id'}
- ],
- columnDefs: [
- {
- target: [16,17,18,19,20,21],
- visible: false,
- searchable: false
- },
- ]
- });
-
-
- var tableCompIntRotativa = new DataTable('#tableCompIntRotativa',{
- scrollX: true,
- searching: false,
- paging: false,
- info: false,
- ordering: false,
- responsive: true,
- select: false,
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
- columns: [
- { 'data': 'tipo',
- 'render': function ( data, type, row, meta ) {
- if(data=='rotativa')
- return '= lang('Presupuestos.rotativa') ?>';
- }
- },
- { 'data': 'paginas' },
- { 'data': 'papel' },
- { 'data': 'gramaje' },
- { 'data': 'marca' },
- { 'data': 'aFavorFibra',
- 'render': function(data, type, row, meta){
- if(data=='si')
- return '= lang('Presupuestos.si') ?>';
- else if(data=='no')
- return '= lang('Presupuestos.no') ?>';
- }
- },
- { 'data': 'maquina' },
- { 'data': 'numeroPliegos' },
- { 'data': 'pliegosPedido' },
- { 'data': 'precioPliego' },
- { 'data': 'libro' },
- { 'data': 'totalPapelPedido' },
- { 'data': 'lomo' },
- { 'data': 'peso' },
- { 'data': 'horasMaquina' },
- { 'data': 'precioImpresion' },
- { 'data': 'precioPagNegro' },
- { 'data': 'precioPagColor' },
- { 'data': 'totalTinta' },
- { 'data': 'totalCorte' },
- { 'data': 'total' },
- { 'data': 'maquinaId'},
- { 'data': 'maquinaVelocidad'},
- { 'data': 'tiempoMaquina'},
- { 'data': 'papelGenericoId'},
- { 'data': 'papelImpresionId'},
- { 'data': 'paginasColor'},
- { 'data': 'tarifa_impresion_id'}
- ],
- columnDefs: [
- {
- target: [21,22,23,24,25,26,27],
- visible: false,
- searchable: false
- },
- ]
- });
-
- var tableCompCubierta = new DataTable('#tableCompCubierta',{
- scrollX: true,
- searching: false,
- paging: false,
- info: false,
- ordering: true,
- responsive: true,
- select: false,
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
- columns: [
- { 'data': 'tipo',
- 'render': function ( data, type, row, meta ) {
- if(data=='cubierta')
- return '= lang('Presupuestos.cubierta') ?>';
- else if(data=='sobrecubierta')
- return '= lang('Presupuestos.sobrecubierta') ?>';
- }
- },
- { 'data': 'paginas' },
- { 'data': 'papel' },
- { 'data': 'gramaje' },
- { 'data': 'marca' },
- { 'data': 'maquina' },
- { 'data': 'numeroPliegos' },
- { 'data': 'pliegosPedido' },
- { 'data': 'precioPliego' },
- { 'data': 'libro' },
- { 'data': 'totalPapelPedido' },
- { 'data': 'lomo' },
- { 'data': 'peso' },
- { 'data': 'horasMaquina' },
- { 'data': 'precioImpresion' },
- { 'data': 'total' },
- { 'data': 'maquinaId'},
- { 'data': 'maquinaVelocidad'},
- { 'data': 'tiempoMaquina'},
- { 'data': 'papelGenericoId'},
- { 'data': 'papelImpresionId'},
- { 'data': 'tarifa_impresion_id'}
- ],
- columnDefs: [
- {
- target: [16,17,18,19,20,21],
- visible: false,
- searchable: false
- },
- ],
- "order": [ [0, 'asc'],[15, 'asc'] ]
- });
-
-
- var tableCompGuardas = new DataTable('#tableCompGuardas',{
- scrollX: true,
- searching: false,
- paging: false,
- info: false,
- ordering: false,
- responsive: true,
- select: false,
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
- columns: [
- { 'data': 'tipo',
- 'render': function ( data, type, row, meta ) {
-
- return '= lang('Presupuestos.Guardas') ?>';
- }
-
- },
- { 'data': 'paginas' },
- { 'data': 'papel' },
- { 'data': 'gramaje' },
- { 'data': 'marca' },
- { 'data': 'maquina' },
- { 'data': 'numeroPliegos' },
- { 'data': 'pliegosPedido' },
- { 'data': 'precioPliego' },
- { 'data': 'libro' },
- { 'data': 'totalPapelPedido' },
- { 'data': 'lomo' },
- { 'data': 'peso' },
- { 'data': 'horasMaquina' },
- { 'data': 'precioImpresion' },
- { 'data': 'total' },
- { 'data': 'maquinaId'},
- { 'data': 'maquinaVelocidad'},
- { 'data': 'tiempoMaquina'},
- { 'data': 'papelGenericoId'},
- { 'data': 'papelImpresionId'},
- { 'data': 'tarifa_impresion_id'},
- { 'data': 'paginas_impresion'},
- ],
- columnDefs: [
- {
- target: [16,17,18,19,20,21,22],
- visible: false,
- searchable: false
- },
- ]
- });
-
- function checkComparadorGuardas(actualizarLinea = false){
-
- if ($('#compPapelGuardas').select2('data')[0].id > 0 ){
-
- const dimension = getDimensionLibro();
-
- let datos = {
- tipo_impresion_id: ,
- type: 'guardas',
- paginas: 8,
- paginas_impresion: parseInt($('#compCarasGuardas').select2('data')[0].id),
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- color: 1,
- hq: 1,
- ancho: dimension.ancho,
- alto: dimension.alto,
- papel_generico_id: $('#compPapelGuardas').select2('data')[0].id,
- papel_generico: $('#compPapelGuardas').select2('data')[0].text.trim(),
- gramaje: parseInt($('#compGramajeGuardas').val()),
- cliente_id: $('#clienteId').find(":selected").val(),
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
-
- $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- clearGuardas();
-
- if(data.lineas.length >0){
- fillGuardas(data);
- selectGuardasLineas();
- $('#title_guardas').html('= lang("Presupuestos.Guardas") ?>' + ' (' + tableCompGuardas.rows().count() + ')');
- $('#insertarGuardasBtn').removeClass('d-none')
- if(actualizarLinea){
- var rows = $("#tableCompCubierta").DataTable().rows( '.selected' ).data().toArray();
- for(row of rows){
- fill_lp_guardas(row, true);
- }
- }
- }
- else{
- $('#title_guardas').html('= lang("Presupuestos.Guardas") ?>');
- $('#insertarGuardasBtn').addClass('d-none')
- $('#total_comp_guardas').html('0.00')
-
- }
- yeniden(data.= csrf_token() ?>);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- }
-
- else{
- clearGuardas();
- }
- }
-
-
- $('.comp_guardas_items').on('change', function (e) {
-
- checkComparadorGuardas(false);
- });
-
-
-
- async function getLineasIntPlana(is_color, is_hq, actualizarLinea){
-
- const dimension = getDimensionLibro();
-
- let datos = {
- tipo_impresion_id: ,
- type: 'interior',
- color: is_color?1:0,
- hq: is_hq?1:0,
- paginas: parseInt($(''+ elementos.paginas).val()),
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#merma').val()),
- ancho: dimension.ancho,
- alto: dimension.alto,
- papel_generico_id: $(''+ elementos.papel).select2('data')[0].id,
- papel_generico: $(''+ elementos.papel).select2('data')[0].text.trim(),
- gramaje: $(''+ elementos.gramaje).select2('data')[0].text.trim() ,
- cliente_id: $('#clienteId').find(":selected").val(),
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
-
- $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- clearIntLineas(is_color);
-
- if(data.lineas.length >0){
-
- fillIntPlana(data, is_color, is_hq);
- selectIntLineas();
- $('#title_int_plana').html('= lang("Presupuestos.compInteriorPlana") ?>' + ' (' + tableCompIntPlana.rows().count() + ')');
- $('#insertarPlanaBtn').removeClass('d-none')
- if(actualizarLinea){
- var rows = $("#tableCompIntPlana").DataTable().rows( '.selected' ).data().toArray();
- for(row of rows){
-
- if(row['tipo'] =='bn' && !is_color && !is_hq){
- if($('#lp_bn').css('display')!='none')
- fill_lp_bn(row, true);
- }
- else if(row['tipo'] =='bnhq' && !is_color && is_hq){
- if($('#lp_bnhq').css('display')!='none')
- fill_lp_bnhq(row, true);
- }
- else if(row['tipo'] =='color' && is_color && !is_hq){
- if($('#lp_color').css('display')!='none')
- fill_lp_color(row, true);
- }
- else if(row['tipo'] =='colorhq' && is_color && is_hq){
- if($('#lp_colorhq').css('display')!='none')
- fill_lp_colorhq(row, true);
- }
- }
- }
- }
- else{
- $('#title_int_plana').html('= lang("Presupuestos.compInteriorPlana") ?>');
- $('#insertarPlanaBtn').addClass('d-none')
- $('#total_comp_plana').html('0.00');
- }
- yeniden(data.= csrf_token() ?>);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- return false;
- }
-
- async function getLineasIntRot(is_hq, actualizarLinea=false){
-
- const dimension = getDimensionLibro();
-
- // Rotativa solo negro o color (no hq)
- if ( is_hq==false){
-
- if(checkInputsForRotativa()){
-
- let datos = {
- tipo_impresion_id: ,
- type: 'interior_rot',
- paginas: parseInt($('#paginas').val()),
- paginas_negro: parseInt($('#compPaginasNegro').val()),
- paginas_color: parseInt($('#compPaginasColor').val()),
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#merma').val()),
- ancho: dimension.ancho,
- alto: dimension.alto,
- // el papel y el gramaje se coge del negro (siempre estará)
- papel_generico_id: $('#compPapelNegro').select2('data')[0].id,
- papel_generico: $('#compPapelNegro').select2('data')[0].text.trim(),
- gramaje: $('#compGramajeNegro').select2('data')[0].text.trim() ,
- cliente_id: $('#clienteId').find(":selected").val(),
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
-
- $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- clearIntRot();
-
- if(data.lineas.length >0){
-
- fillIntRot(data);
- selectIntRotLineas();
- $('#title_int_rot').html('= lang("Presupuestos.compInteriorRotativa") ?>' + ' (' + tableCompIntRotativa.rows().count() + ')');
- $('#insertarRotativaBtn').removeClass('d-none')
- if(actualizarLinea){
- var rows = $("#tableCompIntRotativa").DataTable().rows( '.selected' ).data().toArray();
- for(row of rows){
- if(row['paginasColor'] ==0){
- if($('#lp_rot_bn').css('display')!='none')
- fill_lp_rot_bn(row, true);
- }
- else if(row['paginasColor'] >0){
- if($('#lp_rot_color').css('display')!='none')
- fill_lp_rot_color(row, true);
- }
- }
- }
- }
- else{
- $('#title_int_rot').html('= lang("Presupuestos.compInteriorRotativa") ?>');
- $('#insertarRotativaBtn').addClass('d-none')
- $('#total_comp_rot').html('0.00')
-
- }
- yeniden(data.= csrf_token() ?>);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- }
- }
- return false;
- }
-
- $('.comp_cubierta_items').on('change', function (){
-
- checkComparadorCubierta()
- });
-
-
- function checkComparadorCubierta(actualizarLinea = false){
-
- if ($('#compCarasCubierta option:selected').val().length > 0 &&
- $('#compPapelCubierta').select2('data').length > 0 &&
- $('#compGramajeCubierta').select2('data').length > 0 ){
-
- const dimension = getDimensionLibro();
-
- let datos = {
- tipo_impresion_id: ,
- type: 'cubierta',
- paginas: parseInt($('#compCarasCubierta option:selected').val()),
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- color: 1,
- ancho: dimension.ancho,
- alto: dimension.alto,
- lomo: getLomoLineasPresupuesto(),
- solapas: $('#solapas').is(':checked')?1:0,
- solapas_ancho: $('#solapas').is(':checked')?parseInt($('#solapas_ancho').val()):0,
- papel_generico_id: $('#compPapelCubierta').select2('data')[0].id,
- papel_generico: $('#compPapelCubierta').select2('data')[0].text.trim(),
- gramaje: $('#compGramajeCubierta').select2('data')[0].text.trim() ,
- cliente_id: $('#clienteId').find(":selected").val(),
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
-
- $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- clearCubierta();
-
- if(data.lineas.length >0){
- fillCubierta(data);
- selectCubiertaLineas();
- tableCompCubierta.order([0, 'asc']).draw()
- $('#title_cubierta').html('= lang("Presupuestos.compCubiertaSobrecubierta") ?>' + (tableCompCubierta.rows().count()>0 ?(' (' + tableCompCubierta.rows().count() + ')'):''));
- $('#insertarCubiertaBtn').removeClass('d-none')
- if(actualizarLinea){
- var rows = $("#tableCompCubierta").DataTable().rows( '.selected' ).data().toArray();
- for(row of rows){
- if (row.tipo=='cubierta')
- fill_lp_cubierta(row, true);
- }
- }
- }
- else{
- $('#title_cubierta').html('= lang("Presupuestos.compCubiertaSobrecubierta") ?>' + (tableCompCubierta.rows().count()>0 ?(' (' + tableCompCubierta.rows().count() + ')'):''));
- if(tableCompCubierta.rows().count()==0){
- $('#insertarCubiertaBtn').addClass('d-none')
- $('#total_comp_cubierta').html('0.00')
- }
- else{
- selectCubiertaLineas();
- }
-
- }
- yeniden(data.= csrf_token() ?>);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- }
-
- else{
- clearCubierta();
- }
- }
-
- $('.comp_sobrecubierta_items').on('change', function (){
-
- checkComparadorSobrecubierta()
- });
-
-
- function checkComparadorSobrecubierta(actualizarLinea = false){
-
- if ($('#compSobrecubierta option:selected').val() == 1 &&
- $('#compPapelSobrecubierta').select2('data').length > 0 &&
- $('#compGramajeSobrecubierta').select2('data').length > 0 ){
-
-
- const dimension = getDimensionLibro();
-
- let datos = {
- tipo_impresion_id: ,
- type: 'sobrecubierta',
- paginas: 4,
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- color: 1,
- ancho: dimension.ancho,
- alto: dimension.alto,
- lomo: getLomoLineasPresupuesto() + getLomoCubiertaLineasPresupuesto(),
- solapas: $('#solapas_sobrecubierta').is(':checked')?1:0,
- solapas_ancho: $('#solapas_sobrecubierta').is(':checked')?parseInt($('#solapas_ancho_sobrecubierta').val()):0,
- papel_generico_id: $('#compPapelSobrecubierta').select2('data')[0].id,
- papel_generico: $('#compPapelSobrecubierta').select2('data')[0].text.trim(),
- gramaje: $('#compGramajeSobrecubierta').select2('data')[0].text.trim() ,
- cliente_id: $('#clienteId').find(":selected").val(),
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
-
- $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- clearSobrecubierta();
-
- if(data.lineas.length >0){
-
- fillSobrecubierta(data);
- selectCubiertaLineas();
- tableCompCubierta.order([ [0, 'asc'],[15, 'asc'] ]).draw()
- $('#title_cubierta').html('= lang("Presupuestos.compCubiertaSobrecubierta") ?>' + (tableCompCubierta.rows().count()>0 ?(' (' + tableCompCubierta.rows().count() + ')'):''));
- $('#insertarCubiertaBtn').removeClass('d-none')
- if(actualizarLinea){
- var rows = $("#tableCompCubierta").DataTable().rows( '.selected' ).data().toArray();
- for(row of rows){
- if (row.tipo=='sobrecubierta')
- fill_lp_sobrecubierta(row, true);
- }
- }
- }
- else{
- $('#title_cubierta').html('= lang("Presupuestos.compCubiertaSobrecubierta") ?>' + (tableCompCubierta.rows().count()>0 ?(' (' + tableCompCubierta.rows().count() + ')'):''));
- if(tableCompCubierta.rows().count()==0){
- $('#insertarCubiertaBtn').addClass('d-none')
- $('#total_comp_cubierta').html('0.00')
- }
- else{
- selectCubiertaLineas();
- }
-
- }
- yeniden(data.= csrf_token() ?>);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- }
-
- else{
- clearSobrecubierta();
- }
- }
-
-
-
- $('.comp_negro_items').on('change', function (e) {
-
- checkComparadorInt(false,false);
- });
-
- $('.comp_negrohq_items').on('change', function (e) {
-
- checkComparadorInt(false, true);
- });
-
- $('.comp_color_items').on('change', function (e) {
-
- checkComparadorInt(true, false);
- });
-
- $('.comp_colorhq_items').on('change', function (e) {
- checkComparadorInt(true, true);
- });
-
-
-
- $('#tipoImpresion').on("change.select2", function () {
- updatePapelesComparador();
- $('#title_int_rot').html('= lang("Presupuestos.compInteriorRotativa") ?>');
- $('#title_int_plana').html('= lang("Presupuestos.compInteriorPlana") ?>');
- if (($('#tipoImpresion').select2('data')[0].id == 'negro' ||
- $('#tipoImpresion').select2('data')[0].id == 'color')){
-
- $('#tableCompIntRotativa').DataTable().clear().draw();
- $('#total_comp_rot').html("0.00");
-
-
- $('#compPaginasColor').val('0')
- $('#compPaginasColorhq').val('0')
- $('#compPaginasNegrohq').val('0');
- $('#compPaginasNegro').val($('#paginas').val())
-
- if($('#tipoImpresion').select2('data')[0].id == 'negro'){
- $('#compGramajeColor').val('').trigger('change')
- $('#compPapelColor').val(0).trigger('change')
- }
-
- if( $('#tableCompIntPlana').DataTable().rows().count() > 0 &&
- $('#tableCompIntPlana').DataTable().cell(0, 0).data().includes('hq')) {
-
- $('#tableCompIntPlana').DataTable().clear().draw();
- $('#total_comp_plana').html("0.00");
- }
-
- }
- else if (($('#tipoImpresion').select2('data')[0].id == 'negrohq' ||
- $('#tipoImpresion').select2('data')[0].id == 'colorhq')){
-
- $('#tableCompIntRotativa').DataTable().clear().draw();
- $('#total_comp_rot').html("0.00");
-
- $('#compPaginasColorhq').val('0')
- $('#compPaginasColor').val('0')
- $('#compPaginasNegro').val('0')
- $('#compPaginasNegrohq').val($('#paginas').val())
-
- if($('#tipoImpresion').select2('data')[0].id == 'negrohq'){
- $('#compGramajeColorhq').val('').trigger('change')
- $('#compPapelColorhq').val(0).trigger('change')
- }
-
- if($('#tableCompIntPlana').DataTable().rows().count() > 0 &&
- !$('#tableCompIntPlana').DataTable().cell(0, 0).data().includes('hq')) {
-
- $('#tableCompIntPlana').DataTable().clear().draw();
- $('#total_comp_plana').html("0.00");
- }
- }
- });
-
- $('#tipoImpresion').on("select2:close", function () {
-
- $('#paginas').change()
- })
-
-
- function checkComparadorInt(is_color, is_hq, actualizarLineaPlana=false, actualizarLineaRot=false) {
-
- try{
-
- clearIntLineas(is_color);
- clearIntRot();
- $('#title_int_rot').html('= lang("Presupuestos.compInteriorRotativa") ?>');
- $('#title_int_plana').html('= lang("Presupuestos.compInteriorPlana") ?>');
-
- elementos = getIDsComparador(is_color, is_hq)
-
- if ($(''+ elementos.papel).select2('data').length > 0 &&
- $(''+ elementos.gramaje).select2('data').length > 0 &&
- parseInt($(''+ elementos.paginas).val()) >= 0 &&
- checkDatosPedidoForComp()) {
-
-
- getLineasIntPlana(is_color, is_hq, actualizarLineaPlana).then((result) =>{
- // Para rotativa, si es color el papel y el gramaje tiene que ser igual
- if(!is_color)
- {
- getLineasIntRot(is_hq, actualizarLineaRot);
- }
- else
- {
- if(!is_hq){
- if ($('#compPapelNegro').select2('data').length>0 && $('#compPapelColor').select2('data').length>0 &&
- $('#compGramajeNegro').select2('data').length>0 && $('#compGramajeColor').select2('data').length>0)
- {
- if(($('#compPapelNegro').select2('data')[0].id == $('#compPapelColor').select2('data')[0].id &&
- $('#compGramajeNegro').select2('data')[0].text.trim() == $('#compGramajeColor').select2('data')[0].text.trim()))
- {
- getLineasIntRot(is_hq, actualizarLineaRot);
- }
- else
- {
- $('#errorComRot').html('= lang("Presupuestos.errores.errorRotColor") ?>');
- }
- }
- }
- }
- });
- }
- }catch(e){
- console.log(e)
- }
- }
-
-
- $('#compPapelNegro').on('select2:select', function (e){
-
- if($('#compPapelNegro').select2('data')[0].id=='0'){
- $('#compGramajeNegro').val('').change();
- $('#compGramajeNegro').prop('disabled', true);
- }
-
- else{
- $('#insertarPlanaBtn').addClass('d-none')
- $('#insertarRotativaBtn').addClass('d-none')
- $('#total_comp_plana').html('0.00')
- $('#total_comp_rot').html('0.00')
- $('#compGramajeNegro').val('').change();
- $('#compGramajeNegro').empty().trigger("change");
- $('#compGramajeNegro').prop('disabled', false);
- $('#compGramajeNegro').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- ajax: {
- url: '= route_to("menuItemsOfPresupuestoAdmin") ?>',
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
- return {
- tipo: 'gramaje',
- uso: 'bn',
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- datos: $('#compPapelNegro').select2('data')[0].text.trim() ,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response.= csrf_token() ?>);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
- }
- });
-
- $('#compPapelNegrohq').on('select2:select', function (e){
-
- if($('#compPapelNegrohq').select2('data')[0].id=='0'){
- $('#compGramajeNegrohq').val('').change();
- $('#compGramajeNegrohq').prop('disabled', true);
- }
- else{
- $('#insertarPlanaBtn').addClass('d-none')
- $('#insertarRotativaBtn').addClass('d-none')
- $('#total_comp_plana').html('0.00')
- $('#total_comp_rot').html('0.00')
- $('#compGramajeNegrohq').empty().trigger("change");
- $('#compGramajeNegrohq').prop('disabled', false);
- $('#compGramajeNegrohq').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- ajax: {
- url: '= route_to("menuItemsOfPresupuestoAdmin") ?>',
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
- return {
- tipo: 'gramaje',
- uso: 'bnhq',
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- datos: $('#compPapelNegrohq').select2('data')[0].text.trim() ,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response.= csrf_token() ?>);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
- }
- });
-
-
- $('#compPapelColor').on('select2:select', function (e){
-
- if($('#compPapelColor').select2('data')[0].id=='0'){
- $('#compGramajeColor').val('').change();
- $('#compGramajeColor').prop('disabled', true);
- }
- else{
- $('#insertarPlanaBtn').addClass('d-none')
- $('#insertarRotativaBtn').addClass('d-none')
- $('#total_comp_plana').html('0.00')
- $('#total_comp_rot').html('0.00')
- $('#compGramajeColor').empty().trigger("change");
- $('#compGramajeColor').prop('disabled', false);
- $('#compPapelColor').find('option[value="0"]').remove();
- $('#compGramajeColor').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- ajax: {
- url: '= route_to("menuItemsOfPresupuestoAdmin") ?>',
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
- return {
- tipo: 'gramaje',
- uso: 'color',
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- datos: $('#compPapelColor').select2('data')[0].text.trim() ,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response.= csrf_token() ?>);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
- }
- });
-
-
- $('#compPapelColorhq').on('select2:select', function (e){
-
- if($('#compPapelColorhq').select2('data')[0].id=='0'){
- $('#compGramajeColorhq').val('').change();
- $('#compGramajeColorhq').prop('disabled', true);
- }
- else{
- $('#insertarPlanaBtn').addClass('d-none')
- $('#insertarRotativaBtn').addClass('d-none')
- $('#total_comp_plana').html('0.00')
- $('#total_comp_rot').html('0.00')
- $('#compGramajeColorhq').empty().trigger("change");
- $('#compGramajeColorhq').prop('disabled', false);
- $('#compPapelColorhq').find('option[value="0"]').remove();
- $('#compGramajeColorhq').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- ajax: {
- url: '= route_to("menuItemsOfPresupuestoAdmin") ?>',
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
- return {
- tipo: 'gramaje',
- uso: 'colorhq',
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- datos: $('#compPapelColorhq').select2('data')[0].text.trim() ,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response.= csrf_token() ?>);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
- }
- });
-
- $('#compPapelCubierta').on('select2:select', function (e){
- if($('#compPapelCubierta').select2('data')[0].id=='0'){
- $('#compGramajeCubierta').val('').change();
- $('#compGramajeCubierta').prop('disabled', true);
- }
- else{
- clearCubierta();
- $('#compGramajeCubierta').empty().trigger("change");
- $('#compGramajeCubierta').val('').trigger('change');
- $('#compGramajeCubierta').prop('disabled', false);
- $('#compPapelCubierta').find('option[value="0"]').remove();
- $('#compGramajeCubierta').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- ajax: {
- url: '= route_to("menuItemsOfPresupuestoAdmin") ?>',
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
- return {
- tipo: 'gramaje',
- uso: 'cubierta',
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- datos: $('#compPapelCubierta').select2('data')[0].text.trim() ,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response.= csrf_token() ?>);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
- }
- });
-
- $('#compPapelSobrecubierta').on('select2:open', function (e){
- $('#compGramajeSobrecubierta').val(0).trigger('change');
- $('#compGramajeSobrecubierta').select2("destroy")
- $('#compGramajeSobrecubierta').select2({allowClear: false, minimumResultsForSearch: Infinity})
- })
-
-
- $('#compPapelSobrecubierta').on('select2:select', function (e){
- if($('#compPapelSobrecubierta').select2('data')[0].id=='0'){
-
- $('#compGramajeSobrecubierta').prop('disabled', true);
- }
- else{
- clearSobrecubierta();
- $('#compGramajeSobrecubierta').prop('disabled', false);
- $('#compPapelSobrecubierta').find('option[value="0"]').remove();
- $('#compGramajeSobrecubierta').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- ajax: {
- url: '= route_to("menuItemsOfPresupuestoAdmin") ?>',
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
- return {
- tipo: 'gramaje',
- uso: 'sobrecubierta',
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- datos: $('#compPapelSobrecubierta').select2('data')[0].text.trim() ,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response.= csrf_token() ?>);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
- }
- });
-
-
- function checkDatosPedidoForComp() {
-
- const dimension = getDimensionLibro();
-
- if (parseInt($('#paginas').val()) <= 0){
- popErrorAlert('=lang('Presupuestos.errores.paginas') ?>', 'divAlarmasComparador');
- return false;
- }
- if (parseInt($('#tirada').val()) <= 0){
- popErrorAlert('=lang('Presupuestos.errores.tiradas') ?>', 'divAlarmasComparador');
- return false;
- }
- if('ancho' in dimension && 'alto' in dimension){
-
- if(dimension.alto < 60 || dimension.ancho < 60 || isNaN(dimension.alto) || isNaN(dimension.ancho) ){
- popErrorAlert('=lang('Presupuestos.errores.dimension') ?>', 'divAlarmasComparador');
- return false;
- }
- }
- else{
- popErrorAlert('=lang('Presupuestos.errores.dimension') ?>', 'divAlarmasComparador');
- return false;
- }
- return true;
- }
-
- init_comparador()
- init_lineas_comparador()
-
-= $this->endSection() ?>
\ No newline at end of file
+
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosPresupuestoItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosPresupuestoItems.php
index f4410468..f99d60a1 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosPresupuestoItems.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosPresupuestoItems.php
@@ -16,7 +16,7 @@
= lang('Presupuestos.id') ?>
-
+
@@ -26,9 +26,9 @@
= lang('Presupuestos.created_at') ?>
- ">
+
- ">
+
@@ -38,11 +38,11 @@
= lang('Presupuestos.presupuestoEstado') ?>
-
- estado_id==1? ' selected':''?>>
+
+
=lang('Presupuestos.presupuestoEstadoBorrador') ?>
- estado_id==2? ' selected':''?>>
+
=lang('Presupuestos.presupuestoEstadoAceptado') ?>
@@ -54,15 +54,11 @@
= lang('Presupuestos.incRei') ?>
-
-
-
- $v) : ?>
- inc_rei ? ' selected' : '' ?>>
- = $v ?>
-
-
+
+ No
+ Incidencia
+ Reimpresion
+ Sin cargo
@@ -77,7 +73,7 @@
=lang('Presupuestos.titulo') ?>*
-
+
@@ -87,7 +83,7 @@
=lang('Presupuestos.autor') ?>
-
+
@@ -101,7 +97,7 @@
=lang('Presupuestos.coleccion') ?>
-
+
@@ -110,7 +106,7 @@
=lang('Presupuestos.numeroEdicion') ?>
-
+
@@ -119,7 +115,7 @@
=lang('Presupuestos.isbn') ?>
-
+
@@ -129,12 +125,11 @@
=lang('Presupuestos.paisId') ?>
- =lang('Basic.global.pleaseSelectA', [lang('Presupuestos.paisId')]) ?>
-
- id==$presupuestoEntity->pais_id ? ' selected':'' ?>>
- =$item->nombre ?>
+
+
+ = $pais_default ?>
-
+
@@ -150,14 +145,6 @@
= lang('Presupuestos.clienteId') ?>*
-
- $v) : ?>
- cliente_id ? ' selected' : '' ?>>
- = $v ?>
-
-
@@ -167,7 +154,7 @@
=lang('Presupuestos.referenciaCliente') ?>
-
+
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.js b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.js
deleted file mode 100644
index f1871aef..00000000
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.js
+++ /dev/null
@@ -1,2079 +0,0 @@
-/****************************************************************************************
- * Seccion para las funciones generales de la pagina
- ***************************************************************************************/
-
-$('.nav-servicios button').on('shown.bs.tab', function(){
- $("#tableOfServiciosEncuadernacion").DataTable().columns.adjust();
- $("#tableOfServiciosPreimpresion").DataTable().columns.adjust();
- $("#tableOfServiciosManipulado").DataTable().columns.adjust();
- $("#tableOfServiciosAcabado").DataTable().columns.adjust();
- $("#tableOfServiciosExtra").DataTable().columns.adjust();
-})
-
-
-$('#serv_default').on('click', function(){
- get_tarifas_enc('default').then(
- get_tarifas_manipulado('default')
- )
- showBreadCrumbSaveButton(true);
-})
-
-// Delete row
-$(document).on('click', '.btn-delete-serv', function(e) {
- const dataId = $(this).attr('data-id');
- const rowId = $(this).closest('td').parent()[0].sectionRowIndex;
- var dataText = null;
-
- var table = "";
- if($(this).closest('table').attr('id').includes('tableOfServiciosEncuadernacion')){
- table = "tableOfServiciosEncuadernacion";
- }
- else if($(this).closest('table').attr('id').includes('tableOfServiciosAcabado')){
- table = "tableOfServiciosAcabado";
- dataText = $(this).attr('data-text');
- }
- else if($(this).closest('table').attr('id').includes('tableOfServiciosManipulado')){
- table = "tableOfServiciosManipulado";
- }
- else if($(this).closest('table').attr('id').includes('tableOfServiciosPreimpresion')){
- table = "tableOfServiciosPreimpresion";
- }
- else if($(this).closest('table').attr('id').includes('tableOfServiciosExtra')){
- table = "tableOfServiciosExtra";
- }
- else{
- table = "";
- }
-
- if(table != ""){
- if(dataText==null){
- $('#' + table).DataTable().rows( function ( idx, data, node ) {
- return data[0] === dataId;
- } )
- .remove()
- .draw();
- }
- $('#' + table).DataTable().rows( function ( idx, data, node ) {
- return ((data[0] === dataId) && (data[1]=== dataText));
- } )
- .remove()
- .draw();
- }
-
- check_serv_enc_error()
- check_serv_acabado_error()
- check_serv_preimpresion_error()
- check_serv_manipulado_error()
- check_serv_extra_error()
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
- //updateTotales(false, true, false)
- showBreadCrumbSaveButton(true);
-
-});
-
-function save_servicios(){
-
- var datosAcabado = get_datos_acabado()
- var datosEnc = get_datos_encuadernacion()
- var datosManipulado = get_datos_manipulado()
- var datosPreimpresion = get_datos_preimpresion()
- var datosServiciosExtra = get_datos_serviciosextra()
-
- const domain = window.location.origin
-
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
-
- fetch(domain + "/presupuestos/presupuestoencuadernaciones/edit/" + id , {
- method: "POST",
- body: JSON.stringify(Object.assign({datos: datosEnc}, window.token_ajax)),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
- yeniden(data[window.csrf_token]);
- })
- .then(
- fetch(domain + "/presupuestos/presupuestomanipulados/edit/" + id , {
- method: "POST",
- body: JSON.stringify(Object.assign({datos: datosManipulado}, window.token_ajax)),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
- yeniden(data[window.csrf_token]);
- })
- )
- .then(
- fetch(domain + "/presupuestos/presupuestoacabados/edit/" + id , {
- method: "POST",
- body: JSON.stringify(Object.assign({datos: datosAcabado}, window.token_ajax)),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
- yeniden(data[window.csrf_token]);
- })
- )
- .then(
- fetch(domain + "/presupuestos/presupuestopreimpresiones/edit/" + id , {
- method: "POST",
- body: JSON.stringify(Object.assign({datos: datosPreimpresion}, window.token_ajax)),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
- yeniden(data[window.csrf_token]);
- })
- )
-
- .then(
- fetch(domain + "/presupuestos/presupuestoserviciosextra/edit/" + id , {
- method: "POST",
- body: JSON.stringify(Object.assign({datos: datosServiciosExtra}, window.token_ajax)),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
- yeniden(data[window.csrf_token]);
- })
- )
-}
-
-
-/****************************************************************************************
- * Seccion para los servicios de acabado
- ***************************************************************************************/
-var tableServiciosAcabado = new DataTable('#tableOfServiciosAcabado',{
- scrollX: true,
- searching: false,
- paging: false,
- info: false,
- ordering: false,
- responsive: true,
- select: false,
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
-});
-
-tableServiciosAcabado.on('draw', function(){
-
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
-})
-
-function init_servicio_acabado(){
-
- $('#add_servicio_acabado_list').select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- placeholder: window.Presupuestos.servicioAcabadoList
- })
-
- window.serviciosacabadosList.forEach((element) =>{
-
- nombre_completo = element.nombre
- if (element.cubierta == 1){
- nombre_completo += ' (' + window.Presupuestos.cubierta + ')'
- }
- else if (element.sobrecubierta == 1){
- nombre_completo += ' (' + window.Presupuestos.sobrecubierta + ')'
- }
-
- var precio_unidad = parseFloat(element.precio_unidad).toFixed(2)
- var margen = parseFloat(element.margen).toFixed(2)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- tableServiciosAcabado.row.add([
- element.tarifa_acabado_id,
- nombre_completo,
- '' +
- '' +
- element.proveedor +
- '' +
- '',
- '' + precio_unidad_coste + ' / ' + precio_unidad + '',
- '',
- '' + margen + '',
- ''
- ]).draw(false)
-
- $('#proveedor_acabado_' + element.tarifa_acabado_id).select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- ajax: {
- url: window.routes_servicios.menuItemsOfPresupuestoAcabados,
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
-
- if(parseInt($('#tirada').val())>0){
- var tirada = parseInt($('#tirada').val())
- }
- else{
- var tirada = 0
- }
-
- var return_data = {
- tarifa_id: element.tarifa_acabado_id,
- tirada: tirada,
- };
- return_data = Object.assign(return_data, window.token_ajax);
-
- return return_data;
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response[window.csrf_token]);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
- $('#proveedor_acabado_' + element.tarifa_acabado_id).on('change', select_acabado_event)
-
-
- $('#precio_total_acabado_' + element.tarifa_acabado_id).on('change', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
- })
-
- })
-
- check_serv_acabado_error()
-}
-
-function select_acabado_event(){
-
- if(parseInt($('#tirada').val())>0){
- var tirada = parseInt($('#tirada').val())
- }
- else{
- var tirada = 0
- }
-
- var tarifa_id = null;
- if(this.id.includes('proveedor_acabado')){
- tarifa_id = this.id.split('_')[2];
- }
- else{
- tarifa_id = this.id.split('_')[1];
- }
-
- var datos = {
- tarifa_acabado_id: tarifa_id,
- tirada: tirada,
- proveedor_id: parseInt($('#proveedor_acabado_' + tarifa_id).select2('data')[0].id),
- POD: parseInt($('#POD').val())
- };
- datos = Object.assign(datos, window.token_ajax);
-
- $.ajax({
- type: "POST",
- url: window.routes_servicios.dataTableOfPresupuestoAcabados,
- data: datos,
- success: function (data) {
-
- var precio_unidad = parseFloat(data.values[0].precio_unidad).toFixed(2)
- var margen = parseFloat(data.values[0].margen).toFixed(2)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- $('#precio_unidad_acabado_' + datos.tarifa_acabado_id).text(precio_unidad_coste + ' / ' + precio_unidad)
- $('#precio_total_acabado_' + datos.tarifa_acabado_id).val(parseFloat(data.values[0].total).toFixed(2))
- $('#acabado_margen_' + datos.tarifa_acabado_id).val(margen)
-
- yeniden(data[window.csrf_token]);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- return false;
-}
-
-function check_serv_acabado_error(){
-
- var htmlString = '';
-
- $('#tableOfServiciosAcabado tr').each(function(){
- if($(this).find('td').eq(2).text() == '0.00'){
- htmlString = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.error_servicios_anadidos +
- `
-
-
`;
- }
- })
- $('#serv-acabado-error').html(htmlString)
-}
-
-function get_tarifas_acabado(tarifa_id = -1, uso=null){
-
- if(parseInt($('#tirada').val())>0){
- var tirada = parseInt($('#tirada').val())
- }
- else{
- var tirada = 0
- }
-
- var datos = {
- tarifa_acabado_id : tarifa_id,
- tirada: tirada,
- POD: parseInt($('#POD').val())
- };
- datos = Object.assign(datos, window.token_ajax)
-
-
- $.ajax({
- type: "POST",
- url: window.routes_servicios.dataTableOfPresupuestoAcabados,
- data: datos,
- success: function (data) {
-
- data.values.forEach((row) => {
-
- nombre = row.tarifa_nombre
- if(uso!= null)
- nombre += ' (' + uso + ')'
-
- var precio_unidad = parseFloat(row.precio_unidad).toFixed(2)
- var margen = parseFloat(row.margen).toFixed(2)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- tableServiciosAcabado.row.add([
- row.tarifa_id,
- nombre,
- '' +
- '' +
- row.proveedor +
- '' +
- '',
- '' + precio_unidad_coste + ' / ' + precio_unidad + '',
- '',
- '' + margen + '',
- ''
- ]).draw(false)
-
- $('#precio_total_acabado_' + row.tarifa_id).on('change', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
- })
-
-
-
- $('#proveedor_acabado_' + row.tarifa_id).select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- ajax: {
- url: window.routes_servicios.menuItemsOfPresupuestoAcabados,
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
-
- if(parseInt($('#tirada').val())>0){
- var tirada = parseInt($('#tirada').val())
- }
- else{
- var tirada = 0
- }
-
- var return_data = {
- tarifa_id: row.tarifa_id,
- tirada: tirada,
- };
- return_data = Object.assign(return_data, window.token_ajax);
-
- return return_data;
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response[window.csrf_token]);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
- $('#proveedor_acabado_' + row.tarifa_id).on('change', select_acabado_event)
- });
-
- check_serv_acabado_error()
- yeniden(data[window.csrf_token]);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- return false;
-}
-
-function servicioRetractilado(){
- if($('#retractilado').prop('checked')){
- $('#add_servicio_acabado_list').val(window.serviciosAutomaticos.retractilado)
- $('#insertar_serv_acabado').click()
- }
- else{
- var row_indexes = tableServiciosAcabado.rows().eq( 0 ).filter( function (rowIdx) {
- return tableServiciosAcabado.cell( rowIdx, 0 ).data() == window.serviciosAutomaticos.retractilado ? true : false;
- } );
- if(row_indexes.length > 0){
- tableServiciosAcabado.row(row_indexes[0]).remove().draw()
- check_serv_acabado_error()
- }
- }
-}
-
-function servicioRetractilado5(){
- if($('#retractilado5').prop('checked')){
- $('#add_servicio_acabado_list').val(window.serviciosAutomaticos.retractilado5)
- $('#insertar_serv_acabado').click()
- }
- else{
- var row_indexes = tableServiciosAcabado.rows().eq( 0 ).filter( function (rowIdx) {
- return tableServiciosAcabado.cell( rowIdx, 0 ).data() == window.serviciosAutomaticos.retractilado5 ? true : false;
- } );
- if(row_indexes.length > 0){
- tableServiciosAcabado.row(row_indexes[0]).remove().draw()
- check_serv_acabado_error()
- }
- }
-}
-
-function servicioFajaColor(){
- if($('#fajaColor').prop('checked')){
- $('#add_servicio_acabado_list').val(window.serviciosAutomaticos.fajaColor)
- $('#insertar_serv_acabado').click()
- }
- else{
- var row_indexes = tableServiciosAcabado.rows().eq( 0 ).filter( function (rowIdx) {
- return tableServiciosAcabado.cell( rowIdx, 0 ).data() == window.serviciosAutomaticos.fajaColor ? true : false;
- } );
- if(row_indexes.length > 0){
- tableServiciosAcabado.row(row_indexes[0]).remove().draw()
- check_serv_acabado_error()
- }
- }
-}
-
-$('#insertar_serv_acabado').on('click', function(){
- const tarifa_text = $('#add_servicio_acabado_list').select2('data')[0].text.trim();
-
- if(tarifa_text.length > 0){
- var table = $("#tableOfServiciosAcabado").DataTable();
- var rows = table.rows().data().toArray();
- var found = rows.some(row => row[1] === tarifa_text);
-
- if(!found)
- get_tarifas_acabado($('#add_servicio_acabado_list').select2('data')[0].id);
- else
- popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-acabado-alert');
- }
- check_serv_acabado_error();
- showBreadCrumbSaveButton(true);
-
-})
-
-
-function insertar_acabado_exterior($servicio_id, $uso=""){
-
- const tarifa_text = '(' +$uso + ')'
-
- var tablaAcabados = $("#tableOfServiciosAcabado").DataTable()
- tablaAcabados.rows().every(function () {
- var data = this.data();
- if(data[1].includes(tarifa_text)){
- this.remove().draw(false);
- }
- })
-
- get_tarifas_acabado($servicio_id, $uso);
- tablaAcabados.draw();
- check_serv_acabado_error()
-}
-
-function get_datos_acabado(){
-
- var datosAcabado = []
- if($('#tableOfServiciosAcabado').DataTable().rows().count()>0){
- $("#tableOfServiciosAcabado tr").each(function (index,tr) {
- var values = {}
- $(this).find("td").each(function (index2) {
-
- switch (index2) {
- case 0:
- values['tarifa_id'] = $(this).text()
- break
- case 1:
- if($(this).text().includes(window.Presupuestos.cubierta))
- values['cubierta'] = 1
- else
- values['cubierta'] = 0
- if($(this).text().includes(window.Presupuestos.sobrecubierta))
- values['sobrecubierta'] = 1
- else
- values['sobrecubierta'] = 0
- break
- case 2:
- values['proveedor_id'] = $(this).children(":first").select2('data')[0].id
- break
- case 3:
- values['precio_unidad'] = $(this).text().split('/')[1].trim()
- break
- case 4:
- values['precio_total'] = $(this).children(":first").val()
- break
- case 5:
- values['margen'] = $(this).text()
- break
- }
- })
- if(Object.keys(values).length>0)
- datosAcabado.push(values)
- })
- }
- return datosAcabado
-}
-
-
-async function get_servAcabados_tiradasAlternativas(tirada){
-
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
-
- var serviciosAcabados ={
- coste: 0.0,
- margen: 0.0,
- }
- var json_data = {
- datos: get_datos_acabado(),
- tirada: parseInt(tirada),
- POD: $('#POD').val()
- }
- if(json_data.datos.length>0){
-
- json_data = Object.assign(json_data, window.token_ajax);
-
- await fetch(window.location.origin + "/presupuestos/presupuestoacabados/update/" + id , {
- method: "POST",
- body: JSON.stringify(json_data),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
-
- //const values = await response.json();
- yeniden(data[window.csrf_token]);
- data.lines.forEach((line) => {
- serviciosAcabados.coste += parseFloat(line[0].total);
- serviciosAcabados.margen += parseFloat(line[0].total)*parseFloat(line[0].margen)/100.0;
- });
-
- });
- }
- return serviciosAcabados;
-}
-
-
-/****************************************************************************************
- * Seccion para los servicios de encuadernación
- ***************************************************************************************/
-var tableServiciosEnc = new DataTable('#tableOfServiciosEncuadernacion',{
- scrollX: true,
- searching: false,
- paging: false,
- info: false,
- ordering: false,
- responsive: true,
- select: false,
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
-
-});
-
-tableServiciosEnc.on('draw', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
-})
-
-function init_servicio_encuadernado(){
-
-
- $('#add_servicio_enc_list').select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- placeholder: window.Presupuestos.servicioEncuadernadoList
- })
-
- window.serviciosencuadernadosList.forEach((element) =>{
-
- const tarifa_id = element.tarifa_encuadernado_id
- var proveedor_nombre = element.proveedor===null? window.Presupuestos.no_disponible: element.proveedor
-
- var precio_unidad = parseFloat(element.precio_unidad).toFixed(2)
- var margen = parseFloat(element.margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- var linea = [
- element.tarifa_encuadernado_id,
- element.nombre,
- '' +
- '' +
- proveedor_nombre +
- '' +
- '',
- '' + precio_unidad_coste + ' / ' + precio_unidad + '',
- (element.hasOwnProperty('paginas_por_cuadernillo') && element.paginas_por_cuadernillo!=null)?selectForCuadernillos(element.tarifa_encuadernado_id, element.paginas_por_cuadernillo):'',
- '' + convertirTiempo(element.tiempo) + '',
- '',
- '' + margen + '',
- ''
- ]
-
- tableServiciosEnc.row.add(linea).draw(false)
-
- $('#precio_total_encuadernado_' + element.tarifa_encuadernado_id).on('change', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
- })
-
- $('#proveedor_enc_' + element.tarifa_encuadernado_id).select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- ajax: {
- url: window.routes_servicios.menuItemsOfPresupuestoEncuadernaciones,
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
-
- const dimension = getDimensionLibro();
-
- if(parseInt($('#tirada').val())>0){
- var tirada = parseInt($('#tirada').val())
- }
- else{
- var tirada = 0
- }
-
- var return_data = {
- tarifa_id: tarifa_id,
- paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0,
- tirada: tirada,
- ancho: dimension.ancho,
- alto: dimension.alto,
- searchtxt: params.term, // search term
- };
- return_data = Object.assign(return_data, window.token_ajax);
-
- return return_data;
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response[window.csrf_token]);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
- $('#proveedor_enc_' + element.tarifa_encuadernado_id).on('change', select_enc_event)
-
- if(element.hasOwnProperty('paginas_por_cuadernillo') && element.paginas_por_cuadernillo!=null){
-
- $('#cuadernillos_' + element.tarifa_encuadernado_id).select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- });
-
- $('#cuadernillos_' + element.tarifa_encuadernado_id).on('change', select_enc_event)
- }
-
- });
- check_serv_enc_error()
-
-}
-
-function selectForCuadernillos(tarifa_id, select_value){
- const value_list = [32, 28, 24, 20, 16];
- var string =
- '';
-
- for (let i = 0; i < value_list.length; i++) {
- string +=
- '' +
- value_list[i] +
- '';
- }
- string += '';
- return string;
-}
-
-function convertirTiempo(horas){
- if(horas != null){
- if(parseFloat(horas)>0){
- const seconds = parseFloat(horas) * 3600;
- // se convierte a formato hh:mm:ss
- const h = Math.floor(seconds / 3600);
- const minutos = Math.floor((seconds % 3600) / 60);
- const segundos = Math.round(seconds % 60, 0);
- return h + ':' + minutos + ':' + segundos;
- }
- else{
- return "";
- }
-
- }
- else{
- return "";
- }
-}
-
-function select_enc_event(){
-
- const dimension = getDimensionLibro();
-
- if(parseInt($('#tirada').val())>0){
- var tirada = parseInt($('#tirada').val())
- }
- else{
- var tirada = 0
- }
-
- var tarifa_id = null;
- if(this.id.includes('proveedor_enc')){
- tarifa_id = this.id.split('_')[2];
- }
- else{
- tarifa_id = this.id.split('_')[1];
- }
- // se checkea si el elemento #cuadernillos_ + tarifa_id existe
- var paginas_por_cuadernillo = null;
- if($('#cuadernillos_' + tarifa_id).length){
- paginas_por_cuadernillo = parseInt($('#cuadernillos_' + tarifa_id).select2('data')[0].id);
- }
-
- var datos = {
- tarifa_encuadernacion_id: tarifa_id,
- paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0,
- tirada: tirada,
- ancho: dimension.ancho,
- alto: dimension.alto,
- paginas_por_cuadernillo: paginas_por_cuadernillo,
- proveedor_id: parseInt($('#proveedor_enc_' + tarifa_id).select2('data')[0].id),
- POD: parseInt($('#POD').val())
- };
- datos = Object.assign(datos, window.token_ajax);
-
- $.ajax({
- type: "POST",
- url: window.routes_servicios.dataTableOfPresupuestoEncuadernaciones,
- data: datos,
- success: function (data) {
-
- var precio_unidad = parseFloat(data.values[0].precio_unidad).toFixed(2)
- var margen = parseFloat(data.values[0].margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- $('#precio_unidad_encuadernado_' + datos.tarifa_encuadernacion_id).text(precio_unidad_coste + ' / ' + precio_unidad)
- $('#tiempo_encuadernado_' + datos.tarifa_encuadernacion_id).text(convertirTiempo(data.values[0].tiempo))
- $('#precio_total_encuadernado_' + datos.tarifa_encuadernacion_id).val(parseFloat(data.values[0].total).toFixed(2))
- $('#enc_margen_' + datos.tarifa_encuadernacion_id).val(margen)
-
- yeniden(data[window.csrf_token]);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- return false;
-}
-
-
-function check_serv_enc_error(){
-
- var htmlString = '';
-
- $('#tableOfServiciosEncuadernacion tr').each(function(){
- if($(this).find('td').eq(3).text() == '0.00'){
- htmlString = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.error_servicios_anadidos +
- `
-
-
`;
- }
- })
- $('#serv-enc-error').html(htmlString)
-}
-
-
-async function get_tarifas_enc(tipo=null, tarifa_id = -1){
- const dimension = getDimensionLibro();
-
- if(parseInt($('#tirada').val())>0){
- var tirada = parseInt($('#tirada').val())
- }
- else{
- var tirada = 0
- }
-
- var datos = {
- tarifa_encuadernacion_id : tarifa_id,
- tirada: tirada,
- paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0,
- ancho: dimension.ancho,
- alto: dimension.alto,
- POD: parseInt($('#POD').val())
- };
- datos = Object.assign(datos, window.token_ajax)
-
- if(tipo != null){
- datos['tipo'] = tipo;
- datos['tipo_impresion_id'] = parseInt($('#tipo_impresion_id').val())
- }
-
- $.ajax({
- type: "POST",
- url: window.routes_servicios.dataTableOfPresupuestoEncuadernaciones,
- data: datos,
- success: function (data) {
-
- if(tipo=='default')
- tableServiciosEnc.clear().draw()
-
- data.values.forEach((row) => {
-
- var precio_unidad = parseFloat(row.precio_unidad).toFixed(2)
- var margen = parseFloat(row.margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- tableServiciosEnc.row.add([
- row.tarifa_id,
- row.tarifa_nombre,
- '' +
- '' +
- row.proveedor +
- '' +
- '',
- '' + precio_unidad_coste + ' / ' + precio_unidad + '',
- (row.hasOwnProperty('paginas_por_cuadernillo') && row.paginas_por_cuadernillo!=null)?selectForCuadernillos(row.tarifa_id, 32):'',
- '' + convertirTiempo(row.tiempo) + '',
- '',
- '' + margen + '',
- ''
- ]).draw(false)
-
- $('#precio_total_encuadernado_' + row.tarifa_id).on('change', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
- })
-
- $('#proveedor_enc_' + row.tarifa_id).select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- ajax: {
- url: window.routes_servicios.menuItemsOfPresupuestoEncuadernaciones,
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
-
- if( parseInt( $('#tirada').val() )>0){
- var tirada = parseInt($('#tirada').val())
- }
- else{
- var tirada = 0
- }
-
- var return_data = {
- tarifa_id: row.tarifa_id,
- paginas: parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0,
- tirada: tirada,
- ancho: dimension.ancho,
- alto: dimension.alto,
- searchtxt: params.term, // search term
- }
- return_data = Object.assign(return_data, window.token_ajax);
- return return_data;
- },
- delay: 60,
- processResults: function (response) {
- yeniden(response[window.csrf_token]);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
-
- $('#proveedor_enc_' + row.tarifa_id).on('change', select_enc_event)
-
-
- if(row.hasOwnProperty('paginas_por_cuadernillo') && row.paginas_por_cuadernillo!=null){
- $('#cuadernillos_' + row.tarifa_id).select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- });
-
- $('#cuadernillos_' + row.tarifa_id).on('change', select_enc_event)
- }
- });
- check_serv_enc_error()
- yeniden(data[window.csrf_token]);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- return false;
-}
-
-
-$('#insertar_serv_enc').on('click', function(){
- const tarifa_text = $('#add_servicio_enc_list').select2('data')[0].text.trim()
-
- if( $('#add_servicio_enc_list').select2('data')[0].text.trim().length > 0){
- if($('#tableOfServiciosEncuadernacion tr > td:contains(' + tarifa_text + ')').length == 0)
- get_tarifas_enc('tarifa', $('#add_servicio_enc_list').select2('data')[0].id);
- else{
- popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-enc-alert')
- }
- }
- check_serv_enc_error()
-})
-
-
-function get_datos_encuadernacion(){
-
- var datosEnc = []
- if($("#tableOfServiciosEncuadernacion").DataTable().rows().count()>0){
- $("#tableOfServiciosEncuadernacion tr").each(function (index,tr) {
- var values = {}
- $(this).find("td").each(function (index2) {
-
- switch (index2) {
- case 0:
- values['tarifa_id'] = $(this).text()
- break
- case 2:
- values['proveedor_id'] = $(this).children(":first").select2('data')[0].id
- break
- case 3:
- values['precio_unidad'] = $(this).text().split('/')[1].trim()
- break
- case 4:
- values['paginas_por_cuadernillo'] = $(this).children(":first").val()
- // Si el valor es "undefined" se pone a null
- if(values['paginas_por_cuadernillo'] == "undefined")
- values['paginas_por_cuadernillo'] = null
- case 5:
- values['tiempo'] = $(this).text()
- // se pasa el string hh:mm:ss a horas
- if(values['tiempo'] != null)
- values['tiempo'] = parseInt(values['tiempo'].split(':')[0]) + parseInt(values['tiempo'].split(':')[1])/60 + parseInt(values['tiempo'].split(':')[2])/3600
- break
- case 6:
- values['precio_total'] = $(this).children(":first").val()
- break
- case 7:
- values['margen'] = $(this).text()
- break
- }
- })
- if(Object.keys(values).length>0)
- datosEnc.push(values)
- })
- }
-
- return datosEnc
-}
-
-
-async function get_servEncuadernacion_tiradasAlternativas(tirada, paginas, ancho, alto){
-
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
-
- var serviciosEncuadernacion ={
- coste: 0.0,
- margen: 0.0,
- }
-
- var json_data = {
- datos: get_datos_encuadernacion(),
- tirada: parseInt(tirada),
- paginas: parseInt(paginas),
- ancho: ancho,
- alto: alto,
- POD: $('#POD').val()
- }
-
- if(json_data.datos.length>0){
- json_data = Object.assign(json_data, window.token_ajax);
-
- await fetch(window.location.origin + "/presupuestos/presupuestoencuadernaciones/update/" + id , {
- method: "POST",
- body: JSON.stringify(json_data),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
-
- //const values = await response.json();
- yeniden(data[window.csrf_token]);
- data.lines.forEach((line) => {
- serviciosEncuadernacion.coste += parseFloat(line[0].total);
- serviciosEncuadernacion.margen += parseFloat(line[0].total)*parseFloat(line[0].margen)/100.0;
- });
-
- });
- }
- return serviciosEncuadernacion;
-
-}
-
-
-/****************************************************************************************
- * Seccion para los servicios de manipulado
- ***************************************************************************************/
-var tableServiciosManipulado = new DataTable('#tableOfServiciosManipulado',{
- scrollX: true,
- searching: false,
- paging: false,
- info: false,
- ordering: false,
- responsive: true,
- select: false,
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
-});
-
-tableServiciosManipulado.on('draw', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
-})
-
-function init_servicio_manipulado(){
-
- $('#add_servicio_manipulado_list').select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- placeholder: window.Presupuestos.servicioManipuladoList
- })
-
- window.serviciosmanipuladoList.forEach((element) =>{
-
- var precio_unidad = parseFloat(element.precio_unidad).toFixed(2)
- var margen = parseFloat(element.margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- tableServiciosManipulado.row.add([
- element.tarifa_manipulado_id,
- element.nombre,
- '' + precio_unidad_coste + ' / ' + precio_unidad + '',
- '',
- '' + margen + '',
- ''
- ]).draw(false)
-
- $('#precio_total_manipulado_' + element.tarifa_manipulado_id).on('change', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
- })
-
- })
- check_serv_manipulado_error()
-}
-
-function check_serv_manipulado_error(){
-
- var htmlString = '';
-
- $('#tableOfServiciosManipulado tr').each(function(){
- if($(this).find('td').eq(2).text() == '0.00'){
- htmlString = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.error_servicios_anadidos +
- `
-
-
`;
- }
- })
- $('#serv-manipulado-error').html(htmlString)
-}
-
-async function get_tarifas_manipulado(tipo=null, tarifa_id = -1){
-
- if(parseInt($('#tirada').val())>0){
- var tirada = parseInt($('#tirada').val())
- }
- else{
- var tirada = 0
- }
-
- var datos = {
- tarifa_manipulado_id : tarifa_id,
- tirada: tirada,
- POD: parseInt($('#POD').val())
- };
- datos = Object.assign(datos, window.token_ajax)
-
- if(tipo != null){
- datos['tipo'] = tipo;
- datos['solapas'] = $('#solapas').is(':checked')?1:0;
- datos['tipo_impresion_id'] = parseInt($('#tipo_impresion_id').val());
- }
-
-
-
- $.ajax({
- type: "POST",
- url: window.routes_servicios.dataTableOfPresupuestoManipulados,
- data: datos,
- success: function (data) {
-
- if(tipo=='default')
- tableServiciosManipulado.clear().draw()
-
- data.values.forEach((row) => {
-
- var precio_unidad = parseFloat(row.precio_unidad).toFixed(2)
- var margen = parseFloat(row.margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- tableServiciosManipulado.row.add([
- row.tarifa_id,
- row.tarifa_nombre,
- '' + precio_unidad_coste + ' / ' + precio_unidad + '',
- '',
- '' + margen + '',
- ''
- ]).draw(false)
-
- $('#precio_total_manipulado_' + row.tarifa_id).on('change', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
- })
- });
- check_serv_manipulado_error()
- yeniden(data[window.csrf_token]);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- return false;
-}
-
-$('#insertar_serv_manipulado').on('click', function(){
- const tarifa_text = $('#add_servicio_manipulado_list').select2('data')[0].text.trim()
-
- if( $('#add_servicio_manipulado_list').select2('data')[0].text.trim().length > 0){
- if($('#tableOfServiciosManipulado tr > td:contains(' + tarifa_text + ')').length == 0){
- get_tarifas_manipulado(null, $('#add_servicio_manipulado_list').select2('data')[0].id);
- }
- else{
- popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-manipulado-alert')
- }
- }
- check_serv_manipulado_error()
-})
-
-
-function servicioGuardas(add_service = false){
- if(add_service){
- $('#add_servicio_manipulado_list').val(window.serviciosAutomaticos.plegadoGuardas)
- $('#insertar_serv_manipulado').click()
- }
- else{
- var row_indexes = tableServiciosManipulado.rows().eq( 0 ).filter( function (rowIdx) {
- return tableServiciosManipulado.cell( rowIdx, 0 ).data() == window.serviciosAutomaticos.plegadoGuardas ? true : false;
- } );
- if(row_indexes.length > 0){
- tableServiciosManipulado.row(row_indexes[0]).remove().draw()
- check_serv_manipulado_error()
- }
- }
-}
-
-function get_datos_manipulado(){
-
- var datosManipulado = []
- if($("#tableOfServiciosManipulado").DataTable().rows().count()>0){
-
- $("#tableOfServiciosManipulado tr").each(function (index,tr) {
- var values = {}
- $(this).find("td").each(function (index2) {
-
- switch (index2) {
- case 0:
- values['tarifa_id'] = $(this).text()
- break
- case 2:
- values['precio_unidad'] = $(this).text().split('/')[1].trim()
- break
- case 3:
- values['precio_total'] = $(this).children(":first").val()
- break
- case 4:
- values['margen'] = $(this).text()
- break
- }
- })
- if(Object.keys(values).length>0)
- datosManipulado.push(values)
- })
- }
-
- return datosManipulado
-}
-
-
-async function get_servManipulado_tiradasAlternativas(tirada){
-
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
-
- var serviciosManipulado ={
- coste: 0.0,
- margen: 0.0,
- }
- var json_data = {
- datos: get_datos_manipulado(),
- tirada: parseInt(tirada),
- POD: $('#POD').val()
- }
- if(json_data.datos.length>0){
- json_data = Object.assign(json_data, window.token_ajax);
-
- await fetch(window.location.origin + "/presupuestos/presupuestomanipulados/update/" + id , {
- method: "POST",
- body: JSON.stringify(json_data),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
- //const values = await response.json();
- yeniden(data[window.csrf_token]);
- data.lines.forEach((line) => {
- serviciosManipulado.coste += parseFloat(line[0].total);
- serviciosManipulado.margen += parseFloat(line[0].total)*parseFloat(line[0].margen)/100.0;
- });
-
- });
- }
- return serviciosManipulado;
-}
-
-/****************************************************************************************
- * Seccion para los servicios de preimpresión
- ***************************************************************************************/
-var tableServiciosPreimpresion = new DataTable('#tableOfServiciosPreimpresion',{
- scrollX: true,
- searching: false,
- paging: false,
- info: false,
- ordering: false,
- responsive: true,
- select: false,
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- }
-});
-
-tableServiciosPreimpresion.on('draw', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
-})
-
-
-function init_servicio_preimpresion(){
-
-
- $('#add_servicio_preimpresion_list').select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- placeholder: window.Presupuestos.servicioPreimpresionList
- })
-
- window.serviciospreimpresionList.forEach((element) =>{
-
- var precio = parseFloat(element.precio).toFixed(2)
- var margen = parseFloat(element.margen).toFixed(2)
- var coste = (precio/(1+margen/100)).toFixed(2)
-
- tableServiciosPreimpresion.row.add([
- element.tarifa_preimpresion_id,
- element.nombre,
- '' + coste + '',
- '',
- '' + margen + '',
- ''
- ]).draw(false)
-
- $('#precio_preimpresion_' + element.tarifa_preimpresion_id).on('change', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
- })
-
- })
- check_serv_preimpresion_error()
-}
-
-function check_serv_preimpresion_error(){
-
- var htmlString = '';
-
- $('#tableOfServiciosPreimpresion tr').each(function(){
-
- if(parseFloat($(this).find('td:eq(2) input').val()) == '0'){
- htmlString = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.error_servicios_anadidos +
- `
-
-
`;
- }
- })
- $('#serv-preimpresion-error').html(htmlString)
-}
-
-function get_tarifas_preimpresion(tarifa_id = -1){
-
- var datos = {
- tarifa_preimpresion_id : tarifa_id,
- };
- datos = Object.assign(datos, window.token_ajax)
-
-
- $.ajax({
- type: "POST",
- url: window.routes_servicios.dataTableOfPresupuestoPreimpresion,
- data: datos,
- success: function (data) {
-
- data.values.forEach((row) => {
-
- var precio = parseFloat(row.precio).toFixed(2)
- var margen = parseFloat(row.margen).toFixed(2)
- var coste = (precio/(1+margen/100)).toFixed(2)
-
- tableServiciosPreimpresion.row.add([
- row.tarifa_id,
- row.tarifa_nombre,
- '' + coste + '',
- '',
- '' + parseFloat(row.margen).toFixed(2) + '',
- ''
- ]).draw(false)
-
- $('#precio_preimpresion_' + row.tarifa_id).on('change', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
- })
-
- });
- check_serv_preimpresion_error()
- yeniden(data[window.csrf_token]);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- return false;
-}
-
-
-function servicioPrototipo(){
- if($('#prototipo').prop('checked')){
- $('#add_servicio_extra_list').val(serviciosAutomaticos.prototipo)
- $('#insertar_serv_extra').click()
- }
- else{
- var row_indexes = tableServiciosExtra.rows().eq( 0 ).filter( function (rowIdx) {
- return tableServiciosExtra.cell( rowIdx, 0 ).data() == serviciosAutomaticos.prototipo ? true : false;
- } );
- if(row_indexes.length > 0){
- tableServiciosExtra.row(row_indexes[0]).remove().draw()
- check_serv_preimpresion_error()
- }
- }
-}
-
-function servicioFerro(){
- var row_indexes = tableServiciosExtra.rows().eq( 0 ).filter( function (rowIdx) {
- return tableServiciosExtra.cell( rowIdx, 0 ).data() == serviciosAutomaticos.ferro ? true : false;
- } );
- if($('#ferro').prop('checked')){
- if(row_indexes.length == 0){
- $('#add_servicio_extra_list').val(serviciosAutomaticos.ferro)
- $('#insertar_serv_extra').click()
- }
- }
- else{
- if(row_indexes.length > 0){
- tableServiciosExtra.row(row_indexes[0]).remove().draw()
- check_serv_extra_error()
- }
- }
-}
-
-$('#insertar_serv_preimpresion').on('click', function(){
-
- let data = $('#add_servicio_preimpresion_list').select2('data');
- if (data.length > 0) {
- const tarifa_text = data[0].text.trim();
- if (tarifa_text.length > 0) {
- if ($('#tableOfServiciosPreimpresion tr > td:contains(' + tarifa_text + ')').length == 0)
- get_tarifas_preimpresion(data[0].id);
- else {
- popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-preimpresion-alert');
- }
- }
- }
- check_serv_preimpresion_error()
-})
-
-
-function get_datos_preimpresion(){
-
- var datosPreimpresion = []
- if($("#tableOfServiciosPreimpresion").DataTable().rows().count()>0){
-
- $("#tableOfServiciosPreimpresion tr").each(function (index,tr) {
- var values = {}
- $(this).find("td").each(function (index2) {
-
- switch (index2) {
- case 0:
- values['tarifa_id'] = $(this).text()
- break
- case 3:
- values['precio'] = $(this).children(":first").val()
- break
- case 4:
- values['margen'] = $(this).text()
- break
- }
- })
- if(Object.keys(values).length>0)
- datosPreimpresion.push(values)
- })
- }
-
- return datosPreimpresion
-}
-
-
-async function get_servPreimpresion_tiradasAlternativas(){
-
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
-
- var serviciosPreimpresion ={
- coste: 0.0,
- margen: 0.0,
- }
- var json_data = {
- datos: get_datos_preimpresion(),
- POD: $('#POD').val()
- }
- if(json_data.datos.length>0){
-
- json_data = Object.assign(json_data, window.token_ajax);
-
- await fetch(window.location.origin + "/presupuestos/presupuestopreimpresiones/update/" + id , {
- method: "POST",
- body: JSON.stringify(json_data),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
- //const values = await response.json();
- yeniden(data[window.csrf_token]);
- data.lines.forEach((line) => {
- serviciosPreimpresion.coste += parseFloat(line[0].precio);
- serviciosPreimpresion.margen += parseFloat(line[0].precio)*parseFloat(line[0].margen)/100.0;
- });
-
- });
- }
- return serviciosPreimpresion;
-}
-
-
-
-
-
-/****************************************************************************************
- * Seccion para los servicios extra
- ***************************************************************************************/
-var tableServiciosExtra = new DataTable('#tableOfServiciosExtra',{
- scrollX: true,
- searching: false,
- paging: false,
- info: false,
- ordering: false,
- responsive: true,
- select: false,
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- }
-});
-
-tableServiciosExtra.on('draw', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
-})
-
-function init_servicio_extra(){
-
-
- $('#add_servicio_extra_list').select2({
- allowClear: false,
- minimumResultsForSearch: -1,
- placeholder: window.Presupuestos.servicioextraList
- })
-
- window.serviciosextraList.forEach((element) =>{
-
- var precio = parseFloat(element.precio).toFixed(2)
- var margen = parseFloat(element.margen).toFixed(2)
- var coste = (precio/(1+margen/100)).toFixed(2)
-
- tableServiciosExtra.row.add([
- element.tarifa_extra_id,
- element.nombre,
- '',
- '',
- '',
- ''
- ]).draw(false)
-
- $('#precio_servicioextra_' + element.tarifa_extra_id).on('change', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
- })
-
- })
- check_serv_extra_error()
-}
-
-function check_serv_extra_error(){
-
- var htmlString = '';
-
- $('#tableOfServiciosExtra tr').each(function(){
-
- if(parseFloat($(this).find('td:eq(2) input').val()) == '0'){
- htmlString = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.error_servicios_anadidos +
- `
-
-
`;
- }
- })
- $('#serv-preimpresion-error').html(htmlString)
-}
-
-function get_tarifas_extra(tarifa_id = -1){
-
- var datos = {
- tarifa_extra_id : tarifa_id,
- };
- datos = Object.assign(datos, window.token_ajax)
-
-
- $.ajax({
- type: "POST",
- url: window.routes_servicios.dataTableOfPresupuestoServiciosExtra,
- data: datos,
- success: function (data) {
-
- data.values.forEach((row) => {
-
- var precio = parseFloat(row.precio).toFixed(2)
- var margen = parseFloat(row.margen).toFixed(2)
- var coste = (precio/(1+margen/100)).toFixed(2)
-
- tableServiciosExtra.row.add([
- row.tarifa_id,
- row.tarifa_nombre,
- '',
- '',
- '',
- ''
- ]).draw(false)
-
- $('#precio_servicioextra_' + row.tarifa_id).on('change', function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
- })
-
- });
- check_serv_extra_error()
- yeniden(data[window.csrf_token]);
- return true;
- },
- error: function(e){
- return false;
- }
- })
- return false;
-}
-
-
-$('#insertar_serv_extra').on('click', function(){
- const tarifa_text = $('#add_servicio_extra_list').select2('data')[0].text.trim()
-
- if( $('#add_servicio_extra_list').select2('data')[0].text.trim().length > 0){
- if($('#tableOfServiciosExtra tr > td:contains(' + tarifa_text + ')').length == 0)
- get_tarifas_extra($('#add_servicio_extra_list').select2('data')[0].id);
- else{
- popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-extra-alert')
- }
- }
- check_serv_extra_error()
-})
-
-
-function get_datos_serviciosextra(){
-
- var datosServiciosExtra = []
- if($("#tableOfServiciosExtra").DataTable().rows().count()>0){
-
- $("#tableOfServiciosExtra tr").each(function (index,tr) {
- var values = {}
- $(this).find("td").each(function (index2) {
-
- switch (index2) {
- case 0:
- values['tarifa_id'] = $(this).text()
- break
- case 3:
- values['precio'] = $(this).children(":first").val()
- break
- case 4:
- values['margen'] = $(this).text()
- break
- }
- })
- if(Object.keys(values).length>0)
- datosServiciosExtra.push(values)
- })
- }
-
- return datosServiciosExtra;
-}
-
-
-async function get_servExtra_tiradasAlternativas(){
-
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
-
- var serviciosExtra ={
- coste: 0.0,
- margen: 0.0,
- }
- var json_data = {
- datos: get_datos_serviciosextra(),
- POD: $('#POD').val()
- }
- if(json_data.datos.length>0){
-
- json_data = Object.assign(json_data, window.token_ajax);
-
- await fetch(window.location.origin + "/presupuestos/presupuestoserviciosextra/update/" + id , {
- method: "POST",
- body: JSON.stringify(json_data),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
- //const values = await response.json();
- yeniden(data[window.csrf_token]);
- data.lines.forEach((line) => {
- serviciosExtra.coste += parseFloat(line[0].precio);
- serviciosExtra.margen += parseFloat(line[0].precio)*parseFloat(line[0].margen)/100.0;
- });
-
- });
- }
- return serviciosExtra;
-}
-
-
-/****************************************************************************************
- * Seccion para "otros"
- ***************************************************************************************/
-async function actualizar_servicios(update_preimpresion=false){
-
- const domain = window.location.origin
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
-
- const dimension = getDimensionLibro();
-
- if(parseInt($('#tirada').val())>0){
- var tirada = parseInt($('#tirada').val())
- }
- else{
- var tirada = 0
- }
- var paginas = parseInt($('#paginas').val())>0?parseInt($('#paginas').val()):0
-
- var datos_json_acabados = {
- datos: get_datos_acabado(),
- tirada: tirada,
- POD: parseInt($('#POD').val()),
- }
- datos_json_acabados = Object.assign(datos_json_acabados, window.token_ajax);
-
- var datos_json_encuadernacion = {
- datos: get_datos_encuadernacion(),
- tirada: tirada,
- paginas: paginas,
- ancho: dimension.ancho,
- alto: dimension.alto,
- POD: parseInt($('#POD').val()),
- }
- datos_json_encuadernacion = Object.assign(datos_json_encuadernacion, window.token_ajax);
-
- var datos_json_manipulado = {
- datos: get_datos_manipulado(),
- tirada: tirada,
- POD: parseInt($('#POD').val()),
- }
- datos_json_manipulado = Object.assign(datos_json_manipulado, window.token_ajax);
-
- var datos_json_preimpresion = {
- datos: get_datos_preimpresion(),
- }
- datos_json_preimpresion = Object.assign(datos_json_preimpresion, window.token_ajax);
-
-
- var datos_json_serviciosextra = {
- datos: get_datos_serviciosextra(),
- }
- datos_json_preimpresion = Object.assign(datos_json_preimpresion, window.token_ajax);
-
- fetch(domain + "/presupuestos/presupuestoacabados/update/" + id , {
- method: "POST",
- body: JSON.stringify(datos_json_acabados),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
- data.lines.forEach((line) => {
-
- var precio_unidad = parseFloat(line[0].precio_unidad).toFixed(2)
- var margen = parseFloat(line[0].margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- $('#proveedor_acabado_' + line[0].tarifa_id).off('change')
- if(line[0].hasOwnProperty('proveedor_id')){
- $('#proveedor_acabado_' + line[0].tarifa_id)
- .append('' + line[0].proveedor + '')
- }
- else{
- $('#proveedor_acabado_' + line[0].tarifa_id).empty()
- .append('' + window.Presupuestos.no_disponible + '')
- }
- $('#precio_unidad_acabado_' + line[0].tarifa_id).text(precio_unidad_coste + " / " + precio_unidad)
- $('#precio_total_acabado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2))
- $('#acabado_margen_' + line[0].tarifa_id).text(margen)
- $('#proveedor_acabado_' + line[0].tarifa_id).on('change', select_enc_event)
- });
- check_serv_acabado_error()
- yeniden(data[window.csrf_token]);
- }).then(
-
- fetch(domain + "/presupuestos/presupuestoencuadernaciones/update/" + id , {
- method: "POST",
- body: JSON.stringify(datos_json_encuadernacion),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
- data.lines.forEach((line) => {
-
- var precio_unidad = parseFloat(line[0].precio_unidad).toFixed(2)
- var margen = parseFloat(line[0].margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- $('#proveedor_enc_' + line[0].tarifa_id).off('change')
- if(line[0].hasOwnProperty('proveedor_id')){
- $('#proveedor_enc_' + line[0].tarifa_id)
- .append('' + line[0].proveedor + '')
- }
- else{
- $('#proveedor_enc_' + line[0].tarifa_id).empty()
- .append('' + window.Presupuestos.no_disponible + '')
- }
- $('#precio_unidad_encuadernado_' + line[0].tarifa_id).text(precio_unidad_coste + " / " + precio_unidad)
- $('#precio_total_encuadernado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2))
- $('#enc_margen_' + line[0].tarifa_id).val(margen)
- $('#proveedor_enc_' + line[0].tarifa_id).on('change', select_enc_event)
- });
- check_serv_enc_error()
- yeniden(data[window.csrf_token]);
- }).then(
- fetch(domain + "/presupuestos/presupuestomanipulados/update/" + id , {
- method: "POST",
- body: JSON.stringify(datos_json_manipulado),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
- data.lines.forEach((line) => {
-
- var precio_unidad = parseFloat(line[0].precio_unidad).toFixed(2)
- var margen = parseFloat(line[0].margen).toFixed(0)
- var precio_unidad_coste = (precio_unidad/(1+margen/100)).toFixed(2)
-
- $('#precio_unidad_manipulado_' + line[0].tarifa_id).text(precio_unidad_coste + " / " + precio_unidad)
- $('#precio_total_manipulado_' + line[0].tarifa_id).val(parseFloat(line[0].total).toFixed(2))
- $('#manipulado_margen_' + line[0].tarifa_id).val(margen)
- });
- check_serv_manipulado_error()
- yeniden(data[window.csrf_token]);
- }).then(function(){
- if(update_preimpresion){
- fetch(domain + "/presupuestos/presupuestopreimpresiones/update/" + id , {
- method: "POST",
- body: JSON.stringify(datos_json_preimpresion),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
-
- data.lines.forEach((line) => {
-
- var precio = parseFloat(line[0].total).toFixed(2)
- var margen = parseFloat(line[0].margen).toFixed(2)
- var coste = (precio/(1+margen/100)).toFixed(2)
-
- $('#coste_preimprecion_' + line[0].tarifa_id).text(coste)
- $('#precio_preimpresion_' + line[0].tarifa_id).val(precio)
- $('#preimpresion_margen_' + line[0].tarifa_id).val(margen)
- });
- check_serv_preimpresion_error()
- yeniden(data[window.csrf_token]);
- })
- }
- }).then(function(){
- if(update_preimpresion){
- fetch(domain + "/presupuestos/presupuestoserviciosextra/update/" + id , {
- method: "POST",
- body: JSON.stringify(datos_json_serviciosextra),
- headers: {
- "Content-type": "application/json; charset=UTF-8"
- }
- })
- .then(response => response.json())
- .then(data => {
-
- var precio = parseFloat(data[0].total).toFixed(2)
- var margen = parseFloat(data[0].margen).toFixed(2)
- var coste = (precio/(1+margen/100)).toFixed(2)
-
- data.lines.forEach((line) => {
- $('#coste_servicioextra_' + line[0].tarifa_id).text(coste)
- $('#precio_serviciosextra_' + line[0].tarifa_id).val(precio)
- $('#serviciosextra_margen_' + line[0].tarifa_id).val(margen)
- });
- check_serv_preimpresion_error();
- yeniden(data[window.csrf_token]);
- })
- }
- })
- )
- )
-
-}
-
-function popAlert(message, alertClass, alertIcon, containerId = 'sk-alert'){
- var htmlString = `
- `;
- if(containerId == 'sk-alert'){
- $(window).scrollTop(0);
- }
- $('#' + containerId).hide().empty().html(htmlString).fadeIn("slow", function(){
- setTimeout(function(){
- $('#' + containerId).fadeOut("slow");
- }, 5000);
- });
-}
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.php
index d6fbe850..aa8b93f3 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.php
@@ -93,6 +93,8 @@
= lang('Proveedores.proveedor') ?> |
= lang('Presupuestos.precioUnidad') ?> |
= lang('Presupuestos.precioTotal') ?> |
+ = lang('Tarifaacabado.margen') ?> |
+ |
|
= lang('Basic.global.Action') ?> |
@@ -103,12 +105,6 @@
-
-
-
- = $item->label ?>
-
-
@@ -131,7 +127,7 @@
= lang('Tarifapreimpresion.tarifapreimpresion') ?> |
= lang('Tarifapreimpresion.coste') ?> |
= lang('Presupuestos.precio') ?> |
-
|
+
= lang('Tarifaacabado.margen') ?> |
= lang('Basic.global.Action') ?> |
@@ -141,12 +137,6 @@
-
-
-
- = $item->label ?>
-
-
@@ -168,11 +158,11 @@
= lang('Presupuestos.id') ?> |
= lang('Presupuestos.tarifa') ?> |
= lang('Proveedores.proveedor') ?> |
-
= lang('Presupuestos.precioUnidad') ?> |
= lang('Presupuestos.paginasCuadernillo') ?> |
= lang('Presupuestos.tiempo') ?> |
+
= lang('Presupuestos.precioUnidad') ?> |
= lang('Presupuestos.precioTotal') ?> |
-
|
+
= lang('Tarifaacabado.margen') ?> |
= lang('Basic.global.Action') ?> |
@@ -183,12 +173,6 @@
-
-
-
- = $item->label ?>
-
-
@@ -211,7 +195,7 @@
= lang('Tarifamanipulado.tarifamanipulado') ?> |
= lang('Presupuestos.precioUnidad') ?> |
= lang('Presupuestos.precioTotal') ?> |
-
|
+
= lang('Tarifaacabado.margen') ?> |
= lang('Basic.global.Action') ?> |
@@ -221,12 +205,6 @@
-
-
-
- = $item->label ?>
-
-
@@ -249,7 +227,7 @@
= lang('Tarifaextra.tarifaextra') ?> |
= lang('Tarifaextra.coste') ?> |
= lang('Presupuestos.precio') ?> |
-
|
+
= lang('Tarifaacabado.margen') ?> |
= lang('Basic.global.Action') ?> |
@@ -259,12 +237,6 @@
-
-
-
-= $this->section("additionalInlineJs") ?>
-
- // Generación de la lista de servicios de acabado (id, nombre)
- window.acabadosList = ;
- window.serviciosacabadosList = ;
- window.serviciosAutomaticos = ;
-
- window.serviciosencuadernadosList = ;
-
- window.serviciosmanipuladoList = ;
-
- window.serviciospreimpresionList = ;
-
- window.serviciosextraList = ;
-
- window.routes_servicios = {
- dataTableOfPresupuestoAcabados: "=route_to('dataTableOfPresupuestoAcabados') ?>",
- menuItemsOfPresupuestoAcabados: '= route_to("menuItemsOfPresupuestoAcabados") ?>',
- dataTableOfPresupuestoPreimpresion: "=route_to('dataTableOfPresupuestoPreimpresiones') ?>",
- dataTableOfPresupuestoEncuadernaciones: "=route_to('dataTableOfPresupuestoEncuadernaciones') ?>",
- dataTableOfPresupuestoManipulados: "=route_to('dataTableOfPresupuestoManipulados') ?>",
- menuItemsOfPresupuestoEncuadernaciones: '= route_to("menuItemsOfPresupuestoEncuadernaciones") ?>',
- dataTableOfPresupuestoServiciosExtra: "=route_to('dataTableOfPresupuestoServiciosExtra') ?>",
- }
-
- init_servicio_acabado()
-
- init_servicio_encuadernado()
-
- init_servicio_manipulado()
-
- init_servicio_preimpresion()
-
- init_servicio_extra()
-
- /* ELIMINADO PARA COMPROBAR EL MAXIMO DE SOLAPAS DESDE EL BACKEND
- PENDIENTE
- $('.solapas_cubierta').on('change', function(){
-
- const ancho_libro = getDimensionLibro().ancho;
-
- // ancho_libro*2 + lomo + solapas*2 <= 630
- const limite_1 = ((630 - ancho_libro*2 - getLomoLineasPresupuesto()) / 2.0).toFixed(1);
- // solapas <= ancho_libro - 10
- const limite_2 = ancho_libro - 10;
- const limite = Math.min(limite_1, limite_2);
-
- if(parseInt($('#solapas_ancho').val()) > limite){
- $('#solapas_ancho').val(limite)
- asyncMessageDialog(
- window.Presupuestos.advertencia,
- window.Presupuestos.actualizacionSolapasCubierta,
- function(){});
- }
-
- $('#compGramajeCubierta').trigger('change')
-
- })
-
-
- $('.solapas_sobrecubierta').on('change', function(){
-
- const ancho_libro = getDimensionLibro().ancho;
-
- // ancho_libro*2 + lomo + solapas*2 <= 630
- const limite_1 = ((630 - ancho_libro*2 - getLomoLineasPresupuesto()) / 2.0).toFixed(1);
- // solapas <= ancho_libro - 10
- const limite_2 = ancho_libro - 10;
- const limite = Math.min(limite_1, limite_2);
-
- if(parseInt($('#solapas_ancho_sobrecubierta').val()) > limite){
- $('#solapas_ancho_sobrecubierta').val(limite)
- asyncMessageDialog(
- window.Presupuestos.advertencia,
- window.Presupuestos.actualizacionSolapasSobrecubierta,
- function(){});
- }
-
- $('#compGramajeSobrecubierta').trigger('change')
- })
-
- */
-
-= $this->endSection() ?>
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_lineasPresupuestoItems.js b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_lineasPresupuestoItems.js
deleted file mode 100644
index 185aacd1..00000000
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_lineasPresupuestoItems.js
+++ /dev/null
@@ -1,4660 +0,0 @@
-/***********************
- * Funcionamiento general de la página
- ************************/
-function fill_lp_from_bbdd(){
-
- window.lineasPresupuestoList.forEach(function(lp) {
-
- const formas = JSON.parse(lp.formas)
- lp.dimensiones_maquina = [formas.maquina_ancho, formas.maquina_alto]
- lp.dimensiones_maquina_impresion = [formas.maquina_impresion_ancho, formas.maquina_impresion_alto]
- lp.num_formas = {
- value : formas.formas,
- num_formas_verticales : formas.formas_v,
- num_formas_horizontales : formas.formas_h,
- posicion_formas : formas.formas_orientacion
- }
- lp['tipo_maquina'] = lp['maquina_tipo']
- lp['precio_impresion_horas'] = lp['precio_impresion']
- lp['margen_impresion_horas'] = lp['margen_impresion']
- lp['precio_libro'] = lp['libro']
- lp['precio_pedido'] = lp['total_papel_pedido']
- lp['total_impresion'] = lp['total_linea']
- lp['precios_pliegos'] = lp['pliegos_precio']
- lp['papel_generico_id'] = lp['papel_id']
-
- dateObj = new Date(lp['tiempo_maquina'] * 1000);
- hours = dateObj.getUTCHours();
- minutes = dateObj.getUTCMinutes();
- seconds = dateObj.getSeconds();
- lp['tiempo_maquina'] = hours.toString().padStart(2, '0') + ':' +
- minutes.toString().padStart(2, '0') + ':' +
- seconds.toString().padStart(2, '0');
-
- if(lp.maquina_tipo=='inkjet'){
-
- lp.datosTipologias = {
- negro: lp.rotativa_negro,
- cyan: lp.rotativa_cyan,
- magenta: lp.rotativa_magenta,
- amarillo: lp.rotativa_amarillo,
- cg: lp.rotativa_cg,
- gota_negro: lp.rotativa_gota_negro,
- gota_color: lp.rotativa_gota_color,
- }
-
- lp['paginas_color'] = lp['rotativa_pag_color']
-
- lp['totalImpresion'] = lp['rotativa_total_impresion']
- lp['a_favor_fibra'] = lp['rotativa_a_favor_fibra']
-
- lp['resolucion'] = lp['rotativa_resolucion']
- lp['superficie'] = lp['rotativa_area_paginas']
-
- lp['num_gotas_negro'] = lp['rotativa_num_gotas_negro']
- lp['num_gotas_cyan'] = lp['rotativa_num_gotas_cyan']
- lp['num_gotas_magenta'] = lp['rotativa_num_gotas_magenta']
- lp['num_gotas_amarillo'] = lp['rotativa_num_gotas_amarillo']
- lp['num_gotas_cg'] = lp['rotativa_num_gotas_cg']
-
- lp['precio_pagina_negro'] = lp['rotativa_precio_pag_negro']
- lp['precio_pagina_color'] = lp['rotativa_precio_pag_color']
- lp['factor_altura'] = lp['rotativa_factor_altura']
- lp['factor_anchura'] = lp['rotativa_factor_anchura']
- lp['paginas_por_pliego'] = lp['rotativa_pag_por_pliego']
-
- lp['clicks_libro'] = lp['rotativa_clicks_libro']
- lp['peso_gotas_negro'] = lp['rotativa_peso_gotas_negro']
- lp['peso_gotas_cyan'] = lp['rotativa_peso_gotas_cyan']
- lp['peso_gotas_magenta'] = lp['rotativa_peso_gotas_magenta']
- lp['peso_gotas_amarillo'] = lp['rotativa_peso_gotas_amarillo']
- lp['peso_gotas_cg'] = lp['rotativa_peso_gotas_cg']
- lp['clicks_pedido'] = lp['rotativa_clicks_total']
- lp['precio_click_pedido'] = lp['precio_click_pedido']
- lp['margen_click_pedido'] = lp['margen_click_pedido']
- lp['precio_tinta'] = lp['rotativa_precio_tinta']
-
-
- lp['peso_gotas_negro_pedido'] = lp['rotativa_peso_gotas_negro_pedido']
- lp['peso_gotas_cyan_pedido'] = lp['rotativa_peso_gotas_cyan_pedido']
- lp['peso_gotas_magenta_pedido'] = lp['rotativa_peso_gotas_magenta_pedido']
- lp['peso_gotas_amarillo_pedido'] = lp['rotativa_peso_gotas_amarillo_pedido']
- lp['peso_gotas_cg_pedido'] = lp['rotativa_peso_gotas_cg_pedido']
-
- }
- if(lp.tipo.includes('rot')){
-
- lp['maquina_velocidad'] = lp['rotativa_mxm']
- lp['metros_papel_libro'] = lp['rotativa_metros_libro']
- lp['metros_papel_total'] = lp['rotativa_metros_total']
- lp['velocidad_corte'] = lp['rotativa_velocidad_corte']
- lp['precio_hora_corte'] = lp['rotativa_precio_hora_corte']
- lp['tiempo_corte'] = lp['rotativa_tiempo_corte']
- lp['total_corte'] = lp['rotativa_total_corte']
- }
-
- lp['areaPaginas'] = lp['rotativa_superficie']
-
-
- data = processRowData(lp, lp.tipo, lp.tipo.replace(/_/g, '-'));
-
- var row = tableLineasPresupuesto.row("#" + lp.tipo);
-
- tableLineasPresupuesto.row.add(data).draw()
- row = tableLineasPresupuesto.row("#" + lp.tipo);
-
- row.child(format(row.data())).show();
-
- switch(lp.tipo){
- case 'lp_bn':
- eventos_lp_bn(lp.maquina_tipo=='inkjet'?true:false)
- break
- case 'lp_bnhq':
- eventos_lp_bnhq(lp.maquina_tipo=='inkjet'?true:false)
- break
- case 'lp_color':
- eventos_lp_color(lp.maquina_tipo=='inkjet'?true:false)
- break
- case 'lp_colorhq':
- eventos_lp_colorhq(lp.maquina_tipo=='inkjet'?true:false)
- break
- case 'lp_rot_bn':
- eventos_lp_rot_bn()
- break
- case 'lp_rot_color':
- eventos_lp_rot_color()
- break
- case 'lp_cubierta':
- eventos_lp_cubierta()
- break
- case 'lp_sobrecubierta':
- eventos_lp_sobrecubierta()
- break
- case 'lp_guardas':
- eventos_lp_guardas()
- lp['paginas_impresion'] = lp.paginas_impresion
- break
- }
-
- })
-
-}
-
-
-async function fill_bbdd_from_lp(presupuesto_id){
-
- data=[];
-
- tableLineasPresupuesto.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var rowData = this.data();
- const formas = {
- maquina_ancho: rowData.maquina_ancho,
- maquina_alto: rowData.maquina_alto,
- maquina_impresion_ancho: rowData.maquina_impresion_ancho,
- maquina_impresion_alto: rowData.maquina_impresion_alto,
- formas: rowData.formas,
- formas_v: rowData.formas_v,
- formas_h: rowData.formas_h,
- formas_orientacion: rowData.formas_orientacion,
- }
-
- var t_maq_str = rowData.tiempo.split(':'); // split it at the colons
- var t_maq = 0
-
- if(t_maq_str.length == 3)
- t_maq = (+t_maq_str[0]) * 3600 + (+t_maq_str[1]) * 60 + (+t_maq_str[2]);
-
- linea_data = {
- presupuesto_id: presupuesto_id,
- tipo: rowData.row_id,
- paginas: (rowData.row_id=='lp_guardas')?(($('#tipo_impresion_id').val() == 1 || $('#tipo_impresion_id').val() == 3)?8:4):rowData.paginas,
- papel_id: rowData.papel,
- gramaje: rowData.gramaje,
- papel_impresion_id: rowData.papel_impresion_id,
- papel_impresion: rowData.papel_impresion,
- maquina_id: rowData.maquina_id,
- maquina: rowData.maquina,
- maquina_tipo: rowData.maquinaTipo,
- tiempo_maquina: t_maq,
- pliegos_libro: rowData.numeroPliegos,
- pliegos_pedido: rowData.pliegosPedido,
- pliegos_precio: rowData.precioPliego,
- libro: rowData.libro,
- total_papel_pedido: rowData.totalPapelPedido,
- margen_papel_pedido: rowData.margenPapelPedido,
- mano: rowData.lomo,
- peso: rowData.peso,
- precio_click: rowData.click,
- precio_click_pedido: rowData.totalClicks,
- margen_click_pedido: rowData.margenClicks,
- check_papel_total: $('#' + rowData.row_id + '_checkPapel').is(":checked")?1:0,
- check_impresion_total: $('#' + rowData.row_id + '_checkClicks').is(":checked")?1:0,
- tarifa_impresion_id: rowData.tarifa_impresion_id,
- formas: JSON.stringify(formas),
-
- horas_maquina: rowData.horasMaquina,
- precio_hora: rowData.precioHora,
- precio_impresion: rowData.precioImpresion,
- margen_impresion: rowData.margenImpresion,
- total_linea: rowData.total_linea,
- }
-
- if(rowData.row_id=='lp_guardas')
- linea_data.paginas_impresion = rowData.paginas_impresion
-
- // maquina rotativa o inkjet
- if(linea_data.maquina_tipo=='inkjet'){
-
- linea_data.rotativa_pag_color = rowData.numPagColor
-
- linea_data.rotativa_total_impresion = rowData.totalImpresion
- linea_data.rotativa_a_favor_fibra = rowData.aFavorFibra,
- linea_data.rotativa_negro = rowData.cobNegro
- linea_data.rotativa_cyan = rowData.cobCyan
- linea_data.rotativa_magenta = rowData.cobMagenta
- linea_data.rotativa_amarillo = rowData.cobAmarillo
- linea_data.rotativa_cg = rowData.cobCG
- linea_data.rotativa_gota_negro = rowData.gotaNegro
- linea_data.rotativa_gota_color = rowData.gotaColor
-
-
- linea_data.rotativa_resolucion = rowData.resolucion
- linea_data.rotativa_area_paginas = rowData.areaPaginas
-
- linea_data.rotativa_num_gotas_negro = rowData.gotaNegro
- linea_data.rotativa_num_gotas_cyan = rowData.gotasCyan
- linea_data.rotativa_num_gotas_magenta = rowData.gotasMagenta
- linea_data.rotativa_num_gotas_amarillo = rowData.gotasAmarillo
- linea_data.rotativa_num_gotas_cg = rowData.gotasCG
-
- linea_data.rotativa_precio_pag_negro = rowData.precioPagNegro
- linea_data.rotativa_precio_pag_color = rowData.precioPagColor
- linea_data.rotativa_factor_altura = rowData.factorAltura
- linea_data.rotativa_factor_anchura = rowData.factorAnchura
- linea_data.rotativa_pag_por_pliego = rowData.paginasPliego
-
- linea_data.rotativa_clicks_libro = rowData.clicksLibro
- linea_data.rotativa_peso_gotas_negro = rowData.gTintaNegro
- linea_data.rotativa_peso_gotas_cyan = rowData.gTintaCyan
- linea_data.rotativa_peso_gotas_magenta = rowData.gTintaMagenta
- linea_data.rotativa_peso_gotas_amarillo = rowData.gTintaAmarillo
- linea_data.rotativa_peso_gotas_cg = rowData.gTintaCG
- linea_data.rotativa_clicks_total = rowData.clicksPedido
- linea_data.precio_click_pedido = rowData.totalClicksPedido
- linea_data.rotativa_precio_tinta = rowData.totalTinta
-
-
- linea_data.rotativa_peso_gotas_negro_pedido = rowData.gTintaNegroPed
- linea_data.rotativa_peso_gotas_cyan_pedido = rowData.gTintaCyanPed
- linea_data.rotativa_peso_gotas_magenta_pedido = rowData.gTintaMagentaPed
- linea_data.rotativa_peso_gotas_amarillo_pedido = rowData.gTintaAmarilloPed
- linea_data.rotativa_peso_gotas_cg_pedido = rowData.gTintaCGPed
-
- }
- if(linea_data.tipo.includes('rot')){
-
- linea_data.rotativa_mxm = rowData.metrosMinuto
- linea_data.rotativa_metros_libro = rowData.metrosPapelLibro
- linea_data.rotativa_metros_total = rowData.metrosPapelTotal
- linea_data.rotativa_velocidad_corte = rowData.velocidadCorte
- linea_data.rotativa_precio_hora_corte = rowData.precioHoraCorte
- linea_data.rotativa_tiempo_corte = rowData.tiempoCorte
- linea_data.rotativa_total_corte = rowData.totalCorte
- linea_data.rotativa_a_favor_fibra = rowData.aFavorFibra==true?1:0
- }
-
- data.push(linea_data)
- } );
-
- var datos = {
- tipo: 'lineasPresupuesto',
- datos: data,
- presupuesto_id: presupuesto_id,
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.updateDataOfPresupuestoAdmin,
-
- data: datos,
- dataType: 'json',
- success:function(response){
-
- token=response[window.csrf_token];
- yeniden(token);
- }
- }).fail(function (jqXHR, textStatus, error) {
- // Handle error here
- console.log(jqXHR)
- });
-
-}
-
-function checkPaginasPresupuesto(){
-
- cantidad_total = 0
-
- tableLineasPresupuesto.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var rowData = this.data();
- if(rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta' && rowData.row_id != 'lp_guardas')
- cantidad_total += parseInt(rowData.paginas)
- })
- htmlString = ''
-
- if(cantidad_total != parseInt($('#paginas').val())){
- htmlString = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.paginasLP +
- `
-
-
`;
- }
- $('#divAlarmasLineasPresupuesto').html(htmlString)
-}
-
-// variable para controlar el foco en los inputs
-let focused = 0;
-
-function change_focus(){
- // se comprueba que el elemento es un input
- if($('#'+focused).is('input')){
- if(focused){
- $('#'+focused).focus();
- $('#'+focused).select();
- focused = 0;
- }
- }
-}
-
-
-// Formatting function for row details - modify as you need
-function format(d) {
-
- var value = '
'+
- ' | '+
- ' | '+
- ''+
- '' +
- ' | '
-
-
-
-
- value += '
'
-
- if(d.maquinaTipo=='inkjet'){
- value +=
- '
'+
- ' | '+
- ' | '+
- ''+
- '' +
-
- ' | ' +
- '
' +
- '
'+
- ' | '+
- ' | '+
- ''+
- '' +
- ((!d.row_id.includes('rot'))?
- ' ' +
- window.Presupuestos.factorAltura +
- '' +
- ' ' +
- ' ' +
- window.Presupuestos.factorAnchura +
- '' +
- ' ':'') +
- (d.row_id.includes('rot')?' ' +
- ' | ' +
- '
' +
- '
'+
- ' | '+
- ' | '+
- ''+
- '' +
- (d.row_id.includes('rot')?' ': ' ') +
- window.Presupuestos.metrosPapelLibro +
- '' +
- ' ' +
- (d.row_id.includes('rot')?' | ' +
- '
' +
- '
'+
- ' | '+
- ' | '+
- ''+
- '' +
- ((!d.row_id.includes('rot'))?' ' +
- window.Presupuestos.resolucion +
- '' +
- ' ':'') +
- ((!d.row_id.includes('rot'))?' ' +
- window.Presupuestos.areaPaginas +
- '' +
- ' ':'') +
- (d.row_id.includes('rot')?' ': ' ') +
- window.Presupuestos.velocidadCorte +
- '' +
- ' ' +
- (d.row_id.includes('rot')?' ': ' ') +
- window.Presupuestos.precioHoraCorte +
- '' +
- ' ' +
- (d.row_id.includes('rot')?' ' +
- ' | ' +
- '
'
- }
-
- return $(value).toArray();
-}
-
-const lastColNr_lp = $('#tableLineasPresupuesto').find("tr:first th").length - 1;
-
-const actionBtns_lp = function(data) {
- return `
-
- `;
-};
-
-var tableLineasPresupuesto = new DataTable('#tableLineasPresupuesto',{
- scrollX: true,
- searching: false,
- paging: false,
- info: false,
- ordering: true,
- responsive: true,
- select: false,
- rowId: 'row_id',
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
- columnDefs: [
- {
- targets: 0,
- className: 'dt-control',
- orderable: false,
- data: null,
- defaultContent: ''
- },
- {
- targets: [1,2,3,4,5,6,7,8,9],
- orderable: false,
- visible: false,
- },
- {
- targets: [11,12,13,14,15,16,17,18,19,20],
- orderable: false,
- },
- {
- targets: [10],
- orderable: true,
- visible: false,
- },
- {
- orderable: false,
- searchable: false,
- targets: [lastColNr_lp]
- },
- ],
- columns: [
- {data: null},
- {data: 'tarifa_impresion_id'},
- {data: 'maquina_ancho'},
- {data: 'maquina_alto'},
- {data: 'maquina_impresion_ancho'},
- {data: 'maquina_impresion_alto'},
- {data: 'formas'},
- {data: 'formas_v'},
- {data: 'formas_h'},
- {data: 'formas_orientacion'},
- {data: 'position',
- type: "num" ,
- render: function (data, type, row, meta){
- if(row.row_id.includes('_bn')){
- return 0;
- }
- else if(row.row_id.includes('_color')){
- return 1;
- }
- else if(row.row_id.includes('_cubierta')){
- return 2;
- }
- else if(row.row_id.includes('_sobrecubierta')){
- return 3;
- }
- else if(row.row_id.includes('_guardas')){
- return 4;
- }
- }
- },
- {data: 'icon',
- render: function ( data, type, row, meta ){
- return '

'
- }
- },
- {data: 'paginas',
- render: function ( data, type, row, meta ) {
- if(row.row_id != "lp_cubierta" && row.row_id != "lp_sobrecubierta" && row.row_id != "lp_guardas")
- return '
| ';
- else if(row.row_id == "lp_cubierta"){
- select = '
'
- if(data==2){
- select += ''
- }
- else{
- select += ''
- }
- select +='' + window.Presupuestos.unaCara + '
'
- select += ''
- if(data==4){
- select += ''
- }
- else{
- select += ''
- }
- select +='' + window.Presupuestos.dosCaras + '
'
- select += ''
- select += ''
-
- return select;
- }
- else if(row.row_id == "lp_guardas"){
- select = '
'
- if(row.paginas_impresion==0){
- select += ''
- }
- else{
- select += ''
- }
- select +='' + window.Presupuestos.sinImpresion + '
'
- select += ''
- if(row.paginas_impresion==4){
- select += ''
- }
- else{
- select += ''
- }
- select +='' + window.Presupuestos.unaCara + '
'
- select += ''
- if(row.paginas_impresion==8){
- select += ''
- }
- else{
- select += ''
- }
- select +='' + window.Presupuestos.dosCaras + '
'
- select += ''
- select += ''
-
- return select;
-
- }
- else{
- return '';
- }
- }
- },
- {data: 'papel',
- render: function ( data, type, row, meta ) {
- var select = $('
')
- .attr('id', row.row_id + '_papel')
- .attr('name', row.row_id + '_papel')
- .addClass('form-control form-select-sm lp-cell lp-select')
- .css('min-width', '150px')
-
- var papelList
- if(row.row_id == 'lp_bn'){
- papelList = window.papelGenericoNegroList
- }
- else if (row.row_id == 'lp_bnhq'){
- papelList = window.papelGenericoNegroHQList
- }
- else if (row.row_id == 'lp_color'){
- papelList = window.papelGenericoColorList
- }
- else if (row.row_id == 'lp_colorhq'){
- papelList = window.papelGenericoColorHQList
- }
- else if (row.row_id == 'lp_cubierta'){
- papelList = window.papelGenericoCubiertaList
- }
- else if (row.row_id == 'lp_sobrecubierta'){
- papelList = window.papelGenericoSobrecubiertaList
- }
- else if (row.row_id == 'lp_guardas'){
- papelList = window.papelGenericoGuardasList
- }
- else if (row.row_id == 'lp_rot_bn'){
- papelList = window.papelGenericoRotativaNegroList
- }
- else if (row.row_id == 'lp_rot_color'){
- papelList = window.papelGenericoRotativaColorList
- }
-
- papelList.forEach((element) => {
- var option
- if(element.id == data)
- option = ''+element.nombre+'';
- else
- option = ''+element.nombre+'';
- select.append(option);
-
- });
- return select[0].outerHTML
- }
- },
- {data: 'gramaje',
- render: function ( data, type, row, meta ) {
- var select = $('')
- .attr('id', row.row_id + '_gramaje')
- .attr('name', row.row_id + '_gramaje')
- .addClass('form-control form-select-sm lp-cell lp-select ' )//+ row.row_class + '-select')
- .css('min-width', '40px')
-
- var option = ''+ parseInt(data)+'';
- select.append(option);
-
- return select[0].outerHTML
- }
- },
- {data: 'papel_impresion',
- render: function ( data, type, row, meta ) {
- var select = $('')
- .attr('id', row.row_id + '_papelImpresion')
- .attr('name', row.row_id + '_papelImpresion')
- .addClass('form-control form-select-sm lp-cell lp-select ' + row.row_class + '-select')
- .css('min-width', '150px')
-
- var option = ''+ data +'';
- select.append(option);
-
- return select[0].outerHTML
- }
- },
- {data: 'maquina',
- render: function ( data, type, row, meta ) {
- var select = $('')
- .attr('id', row.row_id + '_maquina')
- .attr('name', row.row_id + '_maquina')
- .addClass('form-control form-select-sm lp-cell lp-select ' + row.row_class + '-select')
- .css('min-width', '110px')
-
- var option = ''+ data +'';
- select.append(option);
-
- return select[0].outerHTML
- }
- },
- {data: 'tiempo',
- render: function ( data, type, row, meta ) {
- return ' | ';
- }
- },
- {data: 'lomo',
- render: function ( data, type, row, meta ) {
- return ' | ';
- }
- },
- {data: 'peso',
- render: function ( data, type, row, meta ) {
- return ' | ';
- }
- },
- {data: 'total_linea',
- render: function ( data, type, row, meta ) {
- return ' | ';
- }
- },
- {
- data: actionBtns_lp,
- className: 'row-edit dt-center'
- }
- ],
- "order": [ 10, 'asc' ]
-});
-
-tableLineasPresupuesto.on( 'draw.dt', function () {
- checkPaginasPresupuesto()
- getVisibleTabs()
-} );
-
-
-$(document).on('click', '.btn-delete-lp', function(e) {
-
- const row = $(this).closest('tr');
- data = tableLineasPresupuesto.row( row ).data()
- tableLineasPresupuesto.row( row )
- .remove()
- .draw();
-
- //updateTablaEnvios()
- updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
- update_envios: true,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
-
- if(data.row_id == 'lp_guardas')
- servicioGuardas(false)
-
- // Si existe cubierta, hay que actualizar con el valor del lomo
- check_update_cubierta()
-})
-
-
-
-// Add event listener for opening and closing details
-tableLineasPresupuesto.on('click', 'td.dt-control', function (e) {
- let tr = e.target.closest('tr');
- let row = tableLineasPresupuesto.row(tr);
-
- if (row.child.isShown()) {
- // This row is already open - close it
- row.child.hide();
- }
- else {
- // Open this row
- row.child(format(row.data())).show();
- }
-});
-
-function processRowData(row, rowId, rowClass){
-
- var icon = ""
- if(rowId=='lp_bn'){
- if(row.tipo_maquina=='toner')
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_bn.png") ?>'
- else
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_inkjet_bn.png") ?>'
- }
-
- else if(rowId=='lp_bnhq'){
- if(row.tipo_maquina=='toner')
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_bnhq.png") ?>'
- else
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_inkjet_bn.png") ?>'
- }
- else if(rowId=='lp_color'){
- if(row.tipo_maquina=='toner')
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_color.png") ?>'
- else
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_inkjet_color.png") ?>'
- }
- else if(rowId=='lp_colorhq'){
- if(row.tipo_maquina=='toner')
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_colorhq.png") ?>'
- else
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_inkjet_color.png") ?>'
- }
-
- else if(rowId=='lp_cubierta')
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_cubierta.png") ?>'
- else if(rowId=='lp_sobrecubierta')
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_sobrecubierta.png") ?>'
- else if(rowId=='lp_guardas')
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_guardas.png") ?>'
- else if(rowId=='lp_rot_bn')
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_rotativa_bn.png") ?>'
- else if(rowId=='lp_rot_color')
- icon = '= site_url("themes/vuexy/img/safekat/presupuestos/icon_rotativa_color.png") ?>'
-
- const blank_line = (typeof row.tarifa_impresion_id === 'undefined')?1:0;
- var data = {
- 'row_id': rowId,
- 'row_class': rowClass,
-
- 'tarifa_impresion_id': blank_line?0:isNaN(parseInt(row.tarifa_impresion_id)) ? "" : parseInt(row.tarifa_impresion_id),
- 'maquina_ancho': blank_line?0:isNaN(parseFloat(row.dimensiones_maquina[0])) ? "" : parseFloat(row.dimensiones_maquina[0]),
- 'maquina_alto': blank_line?0:isNaN(parseFloat(row.dimensiones_maquina[1])) ? "" : parseFloat(row.dimensiones_maquina[1]),
- 'maquina_impresion_ancho': blank_line?0:isNaN(parseFloat(row.dimensiones_maquina_impresion[0])) ? "" : parseFloat(row.dimensiones_maquina_impresion[0]),
- 'maquina_impresion_alto': blank_line?0:isNaN(parseFloat(row.dimensiones_maquina_impresion[1])) ? "" : parseFloat(row.dimensiones_maquina_impresion[1]),
- 'formas': blank_line?0:isNaN(parseInt(row.num_formas.value)) ? 0 : parseInt(row.num_formas.value),
- 'formas_v': blank_line?0:isNaN(parseInt(row.num_formas.num_formas_verticales)) ? 0 : parseInt(row.num_formas.num_formas_verticales),
- 'formas_h': blank_line?0:isNaN(parseInt(row.num_formas.num_formas_horizontales)) ? 0 : parseInt(row.num_formas.num_formas_horizontales),
- 'formas_orientacion': blank_line?0:row.num_formas.posicion_formas,
-
- 'icon': icon,
- 'paginas': blank_line?0:row.paginas,
- 'paginas_impresion': rowId=='lp_guardas'?row.paginas_impresion:0,
- 'papel': blank_line?"":row.papel_generico_id,
- 'gramaje': blank_line?"":row.gramaje,
- 'papel_impresion': blank_line?"":row.papel_impresion,
- 'papel_impresion_id': blank_line?"":row.papel_impresion_id,
- 'maquina': blank_line?"":row.maquina,
- 'maquina_id': blank_line?"":row.maquina_id,
-
- 'tiempo': blank_line?"":row.tiempo_maquina,
- 'lomo': isNaN(parseFloat(row.mano)) ? "" : parseFloat(row.mano).toFixed(2),
- 'peso': isNaN(parseFloat(row.peso)) ? "" : parseFloat(row.peso).toFixed(2),
-
- 'total_linea': isNaN(parseFloat(row.total_impresion)) ? "" : parseFloat(row.total_impresion).toFixed(2),
-
- 'numeroPliegos':isNaN(parseFloat(row.pliegos_libro)) ? "" : parseFloat(row.pliegos_libro).toFixed(0),
- 'pliegosPedido': isNaN(parseFloat(row.pliegos_pedido)) ? "" : parseFloat(row.pliegos_pedido).toFixed(0),
- 'precioPliego': isNaN(parseFloat(row.precios_pliegos)) ? "" : parseFloat(row.precios_pliegos).toFixed(6),
- 'libro': isNaN(parseFloat(row.precio_libro)) ? "" : parseFloat(row.precio_libro).toFixed(2),
- 'totalPapelPedido': isNaN(parseFloat(row.precio_pedido)) ? "" : parseFloat(row.precio_pedido).toFixed(2),
- 'margenPapelPedido': isNaN(parseFloat(row.margen_papel_pedido)) ? "": parseFloat(row.margen_papel_pedido).toFixed(2),
- 'click': isNaN(parseFloat(row.precio_click)) ? "" : parseFloat(row.precio_click).toFixed(6),
- 'totalClicks': isNaN(parseFloat(row.precio_click_pedido)) ? "" : parseFloat(row.precio_click_pedido).toFixed(2),
- 'margenClicks': isNaN(parseFloat(row.margen_click_pedido)) ? "" : parseFloat(row.margen_click_pedido).toFixed(2),
- 'horasMaquina': isNaN(parseFloat(row.horas_maquina)) ? "" : parseFloat(row.horas_maquina).toFixed(4),
- 'precioHora': isNaN(parseFloat(row.precio_hora)) ? "" : parseFloat(row.precio_hora).toFixed(2),
- 'precioImpresion': isNaN(parseFloat(row.precio_impresion_horas)) ? "" : parseFloat(row.precio_impresion_horas).toFixed(2),
- 'margenImpresion': isNaN(parseFloat(row.margen_impresion_horas)) ? "" : parseFloat(row.margen_impresion_horas).toFixed(2),
- 'maquinaTipo': row.tipo_maquina,
- 'check_papel_total': row.check_papel_total,
- 'check_impresion_total': row.check_impresion_total,
- }
-
- if(row.tipo_maquina=='inkjet'){
-
- data.numPagColor = row.paginas_color
- data.aFavorFibra = row.a_favor_fibra
- data.cobNegro = isNaN(parseFloat(row.datosTipologias.negro)) ? "" : parseFloat(row.datosTipologias.negro).toFixed(2)
- data.cobCyan = isNaN(parseFloat(row.datosTipologias.cyan)) ? "" : parseFloat(row.datosTipologias.cyan).toFixed(2)
- data.cobMagenta = isNaN(parseFloat(row.datosTipologias.magenta)) ? "" : parseFloat(row.datosTipologias.magenta).toFixed(2)
- data.cobAmarillo = isNaN(parseFloat(row.datosTipologias.amarillo)) ? "" : parseFloat(row.datosTipologias.amarillo).toFixed(2)
- data.gotaNegro = isNaN(parseFloat(row.datosTipologias.gota_negro)) ? "" : parseFloat(row.datosTipologias.gota_negro).toFixed(2)
- data.gotaColor = isNaN(parseFloat(row.datosTipologias.gota_color)) ? "" : parseFloat(row.datosTipologias.gota_color).toFixed(2)
-
- data.resolucion = isNaN(parseFloat(row.resolucion)) ? "" : parseFloat(row.resolucion).toFixed(0)
- data.areaPaginas = isNaN(parseFloat(row.superficie)) ? "" : parseFloat(row.superficie).toFixed(2)
-
- data.gotasNegro = isNaN(parseFloat(row.num_gotas_negro)) ? "" : parseFloat(row.num_gotas_negro).toFixed(0)
- data.gotasCyan = isNaN(parseFloat(row.num_gotas_cyan)) ? "" : parseFloat(row.num_gotas_cyan).toFixed(0)
- data.gotasMagenta = isNaN(parseFloat(row.num_gotas_magenta)) ? "" : parseFloat(row.num_gotas_magenta).toFixed(0)
- data.gotasAmarillo = isNaN(parseFloat(row.num_gotas_amarillo)) ? "" : parseFloat(row.num_gotas_amarillo).toFixed(0)
- data.precioPagNegro = isNaN(parseFloat(row.precio_pagina_negro)) ? "" : parseFloat(row.precio_pagina_negro).toFixed(6)
- data.precioPagColor = isNaN(parseFloat(row.precio_pagina_color)) ? "" : parseFloat(row.precio_pagina_color).toFixed(6)
- data.factorAltura = isNaN(parseFloat(row.factor_altura)) ? "" : parseFloat(row.factor_altura).toFixed(2)
- data.factorAnchura = isNaN(parseFloat(row.factor_anchura)) ? "" : parseFloat(row.factor_anchura).toFixed(2)
- data.paginasPliego = isNaN(parseFloat(row.paginas_por_pliego)) ? "" : parseFloat(row.paginas_por_pliego).toFixed(2)
-
- if(rowId.includes('rot')){
- data.metrosMinuto = isNaN(parseFloat(row.maquina_velocidad)) ? "" : parseFloat(row.maquina_velocidad).toFixed(2)
- data.metrosPapelLibro = isNaN(parseFloat(row.metros_papel_libro)) ? "" : parseFloat(row.metros_papel_libro).toFixed(2)
- data.metrosPapelTotal = isNaN(parseFloat(row.metros_papel_total)) ? "" : parseFloat(row.metros_papel_total).toFixed(2)
- data.velocidadCorte = isNaN(parseFloat(row.velocidad_corte)) ? "" : parseFloat(row.velocidad_corte).toFixed(2)
- data.precioHoraCorte = isNaN(parseFloat(row.precio_hora_corte)) ? "" : parseFloat(row.precio_hora_corte).toFixed(2)
- data.tiempoCorte = isNaN(parseFloat(row.tiempo_corte)) ? "" : parseFloat(row.tiempo_corte).toFixed(2)
- data.totalCorte = isNaN(parseFloat(row.total_corte)) ? "" : parseFloat(row.total_corte).toFixed(2)
- }
- else{
- data.totalCorte = 0
- }
-
- data.clicksLibro = isNaN(parseFloat(row.clicks_libro)) ? "" : parseFloat(row.clicks_libro).toFixed(0)
- data.gTintaNegro = isNaN(parseFloat(row.peso_gotas_negro)) ? "" : parseFloat(row.peso_gotas_negro).toFixed(2)
- data.gTintaCyan = isNaN(parseFloat(row.peso_gotas_cyan)) ? "" : parseFloat(row.peso_gotas_cyan).toFixed(2)
- data.gTintaMagenta = isNaN(parseFloat(row.peso_gotas_magenta)) ? "" : parseFloat(row.peso_gotas_magenta).toFixed(2)
- data.gTintaAmarillo = isNaN(parseFloat(row.peso_gotas_amarillo)) ? "" : parseFloat(row.peso_gotas_amarillo).toFixed(2)
- data.clicksPedido = isNaN(parseFloat(row.clicks_pedido)) ? "" : parseFloat(row.clicks_pedido).toFixed(0)
- data.totalClicksPedido = isNaN(parseFloat(row.precio_click_pedido)) ? "" : parseFloat(row.precio_click_pedido).toFixed(2)
- data.totalTinta = isNaN(parseFloat(row.precio_tinta)) ? "" : parseFloat(row.precio_tinta).toFixed(2)
-
- data.totalImpresion = isNaN(parseFloat(row.precio_click_pedido+row.precio_tinta+data.totalCorte)) ? "" : parseFloat(row.precio_click_pedido+row.precio_tinta+data.totalCorte).toFixed(2)
-
- data.gTintaNegroPed = isNaN(parseFloat(row.peso_gotas_negro_pedido)) ? "" : parseFloat(row.peso_gotas_negro_pedido).toFixed(2)
- data.gTintaCyanPed = isNaN(parseFloat(row.peso_gotas_cyan_pedido)) ? "" : parseFloat(row.peso_gotas_cyan_pedido).toFixed(2)
- data.gTintaMagentaPed = isNaN(parseFloat(row.peso_gotas_magenta_pedido)) ? "" : parseFloat(row.peso_gotas_magenta_pedido).toFixed(2)
- data.gTintaAmarilloPed = isNaN(parseFloat(row.peso_gotas_amarillo_pedido)) ? "" : parseFloat(row.peso_gotas_amarillo_pedido).toFixed(2)
-
- if(!rowId.includes('rot')){
- data.cobCG = isNaN(parseFloat(row.datosTipologias.cg)) ? "" : parseFloat(row.datosTipologias.cg).toFixed(2)
- data.gotasCG = isNaN(parseFloat(row.num_gotas_cg)) ? "" : parseFloat(row.num_gotas_cg).toFixed(2)
- data.gTintaCG = isNaN(parseFloat(row.peso_gotas_cg)) ? "" : parseFloat(row.peso_gotas_cg).toFixed(2)
- data.gTintaCGPed = isNaN(parseFloat(row.peso_gotas_cg_pedido)) ? "" : parseFloat(row.peso_gotas_cg_pedido).toFixed(2)
- }
-
-
- data.alto_click = row.alto_click
- }
-
- return data
-}
-
-
-
-$('.paginas-lp').on('change', function(){
- checkPaginasPresupuesto()
-})
-
-
-function verCalculosInkjet(e){
- if($( ".calculos_" + e.data.rowId ).css('display') == 'none')
- $( ".calculos_" + e.data.rowId ).css('display', 'table-row')
- else{
- $( ".calculos_" + e.data.rowId ).css('display', 'none')
- }
-};
-
-
-
-function clear_interior(row_id = ''){
- switch(row_id) {
- case 'lp_bn':
- clear_lp_bn(true);
- break;
- case 'lp_color':
- clear_lp_color(true);
- break;
- case 'lp_bnhq':
- clear_lp_bnhq(true);
- break;
- case 'lp_colorhq':
- clear_lp_colorhq(true);
- break;
- default:
- clear_lp_bn(true);
- clear_lp_color(true);
- clear_lp_bnhq(true);
- clear_lp_colorhq(true);
- break;
- }
- if(row_id.length>0)
- tableLineasPresupuesto.row( row_id )
- .remove()
- .draw();
- else{
- tableLineasPresupuesto.row( '#lp_bn' )
- .remove().draw()
- tableLineasPresupuesto.row( '#lp_bnhq' )
- .remove().draw()
- tableLineasPresupuesto.row( '#lp_color' )
- .remove().draw()
- tableLineasPresupuesto.row( '#lp_colorhq' )
- .remove().draw()
- }
-}
-
-
-function clear_rotativa(row_id = ''){
- switch(row_id) {
- case 'lp_rot_bn':
- clear_lp_rot_bn(true);
- break;
- case 'lp_rot_color':
- clear_lp_rot_color(true);
- break;
- default:
- clear_lp_rot_bn(true);
- clear_lp_rot_color(true);
- break;
- }
- if(row_id.length>0)
- tableLineasPresupuesto.row( row_id )
- .remove()
- .draw();
- else{
- tableLineasPresupuesto.row( '#lp_rot_bn' )
- .remove().draw()
- tableLineasPresupuesto.row( '#lp_rot_color' )
- .remove().draw()
- }
-}
-
-
-function clear_cubierta(){
- clear_lp_cubierta(true);
-}
-
-function clear_sobrecubierta(){
- clear_lp_sobrecubierta(true);
-}
-
-
-$('.insertarLinea').on("click", function (e) {
-
- if(e.target.id.includes("Plana")){
-
- clear_interior();
- clear_rotativa();
-
- var rows = $("#tableCompIntPlana").DataTable().rows( '.selected' ).data().toArray();
-
- for(row of rows){
- if(row['tipo'] =='bn'){
- fill_lp_bn(row, true);
- }
- else if(row['tipo'] =='bnhq'){
- fill_lp_bnhq(row, true);
- }
- else if(row['tipo'] =='color'){
- fill_lp_color(row, true);
- }
- else if(row['tipo'] =='colorhq'){
- fill_lp_colorhq(row, true);
- }
- }
- }
- if(e.target.id.includes("Rotativa")){
-
- clear_rotativa();
- clear_interior();
-
- var rows = $("#tableCompIntRotativa").DataTable().rows( '.selected' ).data().toArray();
- for(row of rows){
- if(row['paginasColor'] ==0){
- fill_lp_rot_bn(row, true);
- }
- else if(row['paginasColor'] >0){
- fill_lp_rot_color(row, true);
- }
- }
- }
-
- if(e.target.id.includes("Cubierta")){
-
- clear_cubierta();
-
- var rows = $("#tableCompCubierta").DataTable().rows( '.selected' ).data().toArray();
- for(row of rows){
- if(row.tipo == 'cubierta'){
- fill_lp_cubierta(row, true);
- if($('#acabado_cubierta_id').val() > 0)
- insertar_acabado_exterior($('#acabado_cubierta_id').val(), window.Presupuestos.cubierta)
- }
- }
-
- clear_sobrecubierta();
-
- for(row of rows){
- if(row.tipo == 'sobrecubierta'){
- fill_lp_sobrecubierta(row, true);
- if($('#acabado_sobrecubierta_id').val() > 0)
- insertar_acabado_exterior($('#acabado_sobrecubierta_id').val(), window.Presupuestos.sobrecubierta)
- }
- }
- }
-
- if(e.target.id.includes("Guardas")){
-
- clear_guardas();
-
- var rows = $("#tableCompGuardas").DataTable().rows( '.selected' ).data().toArray();
- for(row of rows){
- fill_lp_guardas(row, true);
- }
- servicioGuardas(true)
- }
-
-
- updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true})
-
-
-});
-
-
-$('#btn_addLinea').on("click", function (e) {
-
- var dataRows = tableLineasPresupuesto
- .rows()
- .data();
-
- switch($('#addLineasPresupuesto').val()){
- // Se chequean todas las lineas de negro y todas las de color
- // (solo una de cada en interior)
-
- case 'lp_bn':
- var hayLinea = false
- for(let number=0;number', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_bn_gramaje').append(option);
- });
- if(mantenerSeleccion){
- $('#lp_bn_gramaje option').filter(function() {
- return $(this).html() == previous;
- }).prop('selected', true);
- }
- else{
- $('#lp_bn_gramaje').val('')
- }
-
- }
- });
-}
-
-
-
-async function set_lp_bn_papelImpresion(){
-
- var datos = {
- tipo: 'papelImpresion',
- uso: 'negro',
- datos: $('#lp_bn_papel option:selected').val() ,
- gramaje: $('#lp_bn_gramaje option:selected').text().trim() ,
- tipoLinea: "negro",
- };
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_bn_papelImpresion').empty()
- $('#lp_bn_maquina').empty()
- clear_lp_bn(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_bn_papelImpresion').append(option);
- });
- $('#lp_bn_papelImpresion').val('')
- }
- });
-}
-
-
-async function set_lp_bn_maquina(){
-
- var datos = {
- tipo: 'maquina',
- uso: 'negro',
- tipoLinea: "interior",
- is_rotativa: 0,
- ancho: getDimensionLibro().ancho,
- alto: getDimensionLibro().alto,
- datos: parseInt($('#tirada').val()) + parseInt($('#merma').val()),
- papel_impresion: $('#lp_bn_papelImpresion option:selected').val() ,
- };
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_bn_maquina').empty()
- clear_lp_bn(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].maquina_id, 'text':data.menu[item].maquina})
- $('#lp_bn_maquina').append(option);
- });
- $('#lp_bn_maquina').val('')
- }
- });
-}
-
-
-
-async function calcularPresupuesto_bn(input_data={}, updatedTipologias = false){
-
- const dimension = getDimensionLibro();
-
- if(Object.keys(input_data).length == 0){
-
- input_data = {
- paginas:parseInt($('#lp_bn_paginas').val()),
- papel_generico_id: $('#lp_bn_papel option:selected').val(),
- papel_generico: $('#lp_bn_papel option:selected').text().trim(),
- gramaje: $('#lp_bn_gramaje option:selected').text().trim(),
- maquina_id: $('#lp_bn_maquina option:selected').val(),
- papel_impresion_id: $('#lp_bn_papelImpresion option:selected').val()
- }
- }
-
- var datos = {
- tipo_impresion_id: $('#tipo_impresion_id').val(),
- type: 'interior',
- color: 0,
- hq: 0,
- paginas: input_data.paginas,
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#merma').val()),
- ancho: dimension.ancho,
- alto: dimension.alto,
- papel_generico_id: input_data.papel_generico_id,
- papel_generico: input_data.papel_generico,
- gramaje: input_data.gramaje,
- cliente_id: $('#clienteId').find(":selected").val(),
- };
- datos = Object.assign(datos, window.token_ajax);
-
- // Si es inkjet, existe este check
- if ($('#lp_bn_aFavorFibra').length){
- datos.a_favor_fibra = $('#lp_bn_aFavorFibra').prop('checked')
- }
-
- if(updatedTipologias && $('#lp_bn_gotaNegro').length){
- datos.gota_negro= $('#lp_bn_gotaNegro').val()
- datos.gota_color= $('#lp_bn_gotaColor').val()
- datos.negro= $('#lp_bn_cobNegro').val()
- datos.cyan= $('#lp_bn_cobCyan').val()
- datos.magenta= $('#lp_bn_cobMagenta').val()
- datos.amarillo= $('#lp_bn_cobAmarillo').val()
- if ($('#lp_bn_cobCG').length){
- datos.cg = $('#lp_bn_cobCG').val()
- }
- }
-
- await $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- if(data.lineas.length >0){
-
- $.each(data.lineas, function(key, value) {
- // Se cogen los valores de la linea con los datos correspondientes
- if(value.fields.maquina_id === input_data.maquina_id &&
- 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
-
- }
- else{
- value.fields.check_papel_total = 1
- value.fields.check_impresion_total = 1
- }
- fill_lp_bn(value.fields);
-
- return false;
- }
- else{
- clear_lp_bn(false);
- }
-
- });
-
- }
- else{
-
- }
- yeniden(data[window.csrf_token]);
-
- },
- error: function(e){
-
- }
- })
-}
-
-function clear_lp_bn(clear_selectors){
- let pags = $("#lp_bn_paginas" ).val()
- $(".lp-bn-input" ).val("0")
- $("#lp_bn_paginas" ).val(pags)
- if(clear_selectors)
- $( ".lp-bn-select").empty()
-}
-
-
-
-function change_lp_bn_maquina(){
- if(parseInt($('#lp_bn_paginas').val())>0){
- calcularPresupuesto_bn();
- }
-}
-
-
-function change_lp_bn_paginas(){
-
- 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
- ){
-
- calcularPresupuesto_bn();
- }
-}
-
-
-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_bn(false, true);
- }
-}
-
-
-function change_lp_bn_tipologia(){
-
- 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
- ){
-
- calcularPresupuesto_bn({},true);
- }
-}
-
-
-function por_defecto_lp_bn(){
-
- 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
- ){
-
- calcularPresupuesto_bn();
- }
-}
-
-
-function fill_lp_bn(row, fromComparator=false){
-
- if(fromComparator){
-
- var input_data = {
- paginas: row.paginas,
- papel_generico_id: row.papelGenericoId,
- gramaje: row.gramaje,
- papel_impresion_id: row.papelImpresionId,
- maquina_id: row.maquinaId,
- }
- calcularPresupuesto_bn(input_data)
- }
- else{
- // Se guarda el estado de "ver calculos"
- mostrar_calculos = ($( ".calculos_lp_bn").css('display') == 'table-row')
-
- // Si viene de hacerlo a mano...
- data = processRowData(row, 'lp_bn', 'lp-bn');
-
- var row = tableLineasPresupuesto.row('#lp_bn');
- if(row.length>0)
- tableLineasPresupuesto.row('#lp_bn').data(data).draw()
- else{
- tableLineasPresupuesto.row.add(data).draw()
- row = tableLineasPresupuesto.row('#lp_bn');
- }
- row.child(format(row.data())).show();
-
- eventos_lp_bn(data.maquinaTipo=='inkjet'?true:false)
-
- $('#lp_bn_checkPapel').change()
-
- calcular_mermas()
-
- //updateTotales(true, false, false);
- //updateTablaEnvios()
- updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
- update_envios: true,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
-
- // Si existe cubierta, hay que actualizar con el valor del lomo
- check_update_cubierta()
-
- if(mostrar_calculos){
- $( ".calculos_lp_bn").css('display','table-row')
- }
- }
-
- $("#tableLineasPresupuesto").DataTable().columns.adjust();
-
-}
-
-function eventos_lp_bn(isInkjet = false){
-
- $('#lp_bn_papel').bind("change", change_papelGenerico_lp_bn);
- $('#lp_bn_gramaje').bind("focus", {mantenerSeleccion: true}, set_lp_bn_gramaje);
- $('#lp_bn_gramaje').on('change', function(){
- var previous = $(this).data('val');
- const selected = $("select#lp_bn_gramaje option:selected");
- if(selected.text() != previous){
- clear_lp_bn(true)
- }
- });
- $('#lp_bn_papelImpresion').focus("focus", set_lp_bn_papelImpresion);
- $('#lp_bn_maquina').bind("focus", set_lp_bn_maquina);
- $('#lp_bn_maquina').bind("change", change_lp_bn_maquina);
- $('#lp_bn_vercalculos').bind("click", {rowId: 'lp_bn'}, verCalculosInkjet);
-
- 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);
- }
-}
-
-
-
-/***********************
- * Funciones LP COLOR
- ************************/
-function change_papelGenerico_lp_color(){
- var previous = $(this).data('val');
- const selected = $("select#lp_color_papel option:selected");
- if(selected.text() != previous){
- clear_lp_color(true)
- set_lp_color_gramaje()
- }
-}
-
-
-async function set_lp_color_gramaje(mantenerSeleccion = false){
-
- var previous = $('#lp_color_gramaje option:selected').text()
- $('#lp_color_gramaje').data('val', previous);
-
- var datos = {
- tipo: 'gramajeLineasPresupuesto',
- uso: 'interior',
- datos: $('#lp_color_papel option:selected').val() ,
- tipoLinea: "color",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_color_gramaje').empty()
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_color_gramaje').append(option);
- });
- if(mantenerSeleccion){
- $('#lp_color_gramaje option').filter(function() {
- return $(this).html() == previous;
- }).prop('selected', true);
- }
- else{
- $('#lp_color_gramaje').val('')
- }
- }
- });
-}
-
-
-async function set_lp_color_papelImpresion(){
-
- var datos = {
- tipo: 'papelImpresion',
- uso: 'color',
- datos: $('#lp_color_papel option:selected').val() ,
- gramaje: $('#lp_color_gramaje option:selected').text().trim() ,
- tipoLinea: "color",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_color_papelImpresion').empty()
- $('#lp_color_maquina').empty()
- clear_lp_color(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_color_papelImpresion').append(option);
- });
- $('#lp_color_papelImpresion').val('')
- }
- });
-}
-
-
-async function set_lp_color_maquina(){
-
- var datos = {
- tipo: 'maquina',
- uso: 'color',
- tipoLinea: "interior",
- is_rotativa: 0,
- ancho: getDimensionLibro().ancho,
- alto: getDimensionLibro().alto,
- datos: parseInt($('#tirada').val()) + parseInt($('#merma').val()),
- papel_impresion: $('#lp_color_papelImpresion option:selected').val() ,
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_color_maquina').empty()
- clear_lp_color(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].maquina_id, 'text':data.menu[item].maquina})
- $('#lp_color_maquina').append(option);
- });
- $('#lp_color_maquina').val('')
- }
- });
-}
-
-
-async function calcularPresupuesto_color(input_data={}, updatedTipologias = false){
-
- const dimension = getDimensionLibro();
-
- if(Object.keys(input_data).length == 0){
-
- input_data = {
- paginas:parseInt($('#lp_color_paginas').val()),
- papel_generico_id: $('#lp_color_papel option:selected').val(),
- papel_generico: $('#lp_color_papel option:selected').text().trim(),
- gramaje: $('#lp_color_gramaje option:selected').text().trim(),
- maquina_id: $('#lp_color_maquina option:selected').val(),
- papel_impresion_id: $('#lp_color_papelImpresion option:selected').val()
- }
- }
-
- let datos = {
- tipo_impresion_id: $('#tipo_impresion_id').val(),
- type: 'interior',
- color: 1,
- hq: 0,
- paginas: input_data.paginas,
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#merma').val()),
- ancho: dimension.ancho,
- alto: dimension.alto,
- papel_generico_id: input_data.papel_generico_id,
- papel_generico: input_data.papel_generico,
- gramaje: input_data.gramaje,
- cliente_id: $('#clienteId').find(":selected").val(),
- };
- datos = Object.assign(datos, window.token_ajax);
-
- if(updatedTipologias && $('#lp_color_gotaNegro').length){
- datos.gota_negro= $('#lp_color_gotaNegro').val()
- datos.gota_color= $('#lp_color_gotaColor').val()
- datos.negro= $('#lp_color_cobNegro').val()
- datos.cyan= $('#lp_color_cobCyan').val()
- datos.magenta= $('#lp_color_cobMagenta').val()
- datos.amarillo= $('#lp_color_cobAmarillo').val()
- if ($('#lp_color_cobCG').length){
- datos.cg = $('#lp_color_cobCG').val()
- }
- }
-
- // Si es inkjet, existe este check
- if ($('#lp_color_aFavorFibra').length){
- datos.a_favor_fibra = $('#lp_color_aFavorFibra').prop('checked')
- }
-
- await $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- if(data.lineas.length >0){
- // Se cogen los valores de la linea con los datos correspondientes
- $.each(data.lineas, function(key, value) {
- if(value.fields.maquina_id === input_data.maquina_id &&
- value.fields.papel_generico_id === input_data.papel_generico_id &&
- value.fields.papel_impresion_id === input_data.papel_impresion_id) {
-
- if(Object.keys(input_data).length == 0){
- value.fields.check_papel_total = $('#lp_color' + '_checkPapel').is(":checked")?1:0
- value.fields.check_impresion_total = $('#lp_color' + '_checkClicks').is(":checked")?1:0
- }
- else{
- value.fields.check_papel_total = 1
- value.fields.check_impresion_total = 1
- }
- fill_lp_color(value.fields);
- return false;
- }
- else{
- clear_lp_color(false);
- }
-
- });
-
- }
- else{
-
- }
- yeniden(data[window.csrf_token]);
-
- },
- error: function(e){
-
- }
- })
-}
-
-function clear_lp_color(clear_selectors){
- let pags = $("#lp_color_paginas" ).val()
- $(".lp-color-input" ).val("0")
- $("#lp_color_paginas" ).val(pags)
- if(clear_selectors)
- $( ".lp-color-select").empty()
-}
-
-
-function change_lp_color_maquina(){
-
- if(parseInt($('#lp_color_paginas').val())>0){
- calcularPresupuesto_color();
- }
-}
-
-
-function change_lp_color_paginas(){
-
- 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
- ){
-
- calcularPresupuesto_color();
- }
-}
-
-function change_lp_color_tipologia(){
-
- 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
- ){
-
- calcularPresupuesto_color({},true);
- }
-}
-
-
-function por_defecto_lp_color(){
-
- 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
- ){
-
- calcularPresupuesto_color();
- }
-}
-
-
-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 fill_lp_color(row, fromComparator=false){
-
- if(fromComparator){
-
- var input_data = {
- paginas: row.paginas,
- papel_generico_id: row.papelGenericoId,
- gramaje: row.gramaje,
- papel_impresion_id: row.papelImpresionId,
- maquina_id: row.maquinaId,
- }
- calcularPresupuesto_color(input_data)
- }
- else{
- // Se guarda el estado de "ver calculos"
- mostrar_calculos = ($( ".calculos_lp_color").css('display') == 'table-row')
-
- // Si viene de hacerlo a mano...
- data = processRowData(row, 'lp_color', 'lp-color');
-
- var row = tableLineasPresupuesto.row('#lp_color');
- if(row.length>0)
- tableLineasPresupuesto.row('#lp_color').data(data).draw()
- else{
- tableLineasPresupuesto.row.add(data).draw()
- row = tableLineasPresupuesto.row('#lp_color');
- }
- row.child(format(row.data())).show();
-
- eventos_lp_color(data.maquinaTipo=='inkjet'?true:false)
-
- $('#lp_color_checkPapel').change()
-
- calcular_mermas()
- //updateTotales(true, false, false);
- //updateTablaEnvios()
- updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
- update_envios: true,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
-
- // Si existe cubierta, hay que actualizar con el valor del lomo
- check_update_cubierta()
- if(mostrar_calculos){
- $( ".calculos_lp_color").css('display','table-row')
- }
- }
-
- $("#tableLineasPresupuesto").DataTable().columns.adjust();
-
-}
-
-function eventos_lp_color(isInkjet = false){
-
- $('#lp_color_papel').bind("change", change_papelGenerico_lp_color);
- $('#lp_color_gramaje').bind("focus", {mantenerSeleccion: true}, set_lp_color_gramaje);
- $('#lp_color_gramaje').on('change', function(){
- var previous = $(this).data('val');
- const selected = $("select#lp_color_gramaje option:selected");
- if(selected.text() != previous){
- clear_lp_color(true)
- }
- });
- $('#lp_color_papelImpresion').focus("focus", set_lp_color_papelImpresion);
- $('#lp_color_maquina').bind("focus", set_lp_color_maquina);
- $('#lp_color_maquina').bind("change", change_lp_color_maquina);
- $('#lp_color_paginas').bind("change", change_lp_color_paginas);
- $('#lp_color_vercalculos').bind("click", {rowId: 'lp_color'}, verCalculosInkjet);
-
- 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);
- }
-}
-
-
-
-/***********************
- * Funciones LP BNHQ
- ************************/
-function change_papelGenerico_lp_bnhq(){
- var previous = $(this).data('val');
- const selected = $("select#lp_bnhq_papel option:selected");
- if(selected.text() != previous){
- clear_lp_bnhq(true)
- set_lp_bnhq_gramaje()
- }
-}
-
-
-async function set_lp_bnhq_gramaje(mantenerSeleccion = false){
-
- var previous = $('#lp_bnhq_gramaje option:selected').text()
- $('#lp_bnhq_gramaje').data('val', previous);
-
- var datos = {
- tipo: 'gramajeLineasPresupuesto',
- uso: 'interior',
- datos: $('#lp_bnhq_papel option:selected').val() ,
- tipoLinea: "negrohq",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_bnhq_gramaje').empty()
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_bnhq_gramaje').append(option);
- });
- if(mantenerSeleccion){
- $('#lp_bnhq_gramaje option').filter(function() {
- return $(this).html() == previous;
- }).prop('selected', true);
- }
- else{
- $('#lp_bnhq_gramaje').val('')
- }
- }
- });
-}
-
-
-async function set_lp_bnhq_papelImpresion(){
-
- var datos = {
- tipo: 'papelImpresion',
- uso: 'negrohq',
- datos: $('#lp_bnhq_papel option:selected').val() ,
- gramaje: $('#lp_bnhq_gramaje option:selected').text().trim() ,
- tipoLinea: "negrohq",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_bnhq_papelImpresion').empty()
- $('#lp_bnhq_maquina').empty()
- clear_lp_bnhq(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_bnhq_papelImpresion').append(option);
- });
- $('#lp_bnhq_papelImpresion').val('')
- }
- });
-}
-
-
-async function set_lp_bnhq_maquina(){
-
- var datos = {
- tipo: 'maquina',
- uso: 'negrohq',
- tipoLinea: "interior",
- is_rotativa: 0,
- ancho: getDimensionLibro().ancho,
- alto: getDimensionLibro().alto,
- datos: parseInt($('#tirada').val()) + parseInt($('#merma').val()),
- papel_impresion: $('#lp_bnhq_papelImpresion option:selected').val() ,
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_bnhq_maquina').empty()
- clear_lp_bnhq(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].maquina_id, 'text':data.menu[item].maquina})
- $('#lp_bnhq_maquina').append(option);
- });
- $('#lp_bnhq_maquina').val('')
- }
- });
-}
-
-
-function clear_lp_bnhq(clear_selectors){
- let pags = $("#lp_bnhq_paginas" ).val()
- $(".lp-bnhq-input" ).val("0")
- $("#lp_bnhq_paginas" ).val(pags)
- if(clear_selectors)
- $( ".lp-bnhq-select").empty()
-}
-
-
-function change_lp_bnhq_maquina(){
-
- if(parseInt($('#lp_bnhq_paginas').val())>0){
- calcularPresupuesto_bnhq();
- }
-}
-
-function change_lp_bnhq_paginas(){
-
- 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
- ){
-
- calcularPresupuesto_bnhq();
- }
-}
-
-
-function change_lp_bnhq_tipologia(){
-
- 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
- ){
-
- calcularPresupuesto_bnhq({},true);
- }
-}
-
-
-function por_defecto_lp_bnhq(){
-
- 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
- ){
-
- calcularPresupuesto_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);
- }
-}
-
-
-async function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){
-
- const dimension = getDimensionLibro();
-
- if(Object.keys(input_data).length == 0){
-
- input_data = {
- paginas:parseInt($('#lp_bnhq_paginas').val()),
- papel_generico_id: $('#lp_bnhq_papel option:selected').val(),
- papel_generico: $('#lp_bnhq_papel option:selected').text().trim(),
- gramaje: $('#lp_bnhq_gramaje option:selected').text().trim(),
- maquina_id: $('#lp_bnhq_maquina option:selected').val(),
- papel_impresion_id: $('#lp_bnhq_papelImpresion option:selected').val()
- }
- }
-
- let datos = {
- tipo_impresion_id: $('#tipo_impresion_id').val(),
- type: 'interior',
- color: 0,
- hq: 1,
- paginas: input_data.paginas,
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#merma').val()),
- ancho: dimension.ancho,
- alto: dimension.alto,
- papel_generico_id: input_data.papel_generico_id,
- papel_generico: input_data.papel_generico,
- gramaje: input_data.gramaje,
- cliente_id: $('#clienteId').find(":selected").val(),
- };
- datos = Object.assign(datos, window.token_ajax);
-
- if(updatedTipologias && $('#lp_bnhq_gotaNegro').length){
- datos.gota_negro= $('#lp_bnhq_gotaNegro').val()
- datos.gota_color= $('#lp_bnhq_gotaColor').val()
- datos.negro= $('#lp_bnhq_cobNegro').val()
- datos.cyan= $('#lp_bnhq_cobCyan').val()
- datos.magenta= $('#lp_bnhq_cobMagenta').val()
- datos.amarillo= $('#lp_bnhq_cobAmarillo').val()
- if ($('#lp_bnhq_cobCG').length){
- datos.cg = $('#lp_bnhq_cobCG').val()
- }
- }
-
- // Si es inkjet, existe este check
- if ($('#lp_bnhq_aFavorFibra').length){
- datos.a_favor_fibra = $('#lp_bnhq_aFavorFibra').prop('checked')?1:0
- }
-
- await $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- if(data.lineas.length >0){
- // Se cogen los valores de la linea con los datos correspondientes
- $.each(data.lineas, function(key, value) {
- if(value.fields.maquina_id === input_data.maquina_id &&
- value.fields.papel_generico_id === input_data.papel_generico_id &&
- value.fields.papel_impresion_id === input_data.papel_impresion_id) {
-
- 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
- }
- else{
- value.fields.check_papel_total = 1
- value.fields.check_impresion_total = 1
- }
- fill_lp_bnhq(value.fields);
- return false;
- }
- else{
- clear_lp_bnhq(false);
- }
-
- });
-
- }
- else{
-
- }
- yeniden(data[window.csrf_token]);
-
- },
- error: function(e){
-
- }
- })
-}
-
-function fill_lp_bnhq(row, fromComparator=false){
-
- if(fromComparator){
-
- var input_data = {
- paginas: row.paginas,
- papel_generico_id: row.papelGenericoId,
- gramaje: row.gramaje,
- papel_impresion_id: row.papelImpresionId,
- maquina_id: row.maquinaId,
- }
- calcularPresupuesto_bnhq(input_data)
- }
- else{
- // Se guarda el estado de "ver calculos"
- mostrar_calculos = ($( ".calculos_lp_bnhq").css('display') == 'table-row')
- // Si viene de hacerlo a mano...
- data = processRowData(row, 'lp_bnhq', 'lp-bnhq');
- focused = $(':focus').attr('id');
-
- var row = tableLineasPresupuesto.row('#lp_bnhq');
- if(row.length>0)
- tableLineasPresupuesto.row('#lp_bnhq').data(data).draw()
- else{
- tableLineasPresupuesto.row.add(data).draw()
- row = tableLineasPresupuesto.row('#lp_bnhq');
- }
- row.child(format(row.data())).show();
-
- eventos_lp_bnhq(data.maquinaTipo=='inkjet'?true:false)
-
- $('#lp_bnhq_checkPapel').change()
-
- calcular_mermas()
- //updateTotales(true, false, false);
- //updateTablaEnvios()
- updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
- update_envios: true,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
-
- // Si existe cubierta, hay que actualizar con el valor del lomo
- check_update_cubierta()
-
- if(mostrar_calculos){
- $( ".calculos_lp_bnhq").css('display','table-row')
- }
- }
-
- $("#tableLineasPresupuesto").DataTable().columns.adjust();
- change_focus();
-}
-
-function eventos_lp_bnhq(isInkjet = false){
- $('#lp_bnhq_papel').bind("change", change_papelGenerico_lp_bnhq);
- $('#lp_bnhq_gramaje').bind("focus", {mantenerSeleccion: true}, set_lp_bnhq_gramaje);
- $('#lp_bnhq_gramaje').on('change', function(){
- var previous = $(this).data('val');
- const selected = $("select#lp_bnhq_gramaje option:selected");
- if(selected.text() != previous){
- clear_lp_bnhq(true)
- }
- });
- $('#lp_bnhq_papelImpresion').focus("focus", set_lp_bnhq_papelImpresion);
- $('#lp_bnhq_maquina').bind("focus", set_lp_bnhq_maquina);
- $('#lp_bnhq_maquina').bind("change", change_lp_bnhq_maquina);
- $('#lp_bnhq_paginas').bind("change", change_lp_bnhq_paginas);
- $('#lp_bnhq_vercalculos').bind("click", {rowId: 'lp_bnhq'}, verCalculosInkjet);
-
- 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);
- }
-}
-
-
-/***********************
- * Funciones LP COLORHQ
- ************************/
-function change_papelGenerico_lp_colorhq(){
- var previous = $(this).data('val');
- const selected = $("select#lp_colorhq_papel option:selected");
- if(selected.text() != previous){
- clear_lp_colorhq(true)
- set_lp_colorhq_gramaje()
- }
-}
-
-
-async function set_lp_colorhq_gramaje(mantenerSeleccion = false){
-
- var previous = $('#lp_colorhq_gramaje option:selected').text()
- $('#lp_colorhq_gramaje').data('val', previous);
-
- var datos = {
- tipo: 'gramajeLineasPresupuesto',
- uso: 'interior',
- datos: $('#lp_colorhq_papel option:selected').val() ,
- tipoLinea: "colorhq",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_colorhq_gramaje').empty()
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_colorhq_gramaje').append(option);
- });
- if(mantenerSeleccion){
- $('#lp_colorhq_gramaje option').filter(function() {
- return $(this).html() == previous;
- }).prop('selected', true);
- }
- else{
- $('#lp_colorhq_gramaje').val('')
- }
- }
- });
-}
-
-
-async function set_lp_colorhq_papelImpresion(){
-
- var datos = {
- tipo: 'papelImpresion',
- uso: 'colorhq',
- datos: $('#lp_colorhq_papel option:selected').val() ,
- gramaje: $('#lp_colorhq_gramaje option:selected').text().trim() ,
- tipoLinea: "colorhq",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_colorhq_papelImpresion').empty()
- $('#lp_colorhq_maquina').empty()
- clear_lp_colorhq(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_colorhq_papelImpresion').append(option);
- });
- $('#lp_colorhq_papelImpresion').val('')
- }
- });
-}
-
-
-async function set_lp_colorhq_maquina(){
-
- var datos = {
- tipo: 'maquina',
- uso: 'colorhq',
- tipoLinea: "interior",
- is_rotativa: 0,
- ancho: getDimensionLibro().ancho,
- alto: getDimensionLibro().alto,
- datos: parseInt($('#tirada').val()) + parseInt($('#merma').val()),
- papel_impresion: $('#lp_colorhq_papelImpresion option:selected').val() ,
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_colorhq_maquina').empty()
- clear_lp_colorhq(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].maquina_id, 'text':data.menu[item].maquina})
- $('#lp_colorhq_maquina').append(option);
- });
- $('#lp_colorhq_maquina').val('')
- }
- });
-}
-
-
-function clear_lp_colorhq(clear_selectors){
- let pags = $("#lp_colorhq_paginas" ).val()
- $(".lp-colorhq-input" ).val("0")
- $("#lp_colorhq_paginas" ).val(pags)
- if(clear_selectors)
- $( ".lp-colorhq-select").empty()
-}
-
-
-function change_lp_colorhq_maquina(){
-
- if(parseInt($('#lp_colorhq_paginas').val())>0){
- calcularPresupuesto_colorhq();
- }
-}
-
-
-function change_lp_colorhq_paginas(){
-
- 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
- ){
-
- calcularPresupuesto_colorhq();
- }
-}
-
-
-function change_lp_colorhq_tipologia(){
-
- // Se obtiene el id del elemento que ha disparado el evento
- var id = $(this).attr('id')
-
- 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
- ){
-
- calcularPresupuesto_colorhq({},true);
-
- }
-}
-
-
-function por_defecto_lp_colorhq(){
-
- 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
- ){
-
- calcularPresupuesto_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);
- }
-}
-
-
-async function calcularPresupuesto_colorhq(input_data={}, updatedTipologias = false){
-
- const dimension = getDimensionLibro();
-
- if(Object.keys(input_data).length == 0){
-
- input_data = {
- paginas:parseInt($('#lp_colorhq_paginas').val()),
- papel_generico_id: $('#lp_colorhq_papel option:selected').val(),
- papel_generico: $('#lp_colorhq_papel option:selected').text().trim(),
- gramaje: $('#lp_colorhq_gramaje option:selected').text().trim(),
- maquina_id: $('#lp_colorhq_maquina option:selected').val(),
- papel_impresion_id: $('#lp_colorhq_papelImpresion option:selected').val()
- }
- }
-
- let datos = {
- tipo_impresion_id: $('#tipo_impresion_id').val(),
- type: 'interior',
- color: 1,
- hq: 1,
- paginas: input_data.paginas,
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#merma').val()),
- ancho: dimension.ancho,
- alto: dimension.alto,
- papel_generico_id: input_data.papel_generico_id,
- papel_generico: input_data.papel_generico,
- gramaje: input_data.gramaje,
- cliente_id: $('#clienteId').find(":selected").val(),
- };
- datos = Object.assign(datos, window.token_ajax);
-
- if(updatedTipologias && $('#lp_colorhq_gotaNegro').length){
- datos.gota_negro= $('#lp_colorhq_gotaNegro').val()
- datos.gota_color= $('#lp_colorhq_gotaColor').val()
- datos.negro= $('#lp_colorhq_cobNegro').val()
- datos.cyan= $('#lp_colorhq_cobCyan').val()
- datos.magenta= $('#lp_colorhq_cobMagenta').val()
- datos.amarillo= $('#lp_colorhq_cobAmarillo').val()
- if ($('#lp_colorhq_cobCG').length){
- datos.cg = $('#lp_colorhq_cobCG').val()
- }
- }
-
- // Si es inkjet, existe este check
- if ($('#lp_colorhq_aFavorFibra').length){
- datos.a_favor_fibra = $('#lp_colorhq_aFavorFibra').prop('checked')?1:0
- }
-
- await $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- if(data.lineas.length >0){
- // Se cogen los valores de la linea con los datos correspondientes
- $.each(data.lineas, function(key, value) {
- if(value.fields.maquina_id === input_data.maquina_id &&
- value.fields.papel_generico_id === input_data.papel_generico_id &&
- value.fields.papel_impresion_id === input_data.papel_impresion_id) {
-
- if(Object.keys(input_data).length == 0){
- value.fields.check_papel_total = $('#lp_colorhq' + '_checkPapel').is(":checked")?1:0
- value.fields.check_impresion_total = $('#lp_colorhq' + '_checkClicks').is(":checked")?1:0
- }
- else{
- value.fields.check_papel_total = 1
- value.fields.check_impresion_total = 1
- }
- fill_lp_colorhq(value.fields);
- return false;
- }
- else{
- clear_lp_colorhq(false);
- }
-
- });
-
- }
- else{
-
- }
- yeniden(data[window.csrf_token]);
-
- },
- error: function(e){
-
- }
- })
-}
-
-
-function fill_lp_colorhq(row, fromComparator=false){
-
- if(fromComparator){
- var input_data = {
- paginas: row.paginas,
- papel_generico_id: row.papelGenericoId,
- gramaje: row.gramaje,
- papel_impresion_id: row.papelImpresionId,
- maquina_id: row.maquinaId,
- }
- calcularPresupuesto_colorhq(input_data)
- }
- else{
- // Se guarda el estado de "ver calculos"
- mostrar_calculos = ($( ".calculos_lp_colorhq").css('display') == 'table-row')
- focused = $(':focus').attr('id');
-
- // Si viene de hacerlo a mano...
- data = processRowData(row, 'lp_colorhq', 'lp-colorhq');
-
- var row = tableLineasPresupuesto.row('#lp_colorhq');
- if(row.length>0)
- tableLineasPresupuesto.row('#lp_colorhq').data(data).draw()
- else{
- tableLineasPresupuesto.row.add(data).draw()
- row = tableLineasPresupuesto.row('#lp_colorhq');
- }
- row.child(format(row.data())).show();
-
- eventos_lp_colorhq(data.maquinaTipo=='inkjet'?true:false)
-
- $('#lp_colorhq_checkPapel').change()
-
- calcular_mermas()
- //updateTotales(true, false, false);
- //updateTablaEnvios()
- updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
- update_envios: true,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
-
- // Si existe cubierta, hay que actualizar con el valor del lomo
- check_update_cubierta()
-
- if(mostrar_calculos){
- $( ".calculos_lp_colorhq").css('display','table-row')
- }
- }
-
- $("#tableLineasPresupuesto").DataTable().columns.adjust();
- change_focus();
-}
-
-function eventos_lp_colorhq(isInkjet = false){
-
- $('#lp_colorhq_papel').bind("change", change_papelGenerico_lp_colorhq);
- $('#lp_colorhq_gramaje').bind("focus", {mantenerSeleccion: true}, set_lp_colorhq_gramaje);
- $('#lp_colorhq_gramaje').on('change', function(){
- var previous = $(this).data('val');
- const selected = $("select#lp_colorhq_gramaje option:selected");
- if(selected.text() != previous){
- clear_lp_colorhq(true)
- }
- });
- $('#lp_colorhq_papelImpresion').focus("focus", set_lp_colorhq_papelImpresion);
- $('#lp_colorhq_maquina').bind("focus", set_lp_colorhq_maquina);
- $('#lp_colorhq_maquina').bind("change", change_lp_colorhq_maquina);
- $('#lp_colorhq_paginas').bind("change", change_lp_colorhq_paginas);
- $('#lp_colorhq_vercalculos').bind("click", {rowId: 'lp_colorhq'}, verCalculosInkjet);
-
- 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);
- }
-}
-
-
-
-/***********************
- * Funciones LP ROT_BN
- ************************/
-function change_papelGenerico_lp_rot_bn(){
- var previous = $(this).data('val');
- const selected = $("select#lp_rot_bn_papel option:selected");
- if(selected.text() != previous){
- clear_lp_rot_bn(true)
- set_lp_rot_bn_gramaje()
- }
-}
-async function set_lp_rot_bn_gramaje(mantenerSeleccion = false){
-
- var previous = $('#lp_rot_bn_gramaje option:selected').text()
- $('#lp_rot_bn_gramaje').data('val', previous);
-
- var datos = {
- tipo: 'gramajeLineasPresupuesto',
- uso: 'rotativa',
- datos: $('#lp_rot_bn_papel option:selected').val() ,
- tipoLinea: "negro",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_rot_bn_gramaje').empty()
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_rot_bn_gramaje').append(option);
- });
- if(mantenerSeleccion){
- const option = $("select#lp_rot_bn_gramaje option:equal('" + previous + "')");
- option.prop('selected', true);
- }
- else{
- $('#lp_rot_bn_gramaje').val('')
- }
- }
- });
-
-}
-
-
-async function set_lp_rot_bn_papelImpresion(){
-
- var datos = {
- tipo: 'papelImpresion',
- uso: 'rotativa',
- datos: $('#lp_rot_bn_papel option:selected').val() ,
- gramaje: $('#lp_rot_bn_gramaje option:selected').text().trim() ,
- tipoLinea: "negro",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_rot_bn_papelImpresion').empty()
- $('#lp_rot_bn_maquina').empty()
- clear_lp_rot_bn(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_rot_bn_papelImpresion').append(option);
- });
- $('#lp_rot_bn_papelImpresion').val('')
- }
- });
-}
-
-async function set_lp_rot_bn_maquina(){
-
- var datos = {
- tipo: 'maquina',
- uso: 'negro',
- tipoLinea: "interior",
- is_rotativa: 1,
- ancho: getDimensionLibro().ancho,
- alto: getDimensionLibro().alto,
- datos: parseInt($('#tirada').val()) + parseInt($('#merma').val()),
- papel_impresion: $('#lp_rot_bn_papelImpresion option:selected').val() ,
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_rot_bn_maquina').empty()
- clear_lp_rot_bn(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].maquina_id, 'text':data.menu[item].maquina})
- $('#lp_rot_bn_maquina').append(option);
- });
- $('#lp_rot_bn_maquina').val('')
- }
- });
-}
-
-
-function clear_lp_rot_bn(clear_selectors){
- let pags = $("#lp_rot_bn_paginas" ).val()
- $(".lp-rot-bn-input" ).val("0")
- $("#lp_rot_bn_paginas" ).val(pags)
- if(clear_selectors)
- $( ".lp-rot-bn-select").empty()
-}
-
-
-function change_lp_rot_bn_maquina(){
-
- if(parseInt($('#lp_rot_bn_paginas').val())>0){
- calcularPresupuesto_rot_bn(true,false);
- }
-}
-
-
-function change_lp_rot_bn_paginas(){
-
- if( parseInt($('#lp_rot_bn_paginas').val())>0 &&
- parseInt($('#lp_rot_bn_papel option:selected').val())>0 &&
- $('#lp_rot_bn_gramaje option:selected').text().length>0 &&
- parseInt($('#lp_rot_bn_papelImpresion option:selected').val())>0
- ){
-
- calcularPresupuesto_rot_bn();
- }
-}
-
-
-function change_lp_rot_bn_aFavorFibra(){
-
-
- if( parseInt($('#lp_rot_bn_paginas').val())>0 &&
- parseInt($('#lp_rot_bn_papel option:selected').val())>0 &&
- $('#lp_rot_bn_gramaje option:selected').text().length>0 &&
- parseInt($('#lp_rot_bn_papelImpresion option:selected').val())>0
- ){
- var rowData = tableLineasPresupuesto.row('#lp_rot_bn').data()
- rowData.aFavorFibra = $('#lp_rot_bn_aFavorFibra').prop('checked')
- tableLineasPresupuesto.row('#lp_rot_bn').data(rowData).draw(false)
-
-
- calcularPresupuesto_rot_bn(false, true);
- }
-}
-
-
-async function calcularPresupuesto_rot_bn(fromComparador=false, updatedTipologias=false, input_data={}){
-
- const dimension = getDimensionLibro();
-
- if(Object.keys(input_data).length == 0){
-
- input_data = {
- paginas:parseInt($('#lp_rot_bn_paginas').val()),
- papel_generico_id: $('#lp_rot_bn_papel option:selected').val(),
- papel_generico: $('#lp_rot_bn_papel option:selected').text().trim(),
- gramaje: $('#lp_rot_bn_gramaje option:selected').text().trim(),
- maquina_id: $('#lp_rot_bn_maquina option:selected').val(),
- papel_impresion_id: $('#lp_rot_bn_papelImpresion option:selected').val(),
- fibra: fromComparador==false? ($('#lp_rot_bn_aFavorFibra').prop('checked')?1:0):1
- }
- }
-
- let datos = {
- tipo_impresion_id: $('#tipo_impresion_id').val(),
- type: 'interior_rot',
- color: 0,
- hq: 0,
- paginas: input_data.paginas,
- paginas_negro: input_data.paginas,
- paginas_color: 0,
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#merma').val()),
- ancho: dimension.ancho,
- alto: dimension.alto,
- papel_generico_id: input_data.papel_generico_id,
- papel_generico: input_data.papel_generico,
- gramaje: input_data.gramaje,
- cliente_id: $('#clienteId').find(":selected").val(),
- a_favor_fibra: fromComparador==false? ($('#lp_rot_bn_aFavorFibra').prop('checked')?1:0):1,
- };
- datos = Object.assign(datos, window.token_ajax);
-
- if(updatedTipologias){
- datos.gota_negro= $('#lp_rot_bn_gotaNegro').val()
- datos.gota_color= $('#lp_rot_bn_gotaColor').val()
- datos.negro= $('#lp_rot_bn_cobNegro').val()
- datos.cyan= $('#lp_rot_bn_cobCyan').val()
- datos.magenta= $('#lp_rot_bn_cobMagenta').val()
- datos.amarillo= $('#lp_rot_bn_cobAmarillo').val()
- }
-
- await $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- if(data.lineas.length >0){
- // Se cogen los valores de la linea con los datos correspondientes
- $.each(data.lineas, function(key, value) {
-
- if(fromComparador){
- if(value.fields.maquina_id === input_data.maquina_id &&
- value.fields.papel_generico_id === input_data.papel_generico_id &&
- value.fields.papel_impresion_id === input_data.papel_impresion_id) {
-
- value.fields.check_papel_total = 1
- value.fields.check_impresion_total = 1
- fill_lp_rot_bn(value.fields);
- return false;
- }
- }
- else if(value.fields.maquina_id === input_data.maquina_id &&
- value.fields.papel_generico_id === input_data.papel_generico_id &&
- value.fields.papel_impresion_id === input_data.papel_impresion_id &&
- value.fields.a_favor_fibra == input_data.fibra) {
-
- value.fields.check_papel_total = $('#lp_rot_bn' + '_checkPapel').is(":checked")?1:0
- value.fields.check_impresion_total = $('#lp_rot_bn' + '_checkClicks').is(":checked")?1:0
- fill_lp_rot_bn(value.fields);
- return false;
- }
- clear_lp_rot_bn(false);
- });
-
- }
- else{
-
- }
- yeniden(data[window.csrf_token]);
-
- },
- error: function(e){
-
- }
- })
-}
-
-
-function change_lp_rot_bn_tipologia(){
-
- if( parseInt($('#lp_rot_bn_paginas').val())>0 &&
- parseInt($('#lp_rot_bn_papel option:selected').val())>0 &&
- $('#lp_rot_bn_gramaje option:selected').text().length>0 &&
- parseInt($('#lp_rot_bn_papelImpresion option:selected').val())>0
- ){
-
- calcularPresupuesto_rot_bn(false,true);
-
- }
-}
-
-
-function por_defecto_lp_rot_bn(wait_result = false){
-
- if( parseInt($('#lp_rot_bn_paginas').val())>0 &&
- parseInt($('#lp_rot_bn_papel option:selected').val())>0 &&
- $('#lp_rot_bn_gramaje option:selected').text().length>0 &&
- parseInt($('#lp_rot_bn_papelImpresion option:selected').val())>0
- ){
-
- calcularPresupuesto_rot_bn(false);
- }
-}
-
-
-function fill_lp_rot_bn(row, fromComparador=false){
-
- if(fromComparador){
-
- var input_data = {
- paginas: row.paginas,
- papel_generico_id: row.papelGenericoId,
- gramaje: row.gramaje,
- papel_impresion_id: row.papelImpresionId,
- maquina_id: row.maquinaId,
- fibra: row.aFavorFibra=='no'?0:1
- }
-
- calcularPresupuesto_rot_bn(true, false, input_data);
-
- }
- else{
- // Se guarda el estado de "ver calculos"
- mostrar_calculos = ($( ".calculos_lp_rot_bn").css('display') == 'table-row')
- focused = $(':focus').attr('id');
-
- // Si viene de hacerlo a mano...
- data = processRowData(row, 'lp_rot_bn', 'lp-rot-bn');
-
- var row = tableLineasPresupuesto.row('#lp_rot_bn');
- if(row.length>0)
- tableLineasPresupuesto.row('#lp_rot_bn').data(data).draw()
- else{
- tableLineasPresupuesto.row.add(data).draw()
- row = tableLineasPresupuesto.row('#lp_rot_bn');
- }
- row.child(format(row.data())).show();
-
- eventos_lp_rot_bn()
-
- $('#lp_rot_bn_checkPapel').change()
-
- calcular_mermas()
- //updateTotales(true, false, false);
- //updateTablaEnvios()
- updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
- update_envios: true,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
-
- // Si existe cubierta, hay que actualizar con el valor del lomo
- check_update_cubierta()
-
- if(mostrar_calculos){
- $( ".calculos_lp_rot_bn").css('display','table-row')
- }
- }
-
- $('.lp_rot_bn').css('display', '')
- $("#tableLineasPresupuesto").DataTable().columns.adjust();
- change_focus();
-}
-
-function eventos_lp_rot_bn(){
- $('#lp_rot_bn_papel').bind("change", change_papelGenerico_lp_rot_bn);
- $('#lp_rot_bn_gramaje').bind("focus", {mantenerSeleccion: true}, set_lp_rot_bn_gramaje);
- $('#lp_rot_bn_gramaje').on('change', function(){
- var previous = $(this).data('val');
- const selected = $("select#lp_rot_bn_gramaje option:selected");
- if(selected.text() != previous){
- clear_lp_rot_bn(true)
- }
- });
- $('#lp_rot_bn_papelImpresion').focus("focus", set_lp_rot_bn_papelImpresion);
- $('#lp_rot_bn_maquina').bind("focus", set_lp_rot_bn_maquina);
- $('#lp_rot_bn_maquina').bind("change", change_lp_rot_bn_maquina);
- $('#lp_rot_bn_paginas').bind("change", change_lp_rot_bn_paginas);
- $('#lp_rot_bn_vercalculos').bind("click", {rowId: 'lp_rot_bn'}, verCalculosInkjet);
- $('#lp_rot_bn_aFavorFibra').bind("change", change_lp_rot_bn_aFavorFibra);
- $('.lp-rot-bn-tipologia').bind("change", change_lp_rot_bn_tipologia);
- $('#lp_rot_bn_defecto').bind("click", por_defecto_lp_rot_bn);
-
-}
-
-
-/***********************
- * Funciones LP ROT_COLOR
- ************************/
-function change_papelGenerico_lp_rot_color(){
- var previous = $(this).data('val');
- const selected = $("select#lp_rot_color_papel option:selected");
- if(selected.text() != previous){
- clear_lp_rot_color(true)
- set_lp_rot_color_gramaje()
- }
-}
-
-
-async function set_lp_rot_color_gramaje(mantenerSeleccion = false){
-
- var previous = $('#lp_rot_color_gramaje option:selected').text()
- $('#lp_rot_color_gramaje').data('val', previous);
-
- var datos = {
- tipo: 'gramajeLineasPresupuesto',
- uso: 'rotativa',
- datos: $('#lp_rot_color_papel option:selected').val() ,
- tipoLinea: "color",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_rot_color_gramaje').empty()
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_rot_color_gramaje').append(option);
- });
- if(mantenerSeleccion){
- const option = $("select#lp_rot_color_gramaje option:equal('" + previous + "')");
- option.prop('selected', true);
- }
- else{
- $('#lp_rot_color_gramaje').val('')
- }
- }
- });
-
-}
-
-
-async function set_lp_rot_color_papelImpresion(){
-
- var datos = {
- tipo: 'papelImpresion',
- uso: 'rotativa',
- datos: $('#lp_rot_color_papel option:selected').val() ,
- gramaje: $('#lp_rot_color_gramaje option:selected').text().trim() ,
- tipoLinea: "color",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_rot_color_papelImpresion').empty()
- $('#lp_rot_color_maquina').empty()
- clear_lp_rot_color(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_rot_color_papelImpresion').append(option);
- });
- $('#lp_rot_color_papelImpresion').val('')
- }
- });
-}
-
-
-async function set_lp_rot_color_maquina(){
-
- var datos = {
- tipo: 'maquina',
- uso: 'color',
- tipoLinea: "interior",
- is_rotativa: 1,
- ancho: getDimensionLibro().ancho,
- alto: getDimensionLibro().alto,
- datos: parseInt($('#tirada').val()) + parseInt($('#merma').val()),
- papel_impresion: $('#lp_rot_color_papelImpresion option:selected').val() ,
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_rot_color_maquina').empty()
- clear_lp_rot_color(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].maquina_id, 'text':data.menu[item].maquina})
- $('#lp_rot_color_maquina').append(option);
- });
- $('#lp_rot_color_maquina').val('')
- }
- });
-}
-
-
-function clear_lp_rot_color(clear_selectors){
- let pags = $("#lp_rot_color_paginas" ).val()
- $(".lp-rot-color-input" ).val("0")
- $("#lp_rot_color_paginas" ).val(pags)
- if(clear_selectors)
- $( ".lp-rot-color-select").empty()
-}
-
-
-function change_lp_rot_color_maquina(){
-
- if(parseInt($('#lp_rot_color_paginas').val())>0){
-
- calcularPresupuesto_rot_color(true,false);
- }
-}
-
-
-function change_lp_rot_color_paginas(){
-
- if( parseInt($('#lp_rot_color_paginas').val())>0 &&
- parseInt($('#lp_rot_color_papel option:selected').val())>0 &&
- $('#lp_rot_color_gramaje option:selected').text().length>0 &&
- parseInt($('#lp_rot_color_papelImpresion option:selected').val())>0
- ){
-
- calcularPresupuesto_rot_color();
- }
-}
-
-
-function change_lp_rot_color_aFavorFibra(){
-
- if( parseInt($('#lp_rot_color_paginas').val())>0 &&
- parseInt($('#lp_rot_color_papel option:selected').val())>0 &&
- $('#lp_rot_color_gramaje option:selected').text().length>0 &&
- parseInt($('#lp_rot_color_papelImpresion option:selected').val())>0
- ){
- var rowData = tableLineasPresupuesto.row('#lp_rot_color').data()
- rowData.aFavorFibra = $('#lp_rot_color_aFavorFibra').prop('checked')
- tableLineasPresupuesto.row('#lp_rot_color').data(rowData).draw(false)
-
- calcularPresupuesto_rot_color(false, true);
- }
-}
-
-
-async function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=false, input_data={}){
-
- const dimension = getDimensionLibro();
-
- if(Object.keys(input_data).length == 0){
-
- input_data = {
- paginas:parseInt($('#lp_rot_color_paginas').val()),
- papel_generico_id: $('#lp_rot_color_papel option:selected').val(),
- papel_generico: $('#lp_rot_color_papel option:selected').text().trim(),
- gramaje: $('#lp_rot_color_gramaje option:selected').text().trim(),
- maquina_id: $('#lp_rot_color_maquina option:selected').val(),
- papel_impresion_id: $('#lp_rot_color_papelImpresion option:selected').val(),
- fibra: fromComparador==false? ($('#lp_rot_color_aFavorFibra').prop('checked')?1:0):1
- }
- }
-
- paginas_color = isNaN(parseInt($('#lp_rot_color_numPagColor').val()))?input_data.paginas:parseInt($('#lp_rot_color_numPagColor').val())
-
- let datos = {
- tipo_impresion_id: $('#tipo_impresion_id').val(),
- type: 'interior_rot',
- color: 1,
- hq: 0,
- paginas: input_data.paginas,
- paginas_negro: input_data.paginas-paginas_color,
- paginas_color: paginas_color,
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#merma').val()),
- ancho: dimension.ancho,
- alto: dimension.alto,
- papel_generico_id: input_data.papel_generico_id,
- papel_generico: input_data.papel_generico,
- gramaje: input_data.gramaje,
- cliente_id: $('#clienteId').find(":selected").val(),
- a_favor_fibra: fromComparador==false? ($('#lp_rot_color_aFavorFibra').prop('checked')?1:0):1,
- };
- datos = Object.assign(datos, window.token_ajax);
-
- if(fromComparador){
- datos.paginas_negro = parseInt($('#compPaginasNegro').val())
- datos.paginas_color = parseInt($('#compPaginasColor').val())
- }
-
- if(updatedTipologias){
- datos.gota_negro= $('#lp_rot_color_gotaNegro').val()
- datos.gota_color= $('#lp_rot_color_gotaColor').val()
- datos.negro= $('#lp_rot_color_cobNegro').val()
- datos.cyan= $('#lp_rot_color_cobCyan').val()
- datos.magenta= $('#lp_rot_color_cobMagenta').val()
- datos.amarillo= $('#lp_rot_color_cobAmarillo').val()
- }
-
- await $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- if(data.lineas.length >0){
- // Se cogen los valores de la linea con los datos correspondientes
- $.each(data.lineas, function(key, value) {
- fibra = $('#lp_rot_color_aFavorFibra').prop('checked')
- if(fromComparador){
- if(value.fields.maquina_id === input_data.maquina_id &&
- value.fields.papel_generico_id === input_data.papel_generico_id &&
- value.fields.papel_impresion_id === input_data.papel_impresion_id) {
-
- value.fields.check_papel_total = 1
- value.fields.check_impresion_total = 1
- fill_lp_rot_color(value.fields);
- return false;
- }
- }
- else if(value.fields.maquina_id === input_data.maquina_id &&
- value.fields.papel_generico_id === input_data.papel_generico_id &&
- value.fields.papel_impresion_id === input_data.papel_impresion_id &&
- value.fields.a_favor_fibra == input_data.fibra) {
-
- value.fields.check_papel_total = $('#lp_rot_color' + '_checkPapel').is(":checked")?1:0
- value.fields.check_impresion_total = $('#lp_rot_color' + '_checkClicks').is(":checked")?1:0
-
- fill_lp_rot_color(value.fields);
- return false;
- }
- clear_lp_rot_color(false);
- });
-
- }
- else{
-
- }
- yeniden(data[window.csrf_token]);
-
- },
- error: function(e){
-
- }
- })
-}
-
-
-function change_lp_rot_color_tipologia(){
-
- if( parseInt($('#lp_rot_color_paginas').val())>0 &&
- parseInt($('#lp_rot_color_papel option:selected').val())>0 &&
- $('#lp_rot_color_gramaje option:selected').text().length>0 &&
- parseInt($('#lp_rot_color_papelImpresion option:selected').val())>0
- ){
-
- calcularPresupuesto_rot_color(false,true);
- }
-}
-
-
-function por_defecto_lp_rot_color(){
-
- if( parseInt($('#lp_rot_color_paginas').val())>0 &&
- parseInt($('#lp_rot_color_papel option:selected').val())>0 &&
- $('#lp_rot_color_gramaje option:selected').text().length>0 &&
- parseInt($('#lp_rot_color_papelImpresion option:selected').val())>0
- ){
-
- calcularPresupuesto_rot_color(false);
- }
-}
-
-
-function fill_lp_rot_color(row, fromComparador=false){
-
- if(fromComparador){
- var input_data = {
- paginas: row.paginas,
- papel_generico_id: row.papelGenericoId,
- gramaje: row.gramaje,
- papel_impresion_id: row.papelImpresionId,
- maquina_id: row.maquinaId,
- fibra: row.aFavorFibra=='no'?0:1
- }
-
- calcularPresupuesto_rot_color(true, false, input_data);
-
- }
- else{
- // Se guarda el estado de "ver calculos"
- mostrar_calculos = ($( ".calculos_lp_rot_color").css('display') == 'table-row')
- focused = $(':focus').attr('id');
-
- // Si viene de hacerlo a mano...
- data = processRowData(row, 'lp_rot_color', 'lp-rot-color');
-
- var row = tableLineasPresupuesto.row('#lp_rot_color');
- if(row.length>0)
- tableLineasPresupuesto.row('#lp_rot_color').data(data).draw()
- else{
- tableLineasPresupuesto.row.add(data).draw()
- row = tableLineasPresupuesto.row('#lp_rot_color');
- }
- row.child(format(row.data())).show();
-
- eventos_lp_rot_color()
-
- $('#lp_rot_color_checkPapel').change()
-
- calcular_mermas()
- //updateTotales(true, false, false);
- //updateTablaEnvios()
- updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
- update_envios: true,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
-
- // Si existe cubierta, hay que actualizar con el valor del lomo
- check_update_cubierta()
-
- if(mostrar_calculos){
- $( ".calculos_lp_rot_color").css('display','table-row')
- }
- }
-
- $("#tableLineasPresupuesto").DataTable().columns.adjust();
- change_focus();
-}
-
-function eventos_lp_rot_color(){
- $('#lp_rot_color_papel').bind("change", change_papelGenerico_lp_rot_color);
- $('#lp_rot_color_gramaje').bind("focus", {mantenerSeleccion: true}, set_lp_rot_color_gramaje);
- $('#lp_rot_color_gramaje').on('change', function(){
- var previous = $(this).data('val');
- const selected = $("select#lp_rot_color_gramaje option:selected");
- if(selected.text() != previous){
- clear_lp_rot_color(true)
- }
- });
- $('#lp_rot_color_papelImpresion').focus("focus", set_lp_rot_color_papelImpresion);
- $('#lp_rot_color_maquina').bind("focus", set_lp_rot_color_maquina);
- $('#lp_rot_color_maquina').bind("change", change_lp_rot_color_maquina);
- $('#lp_rot_color_paginas').bind("change", change_lp_rot_color_paginas);
- $('#lp_rot_color_numPagColor').bind("change", change_lp_rot_color_paginas);
- $('#lp_rot_color_vercalculos').bind("click", {rowId: 'lp_rot_color'}, verCalculosInkjet);
- $('#lp_rot_color_aFavorFibra').bind("change", change_lp_rot_color_aFavorFibra);
- $('.lp-rot-color-tipologia').bind("change", change_lp_rot_color_tipologia);
- $('#lp_rot_color_defecto').bind("click", por_defecto_lp_rot_color);
-}
-
-
-/***********************
- * Funciones LP CUBIERTA
- ************************/
-function change_papelGenerico_lp_cubierta(){
- var previous = $(this).data('val');
- const selected = $("select#lp_cubierta_papel option:selected");
- if(selected.text() != previous){
- clear_lp_cubierta(true)
- set_lp_cubierta_gramaje()
- }
-}
-
-
-async function set_lp_cubierta_gramaje(mantenerSeleccion = false){
-
- var previous = $('#lp_cubierta_gramaje option:selected').text()
- $('#lp_cubierta_gramaje').data('val', previous);
-
- var datos = {
- tipo: 'gramajeLineasPresupuesto',
- uso: 'cubierta',
- datos: $('#lp_cubierta_papel option:selected').val() ,
- tipoLinea: "colorhq",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_cubierta_gramaje').empty()
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_cubierta_gramaje').append(option);
- });
- if(mantenerSeleccion){
- $('#lp_cubierta_gramaje option').filter(function() {
- return $(this).html() == previous;
- }).prop('selected', true);
- }
- else{
- $('#lp_cubierta_gramaje').val('')
- }
- }
- });
-
-}
-
-
-async function set_lp_cubierta_papelImpresion(){
-
- var datos = {
- tipo: 'papelImpresion',
- uso: 'cubierta',
- datos: $('#lp_cubierta_papel option:selected').val() ,
- gramaje: $('#lp_cubierta_gramaje option:selected').text().trim() ,
- tipoLinea: "colorhq",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_cubierta_papelImpresion').empty()
- $('#lp_cubierta_maquina').empty()
- clear_lp_cubierta(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_cubierta_papelImpresion').append(option);
- });
- $('#lp_cubierta_papelImpresion').val('')
- }
- });
-}
-
-
-async function set_lp_cubierta_maquina(){
-
- var datos = {
- tipo: 'maquina',
- uso: 'colorhq',
- tipoLinea: "cubierta",
- uso_tarifa: "cubierta",
- is_rotativa: 0,
- ancho: getDimensionLibro().ancho,
- alto: getDimensionLibro().alto,
- datos: parseInt($('#tirada').val()) + parseInt($('#merma').val()),
- papel_impresion: $('#lp_cubierta_papelImpresion option:selected').val() ,
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_cubierta_maquina').empty()
- clear_lp_cubierta(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].maquina_id, 'text':data.menu[item].maquina})
- $('#lp_cubierta_maquina').append(option);
- });
- $('#lp_cubierta_maquina').val('')
- }
- });
-}
-
-
-function clear_lp_cubierta(clear_selectors){
- let pags = $("#lp_cubierta_paginas option:selected" ).val()
- $(".lp-cubierta-input" ).val("0")
- $("#lp_cubierta_paginas" ).val(pags)
- if(clear_selectors)
- $( ".lp-cubierta-select").empty()
-}
-
-
-function change_lp_cubierta_maquina(){
-
- if(parseInt($('#lp_cubierta_paginas option:selected').val())>0){
- calcularPresupuesto_cubierta();
- }
-}
-
-
-function change_lp_cubierta_paginas(){
-
- if( parseInt($('#lp_cubierta_paginas option:selected').val())>0 &&
- parseInt($('#lp_cubierta_papel option:selected').val())>0 &&
- $('#lp_cubierta_gramaje option:selected').text().length>0 &&
- parseInt($('#lp_cubierta_papelImpresion option:selected').val())>0
- ){
-
- calcularPresupuesto_cubierta();
- }
-}
-
-
-async function calcularPresupuesto_cubierta(fromComparador=false, input_data={}){
-
- const dimension = getDimensionLibro();
-
- if(Object.keys(input_data).length == 0){
-
- input_data = {
- paginas:parseInt($('#lp_cubierta_paginas option:selected').val()),
- papel_generico_id: $('#lp_cubierta_papel option:selected').val(),
- papel_generico: $('#lp_cubierta_papel option:selected').text().trim(),
- gramaje: $('#lp_cubierta_gramaje option:selected').text().trim(),
- maquina_id: $('#lp_cubierta_maquina option:selected').val(),
- papel_impresion_id: $('#lp_cubierta_papelImpresion option:selected').val()
- }
- }
-
-
- let datos = {
- tipo_impresion_id: $('#tipo_impresion_id').val(),
- type: 'cubierta',
- color: 1,
- hq: 1,
- paginas: input_data.paginas,
- paginas_negro: 0,
- paginas_color: 0,
- solapas: $('#solapas').is(':checked')?1:0,
- solapas_ancho: $('#solapas').is(':checked')?parseInt($('#solapas_ancho').val()):0,
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- ancho: dimension.ancho,
- alto: dimension.alto,
- lomo: getLomoLineasPresupuesto(),
- papel_generico_id: input_data.papel_generico_id,
- papel_generico: input_data.papel_generico,
- gramaje: input_data.gramaje,
- cliente_id: $('#clienteId').find(":selected").val(),
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- if(data.lineas.length >0){
- // Se cogen los valores de la linea con los datos correspondientes
- $.each(data.lineas, function(key, value) {
- if(value.fields.maquina_id === input_data.maquina_id &&
- value.fields.papel_generico_id === input_data.papel_generico_id &&
- value.fields.papel_impresion_id === input_data.papel_impresion_id) {
-
- if(Object.keys(input_data).length == 0){
- value.fields.check_papel_total = $('#lp_cubierta' + '_checkPapel').is(":checked")?1:0
- value.fields.check_impresion_total = $('#lp_cubierta' + '_checkClicks').is(":checked")?1:0
- }
- else{
- value.fields.check_papel_total = 1
- value.fields.check_impresion_total = 1
- }
- fill_lp_cubierta(value.fields);
- return false;
- }
- clear_lp_cubierta(false);
- });
-
- }
- else{
-
- }
- yeniden(data[window.csrf_token]);
-
- },
- error: function(e){
-
- }
- })
-}
-
-
-function fill_lp_cubierta(row, fromComparador=false){
-
- if(fromComparador){
-
- var input_data = {
- paginas: row.paginas,
- papel_generico_id: row.papelGenericoId,
- gramaje: row.gramaje,
- papel_impresion_id: row.papelImpresionId,
- maquina_id: row.maquinaId,
- }
-
- calcularPresupuesto_cubierta(false, input_data);
-
- }
- else{
-
- // Si viene de hacerlo a mano...
- data = processRowData(row, 'lp_cubierta', 'lp-cubierta');
- focused = $(':focus').attr('id');
-
- var row = tableLineasPresupuesto.row('#lp_cubierta');
- if(row.length>0)
- tableLineasPresupuesto.row('#lp_cubierta').data(data).draw()
- else{
- tableLineasPresupuesto.row.add(data).draw()
- row = tableLineasPresupuesto.row('#lp_cubierta');
- }
- row.child(format(row.data())).show();
-
- eventos_lp_cubierta()
-
- $('#lp_cubierta_checkPapel').change()
-
- check_update_sobrecubierta()
-
- calcular_mermas()
- //updateTotales(true, false, false);
- //updateTablaEnvios()
- updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
- update_envios: true,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
-
- }
-
- $("#tableLineasPresupuesto").DataTable().columns.adjust();
- change_focus();
-}
-
-function eventos_lp_cubierta(){
-
- $('#lp_cubierta_papel').bind("change", change_papelGenerico_lp_cubierta);
- $('#lp_cubierta_gramaje').bind("focus", {mantenerSeleccion: true}, set_lp_cubierta_gramaje);
- $('#lp_cubierta_gramaje').on('change', function(){
- var previous = $(this).data('val');
- const selected = $("select#lp_cubierta_gramaje option:selected");
- if(selected.text() != previous){
- clear_lp_cubierta(true)
- }
- });
- $('#lp_cubierta_papelImpresion').focus("focus", set_lp_cubierta_papelImpresion);
- $('#lp_cubierta_maquina').bind("focus", set_lp_cubierta_maquina);
- $('#lp_cubierta_maquina').bind("change", change_lp_cubierta_maquina);
- $('#lp_cubierta_paginas').bind("change", change_lp_cubierta_paginas);
- $('#lp_cubierta_vercalculos').bind("click", {rowId: 'lp_cubierta'}, verCalculosInkjet);
-}
-
-
-function check_update_cubierta(){
- let row = tableLineasPresupuesto.row('#lp_cubierta');
- if(row.length>0){
- calcularPresupuesto_cubierta()
- }
-}
-
-
-/***********************
- * Funciones LP SOBRECUBIERTA
- ************************/
-function change_papelGenerico_lp_sobrecubierta(){
- var previous = $(this).data('val');
- const selected = $("select#lp_sobrecubierta_papel option:selected");
- if(selected.text() != previous){
- clear_lp_sobrecubierta(true)
- set_lp_sobrecubierta_gramaje()
- }
-}
-
-
-async function set_lp_sobrecubierta_gramaje(mantenerSeleccion = false){
-
- var previous = $('#lp_sobrecubierta_gramaje option:selected').text()
- $('#lp_sobrecubierta_gramaje').data('val', previous);
-
- var datos = {
- tipo: 'gramajeLineasPresupuesto',
- uso: 'sobrecubierta',
- datos: $('#lp_sobrecubierta_papel option:selected').val() ,
- tipoLinea: "colorhq",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_sobrecubierta_gramaje').empty()
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_sobrecubierta_gramaje').append(option);
- });
- if(mantenerSeleccion){
- $('#lp_sobrecubierta_gramaje option').filter(function() {
- return $(this).html() == previous;
- }).prop('selected', true);
- }
- else{
- $('#lp_sobrecubierta_gramaje').val('')
- }
- }
- });
-
-}
-
-
-async function set_lp_sobrecubierta_papelImpresion(){
-
- var datos = {
- tipo: 'papelImpresion',
- uso: 'sobrecubierta',
- datos: $('#lp_sobrecubierta_papel option:selected').val() ,
- gramaje: $('#lp_sobrecubierta_gramaje option:selected').text().trim() ,
- tipoLinea: "colorhq",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_sobrecubierta_papelImpresion').empty()
- $('#lp_sobrecubierta_maquina').empty()
- clear_lp_sobrecubierta(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_sobrecubierta_papelImpresion').append(option);
- });
- $('#lp_sobrecubierta_papelImpresion').val('')
- }
- });
-}
-
-
-async function set_lp_sobrecubierta_maquina(){
-
- var datos = {
- tipo: 'maquina',
- uso: 'colorhq',
- tipoLinea: "sobrecubierta",
- uso_tarifa: "sobrecubierta",
- is_rotativa: 0,
- ancho: getDimensionLibro().ancho,
- alto: getDimensionLibro().alto,
- datos: parseInt($('#tirada').val()) + parseInt($('#merma').val()),
- papel_impresion: $('#lp_sobrecubierta_papelImpresion option:selected').val() ,
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_sobrecubierta_maquina').empty()
- clear_lp_sobrecubierta(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].maquina_id, 'text':data.menu[item].maquina})
- $('#lp_sobrecubierta_maquina').append(option);
- });
- $('#lp_sobrecubierta_maquina').val('')
- }
- });
-}
-
-
-function clear_lp_sobrecubierta(clear_selectors){
- $(".lp-sobrecubierta-input" ).val("0")
- if(clear_selectors)
- $( ".lp-sobrecubierta-select").empty()
-}
-
-
-function change_lp_sobrecubierta_maquina(){
-
- calcularPresupuesto_sobrecubierta();
-}
-
-
-async function calcularPresupuesto_sobrecubierta(fromComparador=false, input_data={}){
-
- const dimension = getDimensionLibro();
-
- if(Object.keys(input_data).length == 0){
-
- input_data = {
- paginas:4,
- papel_generico_id: $('#lp_sobrecubierta_papel option:selected').val(),
- papel_generico: $('#lp_sobrecubierta_papel option:selected').text().trim(),
- gramaje: $('#lp_sobrecubierta_gramaje option:selected').text().trim(),
- maquina_id: $('#lp_sobrecubierta_maquina option:selected').val(),
- papel_impresion_id: $('#lp_sobrecubierta_papelImpresion option:selected').val()
- }
- }
-
-
- let datos = {
- tipo_impresion_id: $('#tipo_impresion_id').val(),
- type: 'sobrecubierta',
- color: 1,
- hq: 1,
- paginas: input_data.paginas,
- paginas_negro: 0,
- paginas_color: 0,
- solapas: $('#solapas_sobrecubierta').is(':checked')?1:0,
- solapas_ancho: $('#solapas_sobrecubierta').is(':checked')?parseInt($('#solapas_ancho_sobrecubierta').val()):0,
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#mermacubierta').val()),
- ancho: dimension.ancho,
- alto: dimension.alto,
- lomo: getLomoLineasPresupuesto() + getLomoCubiertaLineasPresupuesto(),
- papel_generico_id: input_data.papel_generico_id,
- papel_generico: input_data.papel_generico,
- gramaje: input_data.gramaje,
- cliente_id: $('#clienteId').find(":selected").val(),
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- if(data.lineas.length >0){
- // Se cogen los valores de la linea con los datos correspondientes
- $.each(data.lineas, function(key, value) {
- if(value.fields.maquina_id === input_data.maquina_id &&
- value.fields.papel_generico_id === input_data.papel_generico_id &&
- value.fields.papel_impresion_id === input_data.papel_impresion_id) {
-
- if(Object.keys(input_data).length == 0){
- value.fields.check_papel_total = $('#lp_sobrecubierta' + '_checkPapel').is(":checked")?1:0
- value.fields.check_impresion_total = $('#lp_sobrecubierta' + '_checkClicks').is(":checked")?1:0
- }
- else{
- value.fields.check_papel_total = 1
- value.fields.check_impresion_total = 1
- }
- fill_lp_sobrecubierta(value.fields);
- return false;
- }
- clear_lp_sobrecubierta(false);
- });
-
- }
- else{
-
- }
- yeniden(data[window.csrf_token]);
-
- },
- error: function(e){
-
- }
- })
-}
-
-
-function fill_lp_sobrecubierta(row, fromComparador=false){
-
- if(fromComparador){
-
- var input_data = {
- paginas: row.paginas,
- papel_generico_id: row.papelGenericoId,
- gramaje: row.gramaje,
- papel_impresion_id: row.papelImpresionId,
- maquina_id: row.maquinaId,
- }
-
- calcularPresupuesto_sobrecubierta(false, input_data);
-
- }
- else{
-
- var portadaObjeto = {
- anchoLibro:row.dimensiones_libro[0],
- altoLibro:row.dimensiones_libro[1],
- solapas:$('#solapas_ancho').val(),
- lomo:row.mano};
-
- // Si viene de hacerlo a mano...
- data = processRowData(row, 'lp_sobrecubierta', 'lp-sobrecubierta');
-
- var row = tableLineasPresupuesto.row('#lp_sobrecubierta');
- if(row.length>0)
- tableLineasPresupuesto.row('#lp_sobrecubierta').data(data).draw()
- else{
- tableLineasPresupuesto.row.add(data).draw()
- row = tableLineasPresupuesto.row('#lp_sobrecubierta');
- }
- row.child(format(row.data())).show();
-
- eventos_lp_sobrecubierta()
-
- $('#lp_sobrecubierta_checkPapel').change()
-
- calcular_mermas()
- //updateTotales(true, false, false);
- //updateTablaEnvios()
- updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
- update_envios: true,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
-
- }
-
- $("#tableLineasPresupuesto").DataTable().columns.adjust();
-
-}
-
-function eventos_lp_sobrecubierta(){
-
- $('#lp_sobrecubierta_papel').bind("change", change_papelGenerico_lp_sobrecubierta);
- $('#lp_sobrecubierta_gramaje').bind("focus", {mantenerSeleccion: true}, set_lp_sobrecubierta_gramaje);
- $('#lp_sobrecubierta_gramaje').on('change', function(){
- var previous = $(this).data('val');
- const selected = $("select#lp_sobrecubierta_gramaje option:selected");
- if(selected.text() != previous){
- clear_lp_sobrecubierta(true)
- }
- });
- $('#lp_sobrecubierta_papelImpresion').focus("focus", set_lp_sobrecubierta_papelImpresion);
- $('#lp_sobrecubierta_maquina').bind("focus", set_lp_sobrecubierta_maquina);
- $('#lp_sobrecubierta_maquina').bind("change", change_lp_sobrecubierta_maquina);
- $('#lp_sobrecubierta_vercalculos').bind("click", {rowId: 'lp_sobrecubierta'}, verCalculosInkjet);
-}
-
-
-function check_update_sobrecubierta(){
- let row = tableLineasPresupuesto.row('#lp_sobrecubierta');
- if(row.length>0){
- calcularPresupuesto_sobrecubierta()
- }
-}
-
-
-function getLomoLineasPresupuesto(){
- let lomoTotal = 0
- try{
- tableLineasPresupuesto.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var rowData = this.data();
- if(rowData.row_id != 'lp_cubierta' && rowData.tipo != 'lp_sobrecubierta')
- lomoTotal += parseFloat(rowData.lomo)
- })
- }
- catch(error){
- lomoTotal = 0
- }
- $('#lomo_cubierta').val(lomoTotal)
- return lomoTotal
-}
-
-function getLomoCubiertaLineasPresupuesto(){
- let lomoTotal = 0
- try{
- tableLineasPresupuesto.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var rowData = this.data();
- if(rowData.row_id == 'lp_cubierta')
- lomoTotal += parseFloat(rowData.lomo)
- })
- }
- catch(error){
- lomoTotal = 0
- }
- $('#lomo_sobrecubierta').val(lomoTotal+parseFloat($('#lomo_cubierta').val()))
- return lomoTotal
-}
-
-
-
-/***********************
- * Funciones LP GUARDAS
- ************************/
-function change_papelGenerico_lp_guardas(){
- var previous = $(this).data('val');
- const selected = $("select#lp_guardas_papel option:selected");
- if(selected.text() != previous){
- clear_lp_guardas(true)
- }
-}
-
-function clear_lp_guardas(clear_selectors){
- let pags = $("#lp_guardas_paginas option:selected" ).val()
- $(".lp-guardas-input" ).val("0")
- $("#lp_guardas_paginas" ).val(pags)
- if(clear_selectors){
- $( "#lp_guardas_maquina").empty()
- $( "#lp_guardas_papelImpresion").empty()
- }
-
-}
-
-
-function clear_guardas(){
- clear_lp_guardas(true);
-}
-
-
-async function calcularPresupuesto_guardas(fromComparador=false, input_data={}){
-
- const dimension = getDimensionLibro();
-
- if(Object.keys(input_data).length == 0){
-
- input_data = {
- paginas: (parseInt($('#tipo_impresion_id').val()) == 1 || parseInt($('#tipo_impresion_id').val()) == 3)?8:4,
- paginas_impresion: parseInt($('#lp_guardas_paginas option:selected').val()),
- papel_generico_id: $('#lp_guardas_papel option:selected').val(),
- papel_generico: $('#lp_guardas_papel option:selected').text().trim(),
- gramaje: 170,
- maquina_id: $('#lp_guardas_maquina option:selected').val(),
- papel_impresion_id: $('#lp_guardas_papelImpresion option:selected').val()
- }
- }
-
-
- var datos = {
- tipo_impresion_id: $('#tipo_impresion_id').val(),
- type: 'guardas',
- color: 1,
- hq: 1,
- paginas: (parseInt($('#tipo_impresion_id').val()) == 1 || parseInt($('#tipo_impresion_id').val()) == 3)?8:4,
- paginas_impresion: input_data.paginas_impresion,
- tirada: parseInt($('#tirada').val()),
- merma: parseInt($('#merma').val()),
- ancho: dimension.ancho,
- alto: dimension.alto,
- papel_generico_id: input_data.papel_generico_id,
- papel_generico: input_data.papel_generico,
- gramaje: input_data.gramaje,
- cliente_id: $('#clienteId').find(":selected").val(),
- };
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: "POST",
- url: "/presupuestoadmin/datatable",
- data: datos,
- success: function (data) {
-
- if(data.lineas.length >0){
- // Se cogen los valores de la linea con los datos correspondientes
- $.each(data.lineas, function(key, value) {
- if(value.fields.maquina_id === input_data.maquina_id &&
- value.fields.papel_generico_id === input_data.papel_generico_id &&
- value.fields.papel_impresion_id === input_data.papel_impresion_id) {
-
- if(Object.keys(input_data).length == 0){
- value.fields.check_papel_total = $('#lp_guardas' + '_checkPapel').is(":checked")?1:0
- value.fields.check_impresion_total = $('#lp_guardas' + '_checkClicks').is(":checked")?1:0
- }
- else{
- value.fields.check_papel_total = 1
- value.fields.check_impresion_total = 1
- }
- fill_lp_guardas(value.fields);
- return false;
- }
- clear_lp_guardas(false);
- });
-
- }
- else{
-
- }
- yeniden(data[window.csrf_token]);
-
- },
- error: function(e){
-
- }
- })
-}
-
-function fill_lp_guardas(row, fromComparador=false){
-
- if(fromComparador){
-
- var input_data = {
- paginas: row.paginas,
- paginas_impresion: row.paginas_impresion,
- papel_generico_id: row.papelGenericoId,
- gramaje: row.gramaje,
- papel_impresion_id: row.papelImpresionId,
- maquina_id: row.maquinaId,
- }
-
- calcularPresupuesto_guardas(false, input_data);
-
- }
- else{
- // Se guarda el estado de "ver calculos"
- mostrar_calculos = ($( ".calculos_lp_guardas").css('display') == 'table-row')
-
- // Si viene de hacerlo a mano...
- data = processRowData(row, 'lp_guardas', 'lp-guardas');
-
- var row = tableLineasPresupuesto.row('#lp_guardas');
- if(row.length>0)
- tableLineasPresupuesto.row('#lp_guardas').data(data).draw()
- else{
- tableLineasPresupuesto.row.add(data).draw()
- row = tableLineasPresupuesto.row('#lp_guardas');
- }
- row.child(format(row.data())).show();
-
- eventos_lp_guardas(data.maquinaTipo=='inkjet'?true:false)
-
- $('#lp_guardas_checkPapel').change()
-
- calcular_mermas()
- //updateTotales(true, false, false);
- //updateTablaEnvios()
- updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
- update_envios: true,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
-
- // Si existe cubierta, hay que actualizar con el valor del lomo
- check_update_cubierta()
-
- if(mostrar_calculos){
- $( ".calculos_lp_guardas").css('display','table-row')
- }
-
- }
- $("#tableLineasPresupuesto").DataTable().columns.adjust();
-}
-
-function eventos_lp_guardas(isInkjet = false){
-
- $('#lp_guardas_papel').bind("change", change_papelGenerico_lp_guardas);
- $('#lp_guardas_papelImpresion').focus("focus", set_lp_guardas_papelImpresion);
- $('#lp_guardas_maquina').bind("focus", set_lp_guardas_maquina);
- $('#lp_guardas_maquina').bind("change", calcularPresupuesto_guardas);
- $('#lp_guardas_paginas').bind("change", change_lp_guardas_paginas);
-
- if(isInkjet){
- $('#lp_guardas_vercalculos').bind("click", {rowId: 'lp_guardas'}, verCalculosInkjet);
- $('.lp-guardas-tipologia').bind("change", change_lp_guardas_tipologia);
- $('#lp_guardas_defecto').bind("click", por_defecto_lp_guardas);
- $('#lp_guardas_aFavorFibra').bind("change", change_lp_guardas_aFavorFibra);
- }
-}
-
-function change_lp_guardas_tipologia(){
-
- if( parseInt($('#lp_guardas_papel option:selected').val())>0 &&
- parseInt($('#lp_guardas_papelImpresion option:selected').val())>0
- ){
-
- calcularPresupuesto_guardas({},true);
- }
-}
-
-
-function por_defecto_lp_guardas(){
-
- if( parseInt($('#lp_guardas_papel option:selected').val())>0 &&
- parseInt($('#lp_guardas_papelImpresion option:selected').val())>0
- ){
-
- calcularPresupuesto_guardas();
- }
-}
-
-
-function change_lp_guardas_aFavorFibra(){
-
- if( parseInt($('#lp_guardas_papel option:selected').val())>0 &&
- parseInt($('#lp_guardas_papelImpresion option:selected').val())>0
- ){
- var rowData = tableLineasPresupuesto.row('#lp_guardas').data()
- rowData.aFavorFibra = $('#lp_guardas_aFavorFibra').prop('checked')
- tableLineasPresupuesto.row('#lp_guardas').data(rowData).draw(false)
-
- calcularPresupuesto_guardas(false, true);
- }
-}
-
-function change_lp_guardas_paginas(){
-
- if( parseInt($('#lp_guardas_papel option:selected').val())>0 &&
- parseInt($('#lp_guardas_papelImpresion option:selected').val())>0
- ){
-
- calcularPresupuesto_guardas();
- }
-}
-
-async function set_lp_guardas_maquina(){
-
- var datos = {
- tipo: 'maquina',
- uso: 'colorhq',
- tipoLinea: "guardas",
- is_rotativa: 0,
- ancho: getDimensionLibro().ancho,
- alto: getDimensionLibro().alto,
- datos: parseInt($('#tirada').val()) + parseInt($('#merma').val()),
- papel_impresion: $('#lp_guardas_papelImpresion option:selected').val() ,
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_guardas_maquina').empty()
- clear_lp_guardas(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].maquina_id, 'text':data.menu[item].maquina})
- $('#lp_guardas_maquina').append(option);
- });
- $('#lp_guardas_maquina').val('')
- }
- });
-}
-
-async function set_lp_guardas_papelImpresion(){
-
- var datos = {
- tipo: 'papelImpresion',
- uso: 'guardas',
- datos: $('#lp_guardas_papel option:selected').val() ,
- gramaje: 170 ,
- tipoLinea: "colorhq",
- }
- datos = Object.assign(datos, window.token_ajax);
-
- await $.ajax({
- type: 'post',
- url: window.routes_lp.menuItemsOfPresupuestoAdmin,
- beforeSend: function() {
- $('#lp_guardas_papelImpresion').empty()
- $('#lp_guardas_maquina').empty()
- clear_lp_guardas(false)
- },
- data: datos,
- dataType: 'json',
- success: function (data) {
- yeniden(data[window.csrf_token]);
- $.each(data.menu, function(item){
- var option = $('', {'value':data.menu[item].id, 'text':data.menu[item].text})
- $('#lp_guardas_papelImpresion').append(option);
- });
- $('#lp_guardas_papelImpresion').val('')
- }
- });
-}
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_lineasPresupuestoItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_lineasPresupuestoItems.php
index 330ec907..22da692e 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_lineasPresupuestoItems.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_lineasPresupuestoItems.php
@@ -60,6 +60,7 @@
= lang('Presupuestos.cubierta') ?>
= lang('Presupuestos.sobrecubierta') ?>
= lang('Presupuestos.Guardas') ?>
+ = lang('Presupuestos.faja') ?>
@@ -70,33 +71,3 @@
-
-
-
-= $this->section("additionalInlineJs") ?>
-window.papelGenericoNegroList = ;
-window.papelGenericoNegroHQList = ;
-window.papelGenericoColorList = ;
-window.papelGenericoColorHQList = ;
-window.papelGenericoCubiertaList = ;
-window.papelGenericoSobrecubiertaList = ;
-window.papelGenericoRotativaNegroList = ;
-window.papelGenericoRotativaColorList = ;
-
-
- window.papelGenericoGuardasList = ;
-
-
-window.lineasPresupuestoList = ;
-
-window.routes_lp = {
- menuItemsOfPresupuestoAdmin: '= route_to("menuItemsOfPresupuestoAdmin") ?>',
- updateDataOfPresupuestoAdmin: '= route_to("updateDataOfPresupuestoAdmin") ?>',
-
-}
-
-fill_lp_from_bbdd()
-
-checkPaginasPresupuesto()
-
-= $this->endSection() ?>
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_presupuestoDireccionesForm.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_presupuestoDireccionesForm.php
index 601eeca8..18e014fd 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_presupuestoDireccionesForm.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_presupuestoDireccionesForm.php
@@ -2,20 +2,21 @@
-
-
-
- =lang('PresupuestosDirecciones.clientedAdd') ?>*
-
-
-
-
-
-
+
+
+
+ = lang('PresupuestosDirecciones.clientedAdd') ?>*
+
+
+
+
+
+
= lang('PresupuestosDirecciones.cantidad') ?>*
@@ -41,38 +42,32 @@
-
+
- =lang('PresupuestosDirecciones.pais') ?>*
+ = lang('PresupuestosDirecciones.pais') ?>*
-
- =lang('PresupuestosDirecciones.selectPais') ?>
-
- id==1 ? ' selected':'' ?>>
- =$item->nombre ?>
-
-
+
-
+
-
+
-
+
- =lang('PresupuestosDirecciones.provincia') ?>*
+ = lang('PresupuestosDirecciones.provincia') ?>*
@@ -82,37 +77,42 @@
-
-
-
-= $this->section("additionalInlineJs") ?>
-
-$('#cancelAdd').on('click', function(){
- $('#addressForm').modal("hide");
-})
-
-
-$('#add_cantidad').on('change', function(){
- if(parseInt($('#add_cantidad').val()) > $('#add_cantidad').attr('max-value'))
- $('#add_cantidad').val($('#add_cantidad').attr('max-value'))
-})
-
-
-$('#saveDireccionEnvio').on('click', function(){
-
- if(validate_fields()){
-
- if($('#addressForm').attr('action')=='edit'){
- tableEnvios.row( $("#addressForm").attr('row') )
- .remove()
- .draw();
- }
- var peso_total_libro = 0
-
- tableLineasPresupuesto.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var rowData = this.data();
- peso_total_libro += parseFloat(rowData.peso)
-
- })
-
- const peso_envio = peso_total_libro*parseInt($('#add_cantidad').val())/1000.0
-
-
- $.post( '= route_to('dataTableOfPresupuestoDirecciones') ?>',
- {
- tipo: "get_tarifa",
- peso: peso_envio,
- paisId: $("#add_pais_id").val(),
- cp: $('#add_cp').val(),
- tipo_envio: $('#add_entregaPieCalle').is(":checked")?'palets':'cajas',
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
- })
- .done(function( data ) {
- if(data.length >0){
-
- var precios = []
- for (var i = 0; i < data.length; i++) {
- if(peso_envio>data[i].peso_max || data[i].precio_max == 0){
- data[i].precio = (parseFloat(data[i].precio_min) + (peso_envio-parseFloat(data[i].peso_min))*parseFloat(data[i].precio_adicional)).toFixed(2);
- }
- // si no se calcula linealmente
- else{
- m=((data[i].precio_max-data[i].precio_min)/(data[i].peso_max-data[i].peso_min))
- b=data[i].precio_max-m*data[i].peso_max
- data[i].precio = parseFloat(m*peso_envio+b).toFixed(2);
- }
- data[i].margen = data[i].margen
- }
-
- const tarifa_final = data.reduce((previous, current) => {
- return current.precio < previous.precio ? current : previous;
- });
- tarifa_final.cantidad=parseInt($('#add_cantidad').val())
- tarifa_final.peso=peso_envio
-
-
- tableEnvios.row
- .add({
- 'tarifa_id': tarifa_final.id,
- 'cantidad': tarifa_final.cantidad,
- 'peso': tarifa_final.peso.toFixed(3),
- 'att': $('#add_att').val(),
- 'email': $('#add_email').val(),
- 'direccion': $('#add_direccion').val(),
- 'cp': $('#add_cp').val(),
- 'municipio': $('#add_municipio').val(),
- 'provincia': $('#add_provincia').val(),
- 'paisId': $('#add_pais_id').val(),
- 'telefono': $('#add_telefono').val(),
- 'proveedor': tarifa_final.proveedor,
- 'proveedor_id': tarifa_final.proveedor_id,
- 'precio': tarifa_final.precio,
- 'margen': tarifa_final.margen,
- 'entregaPieCalle': $('#add_entregaPieCalle').is(":checked")?1:0,
- 'actionBtns_direcciones': actionBtns_direcciones,
- })
- .draw();
-
-
- // Se guarda la dirección
- if($('#add_saveDirection').is(":checked") &&
- $('#add_alias').val().length>0){
- $.post( '/clientes/clientedirecciones/add',
- {
- cliente_id: $('#clienteId').val(),
- 'att': $('#add_att').val(),
- 'email': $('#add_email').val(),
- 'direccion': $('#add_direccion').val(),
- 'cp': $('#add_cp').val(),
- 'municipio': $('#add_municipio').val(),
- 'provincia': $('#add_provincia').val(),
- 'paisId': $('#add_pais_id').val(),
- 'telefono': $('#add_telefono').val(),
- 'alias': $('#add_alias').val(),
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
- })
- .done(function( data ) {
-
- })
- }
- checkInsertar()
- //updateTotales(false, false, true)
- updatePresupuesto({
- update_lineas: false,
- update_servicios: true,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: true
- })
- $('#addressForm').modal("hide");
-
- }
- else{
- popErrorAlert('= lang('PresupuestosDirecciones.validation.no_tarifa') ?>', 'error-tarifa')
- }
-
- });
-
- }
-})
-
-function validate_fields(){
-
- $( ".error-text-form" ).remove();
-
- var returnValue = false
-
- $("input.new-address").each( function() {
- if($('#' + this.id).val().length == 0 && $('#' + this.id).css('display') != 'none'){
- $('#' + this.id).after(
- "
" +'= lang('PresupuestosDirecciones.validation.required'); ?>' + '
')
- }
- returnValue = true
- })
- return returnValue
-}
-
-
-$('#add_saveDirection').change(function() {
- if(this.checked) {
- $('.save-alias').css('display', 'inline')
- }
- else{
- $('.save-alias').css('display', 'none')
- }
- $('#add_saveDirection').val(this.checked);
-});
-
-$('#add_clientedAdd').select2({
- allowClear: false,
- minimumResultsForSearch: Infinity,
- dropdownParent: $('#addressForm'),
- ajax: {
- url: '= route_to("menuItemsOfClienteDirecciones") ?>',
- type: 'post',
- dataType: 'json',
-
- data: function (params) {
- return {
- cliente_id: $('#clienteId').val(),
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function (response) {
-
- yeniden(response.= csrf_token() ?>);
-
- return {
- results: response.menu
- };
- },
-
- cache: true
- }
-})
-
-$('#add_clientedAdd').on('select2:select', function (e) {
-
- $('.save-alias').css('display', 'none')
- $('#add_alias').val('')
- $('#add_saveDirection').attr("disabled", true)
-
- var data = e.params.data;
-
- $.ajax({
- type: "POST",
- url: '=route_to('dataTableOfClienteDirecciones') ?>',
- dataType: 'json',
- data: {
- tipo: 'direccion',
- id: data.id,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
-
- },
- success: function (data) {
- if(data.length>0){
- $('#add_att').val(data[0].att)
- $('#add_direccion').val(data[0].direccion)
- $('#add_cp').val(data[0].cp)
- $('#add_municipio').val(data[0].municipio)
- $('#add_provincia').val(data[0].provincia)
- $('#add_telefono').val(data[0].telefono)
- $('#add_email').val(data[0].email)
- $('#add_pais_id').val(data[0].pais_id).change();
- }
- yeniden(data.= csrf_token() ?>);
-
- return true;
- },
- error: function(e){
- return false;
- }
- })
- return false;
-});
-
-$('.new-address').on('change', function(e){
- if (e.originalEvent) {
- // user-triggered event
- $('#add_clientedAdd').val(null).trigger('change');
- $('#add_saveDirection').removeAttr("disabled");
- }
-
-})
-
-
-// clear modal items when close
-$('#addressForm').on('hidden.bs.modal', function () {
- $('#add_alias').val("")
- $('#add_att').val("")
- $('#add_email').val("")
- $('#add_direccion').val("")
- $("#add_pais_id").val(1).change()
- $("#add_clientedAdd").val("").change()
- $('#add_municipio').val("")
- $('#add_provincia').val("")
- $('#add_cp').val("")
- $('#add_telefono').val("")
- $('#add_saveDirection').prop('checked', false)
- $('#add_entregaPieCalle').prop('checked', false)
-})
-
-=$this->endSection() ?>
\ No newline at end of file
+
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_presupuestos.js b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_presupuestos.js
deleted file mode 100644
index 8e85a96a..00000000
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_presupuestos.js
+++ /dev/null
@@ -1,91 +0,0 @@
-async function updatePresupuesto(
- {
- update_lineas = false,
- update_servicios = false,
- update_envios = false,
- update_resumen = false,
- update_tiradas_alternativas = false
- }) {
-
- new Promise(
- async function(resolve, reject){
- if(update_lineas){
- await updateLineasPresupuesto()
- }
- else
- resolve()
- }
- ).then(function(){
- new Promise(
- async function(resolve, reject){
- if(update_servicios){
- await actualizar_servicios()
- }
- else
- resolve()
- }
- )
- }).then(function(){
- new Promise(
- function(resolve, reject){
- if(update_envios){
- updateTablaEnvios()
- }
- else
- resolve()
- }
- )
- }).then(function(){
- new Promise(
- function(resolve, reject){
- if(update_resumen){
- updateTotales()
- }
- else
- resolve()
- }
- )
- }).then(function(){
- new Promise(
- async function(resolve, reject){
- if(update_tiradas_alternativas){
- await actualizar_tiradas_alternativas()
- }
- else
- resolve()
- }
- )
- })
-}
-
-async function updateLineasPresupuesto(){
-
- $('#tableLineasPresupuesto tbody tr:visible ').each(async function(){
-
- if(this.id.endsWith('lp_bn')){
- await calcularPresupuesto_bn({}, true);
- }
- else if(this.id.endsWith('lp_bnhq')){
- await calcularPresupuesto_bnhq({}, true);
- }
- else if(this.id.endsWith('lp_color')){
- await calcularPresupuesto_color({}, true);
- }
- else if(this.id.endsWith('lp_colorhq')){
- await calcularPresupuesto_colorhq({}, true);
- }
- else if(this.id.endsWith('lp_rot_bn')){
- await calcularPresupuesto_rot_bn(false, true, {})
- }
- else if(this.id.endsWith('lp_rot_color')){
- await calcularPresupuesto_rot_color(false, true, {})
- }
- else if(this.id.endsWith('_cubierta')){
- await calcularPresupuesto_cubierta(false, {})
- }
- else if(this.id.endsWith('_guardas')){
- await calcularPresupuesto_guardas(false, {})
- }
- })
-
-}
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_previewItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_previewItems.php
index 10529606..b691a92b 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_previewItems.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_previewItems.php
@@ -2,137 +2,149 @@
+ data-bs-parent="#accordionPreview">
-
+ type="button"
+ class="nav-link"
+ role="tab"
+ data-bs-toggle="tab"
+ data-bs-target="#pv_bn"
+ aria-controls="pv_bn"
+ aria-selected="true">
= lang("Presupuestos.preview-conf-bn") ?>
-
+ type="button"
+ class="nav-link"
+ role="tab"
+ data-bs-toggle="tab"
+ data-bs-target="#pv_bnhq"
+ aria-controls="pv_bnhq"
+ aria-selected="true">
= lang("Presupuestos.preview-conf-bn-hq") ?>
-
+ type="button"
+ class="nav-link"
+ role="tab"
+ data-bs-toggle="tab"
+ data-bs-target="#pv_color"
+ aria-controls="pv_color"
+ aria-selected="true">
= lang("Presupuestos.preview-conf-color") ?>
-
+ type="button"
+ class="nav-link"
+ role="tab"
+ data-bs-toggle="tab"
+ data-bs-target="#pv_colorhq"
+ aria-controls="pv_colorhq"
+ aria-selected="true">
= lang("Presupuestos.preview-conf-color-hq") ?>
-
+ type="button"
+ class="nav-link"
+ role="tab"
+ data-bs-toggle="tab"
+ data-bs-target="#pv_rot_bn"
+ aria-controls="pv_rot_bn"
+ aria-selected="true">
= lang("Presupuestos.preview-conf-rot-bn") ?>
-
+ type="button"
+ class="nav-link"
+ role="tab"
+ data-bs-toggle="tab"
+ data-bs-target="#pv_rot_color"
+ aria-controls="pv_rot_color"
+ aria-selected="true">
= lang("Presupuestos.preview-conf-rot-color") ?>
-
+ type="button"
+ class="nav-link"
+ role="tab"
+ data-bs-toggle="tab"
+ data-bs-target="#pv_guardas"
+ aria-controls="pv_guardas"
+ aria-selected="false">
= lang("Presupuestos.previewConfiguracionGuardas") ?>
-
+ type="button"
+ class="nav-link"
+ role="tab"
+ data-bs-toggle="tab"
+ data-bs-target="#pv_cubierta"
+ aria-controls="pv_cubierta"
+ aria-selected="false">
= lang("Presupuestos.previewConfiguracionCubierta") ?>
-
+ type="button"
+ class="nav-link"
+ role="tab"
+ data-bs-toggle="tab"
+ data-bs-target="#pv_esquema_cubierta"
+ aria-controls="pv_esquema_cubierta"
+ aria-selected="false">
= lang("Presupuestos.previewEsquemaCubierta") ?>
-
+ type="button"
+ class="nav-link"
+ role="tab"
+ data-bs-toggle="tab"
+ data-bs-target="#pv_sobrecubierta"
+ aria-controls="pv_sobrecubierta"
+ aria-selected="false">
= lang("Presupuestos.previewConfiguracionSobrecubierta") ?>
+ -
+
+ = lang("Presupuestos.previewConfiguracionFaja") ?>
+
+
@@ -171,7 +183,7 @@
-
+
= lang("Presupuestos.previewDetalles") ?>
@@ -206,6 +218,9 @@
= lang("Presupuestos.previewMaquinaPlana") ?>
@@ -249,7 +264,7 @@
-
+
= lang("Presupuestos.previewDetalles") ?>
@@ -284,6 +299,9 @@
= lang("Presupuestos.previewMaquinaPlana") ?>
@@ -327,7 +345,7 @@
-
+
= lang("Presupuestos.previewDetalles") ?>
@@ -362,6 +380,9 @@
= lang("Presupuestos.previewMaquinaPlana") ?>
@@ -375,7 +396,7 @@
-
+
-
+
= lang("Presupuestos.previewDetalles") ?>
@@ -440,6 +461,10 @@
= lang("Presupuestos.previewMaquinaPlana") ?>
@@ -483,7 +508,7 @@
-
+
= lang("Presupuestos.previewDetalles") ?>
@@ -516,6 +541,9 @@
= lang("Presupuestos.previewMaquinaRotativa") ?>
@@ -552,7 +580,7 @@
+ class="btn btn-label-primary">
= lang("Presupuestos.previewAreaImpresion") ?>
@@ -560,7 +588,7 @@
-
+
= lang("Presupuestos.previewDetalles") ?>
@@ -593,6 +621,9 @@
= lang("Presupuestos.previewMaquinaRotativa") ?>
@@ -636,7 +667,7 @@
-
+
= lang("Presupuestos.previewDetalles") ?>
@@ -671,6 +702,9 @@
= lang("Presupuestos.previewMaquinaPlana") ?>
@@ -714,7 +748,7 @@
-
+
= lang("Presupuestos.previewDetalles") ?>
@@ -752,6 +786,9 @@
= lang("Presupuestos.previewCubierta") ?>
@@ -795,7 +832,7 @@
-
+
= lang("Presupuestos.previewDetalles") ?>
@@ -817,6 +854,9 @@
= lang("Presupuestos.previewConfiguracionEsquemaCubierta") ?>
@@ -860,7 +900,7 @@
-
+
= lang("Presupuestos.previewDetalles") ?>
@@ -906,6 +946,87 @@
+
+
+
+
+
+
+
+
+
+
+
= lang("Presupuestos.previewDetalles") ?>
+
+ - = lang("Presupuestos.previewGramaje") ?>
+ - TBD
+
+ - = lang("Presupuestos.previewMano") ?>
+ - TBD
+
+ - = lang("Presupuestos.previewSolapas") ?>
+ - TBD
+
+ - = lang("Presupuestos.previewMaquina") ?>
+ - TBDxTBD
+
+ - = lang("Presupuestos.previewAreaImpresion") ?>
+ - TBDxTBD
+
+ - = lang("Presupuestos.previewLibro") ?>
+ - TBDxTBD
+
+ - = lang("Presupuestos.previewForma") ?>
+ - TBD
+
+ - = lang("Presupuestos.previewFormas") ?>
+ - TBD
+
+
+
+
+
+
+
+
= lang("Presupuestos.previewFaja") ?>
+
+
+
+
+
+
+
+
@@ -914,73 +1035,3 @@
-
-
-
-= $this->section("additionalInlineJs") ?>
-
-
-$('#tab-pv-bn').on( "click", function() {
-
- previewInteriorPlana('bn', , );
-
-} );
-
-$('#tab-pv-bnhq').on( "click", function() {
-
- previewInteriorPlana('bnhq', , );
-
-} );
-
-$('#tab-pv-color').on( "click", function() {
-
- previewInteriorPlana('color', , );
-
-} );
-
-$('#tab-pv-colorhq').on( "click", function() {
-
-
- previewInteriorPlana('colorhq', , );
-
-} );
-
-$('#tab-pv-rot-bn').on( "click", function() {
-
- previewRotativa('rot_bn', , );
-
-} );
-
-$('#tab-pv-rot-color').on( "click", function() {
-
- previewRotativa('rot_color', , );
-
-} );
-
-$('#tab-pv-guardas').on( "click", function() {
-
- previewInteriorPlana('guardas', , );
-
-} );
-
-$('#tab-pv-cubierta').on( "click", function() {
-
- previewInteriorPlana('cubierta', , );
-
-} );
-
-$('#tab-pv-esquema-cubierta').on( "click", function() {
-
- previewEsquemaCubierta('ec', , );
-
-} );
-
-$('#tab-pv-sobrecubierta').on( "click", function() {
-
- previewInteriorPlana('sobrecubierta', , );
-
-} );
-
-= $this->endSection() ?>
-
-
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems.php
index 2dcd7588..4eb6c8a2 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems.php
@@ -18,55 +18,57 @@
- Coste papel
- - = old('0', $presupuestoEntity->total_coste_papel) ?>€
+
- Margen papel
- - = old('0', $presupuestoEntity->total_margenPercent_papel) ?>%
- - = old('0', $presupuestoEntity->total_margen_papel) ?>€
+
+
- Coste impresión
- - = old('0', $presupuestoEntity->total_coste_impresion) ?>€
+
- Margen impresión
- - = old('0', $presupuestoEntity->total_margenPercent_impresion) ?>%
- - = old('0', $presupuestoEntity->total_margen_impresion) ?>€
+
+
- Coste servicios
- - = old('0', $presupuestoEntity->total_coste_servicios) ?>€
+
- Margen servicios
- - = old('0', $presupuestoEntity->total_margenPercent_servicios) ?>%
- - = old('0', $presupuestoEntity->total_margen_servicios) ?>€
+
+
- Coste de envío
- - = old('0', $presupuestoEntity->total_coste_envios) ?>€
+
+ - Precio de envío
+
- Margen envío
- - = old('0', $presupuestoEntity->total_margen_envios) ?>€
+
- Total Costes
- - = old('0', $presupuestoEntity->total_costes) ?>€
+
- Total Margen
- - = old('0', round(($presupuestoEntity->total_costes+$presupuestoEntity->total_margenes)>0? 100*$presupuestoEntity->total_margenes/($presupuestoEntity->total_costes+$presupuestoEntity->total_margenes) : 0,0)) ?>%
- - = old('0', $presupuestoEntity->total_margenes) ?>€
+
+
- Total
- - = old('0', $presupuestoEntity->total_antes_descuento) ?>€
- - Descuento
-
- - = old('0', $presupuestoEntity->total_descuento) ?>€
+
+ - Descuento (%)
+
+
- Total presupuesto
- - = old('0', $presupuestoEntity->total_presupuesto) ?>€
+
- Precio unidad
- - = old('0', $presupuestoEntity->total_precio_unidad) ?>€
+
- Factor
- - = old('0', is_numeric($presupuestoEntity->total_factor) ? $presupuestoEntity->total_factor : 0) ?>
+
- Factor Ponderado
- - = old('0', is_numeric($presupuestoEntity->total_factor_ponderado) ? $presupuestoEntity->total_factor_ponderado : 0) ?>
+
@@ -80,10 +82,10 @@
estado_id == 2): ?>
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestos.js b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestos.js
deleted file mode 100644
index 4e3c8088..00000000
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestos.js
+++ /dev/null
@@ -1,299 +0,0 @@
-function updateTotales(updateLP=true, updateServicios=true, updateEnvio=true){
-
- var totalPapel = 0
- var margenPapel = 0
-
- var totalImpresion = 0
- var totalImpresionforMargen = 0
- var margenImpresion = 0
-
- var totalServicios = 0
- var margenServicios = 0
-
- var totalEnvios = 0
- var margenEnvios = 0
-
- var sumForFactor = 0.0
- var sumForFactorPonderado = 0.0
-
-
- var margenPorHoras = 0.0;
-
- if(updateLP){
-
- if(typeof $("#tableLineasPresupuesto").DataTable() !== 'undefined'){
- $("#tableLineasPresupuesto").DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var rowData = this.data();
-
- if(rowData.check_papel_total){
- totalPapel += parseFloat($('#' + rowData.row_id + '_totalPapelPedido').val())
- margenPapel += parseFloat($('#' + rowData.row_id + '_margenPapelPedido').val())
-
- sumForFactor += parseFloat($('#' + rowData.row_id + '_totalPapelPedido').val())
- sumForFactor -= parseFloat($('#' + rowData.row_id + '_margenPapelPedido').val())
-
- }
- if(rowData.check_impresion_total){
- //totalImpresion += parseFloat($('#' + rowData.row_id + '_precioImpresion').val())
- margenPorHoras += parseFloat($('#' + rowData.row_id + '_precioImpresion').val())
- totalImpresion += parseFloat($('#' + rowData.row_id + '_totalClicks').val())
-
- sumForFactor += parseFloat($('#' + rowData.row_id + '_totalClicks').val())
-
- if(rowData.maquinaTipo=='inkjet'){
- totalImpresion += parseFloat(rowData.totalTinta)
- totalImpresion += parseFloat(rowData.totalCorte)
-
- sumForFactor += (parseFloat(rowData.totalTinta) + parseFloat(rowData.totalCorte))
- }
- //margenImpresion += parseFloat($('#' + rowData.row_id + '_margenImpresion').val())
- //margenPorHoras += parseFloat($('#' + rowData.row_id + '_margenImpresion').val())
- margenImpresion += parseFloat($('#' + rowData.row_id + '_margenClicks').val())
-
-
- sumForFactor -= parseFloat($('#' + rowData.row_id + '_margenClicks').val())
-
- if(!isNaN(parseFloat($('#' + rowData.row_id + 'lp_bn_totalTinta').val()))){
- totalImpresion += parseFloat($('#' + rowData.row_id + 'lp_bn_totalTinta').val())
- sumForFactor += parseFloat($('#' + rowData.row_id + 'lp_bn_totalTinta').val())
- }
- }
- })
- }
-
- totalImpresion -= margenImpresion
- totalPapel -= margenPapel
-
- margenImpresion += margenPorHoras
-
- var porcentajeMargenPapel = isNaN(margenPapel/(totalPapel)*100.0)?0:margenPapel/(totalPapel)*100.0
- $('#porcentajeMargenPapel').text(porcentajeMargenPapel.toFixed(0) + '%')
- $('#totalCostePapel').text((addSeparatorsNF(totalPapel.toFixed(2), ".", ",", ".")) + "€")
- $('#margenPapel').text((addSeparatorsNF(margenPapel.toFixed(2), ".", ",", ".")) + "€")
- $('#totalCostePapel').attr('val',totalPapel.toFixed(2))
- $('#margenPapel').attr('val',margenPapel.toFixed(2))
-
- var porcentajeMargenImpresion = isNaN(margenImpresion/(totalImpresion)*100.0)?0:margenImpresion/(totalImpresion)*100.0
- $('#porcentajeMargenImpresion').text(porcentajeMargenImpresion.toFixed(0) + '%')
- $('#totalCosteImpresion').text((addSeparatorsNF(totalImpresion.toFixed(2), ".", ",", ".")) + "€")
- $('#margenImpresion').text((addSeparatorsNF(margenImpresion.toFixed(2), ".", ",", ".")) + "€")
- $('#totalCosteImpresion').attr('val',totalImpresion.toFixed(2))
- $('#margenImpresion').attr('val',margenImpresion.toFixed(2))
-
- }
- else{
- totalPapel = parseFloat($('#totalCostePapel').attr('val'))
- margenPapel = parseFloat($('#margenPapel').attr('val'))
- totalImpresion = parseFloat($('#totalCosteImpresion').attr('val'))
- margenImpresion = parseFloat($('#margenImpresion').attr('val'))
- }
-
- sumForFactorPonderado = sumForFactor;
-
- if(updateServicios){
-
- if ( typeof $("#tableOfServiciosEncuadernacion").DataTable() !== 'undefined' && $("#tableOfServiciosEncuadernacion").DataTable().rows().count() > 0){
- $('#tableOfServiciosEncuadernacion tbody tr').each(function(){
- var currentRow = $(this).closest("tr");
- var subId = $('#tableOfServiciosEncuadernacion').DataTable().cell(currentRow,0).node().innerHTML;
- var total = parseFloat($('#precio_total_encuadernado_' + subId)[0].value)
- totalServicios += total
- var base = parseFloat($('#precio_total_encuadernado_' + subId)[0].value)/(1+parseFloat($('#enc_margen_' + subId)[0].innerHTML)/100.0);
- var margen = total - base;
- margenServicios += margen;
- })
- }
-
- if ( typeof $("#tableOfServiciosAcabado").DataTable() !== 'undefined' && $("#tableOfServiciosAcabado").DataTable().rows().count() > 0){
- $('#tableOfServiciosAcabado tbody tr').each(function(){
- var currentRow = $(this).closest("tr");
- var subId = $('#tableOfServiciosAcabado').DataTable().cell(currentRow,0).node().innerHTML;
- var total = parseFloat($('#precio_total_acabado_' + subId)[0].value)
- totalServicios += total
- var base = parseFloat($('#precio_total_acabado_' + subId)[0].value)/(1+parseFloat($('#acabado_margen_' + subId)[0].innerHTML)/100.0);
- var margen = total - base;
- margenServicios += margen;
- })
- }
-
- if ( typeof $("#tableOfServiciosPreimpresion").DataTable() !== 'undefined' && $("#tableOfServiciosPreimpresion").DataTable().rows().count() > 0){
-
- $('#tableOfServiciosPreimpresion tbody tr').each(function(){
- var currentRow = $(this).closest("tr");
- var subId = $('#tableOfServiciosPreimpresion').DataTable().cell(currentRow,0).node().innerHTML;
- var total = parseFloat($('#precio_preimpresion_' + subId)[0].value)
- totalServicios += total
- var base = parseFloat($('#precio_preimpresion_' + subId)[0].value)/(1+parseFloat($('#preimpresion_margen_' + subId)[0].innerHTML)/100.0);
- var margen = total - base;
- margenServicios += margen;
- })
- }
-
- if ( typeof $("#tableOfServiciosExtra").DataTable() !== 'undefined' && $("#tableOfServiciosExtra").DataTable().rows().count() > 0){
-
- $('#tableOfServiciosExtra tbody tr').each(function(){
- var currentRow = $(this).closest("tr");
- var subId = $('#tableOfServiciosExtra').DataTable().cell(currentRow,0).node().innerHTML;
- var total = parseFloat($('#precio_servicioextra_' + subId)[0].value)
- totalServicios += total
- var base = parseFloat($('#precio_servicioextra_' + subId)[0].value)/(1+parseFloat($('#servicioextra_margen_' + subId)[0].innerHTML)/100.0);
- var margen = total - base;
- margenServicios += margen;
- })
- }
-
- if ( typeof $("#tableOfServiciosManipulado").DataTable() !== 'undefined' && $("#tableOfServiciosManipulado").DataTable().rows().count() > 0){
-
- $('#tableOfServiciosManipulado tbody tr').each(function(){
- var currentRow = $(this).closest("tr");
- var subId = $('#tableOfServiciosManipulado').DataTable().cell(currentRow,0).node().innerHTML;
- var total = parseFloat($('#precio_total_manipulado_' + subId)[0].value)
- totalServicios += total
- var base = parseFloat($('#precio_total_manipulado_' + subId)[0].value)/(1+parseFloat($('#manipulado_margen_' + subId)[0].innerHTML)/100.0);
- var margen = total - base;
- margenServicios += margen;
- })
- }
-
- totalServicios -= margenServicios;
-
- sumForFactorPonderado += totalServicios;
-
- var porcentajeMargenServicios = margenServicios/(totalServicios)*100
- $('#porcentajeMargenServicios').text(isNaN(porcentajeMargenServicios.toFixed(0))?0:porcentajeMargenServicios.toFixed(0) + '%')
- $('#totalServicios').text((addSeparatorsNF(totalServicios.toFixed(2), ".", ",", ".")) + "€")
- $('#margenServicios').text((addSeparatorsNF(margenServicios.toFixed(2), ".", ",", ".")) + "€")
- $('#totalServicios').attr('val',totalServicios.toFixed(2) + '€')
- $('#margenServicios').attr('val',margenServicios.toFixed(2) + '€')
-
- }
- else{
-
- totalServicios = parseFloat($('#totalServicios').attr('val'))
- margenServicios = parseFloat($('#margenServicios').attr('val'))
-
- sumForFactorPonderado += totalServicios;
- }
-
- if(updateEnvio){
-
- if ( typeof $('#tableOfDireccionesEnvio').DataTable() !== 'undefined' && $('#tableOfDireccionesEnvio').DataTable().rows().count() > 0){
- $('#tableOfDireccionesEnvio').DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var data = this.data()
- totalEnvios += parseFloat(data.precio)
- margenEnvios += parseFloat((data.precio)*data.margen/100)
- } );
- }
-
- totalEnvios -= margenEnvios
- $('#totalEnvios').text((addSeparatorsNF(totalEnvios.toFixed(2), ".", ",", ".")) + "€")
- $('#margenEnvios').text((addSeparatorsNF(margenEnvios.toFixed(2), ".", ",", ".")) + "€")
- $('#totalEnvios').attr('val',totalEnvios.toFixed(2) + '€')
- $('#margenEnvios').attr('val',margenEnvios.toFixed(2) + '€')
- }
- else{
- totalEnvios = parseFloat($('#totalEnvios').attr('val'))
- margenEnvios = parseFloat($('#margenEnvios').attr('val'))
- }
-
- var totalCostes = parseFloat(totalPapel.toFixed(2)) + parseFloat(totalImpresion.toFixed(2)) + parseFloat(totalServicios.toFixed(2)) + parseFloat(totalEnvios.toFixed(2))
- var totalMargenes = parseFloat(margenPapel.toFixed(2)) + parseFloat(margenImpresion.toFixed(2)) + parseFloat(margenServicios.toFixed(2)) + parseFloat(margenEnvios.toFixed(2))
- var porcentajeMargen = totalCostes+totalMargenes>0? (100*totalMargenes/(totalCostes+totalMargenes)).toFixed(0) : 0
- $('#totalCostes').text((addSeparatorsNF(totalCostes.toFixed(2), ".", ",", ".")) + "€")
- $('#totalMargenes').text((addSeparatorsNF(totalMargenes.toFixed(2), ".", ",", ".")) + "€")
- $('#totalCostes').attr('val',(totalCostes).toFixed(2) + '€')
- $('#totalMargenes').attr('val',(totalMargenes).toFixed(2) + '€')
- $('#porcentajeMargen').text(porcentajeMargen + '%')
- $('#porcentajeMargen').attr('val',porcentajeMargen)
-
- if($('#total_descuentoPercent').val()<0){
- $('#total_descuentoPercent').val(0)
- }
- var totalAntesDescuento = totalCostes + totalMargenes
- var totalDescuento = totalAntesDescuento * parseInt($('#total_descuentoPercent').val())/100
- var totalPresupuesto = totalAntesDescuento - totalDescuento
- var precioUnidad = totalPresupuesto/parseInt($('#tirada').val())
-
- $('#totalAntesDescuento').text((addSeparatorsNF(totalAntesDescuento.toFixed(2), ".", ",", ".")) + "€")
- $('#descuentoTotal').text((addSeparatorsNF(totalDescuento.toFixed(2), ".", ",", ".")) + "€")
- $('#totalDespuesDecuento').text((addSeparatorsNF(totalPresupuesto.toFixed(2), ".", ",", ".")) + "€")
- $('#precioUnidadPresupuesto').text((addSeparatorsNF(precioUnidad.toFixed(4), ".", ",", ".")) + "€")
- $('#totalAntesDescuento').attr('val',(totalAntesDescuento).toFixed(2))
- $('#descuentoTotal').attr('val',(totalDescuento).toFixed(2))
- $('#totalDespuesDecuento').attr('val',(totalPresupuesto).toFixed(2))
- $('#precioUnidadPresupuesto').attr('val',(precioUnidad).toFixed(4))
-
-
- $('#factor').text(addSeparatorsNF(((totalPresupuesto-totalEnvios-margenEnvios)/sumForFactor).toFixed(2), ".", ",", "."))
- $('#factor').attr('val', ((totalPresupuesto-totalEnvios-margenEnvios)/sumForFactor).toFixed(2))
- $('#factor_ponderado').text(addSeparatorsNF(((totalPresupuesto-totalEnvios-margenEnvios)/sumForFactorPonderado).toFixed(2), ".", ",", "."))
- $('#factor_ponderado').attr('val',((totalPresupuesto-totalEnvios-margenEnvios)/sumForFactorPonderado).toFixed(2))
-}
-
-
-function addSeparatorsNF(nStr, inD, outD, sep)
-{
- nStr += '';
- var dpos = nStr.indexOf(inD);
- var nStrEnd = '';
- if (dpos != -1) {
- nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
- nStr = nStr.substring(0, dpos);
- }
- var rgx = /(\d+)(\d{3})/;
- while (rgx.test(nStr)) {
- nStr = nStr.replace(rgx, '$1' + sep + '$2');
- }
- return nStr + nStrEnd;
-}
-
-function getValuesResumenForm(){
- var formResumen = "";
- formResumen += '&total_coste_papel=' + $('#totalCostePapel').attr('val');
- formResumen += '&total_margen_papel=' + $('#margenPapel').attr('val');
- formResumen += '&total_margenPercent_papel=' + $('#porcentajeMargenPapel').text().replace('%', '');
-
- formResumen += '&total_coste_impresion=' + $('#totalCosteImpresion').attr('val');
- formResumen += '&total_margen_impresion=' + $('#margenImpresion').attr('val');
- formResumen += '&total_margenPercent_impresion=' + $('#porcentajeMargenImpresion').text().replace('%', '');
-
- formResumen += '&total_coste_servicios=' + $('#totalServicios').attr('val');
- formResumen += '&total_margen_servicios=' + $('#margenServicios').attr('val');
- formResumen += '&total_margenPercent_servicios=' + $('#porcentajeMargenServicios').text().replace('%', '');
-
- formResumen += '&total_coste_envios=' + $('#totalEnvios').attr('val');
- formResumen += '&total_margen_envios=' + $('#margenEnvios').attr('val');
-
- formResumen += '&total_costes=' + $('#totalCostes').attr('val');
- formResumen += '&total_margenes=' + $('#totalMargenes').attr('val');
-
- formResumen += '&total_antes_descuento=' + $('#totalAntesDescuento').attr('val');
- formResumen += '&total_descuento=' + $('#descuentoTotal').attr('val');
- formResumen += '&total_descuentoPercent=' + $('#total_descuentoPercent').val();
- formResumen += '&total_presupuesto=' + $('#totalDespuesDecuento').attr('val');
- formResumen += '&total_precio_unidad=' + $('#precioUnidadPresupuesto').attr('val');
-
- // replace , for . in the values
- formResumen += '&total_factor=' + $('#factor').text().replace(/,/g, '.');
- formResumen += '&total_factor_ponderado=' + $('#factor_ponderado').text().replace(/,/g, '.');
-
- if($('#confirmar_presupuesto').prop('checked')){
- formResumen += '&confirmar=1';
- formResumen += '&total_aceptado=' + $('#totalDespuesDecuento').attr('val');
- }
-
- return formResumen
-}
-
-
-
-
-$(".update-totales").on("change", function(){
- updatePresupuesto({
- update_lineas: false,
- update_servicios: false,
- update_envios: false,
- update_resumen: true,
- update_tiradas_alternativas: false
- })
-})
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_tiradasAlternativasItems.js b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_tiradasAlternativasItems.js
deleted file mode 100644
index 912bbd85..00000000
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_tiradasAlternativasItems.js
+++ /dev/null
@@ -1,397 +0,0 @@
-// Selección de la última columna de la tabla de tiradas
-const lastColNr_tiradasAlt = $('#tableTiradas').find("tr:first th").length - 1;
-
-
-// Función para generar los botones de acción de la tabla de tiradas
-const actionBtns_tiradasAlt = function (data) {
- return `
-
-
- `;
-};
-
-
-// Inicializaciones de la tabla de tiradas
-var tableTiradas;
-
-
-// Espera a que todas las variables necesarias estén definidas
-(async () => {
-
- while (!window.hasOwnProperty("datatable_lang_url") && !window.hasOwnProperty("datatable_TA_url"))
- await new Promise(resolve => setTimeout(resolve, 200));
- initTableTiradas();
- fill_tiradas_alternativas();
-
- /*$('.tiradas-alternativas').each(function() {
- if ($(this).is('input')) {
- $(this).bind('change', update_tiradas_alternativas);
- } else if ($(this).is('button')) {
- $(this).bind('click', update_tiradas_alternativas);
- } else if ($(this).is('table')) {
- $(this).bind('draw.dt', update_tiradas_alternativas);
- }
- else{
- // para los botones de borrar
- $(this).bind('click', update_tiradas_alternativas);
- }
- });*/
-
-})();
-
-
-async function actualizar_tiradas_alternativas(){
- if(tableTiradas !== undefined && tableTiradas.rows().count() > 0){
- // se obtiene la primera columna de la tabla de tiradas
- const data = tableTiradas.rows().data().toArray();
- // se borra la tabla de tiradas
- tableTiradas.clear().draw();
- const tiradas = data.map(row => row.tirada);
- // por cada tirada, se añade una fila a la tabla de tiradas
- await tiradas.forEach(async function(tirada){
- await add_tirada_alternativa(tirada);
- });
- }
-
-}
-
-
-// Evento de añadir una tirada alternativa
-$('#add_tirada_alt').on('click', function () {
-
- const tirada_alt = parseInt($('#tirada_alt').val());
- add_tirada_alternativa(tirada_alt);
- showBreadCrumbSaveButton(true);
-});
-
-
-// Funcion para añadir una tirada alternativa
-async function add_tirada_alternativa(tirada_alt) {
-
- // se comprueba que la tirada no existe ya en la tabla
- const exists = tableTiradas.rows().data().toArray().some(row => row.tirada == tirada_alt);
- const isPOD = parseInt($('#tirada').val())<= parseInt($('#POD').val());
-
- const typeIsOk = tirada_alt <= parseInt($('#POD').val()) && isPOD || tirada_alt > parseInt($('#POD').val()) && !isPOD;
-
- if (!exists && typeIsOk) {
-
- const dimension = getDimensionLibro();
-
- let datos = {
- tirada: tirada_alt,
- merma: get_merma_tirada_alternativa(tirada_alt),
- tipo_impresion_id: $('#tipo_impresion_id').val(),
- json_tiradas: generate_json_tiradas(),
- ancho: dimension.ancho,
- alto: dimension.alto,
- cliente_id: $('#clienteId').find(":selected").val(),
- solapas_cubierta: $('#solapas').is(':checked')?1:0,
- solapas_cubierta_ancho: $('#solapas').is(':checked')?parseInt($('#solapas_ancho').val()):0,
- solapas_sobrecubierta: $('#solapas_sobrecubierta').is(':checked')?1:0,
- solapas_sobrecubierta_ancho: $('#solapas_sobrecubierta').is(':checked')?parseInt($('#solapas_ancho_sobrecubierta').val()):0,
- lomo: getLomoExterior(),
- };
-
- datos = Object.assign(datos, window.token_ajax);
-
- // Se realiza la petición AJAX
- await $.ajax({
- type: "POST",
- url: window.get_tirada_url,
- data: datos,
- success: async function (data) {
-
- var coste_total = 0.0;
- var margen_total = 0.0;
-
- var costes_servicios = 0.0;
- var margen_servicios = 0.0;
-
- var coste_envio = 0.0;
- var margen_envio = 0.0;
-
- if(data.lineas.length >0){
- // Se cogen los valores de la linea con los datos correspondientes
- data.lineas.forEach(function(value) {
- coste_total += value.total_coste;
- margen_total += value.total_margen;
- });
-
- //console.log(datos.tirada);
-
- // Se obtiene el precio de los servicios
- const valueAcabados = await get_servAcabados_tiradasAlternativas(parseInt(datos.tirada));
- costes_servicios += parseFloat(valueAcabados.coste);
- margen_servicios += parseFloat(valueAcabados.margen);
-
- //console.log('coste acabados ('+ datos.tirada +'): ' + valueAcabados.coste);
-
- const valueEncuadernacion = await get_servEncuadernacion_tiradasAlternativas(
- parseInt(datos.tirada), parseInt( $('#paginas').val()), parseInt(dimension.ancho), parseInt(dimension.alto));
- costes_servicios += parseFloat(valueEncuadernacion.coste);
- margen_servicios += parseFloat(valueEncuadernacion.margen);
-
- //console.log('coste encuadernacion ('+ datos.tirada +'): ' + valueEncuadernacion.coste);
-
- const valueManipulado = await get_servManipulado_tiradasAlternativas(parseInt(datos.tirada));
- costes_servicios += parseFloat(valueManipulado.coste);
- margen_servicios += parseFloat(valueManipulado.margen);
-
- //console.log('coste manipulado ('+ datos.tirada +'): ' + valueManipulado.coste);
-
- const valuePreimpresion = await get_servPreimpresion_tiradasAlternativas(parseInt(datos.tirada));
- costes_servicios += parseFloat(valuePreimpresion.coste);
- margen_servicios += parseFloat(valuePreimpresion.margen);
-
- const valueServiciosExtra = await get_servExtra_tiradasAlternativas(parseInt(datos.tirada));
- costes_servicios += parseFloat(valueServiciosExtra.coste);
- margen_servicios += parseFloat(valueServiciosExtra.margen);
-
- //console.log('coste preimpresion ('+ datos.tirada +'): ' + valuePreimpresion.coste);
-
- const valueTransporte = await get_coste_envio_tiradasAlternativas(parseInt(datos.tirada));
- coste_envio = valueTransporte.coste;
- margen_envio = valueTransporte.margen;
-
-
- // Se añade la fila a la tabla de tiradas
- tableTiradas.row.add({
- tirada: datos.tirada,
- coste_impresion: coste_total.toFixed(2),
- coste_envio: coste_envio.toFixed(2),
- margen: ((margen_total + margen_servicios + margen_envio)/(coste_total+coste_envio)*100.0).toFixed(2),
- total_pedido: (coste_total + costes_servicios + coste_envio).toFixed(2),
- precio_unidad: ((coste_total + costes_servicios + coste_envio) / datos.tirada).toFixed(4),
-
- }).draw(false);
- }
-
- yeniden(data[window.csrf_token]);
-
- },
- error: function(e){}
- });
- }
- else {
- var htmlString = '';
- if(typeIsOk){
- htmlString = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.tirada_alt_duplicada +
- `
-
-
`;
- }
-
- else{
- htmlString = `
-
-
-
-
-
-
` +
- window.Presupuestos.errores.tirada_alt_tipo +
- `
-
-
`;
- }
- $('#alert-tiradas_alt').hide().empty().html(htmlString).fadeIn("slow", function(){
- setTimeout(function(){
- $('#alert-tiradas_alt').fadeOut("slow");
- }, 5000);
- });
- }
-
-
-}
-
-// Función para obtener el lomo exterior
-function getLomoExterior(){
- let lomoTotal = 0
- try{
- $('#tableLineasPresupuesto').DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var rowData = this.data();
- if(rowData.row_id != 'lp_cubierta' && rowData.tipo != 'lp_sobrecubierta')
- lomoTotal += parseFloat(rowData.lomo)
- })
- }
- catch(error){
- lomoTotal = 0
- }
- return lomoTotal
-}
-
-
-// Inicialización de la tabla de tiradas
-function initTableTiradas() {
- tableTiradas = $('#tableTiradas').DataTable({
- "language": {
- "url": window.datatable_lang_url
- },
- "paging": false,
- "info": false,
- "searching": false,
- "ordering": true,
- "autoWidth": false,
- "responsive": true,
- "columnDefs": [
- {
- orderable: false,
- searchable: false,
- targets: [lastColNr_tiradasAlt]
- },
- ],
- "columns": [
- { data: "tirada" },
- { data: 'coste_impresion' },
- { data: 'coste_envio' },
- { data: 'margen' ,
- render: function ( data, type, row ) {
- return data + '%';
- }
- },
- { data: 'total_pedido' },
- { data: 'precio_unidad' },
- {
- data: actionBtns_tiradasAlt,
- className: 'row-edit dt-center'
- }
- ],
- order: [[0, 'asc']]
- });
-}
-
-// Evento de borrado de una fila de la tabla de tiradas
-$(document).on('click', '.btn-delete-tirada', function (e) {
-
- const row = $(this).closest('tr');
- tableTiradas.row(row)
- .remove()
- .draw();
- showBreadCrumbSaveButton(true);
-})
-
-
-// Función para usar la tirada alternativa como tirada principal
-$(document).on('click', '.comfirm-tirada-alt', function (e) {
-
- const row = $(this).closest('tr');
- const data = tableTiradas.row(row).data();
-
- updateTablaEnvios($('#tirada').val(), data.tirada).then(function(){
- $('#tirada').val(data.tirada);
- $('#tirada').trigger('change', [false]);
- })
-})
-
-
-// Función para generar el JSON de las lineas de presupuesto para calcular las tiradas
-function generate_json_tiradas() {
-
- const data = $('#tableLineasPresupuesto').DataTable().data().toArray();
-
- //return data; // For debugging purposes
- json = filterData(data,
- ['paginas',
- 'numPagColor',
- 'paginas_impresion',
- 'papel', // papel generico
- 'papel_impresion_id',
- 'gramaje',
- 'maquina_id',
- 'aFavorFibra',
- 'row_id',
- 'check_papel_total',
- 'check_impresion_total',
- 'cobAmarillo', // tipologia de papel
- 'cobCyan',
- 'cobMagenta',
- 'cobNegro',
- 'cobCG',
- 'gotaColor',
- 'gotaNegro']);
-
- json.forEach(element => {
- element['check_papel_total'] = $('#' + element['row_id'] + '_checkPapel').is(':checked') ? 1 : 0;
- element['check_impresion_total'] = $('#' + element['row_id'] + '_checkClicks').is(':checked') ? 1 : 0;
- });
- return JSON.stringify(json);
-}
-
-
-// Función para filtrar las columnas de la tabla de tiradas
-function filterData(data, keys) {
- return data.map(obj => {
- const newObj = {};
- keys.forEach(key => {
- if (obj.hasOwnProperty(key)) {
- newObj[key] = obj[key];
- }
- });
- return newObj;
- });
-}
-
-
-// Función para obtener la merma de la tirada alternativa
-function get_merma_tirada_alternativa(tirada){
-
- var merma = 0
-
- if(tirada>parseInt($('#POD').val())){
-
- merma = tirada*0.1<=30 ? tirada*0.1 : 30
- }
- else{
- merma_lineas = []
- $('#tableLineasPresupuesto').DataTable().rows().every( function ( rowIdx, tableLoop, rowLoop ) {
- var rowData = this.data();
- if(rowData.row_id != 'lp_guardas' && rowData.row_id != 'lp_cubierta' && rowData.row_id != 'lp_sobrecubierta'){
- const formas_linea = $('#isCosido').val()==0?parseInt(rowData.formas):parseInt(rowData.formas)/2
- if(formas_linea > tirada)
- merma_lineas.push(formas_linea-tirada)
- else
- merma_lineas.push(tirada%formas_linea)
- }
- })
-
- if(merma_lineas.length>0)
- merma = Math.max(...merma_lineas)
- else
- merma = 0
- }
- return merma;
-}
-
-
-function fill_tiradas_alternativas(){
- tableTiradas.clear().draw();
- const text = $('#tirada_alternativa_json_data').val()
- if(text.length>0){
-
- const data = JSON.parse(text);
- if(data.length>0){
- $.each(data, function(key, value) {
- tableTiradas.row.add({
- tirada: value.tirada,
- coste_impresion: value.coste_impresion,
- coste_envio: value.coste_envio,
- margen: value.margen,
- total_pedido: value.total_pedido,
- precio_unidad: value.precio_unidad,
- }).draw(false);
- });
- }
- }
-}
-
-
-
-
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_tiradasAlternativasItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_tiradasAlternativasItems.php
index ecb7af82..8e1baa2e 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_tiradasAlternativasItems.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_tiradasAlternativasItems.php
@@ -30,7 +30,7 @@
= lang('Presupuestos.tiradaMargen') ?> |
= lang('Presupuestos.totalPedido') ?> |
= lang('Presupuestos.precioUnidad') ?> |
-
|
+
|
@@ -48,21 +48,6 @@
-
-
-
-= $this->section("additionalInlineJs") ?>
- window.datatable_lang_url = "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json";
-
- window.datatable_TA_url = "= route_to('dataTableOfPresupuestoTiradasAlternativas') ?>";
- window.get_tirada_url = "= route_to('getTiradaData') ?>";
-
- window.error_lang_tirada_alt_duplicada = "= lang('Presupuestos.errores.tirada_alt_duplicada') ?>";
- window.error_lang_tirada_alt_tipo = "= lang('Presupuestos.errores.tirada_alt_tipo') ?>";
-
-= $this->endSection() ?>
-
-
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/comparador.js b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/comparador.js
deleted file mode 100644
index fef4b8da..00000000
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/comparador.js
+++ /dev/null
@@ -1,747 +0,0 @@
-/*******************************
- * Eventos asociados a elementos HTML
- *******************************/
-$('#compPaginasNegro').on("change", function () {
- var negro = parseInt(document.getElementById('compPaginasNegro').value);
- const paginas = parseInt(document.getElementById('paginas').value);
- if (paginas < negro) {
- document.getElementById('compPaginasNegro').value = paginas;
- negro = paginas;
- }
- var color = parseInt(document.getElementById('compPaginasColor').value);
- if ($('#tipoImpresion').select2('data')[0].id == 'color') {
-
- var newValue = paginas - negro;
- if (newValue != color) {
- document.getElementById('compPaginasColor').value = newValue >= 0 ? newValue : 0;
- $('#compPaginasColor').change();
- }
- }
-});
-
-$('#compPaginasColor').on("change", function () {
- const paginas = parseInt(document.getElementById('paginas').value);
- var color = parseInt(document.getElementById('compPaginasColor').value);
- var negro = parseInt(document.getElementById('compPaginasNegro').value);
-
- if (paginas < color) {
- document.getElementById('compPaginasColor').value = paginas;
- color = paginas
- }
- var newValue = paginas - color;
- if (newValue != negro) {
- document.getElementById('compPaginasNegro').value = newValue >= 0 ? newValue : 0;
- $('#compPaginasNegro').change();
- }
-});
-
-$('#compPaginasNegrohq').on("change", function () {
-
- var negro = parseInt(document.getElementById('compPaginasNegrohq').value);
- const paginas = parseInt(document.getElementById('paginas').value);
- if (paginas < negro) {
- document.getElementById('compPaginasNegrogq').value = paginas;
- negro = paginas;
- }
- var color = parseInt(document.getElementById('compPaginasColorhq').value);
- if ($('#tipoImpresion').select2('data')[0].id == 'colorhq') {
-
- var newValue = paginas - negro;
- if (newValue != color) {
- document.getElementById('compPaginasColorhq').value = newValue >= 0 ? newValue : 0;
- $('#compPaginasColorhq').change();
- }
- }
-
-});
-
-$('#compPaginasColorhq').on("change", function () {
- const paginas = parseInt(document.getElementById('paginas').value);
- var color = parseInt(document.getElementById('compPaginasColorhq').value);
- var negro = parseInt(document.getElementById('compPaginasNegrohq').value);
-
- if (paginas < color) {
- document.getElementById('compPaginasColorhq').value = paginas;
- color = paginas
- }
- var newValue = paginas - color;
- if (newValue != negro) {
- document.getElementById('compPaginasNegrohq').value = newValue >= 0 ? newValue : 0;
- $('#compPaginasNegrohq').change();
- }
-});
-
-
-
-$('#prototipo').on("change", function () {
- $('#ferro').prop('checked', true)
-});
-
-
-
-$('#compPosPaginasColor').on("keyup", function () {
- computarPaginasColor(this.value);
-});
-
-
-// Este evento recoloca los headers de las tablas cuando se pulsa el
-// boton del acordeon
-$('.accordion-button').on('click', function (e) {
-
- if (e.target.id.includes("plana")) {
- $("#tableCompIntPlana").DataTable().columns.adjust();
- }
- else if (e.target.id.includes("rotativa")) {
- $("#tableCompIntRotativa").DataTable().columns.adjust();
- }
- else if (e.target.id.includes("cubierta")) {
- $("#tableCompCubierta").DataTable().columns.adjust();
- }
- else if (e.target.id.includes("guardas")) {
- $("#tableCompGuardas").DataTable().columns.adjust();
- }
- else if (e.target.id.includes("LineasPresupuesto")) {
- $("#tableLineasPresupuesto").DataTable().columns.adjust();
- }
-
-
-});
-
-
-
-
-/*******************************
- * Metodos
- *******************************/
-function getRowFromLineaInt(tipo, linea) {
-
- $precio_impresion = isNaN(parseFloat(linea.fields.precio_impresion_horas + linea.fields.margen_impresion_horas + linea.fields.precio_click_pedido)) ? "" :
- parseFloat(linea.fields.precio_impresion_horas + linea.fields.margen_impresion_horas + linea.fields.precio_click_pedido).toFixed(2);
-
-
- data = {
- 'tipo': tipo,
- 'paginas': linea.fields.paginas,
- 'papel': linea.fields.papel_generico,
- 'gramaje': linea.fields.gramaje,
- 'marca': linea.fields.papel_impresion,
- 'maquina': linea.fields.maquina,
- 'numeroPliegos': isNaN(parseFloat(linea.fields.pliegos_libro)) ? "" : parseFloat(linea.fields.pliegos_libro).toFixed(2),
- 'pliegosPedido': isNaN(parseFloat(linea.fields.pliegos_pedido)) ? "" : parseFloat(linea.fields.pliegos_pedido).toFixed(2),
- 'precioPliego': isNaN(parseFloat(linea.fields.precios_pliegos)) ? "" : parseFloat(linea.fields.precios_pliegos).toFixed(6),
- 'libro': isNaN(parseFloat(linea.fields.precio_libro)) ? "" : parseFloat(linea.fields.precio_libro).toFixed(2),
- 'totalPapelPedido': isNaN(parseFloat(linea.fields.precio_pedido)) ? "" : parseFloat(linea.fields.precio_pedido).toFixed(2),
- 'lomo': isNaN(parseFloat(linea.fields.mano)) ? "" : parseFloat(linea.fields.mano).toFixed(2),
- 'peso': isNaN(parseFloat(linea.fields.peso)) ? "" : parseFloat(linea.fields.peso).toFixed(2),
- 'horasMaquina': isNaN(parseFloat(linea.fields.horas_maquina)) ? "" : parseFloat(linea.fields.horas_maquina).toFixed(2),
- 'precioImpresion': $precio_impresion,
- 'total': isNaN(parseFloat(linea.fields.total_impresion).toFixed(2)) ? "" : parseFloat(linea.fields.total_impresion).toFixed(2),
- 'maquinaId': linea.fields.maquina_id,
- 'maquinaVelocidad': linea.fields.maquina_velocidad,
- 'tiempoMaquina': linea.fields.tiempo_maquina,
- 'papelGenericoId': linea.fields.papel_generico_id,
- 'papelImpresionId': linea.fields.papel_impresion_id,
- 'tarifa_impresion_id': linea.fields.tarifa_impresion_id,
- }
- if(data['tipo']=='guardas')
- data['paginas_impresion'] = linea.fields.paginas_impresion;
- return data;
-}
-
-function getRowFromLineaRot(linea) {
-
- $precio_impresion = isNaN(parseFloat(linea.fields.precio_impresion_horas + linea.fields.precio_click_pedido)) ? "" :
- parseFloat(linea.fields.precio_impresion_horas + linea.fields.precio_click_pedido).toFixed(2);
-
- return {
- 'tipo': 'rotativa',
- 'paginas': linea.fields.paginas,
- 'papel': linea.fields.papel_generico,
- 'gramaje': linea.fields.gramaje,
- 'marca': linea.fields.papel_impresion,
- 'aFavorFibra': linea.fields.a_favor_fibra == 1 ? 'si' : 'no',
- 'maquina': linea.fields.maquina,
- 'numeroPliegos': isNaN(parseFloat(linea.fields.pliegos_libro)) ? "" : parseFloat(linea.fields.pliegos_libro).toFixed(2),
- 'pliegosPedido': isNaN(parseFloat(linea.fields.pliegos_pedido)) ? "" : parseFloat(linea.fields.pliegos_pedido).toFixed(2),
- 'precioPliego': isNaN(parseFloat(linea.fields.precios_pliegos)) ? "" : parseFloat(linea.fields.precios_pliegos).toFixed(6),
- 'libro': isNaN(parseFloat(linea.fields.precio_libro)) ? "" : parseFloat(linea.fields.precio_libro).toFixed(2),
- 'totalPapelPedido': isNaN(parseFloat(linea.fields.precio_pedido)) ? "" : parseFloat(linea.fields.precio_pedido).toFixed(2),
- 'lomo': isNaN(parseFloat(linea.fields.mano)) ? "" : parseFloat(linea.fields.mano).toFixed(2),
- 'peso': isNaN(parseFloat(linea.fields.peso)) ? "" : parseFloat(linea.fields.peso).toFixed(2),
- 'horasMaquina': isNaN(parseFloat(linea.fields.horas_maquina)) ? "" : parseFloat(linea.fields.horas_maquina).toFixed(2),
- 'precioImpresion': $precio_impresion,
- 'precioPagNegro': isNaN(parseFloat(linea.fields.precio_pagina_negro)) ? "" : parseFloat(linea.fields.precio_pagina_negro).toFixed(6),
- 'precioPagColor': isNaN(parseFloat(linea.fields.precio_pagina_color)) ? "" : parseFloat(linea.fields.precio_pagina_color).toFixed(6),
- 'totalTinta': isNaN(parseFloat(linea.fields.precio_tinta)) ? "" : parseFloat(linea.fields.precio_tinta).toFixed(2),
- 'totalCorte': isNaN(parseFloat(linea.fields.total_corte)) ? "" : parseFloat(linea.fields.total_corte).toFixed(2),
- 'total': isNaN(parseFloat(linea.fields.total_impresion)) ? "" : (parseFloat(linea.fields.total_impresion)).toFixed(2),
- 'maquinaId': linea.fields.maquina_id,
- 'maquinaVelocidad': linea.fields.maquina_velocidad,
- 'tiempoMaquina': linea.fields.tiempo_maquina,
- 'papelGenericoId': linea.fields.papel_generico_id,
- 'papelImpresionId': linea.fields.papel_impresion_id,
- 'paginasColor': linea.fields.paginas_color,
- 'tarifa_impresion_id': linea.fields.tarifa_impresion_id,
- }
-}
-
-
-
-
-
-function computarPaginasColor(string) {
-
- var numbers = [];
- for (const [, beginStr, endStr] of string.matchAll(/(\d+)(?:-(\d+))?/g)) {
- const [begin, end] = [beginStr, endStr].map(Number);
- numbers.push(begin);
- if (endStr !== undefined) {
- for (let num = begin + 1; num <= end; num++) {
- numbers.push(num);
- }
- }
- }
- var numbers2 = [];
- numbers.forEach(function (value, i) {
- // Si es impar y no está el siguiente par hay que añadirlo
- if (value % 2 != 0 && numbers[i + 1] != value + 1) {
- numbers2.push(value + 1);
- }
- });
- numbers = numbers.concat(numbers2);
- numbers.sort(function (a, b) {
- return a - b;
- });
- calPagesTextarea = document.getElementById('compCalPaginasColor');
- calPagesTextarea.value = numbers;
- autosize.update(calPagesTextarea);
-}
-
-
-function checkRetractiladoComparador(element) {
-
- switch (element.id) {
- case 'retractilado':
- if ($('#' + element.id).prop('checked')) {
- $('#retractilado5').prop('checked', false);
- }
- break;
- case 'retractilado5':
- if ($('#' + element.id).prop('checked')) {
- $('#retractilado').prop('checked', false);
- }
- break;
- default:
- break;
- }
-
-}
-
-function updatePapelesComparador() {
-
- var e = document.getElementById("tipoImpresion");
- elements_negro = document.getElementsByClassName('comp-negro-selected');
- elements_negrohq = document.getElementsByClassName('comp-negrohq-selected');
- elements_color = document.getElementsByClassName('comp-color-selected');
- elements_colorhq = document.getElementsByClassName('comp-colorhq-selected');
- switch (e.value) {
- case "negro":
- Array.from(elements_color).forEach(element => {
- element.style.display = "none";
- });
- Array.from(elements_negro).forEach(element => {
- element.style.display = "flex";
- });
- Array.from(elements_negrohq).forEach(element => {
- element.style.display = "none";
- });
- Array.from(elements_colorhq).forEach(element => {
- element.style.display = "none";
- });
- break;
-
- case "negrohq":
- Array.from(elements_color).forEach(element => {
- element.style.display = "none";
-
- });
- Array.from(elements_negro).forEach(element => {
- element.style.display = "none";
- });
- Array.from(elements_negrohq).forEach(element => {
- element.style.display = "flex";
- });
- Array.from(elements_colorhq).forEach(element => {
- element.style.display = "none";
- });
- break;
-
- case "color":
- Array.from(elements_negro).forEach(element => {
- element.style.display = "flex";
- });
- Array.from(elements_negrohq).forEach(element => {
- element.style.display = "none";
- });
- Array.from(elements_color).forEach(element => {
- element.style.display = "flex";
- });
- Array.from(elements_colorhq).forEach(element => {
- element.style.display = "none";
- });
- break;
-
- case "colorhq":
- Array.from(elements_negro).forEach(element => {
- element.style.display = "none";
- });
- Array.from(elements_negrohq).forEach(element => {
- element.style.display = "flex";
- });
- Array.from(elements_color).forEach(element => {
- element.style.display = "none";
- });
- Array.from(elements_colorhq).forEach(element => {
- element.style.display = "flex";
- });
- break;
-
- default:
- break;
- }
-}
-
-
-
-function clearIntLineas(is_color) {
- //$("#tableCompIntPlana").DataTable().rows( '.selected' ).deselect();
- var tabla = $('#tableCompIntPlana').DataTable();
- tabla
- .rows(function (idx, data, node) {
- return data['tipo'].includes(is_color ? 'color' : 'bn');
- })
- .remove()
- .draw();
- //$('#tableCompIntPlana').DataTable().clear().draw();
- $('#insertarPlanaBtn').css('display', 'none');
-}
-
-
-function clearCubierta() {
-
- var tabla = $('#tableCompCubierta').DataTable();
- tabla
- .rows(function (idx, data, node) {
- return data['tipo'] === 'cubierta';
- })
- .remove()
- .draw();
- if(tabla.rows().count()==0)
- $('#insertarCubiertaBtn').css('display', 'none');
-}
-
-function clearSobrecubierta() {
-
-
- var tabla = $('#tableCompCubierta').DataTable();
- tabla
- .rows(function (idx, data, node) {
- return data['tipo'] === 'sobrecubierta';
- })
- .remove()
- .draw();
- if(tabla.rows().count()==0)
- $('#insertarCubiertaBtn').css('display', 'none');
-}
-
-function clearGuardas() {
-
- $('#tableCompGuardas').DataTable().clear().draw();
- $('#insertarGuardasBtn').css('display', 'none');
-}
-
-function clearIntRot() {
-
- $('#errorComRot').html('');
- $('#tableCompIntRotativa').DataTable().clear().draw();
- $('#insertarRotativaBtn').css('display', 'none');
-}
-
-
-function selectIntLineas() {
- var negro_selected = false;
- var color_selected = false;
- $("#tableCompIntPlana").DataTable().rows('.selected').deselect();
- $("#tableCompIntPlana").DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
- if (!negro_selected && $('#tableCompIntPlana').DataTable().cell(rowIdx, 0).data().includes('bn')) {
- $("#tableCompIntPlana").DataTable().row(rowIdx).nodes().to$().toggleClass('selected');
- negro_selected = true;
- }
- if (!color_selected && $('#tableCompIntPlana').DataTable().cell(rowIdx, 0).data().includes('color')) {
- $("#tableCompIntPlana").DataTable().row(rowIdx).nodes().to$().toggleClass('selected');
- color_selected = true;
- }
- });
-
- var table = $("#tableCompIntPlana").DataTable();
- var rows = table.rows('.selected').indexes();
- var data = table.rows(rows).data();
-
- var value_total = 0.00;
-
- for (let i = 0; i < data.length; i++) {
-
- value_total += parseFloat(data[i]['total'])
- }
-
- $('#total_comp_plana').html(value_total.toFixed(2));
-}
-
-function selectIntRotLineas() {
-
- $("#tableCompIntRotativa").DataTable().rows('.selected').deselect();
-
- let value_total = 0.00;
-
- if ($("#tableCompIntRotativa").DataTable().rows().count() > 0) {
-
- $("#tableCompIntRotativa").DataTable().row(0).nodes().to$().toggleClass('selected');
- value_total = parseFloat($("#tableCompIntRotativa").DataTable().rows(0).data()[0]['total'])
- };
-
-
- $('#total_comp_rot').html(value_total.toFixed(2));
-}
-
-function selectCubiertaLineas() {
-
- $("#tableCompCubierta").DataTable().rows('.selected').deselect();
-
- cubierta_selected = false;
- sobrecubierta_selected = false;
-
- if ($("#tableCompCubierta").DataTable().rows().count() > 0) {
-
- $("#tableCompCubierta").DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
- if (!cubierta_selected && $('#tableCompCubierta').DataTable().cell(rowIdx, 0).data() === 'cubierta') {
- $("#tableCompCubierta").DataTable().row(rowIdx).nodes().to$().toggleClass('selected');
- cubierta_selected = true;
- }
- if (!sobrecubierta_selected && $('#tableCompCubierta').DataTable().cell(rowIdx, 0).data() === 'sobrecubierta') {
- $("#tableCompCubierta").DataTable().row(rowIdx).nodes().to$().toggleClass('selected');
- sobrecubierta_selected = true;
- }
- });
- }
-
- var table = $("#tableCompCubierta").DataTable();
- var rows = table.rows('.selected').indexes();
- var data = table.rows(rows).data();
-
- var value_total = 0.00;
-
- for (let i = 0; i < data.length; i++) {
-
- value_total += parseFloat(data[i]['total'])
- }
-
-
- $('#total_comp_cubierta').html(value_total.toFixed(2));
-}
-
-function selectGuardasLineas() {
-
- $("#tableCompGuardas").DataTable().rows('.selected').deselect();
-
- let value_total = 0.00;
-
- if ($("#tableCompGuardas").DataTable().rows().count() > 0) {
-
- $("#tableCompGuardas").DataTable().row(0).nodes().to$().toggleClass('selected');
- value_total = parseFloat($("#tableCompGuardas").DataTable().rows(0).data()[0]['total'])
- };
-
-
- $('#total_comp_guardas').html(value_total.toFixed(2));
-}
-
-function getIDsComparador(is_color, is_hq) {
-
- if (!is_color) {
- if (is_hq) {
- var papel = '#compPapelNegrohq';
- var gramaje = '#compGramajeNegrohq';
- var paginas = '#compPaginasNegrohq';
- }
- else {
- var papel = '#compPapelNegro';
- var gramaje = '#compGramajeNegro';
- var paginas = '#compPaginasNegro';
- }
- }
- else {
- if (is_hq) {
- var papel = '#compPapelColorhq';
- var gramaje = '#compGramajeColorhq';
- var paginas = '#compPaginasColorhq';
- }
- else {
- var papel = '#compPapelColor';
- var gramaje = '#compGramajeColor';
- var paginas = '#compPaginasColor';
- }
- }
- return {
- papel: papel,
- gramaje: gramaje,
- paginas: paginas,
- }
-}
-
-function getDimensionLibro() {
- var ancho = 0;
- var alto = 0;
-
-
- if ($('#papelFormatoId').select2('data').length > 0) {
- if ($('#papelFormatoId').select2('data')[0].id.length > 0) {
- ancho = parseFloat($('#papelFormatoId').select2('data')[0].text.trim().split(" x ")[0]);
- alto = parseFloat($('#papelFormatoId').select2('data')[0].text.trim().split(" x ")[1]);
- }
- else if (document.getElementById('papelFormatoPersonalizado').checked) {
- ancho = parseFloat(document.getElementById('papelFormatoAncho').value);
- alto = parseFloat(document.getElementById('papelFormatoAlto').value);
- }
- }
-
- else if (document.getElementById('papelFormatoPersonalizado').checked) {
- ancho = parseFloat(document.getElementById('papelFormatoAncho').value);
- alto = parseFloat(document.getElementById('papelFormatoAlto').value);
- }
- return {
- ancho: ancho,
- alto: alto
- }
-}
-
-function checkInputsForRotativa() {
-
- // Si es color, el gramaje y el papel tiene que ser el mismo
- try {
-
- if ($('#tipoImpresion').select2('data')[0].id == 'color') {
- if ($('#compPapelNegro').select2('data')[0].id == $('#compPapelColor').select2('data')[0].id &&
- $('#compGramajeNegro').select2('data')[0].text.trim() == $('#compGramajeColor').select2('data')[0].text.trim()) {
-
- return true;
- }
- }
- else if ($('#tipoImpresion').select2('data')[0].id == 'negro') {
- if ($('#compPapelNegro').select2('data')[0].id.length > 0 &&
- $('#compGramajeNegro').select2('data')[0].text.length > 0) {
- return true;
- }
- }
-
-
- }
- catch (error) {
-
- return false;
- }
-
- return false;
-}
-
-
-function fillIntPlana(data, is_color, is_hq) {
- let sorted = data.lineas.sort(
- (p1, p2) => ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) < (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ?
- -1 : ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) > (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ? 1 : 0);
- sorted.forEach(function (linea) {
- if (typeof linea.error == "undefined")
- $('#tableCompIntPlana').DataTable().row
- .add(getRowFromLineaInt(is_color ? (is_hq ? 'colorhq' : 'color') : (is_hq ? 'bnhq' : 'bn'), linea))
- .draw()
- })
-}
-
-function fillIntRot(data) {
- let sorted = data.lineas.sort(
- (p1, p2) => ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) < (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ?
- -1 : ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) > (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ? 1 : 0);
- sorted.forEach(function (linea) {
- if (typeof linea.error == "undefined") {
- $('#tableCompIntRotativa').DataTable().row
- .add(getRowFromLineaRot(linea))
- .draw()
- }
- })
-}
-
-function fillCubierta(data) {
-
- let sorted = data.lineas.sort(
- (p1, p2) => ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) < (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ?
- -1 : ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) > (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ? 1 : 0);
- sorted.forEach(function (linea) {
- if (typeof linea.error == "undefined")
- $('#tableCompCubierta').DataTable().row
- .add(getRowFromLineaInt('cubierta', linea))
- .draw()
- })
-}
-
-function fillSobrecubierta(data) {
-
- let sorted = data.lineas.sort(
- (p1, p2) => ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) < (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ?
- -1 : ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) > (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ? 1 : 0);
- sorted.forEach(function (linea) {
- if (typeof linea.error == "undefined")
- $('#tableCompCubierta').DataTable().row
- .add(getRowFromLineaInt('sobrecubierta', linea))
- .draw()
- })
-}
-
-function fillGuardas(data) {
-
- let sorted = data.lineas.sort(
- (p1, p2) => ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) < (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ?
- -1 : ((p1.fields.precio_pedido + p1.fields.precio_click_pedido) > (p2.fields.precio_pedido + p2.fields.precio_click_pedido)) ? 1 : 0);
- sorted.forEach(function (linea) {
- if (typeof linea.error == "undefined")
- $('#tableCompGuardas').DataTable().row
- .add(getRowFromLineaInt('guardas', linea))
- .draw()
- })
-}
-
-function clearCompTable() {
-
- $('#insertarPlanaBtn').addClass('d-none')
- $('#insertarRotativaBtn').addClass('d-none')
- $('#total_comp_plana').html('0.00')
- $('#total_comp_rot').html('0.00')
-}
-
-function generateCompJSON() {
-
- data = {}
-
- if ($('#tipoImpresion').select2('data')[0].id == 'negro' || $('#tipoImpresion').select2('data')[0].id == 'color') {
- try {
- bn_obj = {
- "bn": {
- 'paginas': $('#compPaginasNegro').val(),
- 'papel_id': $('#compPapelNegro').select2('data')[0].id,
- 'gramaje': $('#compGramajeNegro').select2('data')[0].text.trim(),
- }
- }
- }
- catch (e) {
- bn_obj = {}
- }
- $.extend(data, bn_obj);
- }
-
- if ($('#tipoImpresion').select2('data')[0].id == 'negrohq' || $('#tipoImpresion').select2('data')[0].id == 'colorhq') {
- try {
- bnhq_obj = {
- "bnhq": {
- 'paginas': $('#compPaginasNegrohq').val(),
- 'papel_id': $('#compPapelNegrohq').select2('data')[0].id,
- 'gramaje': $('#compGramajeNegrohq').select2('data')[0].text.trim(),
- }
- }
- }
- catch (e) {
- bnhq_obj = {}
- }
- $.extend(data, bnhq_obj);
- }
-
- if ($('#tipoImpresion').select2('data')[0].id == 'color') {
- try {
- color_obj = {
- "color": {
- 'paginas': $('#compPaginasColor').val(),
- 'papel_id': $('#compPapelColor').select2('data')[0].id,
- 'gramaje': $('#compGramajeColor').select2('data')[0].text.trim(),
- },
- }
- }
- catch (e) {
- color_obj = {}
- }
- $.extend(data, color_obj);
-
- }
-
-
- if ($('#tipoImpresion').select2('data')[0].id == 'colorhq') {
- try {
- colorhq_obj = {
- "colorhq": {
- 'paginas': $('#compPaginasColorhq').val(),
- 'papel_id': $('#compPapelColorhq').select2('data')[0].id,
- 'gramaje': $('#compGramajeColorhq').select2('data')[0].text.trim(),
- },
- }
- }
- catch (e) {
- colorhq_obj = {}
- }
- $.extend(data, colorhq_obj);
- }
-
-
- try {
- cubierta_obj = {
- "cubierta": {
- 'paginas': $('#compCarasCubierta option:selected').val(),
- 'papel_id': $('#compPapelCubierta').select2('data')[0].id,
- 'gramaje': $('#compGramajeCubierta').select2('data')[0].text.trim(),
- },
- }
- }
- catch (e) {
- cubierta_obj = {}
- }
- $.extend(data, cubierta_obj);
-
- try {
- sobrecubierta_obj = {
- "sobrecubierta": {
- 'imprimir': $('#compSobrecubierta option:selected').val(),
- 'papel_id': $('#compPapelSobrecubierta').select2('data')[0].id,
- 'gramaje': $('#compGramajeSobrecubierta').select2('data')[0].text.trim(),
- },
- }
- }
- catch (e) {
- sobrecubierta_obj = {}
- }
- $.extend(data, sobrecubierta_obj);
-
- if($('#compCarasGuardas').length>0){
- try {
- guardas_obj = {
- "guardas": {
- 'paginas_impresion': $('#compCarasGuardas option:selected').val(),
- 'papel_id': $('#compPapelGuardas').select2('data')[0].id,
- },
- }
- }
- catch (e) {
- guardas_obj = {}
- }
- $.extend(data, guardas_obj);
-
- }
-
- data_str = JSON.stringify(data)
- $('#comparador_json_data').val(data_str)
-}
-
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/previews.js b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/previews.js
deleted file mode 100644
index b083774c..00000000
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/previews.js
+++ /dev/null
@@ -1,1107 +0,0 @@
-// Global parameters
-var pvObj;
-
-function previewInteriorPlana(lpTagName, isCosido, isTapaDura) {
-
- // Local parameters
- let guardaV = 0;
- let guardaH = 0;
- let styleText = {size: 12, family: 'Public Sans'};
-
- // Get the preview Object parameters
- getObjetoLP(lpTagName, isCosido, isTapaDura);
-
- // Configuracion de las guardas
- // Guarda vertical
- if (pvObj.nFormasV > 1) {
- guardaV = 3;
- }
- // Guarda horizontal
- if (pvObj.nFormasH > 1) {
- guardaH = 3;
- }
- // Constantes relativas a las dimnesiones de la forma
- let LVo = pvObj.altoForma / 2;
- let LHo = pvObj.anchoForma / 2;
-
- // Clear the canvas element
- $('#pv_' + pvObj.idIndex + '_shape').empty();
- // Get the element for placing the graphical elements
- var divPlana = document.getElementById('pv_' + pvObj.idIndex + '_shape');
- var _pvPlana = new Two({fitted: true}).appendTo(divPlana);
- // Calculate the center of the canvas element
- var origenPlana = new Two.Vector(_pvPlana.width / 2, _pvPlana.height / 2);
-
- var areaMaquinaPlana = _pvPlana.makeRectangle(
- origenPlana.x,
- origenPlana.y,
- pvObj.anchoMaquina,
- pvObj.altoMaquina);
- areaMaquinaPlana.stroke = 'black';
- areaMaquinaPlana.fill = '#E69F6E';
- areaMaquinaPlana.linewidth = 1;
-
- var areaImpresionPlana = _pvPlana.makeRectangle(
- origenPlana.x,
- origenPlana.y,
- pvObj.anchoImpresion,
- pvObj.altoImpresion);
- areaImpresionPlana.stroke = 'red';
- areaImpresionPlana.fill = '#FCEAF1';
- areaImpresionPlana.linewidth = 1;
-
- var formas = [];
-
- for (let iV = 0; iV < pvObj.nFormasV; iV++) {
-
- for (let iH = 0; iH < pvObj.nFormasH; iH++) {
-
- let _offsetX = ((((pvObj.nFormasH - 1) - 2 * iH) * LHo) + (((pvObj.nFormasH - 1) / 2 - iH) * guardaH));
- let _offsetY = ((((pvObj.nFormasV - 1) - 2 * iV) * LVo) + (((pvObj.nFormasV - 1) / 2 - iV) * guardaV));
-
- formas[iV + iH] = _pvPlana.makeRectangle(
- origenPlana.x + _offsetX,
- origenPlana.y + _offsetY,
- pvObj.anchoForma,
- pvObj.altoForma);
- formas[iV + iH].stroke = 'grey';
- formas[iV + iH].fill = '#F4F8F2';
- formas[iV + iH].linewidth = 1;
-
- // Texts
- _pvPlana.makeText(pvObj.altoForma, (origenPlana.x + _offsetX) + (pvObj.anchoForma / 2 - 25), (origenPlana.y + _offsetY), styleText);
- _pvPlana.makeText(pvObj.anchoForma, (origenPlana.x + _offsetX), (origenPlana.y + _offsetY) + (pvObj.altoForma / 2 - 15), styleText);
-
- }
- }
- _pvPlana.update();
-}
-
-function previewRotativa(lpTagName, isCosido, isTapaDura) {
-
- // Local parameters
- let styleText = {size: 12, family: 'Public Sans'};
- let margenTop = 3;
- let guardaV = 0;
- let guardaH = 0;
-
- // Get the preview Object parameters
- getObjetoLP(lpTagName, isCosido, isTapaDura);
-
- // Calculos
- // Configuracion de las guardas
- // Guarda vertical
- if (pvObj.nFormasV > 1) {
- guardaV = 3;
- }
- // Guarda horizontal
- if (pvObj.nFormasH > 1) {
- guardaH = 3;
- }
- // Constantes relativas al libro
- let LVo = pvObj.altoForma / 2;
- let LHo = pvObj.anchoForma / 2;
-
- // offset Y
- let nTopForms = (pvObj.altoImpresion / 2.0 - margenTop) / (LVo + guardaV);
- let yOffset = LVo * getDecimalPart(nTopForms);
-
- //console.log(yOffset);
-
- // Clear the canvas element
- $('#pv_' + pvObj.idIndex + '_shape').empty();
- // Get the element for placing the graphical elements
- var divRotativa = document.getElementById('pv_' + pvObj.idIndex + '_shape');
- var _pvRotativa = new Two({fitted: true}).appendTo(divRotativa);
- // Calculate the center of the canvas element
- var origenRotativa = new Two.Vector(_pvRotativa.width / 2, _pvRotativa.height / 2);
-
- var areaMaquinaRotativa = _pvRotativa.makeRectangle(
- origenRotativa.x,
- origenRotativa.y,
- pvObj.anchoMaquina,
- pvObj.altoMaquina);
- areaMaquinaRotativa.stroke = 'black';
- areaMaquinaRotativa.fill = '#E69F6E';
- areaMaquinaRotativa.linewidth = 1;
-
- var areaImpresionRotativa = _pvRotativa.makeRectangle(
- origenRotativa.x,
- origenRotativa.y,
- pvObj.anchoImpresion,
- pvObj.altoImpresion);
- areaImpresionRotativa.stroke = 'red';
- areaImpresionRotativa.fill = '#FCEAF1';
- areaImpresionRotativa.linewidth = 1;
-
- var areaClickRotativa = _pvRotativa.makeRectangle(
- origenRotativa.x,
- origenRotativa.y - (pvObj.altoImpresion / 2 - pvObj.altoClick / 2),
- pvObj.anchoImpresion - 10,
- pvObj.altoClick);
- areaClickRotativa.stroke = 'blue';
- //areaClickRotativa.fill = '#FCEAF1';
- areaClickRotativa.linewidth = 2;
-
- var formas = [];
-
- for (let iV = 0; iV < pvObj.nFormasV; iV++) {
-
- for (let iH = 0; iH < pvObj.nFormasH; iH++) {
-
- let _offsetX = ((((pvObj.nFormasH - 1) - 2 * iH) * LHo) + (((pvObj.nFormasH - 1) / 2 - iH) * guardaH));
- let _offsetY = ((((pvObj.nFormasV - 1) - 2 * iV) * LVo) + (((pvObj.nFormasV - 1) / 2 - iV) * guardaV));
-
- formas[iV + iH] = _pvRotativa.makeRectangle(
- origenRotativa.x + _offsetX,
- (origenRotativa.y - yOffset) + _offsetY,
- pvObj.anchoForma,
- pvObj.altoForma);
- formas[iV + iH].stroke = 'grey';
- formas[iV + iH].fill = '#F4F8F2';
- formas[iV + iH].linewidth = 1;
-
- // Texts
- _pvRotativa.makeText(pvObj.altoForma, (origenRotativa.x + _offsetX) + (pvObj.anchoForma / 2 - 25), ((origenRotativa.y - yOffset) + _offsetY), styleText);
- _pvRotativa.makeText(pvObj.anchoForma, (origenRotativa.x + _offsetX), ((origenRotativa.y - yOffset) + _offsetY) + (pvObj.altoForma / 2 - 15), styleText);
-
- }
-
- }
-
- _pvRotativa.update();
-
-}
-
-function getDecimalPart(floatNumber) {
- let int_part = Math.trunc(floatNumber);
- let float_part = Number((floatNumber - int_part).toFixed(2));
- return float_part;
-}
-
-
-function previewEsquemaCubierta(_lpTagName, _isCosido, _isTapaDura) {
-
- let tipoImpresion = parseInt($('#tipo_impresion_id').val());
-
- // Fresado TD y Cosido TD
- if (tipoImpresion === 1 || tipoImpresion === 3) {
- portadaTapaDura(_lpTagName, _isCosido, _isTapaDura);
- }
- // Fresado TB y Cosido TB
- else if (tipoImpresion === 2 || tipoImpresion === 4) {
- portadaTapaBlanda(_lpTagName, _isCosido, _isTapaDura);
- }
- // Espiral TD y TB, Wire-o TD y TB
- else if (tipoImpresion === 5 || tipoImpresion === 6 ||
- tipoImpresion === 7 || tipoImpresion === 8) {
- portadaEspiral(_lpTagName, _isCosido, _isTapaDura);
- }
- else if (tipoImpresion === 21) {
- portadaGrapado(_lpTagName, _isCosido, _isTapaDura);
- }
- else {
- // ?
- }
-
-}
-
-function portadaTapaDura(lpTagName, isCosido, isTapaDura) {
-
- // Variables locales
- let altoLibro, anchoLibro, lomoLibro, anchoCubierta, altoSangrado, anchoSangrado;
- let styleCotas = {size: 12, family: 'Public Sans'};
- let sangradoTexto = "Sangrado 20 mm";
- let sangradoValor = parseFloat(20); // mm
- let anchoPliegue = parseFloat(7); // mm
- let altoPliegue = parseFloat(7); // mm
- let anchoCarton = parseFloat(7); // mm
-
- // Get the preview Object parameters
- getObjetoLP(lpTagName, isCosido, isTapaDura);
-
- // Definicion de los parametros del Esquema de Cubierta (EC) -
- anchoSangrado = 600; // px
- altoSangrado = (anchoSangrado * 0.647 > 350) ? anchoSangrado * 0.647 : 350; // px
- altoLibro = altoSangrado * 0.88;
- anchoLibro = anchoSangrado * 0.39;
- lomoLibro = anchoSangrado * 0.133;
- anchoCubierta = (2 * anchoLibro) + lomoLibro;
-
- // Clear the canvas element
- $('#pv_ec_shape').empty();
- // Get the element for placing the graphical elements
- var divEC = document.getElementById('pv_ec_shape');
- var previewEC = new Two({fitted: true}).appendTo(divEC);
- // Calculate the center of the canvas element
- var origenEC = new Two.Vector(previewEC.width / 2, previewEC.height / 2);
-
- var sangrado = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- anchoSangrado,
- altoSangrado
- );
- sangrado.stroke = 'black';
- sangrado.dashes = [5, 5];
- sangrado.fill = '#FCEAF1';
- sangrado.linewidth = 1;
-
- var libro = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- ((2 * anchoLibro) + lomoLibro),
- altoLibro);
- libro.stroke = 'black';
- libro.linewidth = 1;
-
- var lomo = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- lomoLibro,
- altoLibro);
- lomo.stroke = 'black';
- lomo.fill = '#F4F8F2';
- lomo.linewidth = 1;
-
- // Cotas
- var cotaAnchoCubierta = previewEC.makeDobleArrow(
- origenEC.x - (anchoSangrado / 2),
- origenEC.y + (altoLibro / 2) + 35,
- origenEC.x + (anchoSangrado / 2),
- origenEC.y + (altoLibro / 2) + 35,
- 10);
- cotaAnchoCubierta.linewidth = 2;
- var cotaAltoCubierta = previewEC.makeDobleArrow(
- origenEC.x + (anchoCubierta / 2) + 35,
- origenEC.y + (altoSangrado / 2),
- origenEC.x + (anchoCubierta / 2) + 35,
- origenEC.y - (altoSangrado / 2),
- 10);
- cotaAltoCubierta.linewidth = 2;
- var cotaAltoLibro = previewEC.makeDobleArrow(
- origenEC.x + (lomoLibro / 2) + 35,
- origenEC.y + (altoLibro / 2),
- origenEC.x + (lomoLibro / 2) + 35,
- origenEC.y - (altoLibro / 2),
- 10);
- cotaAltoLibro.linewidth = 2;
- var cotaLomo = previewEC.makeDobleArrow(
- origenEC.x - (lomoLibro / 2),
- origenEC.y + (altoLibro / 3),
- origenEC.x + (lomoLibro / 2),
- origenEC.y + (altoLibro / 3),
- 10);
- cotaLomo.linewidth = 2;
- var cotaContraportada = previewEC.makeDobleArrow(
- origenEC.x - (lomoLibro / 2 + anchoLibro),
- origenEC.y - (altoLibro / 3),
- origenEC.x - (lomoLibro / 2),
- origenEC.y - (altoLibro / 3),
- 10);
- cotaContraportada.linewidth = 2;
- var cotaPortada = previewEC.makeDobleArrow(
- origenEC.x + (lomoLibro / 2),
- origenEC.y - (altoLibro / 3),
- origenEC.x + (lomoLibro / 2 + anchoLibro),
- origenEC.y - (altoLibro / 3),
- 10);
- cotaPortada.linewidth = 2;
-
-
- // Textos:
- // Titulos generales
- let stylesEC = {size: 22, weight: 'bold', family: 'Public Sans'};
- previewEC.makeText("Portada", origenEC.x + (lomoLibro + anchoLibro) / 2, origenEC.y, stylesEC);
- previewEC.makeText("Contraportada", origenEC.x - (lomoLibro + anchoLibro) / 2, origenEC.y, stylesEC);
- previewEC.makeText("Lomo", origenEC.x, origenEC.y, stylesEC).rotation = -Math.PI / 2;
- // Sangrados
- let styleSangrado = {size: 10, family: 'Public Sans', style: 'italic', fill: 'red'};
- previewEC.makeText(sangradoTexto, origenEC.x, origenEC.y + (altoLibro / 2 + 13), styleSangrado);
- previewEC.makeText(sangradoTexto, origenEC.x, origenEC.y - (altoLibro / 2 + 13), styleSangrado);
- previewEC.makeText(sangradoTexto, origenEC.x + (lomoLibro / 2 + anchoLibro + 13), origenEC.y, styleSangrado).rotation = -Math.PI / 2;
- previewEC.makeText(sangradoTexto, origenEC.x - (lomoLibro / 2 + anchoLibro + 13), origenEC.y, styleSangrado).rotation = -Math.PI / 2;
- // Cotas
- previewEC.makeText(pvObj.lomoLibro + anchoCarton + " mm", origenEC.x, origenEC.y + (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.anchoLibro + anchoPliegue + " mm", origenEC.x - (lomoLibro / 2 + anchoLibro / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.anchoLibro + anchoPliegue + " mm", origenEC.x + (lomoLibro / 2 + anchoLibro / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.altoLibro + altoPliegue + " mm", origenEC.x + (lomoLibro / 2) + 50, origenEC.y, styleCotas).rotation = -Math.PI / 2;
- previewEC.makeText(pvObj.altoLibro + (2 * sangradoValor) + altoPliegue + " mm", origenEC.x + (lomoLibro / 2 + anchoLibro) + 50, origenEC.y, styleCotas).rotation = -Math.PI / 2;
- previewEC.makeText((2 * pvObj.anchoLibro) + pvObj.lomoLibro + (2 * sangradoValor) + +(2 * anchoPliegue) + anchoCarton + " mm",
- origenEC.x,
- origenEC.y + (altoLibro / 2) + 50,
- styleCotas);
-
- previewEC.update();
-
-}
-
-function portadaTapaBlanda(lpTagName, isCosido, isTapaDura) {
-
- // Variables locales
- let altoLibro, anchoLibro, lomoLibro, anchoSolapa, anchoCubierta, altoSangrado, anchoSangrado;
- let styleCotas = {size: 12, family: 'Public Sans'};
- let sangradoTexto = "Sangrado 5 mm";
- let sangradoValor = parseFloat(5); // mm
-
- // Get the preview Object parameters
- getObjetoLP(lpTagName, isCosido, isTapaDura);
-
- // Definicion de los parametros del Esquema de Cubierta (EC)
- if (pvObj.anchoSolapa == 0) {
- anchoSangrado = 600; // px
- altoSangrado = (anchoSangrado * 0.647 > 350) ? anchoSangrado * 0.647 : 350; // px
- altoLibro = altoSangrado * 0.97;
- anchoLibro = anchoSangrado * 0.419;
- anchoSolapa = 0;
- lomoLibro = anchoSangrado * 0.133;
- anchoCubierta = (2 * anchoLibro) + (2 * anchoSolapa) + lomoLibro;
-
- } else {
- anchoSangrado = 600; // px
- altoSangrado = (anchoSangrado * 0.418 > 350) ? anchoSangrado * 0.418 : 350; // px
- altoLibro = altoSangrado * 0.95;
- anchoLibro = anchoSangrado * 0.28;
- anchoSolapa = anchoSangrado * 0.163;
- lomoLibro = anchoSangrado * 0.09;
- anchoCubierta = (2 * anchoLibro) + (2 * anchoSolapa) + lomoLibro;
- }
-
- // Clear the canvas element
- $('#pv_ec_shape').empty();
- // Get the element for placing the graphical elements
- var divEC = document.getElementById('pv_ec_shape');
- var previewEC = new Two({fitted: true}).appendTo(divEC);
- // Calculate the center of the canvas element
- var origenEC = new Two.Vector(previewEC.width / 2, previewEC.height / 2);
-
- var sangrado = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- anchoSangrado,
- altoSangrado
- );
- sangrado.stroke = 'black';
- sangrado.dashes = [5, 5];
- sangrado.fill = '#FCEAF1';
- sangrado.linewidth = 1;
-
- if (pvObj.anchoSolapa != 0) {
- var solapas = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- anchoCubierta,
- altoLibro);
- solapas.stroke = 'black';
- solapas.linewidth = 1;
-
- // Cotas Solapas
- var cotaSolapa2 = previewEC.makeDobleArrow(
- origenEC.x - anchoCubierta / 2,
- origenEC.y - (altoLibro / 3),
- origenEC.x - anchoLibro - lomoLibro / 2,
- origenEC.y - (altoLibro / 3),
- 10);
- cotaSolapa2.linewidth = 2;
- var cotaSolapa1 = previewEC.makeDobleArrow(
- origenEC.x + anchoCubierta / 2,
- origenEC.y - (altoLibro / 3),
- origenEC.x + anchoLibro + lomoLibro / 2,
- origenEC.y - (altoLibro / 3),
- 10);
- cotaSolapa1.linewidth = 2;
-
- // Textos Solapas
- let stylesSolapa = {size: 18, family: 'Public Sans'};
- previewEC.makeText("Solapa 1", origenEC.x + anchoLibro + (lomoLibro + anchoSolapa) / 2, origenEC.y, stylesSolapa);
- previewEC.makeText("Solapa 2", origenEC.x - anchoLibro - (lomoLibro + anchoSolapa) / 2, origenEC.y, stylesSolapa);
- // Textos Cotas Solapas
- previewEC.makeText(pvObj.anchoSolapa + " mm", origenEC.x - anchoLibro - (lomoLibro + anchoSolapa) / 2, origenEC.y - (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.anchoSolapa + " mm", origenEC.x + anchoLibro + (lomoLibro + anchoSolapa) / 2, origenEC.y - (altoLibro / 3) + 15, styleCotas);
-
- }
-
- var libro = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- ((2 * anchoLibro) + lomoLibro),
- altoLibro);
- libro.stroke = 'black';
- libro.linewidth = 1;
-
- var lomo = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- lomoLibro,
- altoLibro);
- lomo.stroke = 'black';
- lomo.fill = '#F4F8F2';
- lomo.linewidth = 1;
-
- // Cotas
- var cotaAnchoCubierta = previewEC.makeDobleArrow(
- origenEC.x - (anchoSangrado / 2),
- origenEC.y + (altoLibro / 2) + 35,
- origenEC.x + (anchoSangrado / 2),
- origenEC.y + (altoLibro / 2) + 35,
- 10);
- cotaAnchoCubierta.linewidth = 2;
- var cotaAltoCubierta = previewEC.makeDobleArrow(
- origenEC.x + (anchoCubierta / 2) + 35,
- origenEC.y + (altoSangrado / 2),
- origenEC.x + (anchoCubierta / 2) + 35,
- origenEC.y - (altoSangrado / 2),
- 10);
- cotaAltoCubierta.linewidth = 2;
- var cotaAltoLibro = previewEC.makeDobleArrow(
- origenEC.x + (lomoLibro / 2) + 35,
- origenEC.y + (altoLibro / 2),
- origenEC.x + (lomoLibro / 2) + 35,
- origenEC.y - (altoLibro / 2),
- 10);
- cotaAltoLibro.linewidth = 2;
- var cotaLomo = previewEC.makeDobleArrow(
- origenEC.x - (lomoLibro / 2),
- origenEC.y + (altoLibro / 3),
- origenEC.x + (lomoLibro / 2),
- origenEC.y + (altoLibro / 3),
- 10);
- cotaLomo.linewidth = 2;
- var cotaContraportada = previewEC.makeDobleArrow(
- origenEC.x - (lomoLibro / 2 + anchoLibro),
- origenEC.y - (altoLibro / 3),
- origenEC.x - (lomoLibro / 2),
- origenEC.y - (altoLibro / 3),
- 10);
- cotaContraportada.linewidth = 2;
- var cotaPortada = previewEC.makeDobleArrow(
- origenEC.x + (lomoLibro / 2),
- origenEC.y - (altoLibro / 3),
- origenEC.x + (lomoLibro / 2 + anchoLibro),
- origenEC.y - (altoLibro / 3),
- 10);
- cotaPortada.linewidth = 2;
-
-
- // Textos:
- // Titulos generales
- let stylesEC = {size: 22, weight: 'bold', family: 'Public Sans'};
- previewEC.makeText("Portada", origenEC.x + (lomoLibro + anchoLibro) / 2, origenEC.y, stylesEC);
- previewEC.makeText("Contraportada", origenEC.x - (lomoLibro + anchoLibro) / 2, origenEC.y, stylesEC);
- let a = previewEC.makeText("Lomo", origenEC.x, origenEC.y, stylesEC).rotation = -Math.PI / 2;
- // Sangrados
- let styleSangrado = {size: 10, family: 'Public Sans', style: 'italic', fill: 'red'};
- previewEC.makeText(sangradoTexto, origenEC.x, origenEC.y + (altoLibro / 2 + 20), styleSangrado);
- previewEC.makeText(sangradoTexto, origenEC.x, origenEC.y - (altoLibro / 2 + 20), styleSangrado);
- previewEC.makeText(sangradoTexto, origenEC.x + (lomoLibro / 2 + anchoLibro + anchoSolapa + 20), origenEC.y, styleSangrado).rotation = -Math.PI / 2;
- previewEC.makeText(sangradoTexto, origenEC.x - (lomoLibro / 2 + anchoLibro + anchoSolapa + 20), origenEC.y, styleSangrado).rotation = -Math.PI / 2;
- // Cotas
- previewEC.makeText(pvObj.lomoLibro + " mm", origenEC.x, origenEC.y + (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.anchoLibro + " mm", origenEC.x - (lomoLibro / 2 + anchoLibro / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.anchoLibro + " mm", origenEC.x + (lomoLibro / 2 + anchoLibro / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.altoLibro + " mm", origenEC.x + (lomoLibro / 2) + 25, origenEC.y, styleCotas).rotation = -Math.PI / 2;
- previewEC.makeText(pvObj.altoLibro + (2 * sangradoValor) + " mm", origenEC.x + (lomoLibro / 2 + anchoLibro + anchoSolapa) + 50, origenEC.y, styleCotas).rotation = -Math.PI / 2;
- previewEC.makeText((2 * pvObj.anchoLibro) + (2 * (pvObj.anchoSolapa + pvObj.offsetSolapa)) + pvObj.lomoLibro + (2 * sangradoValor) + " mm",
- origenEC.x,
- origenEC.y + (altoLibro / 2) + 50,
- styleCotas);
-
- previewEC.update();
-
-}
-
-function portadaEspiral(lpTagName, isCosido, isTapaDura) {
-
- // Variables locales
- let altoLibro, anchoLibro, anchoCalle, anchoCubierta, altoSangrado, anchoSangrado, anchoSolapa, offsetCubierta;
- let styleCotas = {size: 12, family: 'Public Sans'};
- let sangradoTexto = (isTapaDura) ? "Sangrado 20 mm" : "Sangrado 5 mm";
- let sangradoValor = (isTapaDura) ? parseFloat(20) : parseFloat(5); // mm
-
- // Get the preview Object parameters
- getObjetoLP(lpTagName, isCosido, isTapaDura);
-
- // Definicion de los parametros del Esquema de Cubierta (EC)
- anchoSangrado = 600; // px
-
- if((pvObj.anchoSolapa !== 0) && (isTapaDura === 0)){
- altoSangrado = (anchoSangrado * 0.418 > 350) ? anchoSangrado * 0.418 : 350; // px
- altoLibro = altoSangrado * 0.95;
- anchoLibro = anchoSangrado * 0.28;
- anchoCalle = anchoSangrado * 0.02;
- anchoSolapa = anchoSangrado * 0.163;
- sangrado = anchoSangrado * 0.03;
- anchoCubierta = 2 * (anchoLibro + anchoSolapa+ sangrado) + anchoCalle;
- offsetCubierta = anchoLibro/2 + anchoCalle/2 + anchoSolapa/2 + sangrado;
- }
- else {
- altoSangrado = (anchoSangrado * 0.647 > 350) ? anchoSangrado * 0.647 : 350; // px
- altoLibro = (isTapaDura) ? altoSangrado * 0.88 : altoSangrado * 0.97;
- anchoLibro = (isTapaDura) ? anchoSangrado * 0.39 : anchoSangrado * 0.419;
- anchoCalle = anchoSangrado * 0.02;
- anchoSolapa = 0;
- anchoCubierta = (2 * anchoLibro) + (2 * anchoSolapa) + anchoCalle;
- offsetCubierta = anchoLibro/2 + anchoCalle/2 + anchoSolapa + sangradoValor;
- }
-
- // Clear the canvas element
- $('#pv_ec_shape').empty();
- // Get the element for placing the graphical elements
- var divEC = document.getElementById('pv_ec_shape');
- var previewEC = new Two({fitted: true}).appendTo(divEC);
- // Calculate the center of the canvas element
- var origenEC = new Two.Vector(previewEC.width / 2, previewEC.height / 2);
-
- var sangrado = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- anchoSangrado,
- altoSangrado
- );
- sangrado.stroke = 'black';
- sangrado.dashes = [5, 5];
- sangrado.fill = '#FCEAF1';
- sangrado.linewidth = 1;
-
- if (pvObj.anchoSolapa != 0) {
- var solapa1 = previewEC.makeRectangle(
- origenEC.x + (anchoLibro + anchoCalle/2 + anchoSolapa/2 + sangradoValor),
- origenEC.y,
- anchoSolapa,
- altoLibro);
- solapa1.stroke = 'black';
- solapa1.linewidth = 1;
-
- var solapa2 = previewEC.makeRectangle(
- origenEC.x - (anchoLibro + anchoCalle/2 + anchoSolapa/2 + sangradoValor),
- origenEC.y,
- anchoSolapa,
- altoLibro);
- solapa2.stroke = 'black';
- solapa2.linewidth = 1;
-
- // Cotas Solapas
- var cotaSolapa2 = previewEC.makeDobleArrow(
- origenEC.x - (anchoCalle/2 + sangradoValor + anchoLibro + anchoSolapa),
- origenEC.y - (altoLibro / 3),
- origenEC.x - (anchoLibro + sangradoValor + anchoCalle / 2),
- origenEC.y - (altoLibro / 3),
- 10);
- cotaSolapa2.linewidth = 2;
- var cotaSolapa1 = previewEC.makeDobleArrow(
- origenEC.x + (anchoCalle/2 + sangradoValor + anchoLibro + anchoSolapa),
- origenEC.y - (altoLibro / 3),
- origenEC.x + (anchoLibro + sangradoValor + anchoCalle / 2),
- origenEC.y - (altoLibro / 3),
- 10);
- cotaSolapa1.linewidth = 2;
-
- // Textos Solapas
- let stylesSolapa = {size: 18, family: 'Public Sans'};
- previewEC.makeText("Solapa 1", origenEC.x + anchoLibro + (anchoCalle + anchoSolapa) / 2, origenEC.y, stylesSolapa);
- previewEC.makeText("Solapa 2", origenEC.x - anchoLibro - (anchoCalle + anchoSolapa) / 2, origenEC.y, stylesSolapa);
- // Textos Cotas Solapas
- previewEC.makeText(pvObj.anchoSolapa + " mm", origenEC.x - anchoLibro - (anchoCalle + anchoSolapa) / 2, origenEC.y - (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.anchoSolapa + " mm", origenEC.x + anchoLibro + (anchoCalle + anchoSolapa) / 2, origenEC.y - (altoLibro / 3) + 15, styleCotas);
-
- }
-
- var portada = previewEC.makeRectangle(
- origenEC.x + (anchoLibro/2 + anchoCalle/2 + sangradoValor),
- origenEC.y,
- anchoLibro,
- altoLibro);
- portada.stroke = 'black';
- portada.linewidth = 1;
-
- var contraportada = previewEC.makeRectangle(
- origenEC.x - (anchoLibro/2 + anchoCalle/2 + sangradoValor),
- origenEC.y,
- anchoLibro,
- altoLibro);
- contraportada.stroke = 'black';
- contraportada.linewidth = 1;
-
- var calle = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- anchoCalle,
- altoSangrado);
- calle.stroke = 'black';
- calle.dashes = [2, 5];
- calle.fill = '#F4F8F2';
- calle.linewidth = 1;
-
- // Cotas
- var cotaAnchoCubierta = previewEC.makeDobleArrow(
- origenEC.x - (anchoSangrado / 2),
- origenEC.y + (altoLibro / 2) + 35,
- origenEC.x + (anchoSangrado / 2),
- origenEC.y + (altoLibro / 2) + 35,
- 10);
- cotaAnchoCubierta.linewidth = 2;
- var cotaAltoCubierta = previewEC.makeDobleArrow(
- origenEC.x + (anchoSangrado / 2) + 15,
- origenEC.y + (altoSangrado / 2),
- origenEC.x + (anchoSangrado / 2) + 15,
- origenEC.y - (altoSangrado / 2),
- 10);
- cotaAltoCubierta.linewidth = 2;
- var cotaAltoLibro = previewEC.makeDobleArrow(
- origenEC.x + (anchoCalle / 2) + 35,
- origenEC.y + (altoLibro / 2),
- origenEC.x + (anchoCalle / 2) + 35,
- origenEC.y - (altoLibro / 2),
- 10);
- cotaAltoLibro.linewidth = 2;
- var cotaContraportada = previewEC.makeDobleArrow(
- origenEC.x - (anchoCalle / 2 + anchoLibro + sangradoValor),
- origenEC.y - (altoLibro / 3),
- origenEC.x - ((anchoCalle / 2) + sangradoValor),
- origenEC.y - (altoLibro / 3),
- 10);
- cotaContraportada.linewidth = 2;
- var cotaPortada = previewEC.makeDobleArrow(
- origenEC.x + ((anchoCalle / 2) + sangradoValor),
- origenEC.y - (altoLibro / 3),
- origenEC.x + (anchoCalle / 2 + anchoLibro + sangradoValor),
- origenEC.y - (altoLibro / 3),
- 10);
- cotaPortada.linewidth = 2;
-
-
- // Textos:
- // Titulos generales
- let stylesEC = {size: 22, weight: 'bold', family: 'Public Sans'};
- previewEC.makeText("Portada",
- origenEC.x + anchoLibro/2 + anchoCalle/2 + sangradoValor + 15,
- origenEC.y,
- stylesEC
- );
- previewEC.makeText("Contraportada",
- origenEC.x - (anchoLibro/2 + anchoCalle/2 + sangradoValor),
- origenEC.y,
- stylesEC
- );
- // Sangrados
- let styleSangrado = {size: 10, family: 'Public Sans', style: 'italic', fill: 'red'};
- previewEC.makeText(sangradoTexto, origenEC.x + offsetCubierta, origenEC.y + (altoLibro / 2 + 13), styleSangrado);
- previewEC.makeText(sangradoTexto, origenEC.x + offsetCubierta, origenEC.y - (altoLibro / 2 + 13), styleSangrado);
- previewEC.makeText(sangradoTexto, origenEC.x - offsetCubierta, origenEC.y + (altoLibro / 2 + 13), styleSangrado);
- previewEC.makeText(sangradoTexto, origenEC.x - offsetCubierta, origenEC.y - (altoLibro / 2 + 13), styleSangrado);
- previewEC.makeText(sangradoTexto, origenEC.x + (anchoSangrado / 2) - 20, origenEC.y, styleSangrado).rotation = -Math.PI / 2;
- previewEC.makeText(sangradoTexto, origenEC.x - (anchoSangrado / 2) + 20, origenEC.y, styleSangrado).rotation = -Math.PI / 2;
- // Cotas
- previewEC.makeText(pvObj.anchoLibro + " mm", origenEC.x - (offsetCubierta - anchoSolapa/2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.anchoLibro + " mm", origenEC.x + (offsetCubierta - anchoSolapa/2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.altoLibro + " mm", origenEC.x + (anchoCalle / 2) + 50, origenEC.y, styleCotas).rotation = -Math.PI / 2;
- previewEC.makeText(pvObj.altoLibro + (2 * sangradoValor) + " mm",
- origenEC.x + (anchoSangrado / 2) + 30,
- origenEC.y,
- styleCotas
- ).rotation = -Math.PI / 2;
- previewEC.makeText((2 * pvObj.anchoLibro) + pvObj.lomoLibro + (2 * sangradoValor) + " mm",
- origenEC.x,
- origenEC.y + (altoLibro / 2) + 50,
- styleCotas);
-
- previewEC.update();
-
-}
-
-function portadaGrapado(lpTagName, isCosido, isTapaDura) {
-
- // Variables locales
- let altoLibro, anchoLibro, lomoLibro, anchoSolapa, anchoCubierta, altoSangrado, anchoSangrado;
- let styleCotas = {size: 12, family: 'Public Sans'};
- let sangradoTexto = "Sangrado 5 mm";
- let sangradoValor = parseFloat(5); // mm
-
- // Get the preview Object parameters
- getObjetoLP(lpTagName, isCosido, isTapaDura);
-
- // Definicion de los parametros del Esquema de Cubierta (EC)
- if (pvObj.anchoSolapa == 0) {
- anchoSangrado = 600; // px
- altoSangrado = (anchoSangrado * 0.647 > 350) ? anchoSangrado * 0.647 : 350; // px
- altoLibro = altoSangrado * 0.97;
- anchoLibro = anchoSangrado * 0.48;
- anchoSolapa = 0;
- lomoLibro = 0; // ESTA ES LA DIFERENCIA PARA GRAPADO
- anchoCubierta = (2 * anchoLibro) + (2 * anchoSolapa) + lomoLibro;
-
- } else {
- anchoSangrado = 600; // px
- altoSangrado = (anchoSangrado * 0.418 > 350) ? anchoSangrado * 0.418 : 350; // px
- altoLibro = altoSangrado * 0.95;
- anchoLibro = anchoSangrado * 0.3;
- anchoSolapa = anchoSangrado * 0.18;
- lomoLibro = 0; // ESTA ES LA DIFERENCIA PARA GRAPADO
- anchoCubierta = (2 * anchoLibro) + (2 * anchoSolapa) + lomoLibro;
- }
-
- // Clear the canvas element
- $('#pv_ec_shape').empty();
- // Get the element for placing the graphical elements
- var divEC = document.getElementById('pv_ec_shape');
- var previewEC = new Two({fitted: true}).appendTo(divEC);
- // Calculate the center of the canvas element
- var origenEC = new Two.Vector(previewEC.width / 2, previewEC.height / 2);
-
- var sangrado = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- anchoSangrado,
- altoSangrado
- );
- sangrado.stroke = 'black';
- sangrado.dashes = [5, 5];
- sangrado.fill = '#FCEAF1';
- sangrado.linewidth = 1;
-
- if (pvObj.anchoSolapa != 0) {
- var solapas = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- anchoCubierta,
- altoLibro);
- solapas.stroke = 'black';
- solapas.linewidth = 1;
-
- // Cotas Solapas
- var cotaSolapa2 = previewEC.makeDobleArrow(
- origenEC.x - anchoCubierta / 2,
- origenEC.y - (altoLibro / 3),
- origenEC.x - anchoLibro - lomoLibro / 2,
- origenEC.y - (altoLibro / 3),
- 10);
- cotaSolapa2.linewidth = 2;
- var cotaSolapa1 = previewEC.makeDobleArrow(
- origenEC.x + anchoCubierta / 2,
- origenEC.y - (altoLibro / 3),
- origenEC.x + anchoLibro + lomoLibro / 2,
- origenEC.y - (altoLibro / 3),
- 10);
- cotaSolapa1.linewidth = 2;
-
- // Textos Solapas
- let stylesSolapa = {size: 18, family: 'Public Sans'};
- previewEC.makeText("Solapa 1", origenEC.x + anchoLibro + (lomoLibro + anchoSolapa) / 2, origenEC.y, stylesSolapa);
- previewEC.makeText("Solapa 2", origenEC.x - anchoLibro - (lomoLibro + anchoSolapa) / 2, origenEC.y, stylesSolapa);
- // Textos Cotas Solapas
- previewEC.makeText(pvObj.anchoSolapa + " mm", origenEC.x - anchoLibro - (lomoLibro + anchoSolapa) / 2, origenEC.y - (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.anchoSolapa + " mm", origenEC.x + anchoLibro + (lomoLibro + anchoSolapa) / 2, origenEC.y - (altoLibro / 3) + 15, styleCotas);
-
- }
-
- var libro = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- ((2 * anchoLibro) + lomoLibro),
- altoLibro);
- libro.stroke = 'black';
- libro.linewidth = 1;
-
- var lomo = previewEC.makeRectangle(
- origenEC.x,
- origenEC.y,
- lomoLibro,
- altoLibro);
- lomo.stroke = 'black';
- lomo.fill = '#F4F8F2';
- lomo.linewidth = 1;
-
- // Cotas
- var cotaAnchoCubierta = previewEC.makeDobleArrow(
- origenEC.x - (anchoSangrado / 2),
- origenEC.y + (altoLibro / 2) + 35,
- origenEC.x + (anchoSangrado / 2),
- origenEC.y + (altoLibro / 2) + 35,
- 10);
- cotaAnchoCubierta.linewidth = 2;
- var cotaAltoCubierta = previewEC.makeDobleArrow(
- origenEC.x + (anchoCubierta / 2) + 35,
- origenEC.y + (altoSangrado / 2),
- origenEC.x + (anchoCubierta / 2) + 35,
- origenEC.y - (altoSangrado / 2),
- 10);
- cotaAltoCubierta.linewidth = 2;
- var cotaAltoLibro = previewEC.makeDobleArrow(
- origenEC.x + (lomoLibro / 2) + 35,
- origenEC.y + (altoLibro / 2),
- origenEC.x + (lomoLibro / 2) + 35,
- origenEC.y - (altoLibro / 2),
- 10);
- cotaAltoLibro.linewidth = 2;
- var cotaContraportada = previewEC.makeDobleArrow(
- origenEC.x - (lomoLibro / 2 + anchoLibro),
- origenEC.y - (altoLibro / 3),
- origenEC.x - (lomoLibro / 2),
- origenEC.y - (altoLibro / 3),
- 10);
- cotaContraportada.linewidth = 2;
- var cotaPortada = previewEC.makeDobleArrow(
- origenEC.x + (lomoLibro / 2),
- origenEC.y - (altoLibro / 3),
- origenEC.x + (lomoLibro / 2 + anchoLibro),
- origenEC.y - (altoLibro / 3),
- 10);
- cotaPortada.linewidth = 2;
-
-
- // Textos:
- // Titulos generales
- let stylesEC = {size: 22, weight: 'bold', family: 'Public Sans'};
- previewEC.makeText("Portada", origenEC.x + (lomoLibro + anchoLibro) / 2, origenEC.y, stylesEC);
- previewEC.makeText("Contraportada", origenEC.x - (lomoLibro + anchoLibro) / 2, origenEC.y, stylesEC);
- // Sangrados
- let styleSangrado = {size: 10, family: 'Public Sans', style: 'italic', fill: 'red'};
- previewEC.makeText(sangradoTexto, origenEC.x, origenEC.y + (altoLibro / 2 + 20), styleSangrado);
- previewEC.makeText(sangradoTexto, origenEC.x, origenEC.y - (altoLibro / 2 + 20), styleSangrado);
- previewEC.makeText(sangradoTexto, origenEC.x + (lomoLibro / 2 + anchoLibro + anchoSolapa + 20), origenEC.y, styleSangrado).rotation = -Math.PI / 2;
- previewEC.makeText(sangradoTexto, origenEC.x - (lomoLibro / 2 + anchoLibro + anchoSolapa + 20), origenEC.y, styleSangrado).rotation = -Math.PI / 2;
- // Cotas
- previewEC.makeText(pvObj.anchoLibro + " mm", origenEC.x - (lomoLibro / 2 + anchoLibro / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.anchoLibro + " mm", origenEC.x + (lomoLibro / 2 + anchoLibro / 2), origenEC.y - (altoLibro / 3) + 15, styleCotas);
- previewEC.makeText(pvObj.altoLibro + " mm", origenEC.x + (lomoLibro / 2) + 25, origenEC.y, styleCotas).rotation = -Math.PI / 2;
- previewEC.makeText(pvObj.altoLibro + (2 * sangradoValor) + " mm", origenEC.x + (lomoLibro / 2 + anchoLibro + anchoSolapa) + 50, origenEC.y, styleCotas).rotation = -Math.PI / 2;
- previewEC.makeText((2 * pvObj.anchoLibro) + (2 * (pvObj.anchoSolapa + pvObj.offsetSolapa)) + pvObj.lomoLibro + (2 * sangradoValor) + " mm",
- origenEC.x,
- origenEC.y + (altoLibro / 2) + 50,
- styleCotas);
-
- previewEC.update();
-
-}
-
-function getLomoLibro() {
- const anchoLomoInputs = $("#tableLineasPresupuesto tbody tr:visible td input[id*='_lomo']");
- const anchoLomo = Array.from(anchoLomoInputs).reduce((sum, input) => sum + parseFloat($(input).val()), 0);
-
- return parseFloat(anchoLomo.toFixed(2));
-}
-
-
-function getObjetoLP(lpName, _isCosido, _isTapaDura) {
-
- let rowData = null;
-
- $('#tableLineasPresupuesto').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
-
- let lineaPresupuestoId = this.data().row_id.replace('lp_', '');
-
- switch (lpName) {
- case 'bn':
- case 'bnhq':
- case 'color':
- case 'colorhq':
- case 'cubierta':
- case 'rot_bn':
- case 'rot_color':
- case 'guardas':
- case 'sobrecubierta':
- if (lineaPresupuestoId === lpName) {
- rowData = this.data();
- }
- break;
- case 'ec':
- if (lineaPresupuestoId === 'cubierta') {
- rowData = this.data();
- }
- break;
- default:
- //console.log(lineaPresupuestoId);
- break;
- }
-
- });
-
-
- pvObj = {
- idIndex: lpName,
- tipoImpresion: parseInt($('#tipo_impresion_id').val()),
- gramajeLibro: parseInt(rowData.gramaje),
- manoLP: parseFloat(rowData.lomo),
- lomoLibro: getLomoLibro(),
- anchoSolapa: $('#solapas').is(':checked') ? parseFloat($('#solapas_ancho').val()) : parseFloat(0),
- nFormas: parseInt(rowData.formas),
- nFormasH: parseInt(rowData.formas_h),
- nFormasV: parseInt(rowData.formas_v),
- orientacionFormas: rowData.formas_orientacion,
- altoMaquina: parseFloat(rowData.maquina_alto),
- anchoMaquina: parseFloat(rowData.maquina_ancho),
- altoImpresion: parseFloat(rowData.maquina_impresion_alto),
- anchoImpresion: parseFloat(rowData.maquina_impresion_ancho),
- altoLibro: getDimensionLibro().alto,
- anchoLibro: getDimensionLibro().ancho,
- offsetSolapa: 0
- };
-
- //console.log(pvObj);
-
- // Printing shape definition
- pvObj.anchoForma = (_isCosido) ? 2 * pvObj.anchoLibro : pvObj.anchoLibro;
- pvObj.altoForma = pvObj.altoLibro;
-
-
- // Update preview info fields
- let pvName = '#pv_' + lpName;
- $(pvName + '_pg').attr("href", $(pvName + '_pg').attr('sk-url') + rowData.papel);
- $(pvName + '_pi').attr("href", $(pvName + '_pi').attr('sk-url') + rowData.papel_impresion_id);
- $(pvName + '_mi').attr("href", $(pvName + '_mi').attr('sk-url') + rowData.maquina_id);
-
- $(pvName + '_gramaje').text(pvObj.gramajeLibro);
- $(pvName + '_mano').text(pvObj.manoLP);
- $(pvName + '_solapas').text(pvObj.anchoSolapa);
- $(pvName + '_maquina').text(pvObj.anchoMaquina + "x" + pvObj.altoMaquina);
- $(pvName + '_maquina_impresion').text(pvObj.anchoImpresion + "x" + pvObj.altoImpresion);
- $(pvName + '_libro').text(pvObj.anchoLibro + "x" + pvObj.altoLibro);
- $(pvName + '_forma').text(pvObj.anchoForma + "x" + pvObj.altoForma);
- $(pvName + '_nFormas').text(pvObj.nFormas);
-
- if (pvObj.anchoSolapa != 0) {
- $('.pv-solapas').show();
- pvObj.offsetSolapa = parseFloat(3); // 3mm
-
- }
-
- // Custom overwrites
- switch (pvObj.idIndex) {
- case 'cubierta':
- // Fresado TD or Cosido TD
- if (pvObj.tipoImpresion === 1 || pvObj.tipoImpresion === 3) {
- let anchoPliegue = parseFloat(7); // mm
- let altoPliegue = parseFloat(7); // mm
- let sangre = parseFloat(20); // mm
- pvObj.anchoForma = ((2 * pvObj.anchoLibro) + (2 * anchoPliegue) + (2 * sangre) + pvObj.lomoLibro);
- pvObj.altoForma += altoPliegue + (2 * sangre);
- }
- // Fresado TB y Cosido TB
- else if (pvObj.tipoImpresion === 2 || pvObj.tipoImpresion === 4) {
- let sangre = parseFloat(5); // mm
- pvObj.anchoForma = ((2 * pvObj.anchoLibro) + (2 * (pvObj.anchoSolapa + pvObj.offsetSolapa)) + (2 * sangre) + pvObj.lomoLibro);
- pvObj.altoForma += (2 * sangre);
- }
- // Grapado
- else if (pvObj.tipoImpresion === 21) {
- let sangre = parseFloat(5); // mm
- pvObj.anchoForma = ((2 * pvObj.anchoLibro) + (2 * (pvObj.anchoSolapa + pvObj.offsetSolapa)) + (2 * sangre));
- pvObj.altoForma += (2 * sangre);
- }
- // Espiral TD y TB, Wire-o TD y TB
- else if (pvObj.tipoImpresion === 5 || pvObj.tipoImpresion === 6 ||
- pvObj.tipoImpresion === 7 || pvObj.tipoImpresion === 8) {
- let sangre = parseFloat(20); // mm
- pvObj.anchoForma = pvObj.anchoLibro;
- } else {
- // ?
- }
-
- // Update labels
- $(pvName + '_forma').text(pvObj.anchoForma + "x" + pvObj.altoForma);
- break;
-
- case 'sobrecubierta':
- sangre = parseFloat(5); // mm
- let anchoSolapaSobrecubierta = $('#solapas_sobrecubierta').is(':checked') ? parseFloat($('#solapas_ancho_sobrecubierta').val()) : parseFloat(0); // mm
- if (_isTapaDura) {
- let anchoPliegue = parseFloat(7); // mm
- let altoPliegue = parseFloat(7); // mm
- pvObj.anchoForma = ((2 * pvObj.anchoLibro) + (2 * anchoPliegue) + (2 * (anchoSolapaSobrecubierta + pvObj.offsetSolapa)) + (2 * sangre) + pvObj.lomoLibro);
- pvObj.altoForma += altoPliegue + (2 * sangre);
- } else {
- pvObj.anchoForma = ((2 * pvObj.anchoLibro) + (2 * (anchoSolapaSobrecubierta + pvObj.offsetSolapa)) + (2 * sangre) + pvObj.lomoLibro);
- pvObj.altoForma += (2 * sangre);
- }
-
- // Update labels
- $(pvName + '_solapas').text(anchoSolapaSobrecubierta);
- anchoSolapaSobrecubierta != 0 ? $('.pv-solapas').show() : $('.pv-solapas').hide();
- $(pvName + '_forma').text(pvObj.anchoForma + "x" + pvObj.altoForma);
- break;
- case 'ec':
- $(pvName + '_pg').attr("href", $(pvName + '_pg').attr('sk-url') + rowData.papel);
- $(pvName + '_pi').attr("href", $(pvName + '_pi').attr('sk-url') + rowData.papel_impresion_id);
- $(pvName + '_mi').attr("href", $(pvName + '_mi').attr('sk-url') + rowData.maquina_id);
- $('#pv_ec_lomo').text(pvObj.lomoLibro);
- break;
-
- case 'rot_bn':
- case 'rot_color':
- // 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);
- pvObj.nFormasH = Math.trunc(pvObj.anchoImpresion / pvObj.anchoForma);
- pvObj.nFormasV = Math.trunc((pvObj.altoImpresion - 3) / (pvObj.altoForma + 4));
- break;
-
- case 'bn':
- case 'bnhq':
- case 'color':
- case 'colorhq':
- // 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);
- break;
- case 'guardas':
- // Fresado TD y Cosido TD
- if (pvObj.tipoImpresion === 1 || pvObj.tipoImpresion === 3) {
- pvObj.anchoForma = 2 * pvObj.anchoLibro;
- }
- // Fresado TB y Cosido TB
- else if (pvObj.tipoImpresion === 2 || pvObj.tipoImpresion === 4) {
- pvObj.anchoForma = pvObj.anchoLibro;
- }
- // Espiral TD y TB, Wire-o TD y TB
- else if (pvObj.tipoImpresion === 5 || pvObj.tipoImpresion === 6 ||
- pvObj.tipoImpresion === 7 || pvObj.tipoImpresion === 8) {
- pvObj.anchoForma = pvObj.anchoLibro;
- } else {
- // ?
- }
-
- // 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);
- break;
-
- default:
- break;
- }
-}
-
-
-function getVisibleTabs() {
- const table = $('#tableLineasPresupuesto').DataTable();
-
- // Clear all existing tabs
- $('*[id*=tab-pv-]').hide().find('.active').removeClass('active');
- $('*[id*=pv_]').removeClass('active show');
-
- // Enable active tabs
- table.rows().every(function () {
- const lpName = this.data().row_id.replace('lp_', '');
- const tabName = lpName.replace('_', '-');
-
- if (['bn', 'bnhq', 'color', 'colorhq', 'rot_bn', 'rot_color', 'guardas', 'cubierta', 'sobrecubierta'].includes(lpName)) {
- $(`#tab-pv-${tabName}`).show();
- if (lpName === 'cubierta') {
- $(`#tab-pv-${tabName}`).show();
- $(`#tab-pv-esquema-${tabName}`).show();
- }
- }
- });
-}
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/viewPresupuestoadminForm.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/viewPresupuestoadminForm.php
index 9dfc18c8..5d95c2f2 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/viewPresupuestoadminForm.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/viewPresupuestoadminForm.php
@@ -6,25 +6,31 @@
= $this->section("content") ?>
-
+
= $boxTitle ?? $pageTitle ?>
+
= csrf_field() ?>
+
= view("themes/_commonPartialsBs/_alertBoxes") ?>
+ = view("themes/vuexy/form/presupuestos/cliente/loader") ?>
+
= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
-
-
-
+
+
+
+
+
+
+
= view("themes/vuexy/form/presupuestos/admin/_datosPresupuestoItems") ?>
= view("themes/vuexy/form/presupuestos/admin/_datosLibroItems") ?>
@@ -35,8 +41,12 @@
= view("themes/vuexy/form/presupuestos/admin/_datosEnvios") ?>
= view("themes/vuexy/form/presupuestos/admin/_comentariosItems") ?>
= view("themes/vuexy/components/chat_internal_presupuesto",data:["modelId" => $presupuestoId,"type" => "presupuesto"]) ?>
+ estado_id == 2) : ?>
+ = view("themes/vuexy/components/dropzone",data: ['id' => 'dropzone-presupuesto-admin-files','modelId' => $presupuestoId]) ?>
+
= view("themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems") ?>
= view("themes/vuexy/form/presupuestos/admin/_tiradasAlternativasItems") ?>
+
@@ -168,155 +178,14 @@
}
}
});
-
- $('#clienteId').select2({
- allowClear: false,
- ajax: {
- url: '= route_to("menuItemsOfClientes") ?>',
- type: 'post',
- dataType: 'json',
-
- data: function(params) {
- return {
- id: 'id',
- text: 'nombre',
- searchTerm: params.term,
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v
- };
- },
- delay: 60,
- processResults: function(response) {
- yeniden(response.= csrf_token() ?>);
- return {
- results: response.menu
- };
- },
- cache: true
- }
- });
-
- /*******************************
- * Inicialización de los Select2
- *******************************/
- $('#incRei').select2({
- allowClear: false,
- });
-
- $('#paisId').select2({
- allowClear: false,
- });
+
= $this->endSection() ?>
-
-
-
-= $this->section("additionalInlineJs") ?>
-$(window).on('load', function() {
- // Detectar cambios en inputs de texto
- $('input[type="text"]').on('input', function() {
- showBreadCrumbSaveButton(true);
- });
-
- // Detectar cambios en inputs de texto
- $('input[type="number"]').on('input', function() {
- showBreadCrumbSaveButton(true);
- });
-
- // Detectar cambios en select
- $('select').change(function() {
- showBreadCrumbSaveButton(true);
- });
-
- // Detectar cambios en checkboxes
- $('input[type="checkbox"]').change(function() {
- showBreadCrumbSaveButton(true);
- });
-
- // Detectar cambios en textareas
- $('textarea').on('input', function() {
- showBreadCrumbSaveButton(true);
- });
-
- // Detectar cambios en otros tipos de input
- $('input[type="radio"]').change(function() {
- showBreadCrumbSaveButton(true);
- });
-
- // Detectar cambios en otros tipos de input
- $('input:not([type])').on('input', function() {
- showBreadCrumbSaveButton(true);
- });
-
-});
-
-$('#bc-save').on( "click", function() {
- showBreadCrumbSaveButton(false);
- $('#saveForm').click()
-} );
-
-= $this->endSection() ?>
-
-
-
-
-
- = $this->section("additionalInlineJs") ?>
-
- var submitButtonClicked; // Variable para almacenar el botón que fue clickeado
-
- // funcion que genera un JSON con la tabla de tiradas alternativas
- function generate_json_tiradas() {
- const data = tableTiradas.rows().data().toArray();
- $('#tirada_alternativa_json_data').val(JSON.stringify(data));
- }
-
- $('#saveForm').on("click", function(event) {
-
- event.preventDefault();
- save_servicios();
- save_datos_envios();
-
- var presupuesto_id = $('#presupuesto_id').val()
-
- $.when(fill_bbdd_from_lp(presupuesto_id).then(function(data, textStatus, jqXHR) {
- generateCompJSON()
- generate_json_tiradas()
- form = $('#presupuestoForm').serialize()
- form += getValuesResumenForm()
-
- $.ajax({
- type: "POST",
- url: "",
- data: form,
- success: function (data) {
- yeniden(data.= csrf_token() ?>)
- if('errorMensaje' in data)
- popErrorAlert(data.errorMensaje)
- else{
- showBreadCrumbSaveButton(false)
- popSuccessAlert(data.mensaje)
- if($('#confirmar_presupuesto').prop('checked')) {
- $('#estado_id').val(2)
- }
- }
-
- }
- }).fail(function (jqXHR, textStatus, error) {
- // Handle error here
- console.log(jqXHR)
- });;
- }))
-
- return false; //stop the actual form post !important!
- });
-
- = $this->endSection() ?>
-
@@ -350,17 +219,6 @@ $('#bc-save').on( "click", function() {
= $this->endSection() ?>
-
-
-
-
- = $this->section("additionalInlineJs") ?>
-
- window.token_ajax= {= csrf_token() ?? "token" ?>: = csrf_token() ?>v};
- window.csrf_token = '= csrf_token() ?>';
-
- = $this->endSection() ?>
-
@@ -370,6 +228,9 @@ $('#bc-save').on( "click", function() {
">
+
+
+
= $this->endSection() ?>
= $this->section('additionalExternalJs') ?>
@@ -379,19 +240,16 @@ $('#bc-save').on( "click", function() {
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
= $this->endSection() ?>
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php
index 705495f1..34e3a455 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php
@@ -173,19 +173,10 @@
+ =lang('Presupuestos.acabadoNinguno') ?>
-
-
-

"
- alt="Retractilado">
-
- Retractilado
-
-
-
@@ -238,6 +229,7 @@
+ =lang('Presupuestos.acabadoNinguno') ?>
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_resumen.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_resumen.php
index 25751b64..1e183862 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_resumen.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_resumen.php
@@ -196,11 +196,15 @@
-
- Actualizar ficheros
+
+ = lang('App.global_upload_files') ?>
+
+ = lang('App.global_save_file') ?>
+
+
-
+
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/viewPresupuestoclienteForm.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/viewPresupuestoclienteForm.php
index cdd7b7de..7a23896f 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/viewPresupuestoclienteForm.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/viewPresupuestoclienteForm.php
@@ -29,6 +29,7 @@
+
diff --git a/ci4/app/Views/themes/vuexy/form/tarifas/acabado/viewTarifaAcabadoForm.php b/ci4/app/Views/themes/vuexy/form/tarifas/acabado/viewTarifaAcabadoForm.php
index cb6651ef..4e42b95a 100644
--- a/ci4/app/Views/themes/vuexy/form/tarifas/acabado/viewTarifaAcabadoForm.php
+++ b/ci4/app/Views/themes/vuexy/form/tarifas/acabado/viewTarifaAcabadoForm.php
@@ -2,37 +2,36 @@
= $this->include("themes/_commonPartialsBs/select2bs5") ?>
= $this->include("themes/_commonPartialsBs/sweetalert") ?>
= $this->include('themes/_commonPartialsBs/_confirm2delete') ?>
-=$this->extend('themes/vuexy/main/defaultlayout') ?>
+= $this->extend('themes/vuexy/main/defaultlayout') ?>
= $this->section("content") ?>
-
-
-
- = csrf_field() ?>
+
+
+
+ = csrf_field() ?>
= view("themes/_commonPartialsBs/_alertBoxes") ?>
= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
= view("themes/vuexy/form/tarifas/acabado/_tarifaAcabadoFormItems") ?>
-
- "
- />
- = anchor(route_to("tarifaAcabadoList"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start"]) ?>
-
-
-
+
+ " />
+ = anchor(route_to("tarifaAcabadoList"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start"]) ?>
+
+
+
-
-
+
-
-
-
-
-
-
-
- = view("themes/vuexy/components/forms/tarifa_maquinas",["id" => "tarifa_maquina_component","tarifaId" => $tarifaacabadoEntity->id ]) ?>
+
+
+
+
+
+
+
+
+ = view("themes/vuexy/components/forms/tarifa_maquinas", ["id" => "tarifa_maquina_component", "tarifaId" => $tarifaacabadoEntity->id]) ?>
+
-
-
-
+
+
+
-= $this->endSection() ?>
+ = $this->endSection() ?>
-= $this->section("additionalExternalJs") ?>
-
-= $this->endSection() ?>
+ = $this->section("additionalExternalJs") ?>
+
+ = $this->endSection() ?>
-= $this->section("additionalInlineJs") ?>
- const lastColNr = $('#tableOfTarifasacabado').find("tr:first th").length - 1;
- const url = window.location.href;
- const url_parts = url.split('/');
- let id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
+ = $this->section("additionalInlineJs") ?>
+ const lastColNr = $('#tableOfTarifasacabado').find("tr:first th").length - 1;
+ const url = window.location.href;
+ const url_parts = url.split('/');
+ let id = -1;
+ if(url_parts[url_parts.length-2] == 'edit'){
id = url_parts[url_parts.length-1];
- }
+ }
- const actionBtns = function(data) {
+ const actionBtns = function(data) {
return `
-
-
-
- `;
- };
+
+
+
+ `;
+ };
- var editor = new $.fn.dataTable.Editor( {
+ var editor = new $.fn.dataTable.Editor( {
ajax: {
- url: "= route_to('tarifaAcabadoLineasDTE') ?>",
- headers: {
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
- },
+ url: "= route_to('tarifaAcabadoLineasDTE') ?>",
+ headers: {
+ = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
+ },
+ },
+ table : "#tableOfTarifaacabadolineas",
+ idSrc: 'id',
+ fields: [
+ {
+ name: "proveedor_id",
+ type: "select",
+ }, {
+ name: "tirada_min"
+ }, {
+ name: "precio_max"
+ }, {
+ name: "tirada_max"
+ }, {
+ name: "precio_min"
+ },{
+ name: "margen"
+ }, {
+ "name": "tarifa_acabado_id",
+ "type": "hidden"
+ },{
+ name: "proveedor_nombre",
+ "type": "hidden"
+ },{
+ "name": "deleted_at",
+ "type": "hidden"
+ },{
+ "name": "is_deleted",
+ "type": "hidden"
},
- table : "#tableOfTarifaacabadolineas",
- idSrc: 'id',
- fields: [
- {
- name: "proveedor_id",
- type: "select",
- }, {
- name: "tirada_min"
- }, {
- name: "precio_max"
- }, {
- name: "tirada_max"
- }, {
- name: "precio_min"
- },{
- name: "margen"
- }, {
- "name": "tarifa_acabado_id",
- "type": "hidden"
- },{
- name: "proveedor_nombre",
- "type": "hidden"
- },{
- "name": "deleted_at",
- "type": "hidden"
- },{
- "name": "is_deleted",
- "type": "hidden"
- },
]
- } );
+ } );
- // Generación de la lista de proveedores (id, nombre) para encuadernación
- const suppliersList = ;
- editor.field( 'proveedor_id' ).update( suppliersList );
+ // Generación de la lista de proveedores (id, nombre) para encuadernación
+ const suppliersList = ;
+ editor.field( 'proveedor_id' ).update( suppliersList );
- editor.on( 'preSubmit', function ( e, d, type ) {
+ editor.on( 'preSubmit', function ( e, d, type ) {
if ( type === 'create'){
- d.data[0]['tarifa_acabado_id'] = id;
+ d.data[0]['tarifa_acabado_id'] = id;
}
else if(type === 'edit' ) {
- for (v in d.data){
- d.data[v]['tarifa_acabado_id'] = id;
- }
+ for (v in d.data){
+ d.data[v]['tarifa_acabado_id'] = id;
}
- });
-
-
- editor.on( 'postSubmit', function ( e, json, data, action ) {
-
- yeniden(json.= csrf_token() ?>);
- });
+ }
+ });
+
+
+ editor.on( 'postSubmit', function ( e, json, data, action ) {
+
+ yeniden(json.= csrf_token() ?>);
+ });
+
+ editor.on( 'submitSuccess', function ( e, json, data, action ) {
- editor.on( 'submitSuccess', function ( e, json, data, action ) {
-
theTable.clearPipeline();
theTable.draw();
- });
+ });
- function searchProviders(){
+ function searchProviders(){
var values = [];
$('#select_Proveedor').find(':selected').each(function () {
- values.push($(this).val());
+ values.push($(this).val());
});
theTable.column(0).search(values).draw();
- }
-
+ }
- // Setup - add a text input to each footer cell
- $('#tableOfTarifaacabadolineas thead tr').clone(true).appendTo('#tableOfTarifaacabadolineas thead');
- $('#tableOfTarifaacabadolineas thead tr:eq(1) th').each(function (i) {
+
+ // Setup - add a text input to each footer cell
+ $('#tableOfTarifaacabadolineas thead tr').clone(true).appendTo('#tableOfTarifaacabadolineas thead');
+ $('#tableOfTarifaacabadolineas thead tr:eq(1) th').each(function (i) {
if (!$(this).hasClass("noFilter")) {
- var title = $(this).text();
- title = title.replace(/ /g, "_").replace(/\./g, "_");
+ var title = $(this).text();
+ title = title.replace(/ /g, "_").replace(/\./g, "_");
- if(i==0){
+ if(i==0){
- // Agregar un selector en la primera columna
- $(this).html(``);
+ // Agregar un selector en la primera columna
+ $(this).html(``);
- // Agregar opciones al selector
- var selector = $('select', this);
- const suppliersList = ;
- //selector.append('Todos'); // Opción vacía
- for (j = 0; j < suppliersList.length; j++) {
- selector.append('' + suppliersList[j].label + '');
- };
-
- $('#select_' + title).select2({
- multiple: true,
- placeholder: ""
- });
+ // Agregar opciones al selector
+ var selector = $('select', this);
+ const suppliersList = ;
+ //selector.append('Todos'); // Opción vacía
+ for (j = 0; j < suppliersList.length; j++) {
+ selector.append('' + suppliersList[j].label + '');
+ };
+
+ $('#select_' + title).select2({
+ multiple: true,
+ placeholder: ""
+ });
- selector.bind('select2:select', searchProviders);
- selector.bind('select2:unselect', searchProviders);
+ selector.bind('select2:select', searchProviders);
+ selector.bind('select2:unselect', searchProviders);
+
+ $('#select_' + title).val("").trigger('change');
- $('#select_' + title).val("").trigger('change');
-
}
else{
-
-
- $(this).html(`
-
-
-
-
- `);
-
- $('input', this).on('change clear', function () {
- var minInputValue = parseFloat($(`#min_${title}`).val().replace(',','.')) || "";
- var maxInputValue = parseFloat($(`#max_${title}`).val().replace(',','.')) || "";
+ $(this).html(`
+
+
+
+
+ `);
-
- if (theTable.column(i).search() !== [minInputValue,maxInputValue]) {
- theTable
- .column(i)
- .search([minInputValue,maxInputValue])
- .draw();
- }
- });
+
+
+ $('input', this).on('change clear', function () {
+ var minInputValue = parseFloat($(`#min_${title}`).val().replace(',','.')) || "";
+ var maxInputValue = parseFloat($(`#max_${title}`).val().replace(',','.')) || "";
+
+
+ if (theTable.column(i).search() !== [minInputValue,maxInputValue]) {
+ theTable
+ .column(i)
+ .search([minInputValue,maxInputValue])
+ .draw();
}
- }
- else {
+ });
+ }
+ }
+ else {
$(this).html('');
- }
- });
-
-
- var theTable = $('#tableOfTarifaacabadolineas').DataTable( {
- orderCellsTop: true,
- serverSide: true,
- processing: true,
- autoWidth: true,
- responsive: true,
- fixedHeader: true,
- lengthMenu: [ 5, 10, 25],
- order: [[ 0, "asc" ], [ 1, "asc" ]],
- pageLength: 10,
- lengthChange: true,
- paging: true,
- info: false,
- stateSave: false,
- dom: '<"mt-4"><"float-end"B><"float-start"l><"mt-4 mb-3"p>',
- ajax : $.fn.dataTable.pipeline( {
- url: '= route_to('tarifaAcabadoLineasDT') ?>',
- data: {
- id_tarifaacabado: id,
- },
- method: 'POST',
- headers: {'X-Requested-With': 'XMLHttpRequest'},
- async: true,
- }),
- columns: [
- { 'data': 'proveedor_id',
- render: function(data, type, row, meta) {
- var value = suppliersList.find(element => element.value === data);
- return value['label'];
- },
- },
- { 'data': 'tirada_min' },
- { 'data': 'precio_max' },
- { 'data': 'tirada_max' },
- { 'data': 'precio_min' },
- { 'data': 'margen' },
- {
- data: actionBtns,
- className: 'row-edit dt-center'
}
- ],
- columnDefs: [
- {
- orderable: false,
- searchable: false,
- targets: [lastColNr]
- },
-
- ],
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
-
- },
- buttons: [ {
- className: 'btn btn-primary me-sm-3 me-1',
- extend: "createInline",
- editor: editor,
- formOptions: {
- submitTrigger: -1,
- submitHtml: ''
- }
- } ]
- } );
-
-
-
- // Activate an inline edit on click of a table cell
- $('#tableOfTarifaacabadolineas').on( 'click', 'tbody span.edit', function (e) {
- editor.inline(
- theTable.cells(this.parentNode.parentNode, '*').nodes(),
- {
- cancelHtml: '',
- cancelTrigger: 'span.cancel',
- submitHtml: '',
- submitTrigger: 'span.edit',
- submit: 'allIfChanged'
- }
- );
- } );
-
-
- // Delete row
- $(document).on('click', '.btn-delete', function(e) {
- $(".btn-remove").attr('data-id', $(this).attr('data-id'));
- });
-
- $(document).on('click', '.btn-remove', function(e) {
- const dataId = $(this).attr('data-id');
- const row = $(this).closest('tr');
- if ($.isNumeric(dataId)) {
- $.ajax({
- url: `/tarifas/acabados/lineas/delete/${dataId}`,
- method: 'GET',
- }).done((data, textStatus, jqXHR) => {
- $('#confirm2delete').modal('toggle');
- theTable.clearPipeline();
- theTable.row($(row)).invalidate().draw();
- popSuccessAlert(data.msg ?? jqXHR.statusText);
- }).fail((jqXHR, textStatus, errorThrown) => {
- popErrorAlert(jqXHR.responseJSON.messages.error)
- })
- }
- });
-
-
-= $this->endSection() ?>
-
-=$this->section('css') ?>
-
- ">
- ">
-=$this->endSection() ?>
+ });
-= $this->section('additionalExternalJs') ?>
-
-
-
-
-
-
-
-
-=$this->endSection() ?>
+ var theTable = $('#tableOfTarifaacabadolineas').DataTable( {
+ orderCellsTop: true,
+ serverSide: true,
+ processing: true,
+ autoWidth: true,
+ responsive: true,
+ fixedHeader: true,
+ lengthMenu: [ 5, 10, 25],
+ order: [[ 0, "asc" ], [ 1, "asc" ]],
+ pageLength: 10,
+ lengthChange: true,
+ paging: true,
+ info: false,
+ stateSave: false,
+ dom: '<"mt-4"><"float-end"B><"float-start"l><"mt-4 mb-3"p>',
+ ajax : $.fn.dataTable.pipeline( {
+ url: '= route_to('tarifaAcabadoLineasDT') ?>',
+ data: {
+ id_tarifaacabado: id,
+ },
+ method: 'POST',
+ headers: {'X-Requested-With': 'XMLHttpRequest'},
+ async: true,
+ }),
+ columns: [
+ { 'data': 'proveedor_id',
+ render: function(data, type, row, meta) {
+ var value = suppliersList.find(element => element.value === data);
+ return value['label'];
+ },
+ },
+ { 'data': 'tirada_min' },
+ { 'data': 'precio_max' },
+ { 'data': 'tirada_max' },
+ { 'data': 'precio_min' },
+ { 'data': 'margen' },
+ {
+ data: actionBtns,
+ className: 'row-edit dt-center'
+ }
+ ],
+ columnDefs: [
+ {
+ orderable: false,
+ searchable: false,
+ targets: [lastColNr]
+ },
+ ],
+ language: {
+ url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
+
+ },
+ buttons: [ {
+ className: 'btn btn-primary me-sm-3 me-1',
+ extend: "createInline",
+ editor: editor,
+ formOptions: {
+ submitTrigger: -1,
+ submitHtml: ''
+ }
+ } ]
+ } );
+
+
+
+ // Activate an inline edit on click of a table cell
+ $('#tableOfTarifaacabadolineas').on( 'click', 'tbody span.edit', function (e) {
+ editor.inline(
+ theTable.cells(this.parentNode.parentNode, '*').nodes(),
+ {
+ cancelHtml: '',
+ cancelTrigger: 'span.cancel',
+ submitHtml: '',
+ submitTrigger: 'span.edit',
+ submit: 'allIfChanged'
+ }
+ );
+ } );
+
+
+ // Delete row
+ $(document).on('click', '.btn-delete', function(e) {
+ $(".btn-remove").attr('data-id', $(this).attr('data-id'));
+ });
+
+ $(document).on('click', '.btn-remove', function(e) {
+ const dataId = $(this).attr('data-id');
+ const row = $(this).closest('tr');
+ if ($.isNumeric(dataId)) {
+ $.ajax({
+ url: `/tarifas/acabados/lineas/delete/${dataId}`,
+ method: 'GET',
+ }).done((data, textStatus, jqXHR) => {
+ $('#confirm2delete').modal('toggle');
+ theTable.clearPipeline();
+ theTable.row($(row)).invalidate().draw();
+ popSuccessAlert(data.msg ?? jqXHR.statusText);
+ }).fail((jqXHR, textStatus, errorThrown) => {
+ popErrorAlert(jqXHR.responseJSON.messages.error)
+ })
+ }
+ });
+
+
+ = $this->endSection() ?>
+
+ = $this->section('css') ?>
+
+ ">
+ ">
+ = $this->endSection() ?>
+
+
+ = $this->section('additionalExternalJs') ?>
+
+
+
+
+
+
+
+
+ = $this->endSection() ?>
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/tarifas/encuadernacion/viewTarifaEncuadernacionForm.php b/ci4/app/Views/themes/vuexy/form/tarifas/encuadernacion/viewTarifaEncuadernacionForm.php
index 2d3eb35b..134679e5 100644
--- a/ci4/app/Views/themes/vuexy/form/tarifas/encuadernacion/viewTarifaEncuadernacionForm.php
+++ b/ci4/app/Views/themes/vuexy/form/tarifas/encuadernacion/viewTarifaEncuadernacionForm.php
@@ -7,42 +7,41 @@
= $this->section("content") ?>
-
-
-
- = csrf_field() ?>
- = view("themes/_commonPartialsBs/_alertBoxes") ?>
- = !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
- = view("themes/vuexy/form/tarifas/encuadernacion/_tarifaEncuadernacionFormItems") ?>
-
- "
- />
- = anchor(route_to("tarifaEncuadernacionList"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start",]) ?>
-
-
-
+
-
-
+
+
-
+
@@ -52,27 +51,27 @@
| = lang('Tarifaencuadernacion.importeFijo') ?> |
|
-
+
-
+
-
+
-
+
= lang("TarifaEncuadernacionLineas.moduleExplanation") ?>
-
+
+
-
-
-
+
+
+
+
+
+
+ = view("themes/vuexy/components/forms/tarifa_maquinas", ["id" => "tarifa_maquina_component", "tarifaId" => $tarifaEncuadernacionEntity->id]) ?>
+
+
+
+
+
+
-
-
-
-
-
-
- = view("themes/vuexy/components/forms/tarifa_maquinas",["id" => "tarifa_maquina_component","tarifaId" => $tarifaEncuadernacionEntity->id ]) ?>
-
-
-
-
+
+
+
+
= view("themes/_commonPartialsBs/_modalConfirmDialog") ?>
@@ -151,772 +152,774 @@
= $this->section("additionalInlineJs") ?>
- const url = window.location.href;
- const url_parts = url.split('/');
- var id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
- id = url_parts[url_parts.length-1];
- }
- else{
- id = -1;
- }
+const url = window.location.href;
+const url_parts = url.split('/');
+var id = -1;
+if(url_parts[url_parts.length-2] == 'edit'){
+id = url_parts[url_parts.length-1];
+}
+else{
+id = -1;
+}
-
+
const actionBtns = function(data) {
- return `
-
-
-
- `;
+ return `
+
+
+
+ `;
};
// Delete row
$(document).on('click', '.btn-delete', function(e) {
- $(".btn-remove").attr('data-id', $(this).attr('data-id'));
- if($(this).closest('table').attr('id').includes('tiradas')){
- $(".btn-remove").attr('table', "tiradas");
- }
- else if($(this).closest('table').attr('id').includes('lineas')){
- $(".btn-remove").attr('table', "lineas");
- }
- else{
- $(".btn-remove").attr('table', );
- }
+ $(".btn-remove").attr('data-id', $(this).attr('data-id'));
+ if($(this).closest('table').attr('id').includes('tiradas')){
+ $(".btn-remove").attr('table', "tiradas");
+ }
+ else if($(this).closest('table').attr('id').includes('lineas')){
+ $(".btn-remove").attr('table', "lineas");
+ }
+ else{
+ $(".btn-remove").attr('table', );
+ }
});
var selected_tirada_id = -1;
-
- $(document).on('click', '.btn-remove', function(e) {
- const dataId = $(this).attr('data-id');
- const row = $(this).closest('tr');
- if ($.isNumeric(dataId)) {
- if($(this).attr('table').includes('tiradas')){
- remove_tiradas(dataId, row);
- }
- else if ($(this).attr('table').includes('lineasHoras')){
- remove_lineas_horas(dataId, row);
- }
- else{
- remove_lineas(dataId, row);
- }
- }
+ $(document).on('click', '.btn-remove', function(e) {
+ const dataId = $(this).attr('data-id');
+ const row = $(this).closest('tr');
+ if ($.isNumeric(dataId)) {
+
+ if($(this).attr('table').includes('tiradas')){
+ remove_tiradas(dataId, row);
+ }
+ else if ($(this).attr('table').includes('lineasHoras')){
+ remove_lineas_horas(dataId, row);
+ }
+ else{
+ remove_lineas(dataId, row);
+ }
+ }
});
function check_por_horas(){
- if($('#por_horas').is(':checked')){
- $('#accordionEncuadernacionLineasHoras').css("visibility", "visible");
- $('#accordionEncuadernacionLineas').css("visibility", "collapse");
- }
- else{
- $('#accordionEncuadernacionLineasHoras').css("visibility", "collapse");
- $('#accordionEncuadernacionLineas').css("visibility", "visible");
- }
+ if($('#por_horas').is(':checked')){
+ $('#accordionEncuadernacionLineasHoras').css("visibility", "visible");
+ $('#accordionEncuadernacionLineas').css("visibility", "collapse");
+ }
+ else{
+ $('#accordionEncuadernacionLineasHoras').css("visibility", "collapse");
+ $('#accordionEncuadernacionLineas').css("visibility", "visible");
+ }
}
check_por_horas()
$("#por_horas").change(function() {
- asyncConfirmDialog('= lang('Tarifaencuadernacion.sureToChange') ?>',
- '= lang('Tarifaencuadernacion.sureToChangePorHorasText') ?>', yesCallback, noCallback);
+ asyncConfirmDialog('= lang('Tarifaencuadernacion.sureToChange') ?>',
+ '= lang('Tarifaencuadernacion.sureToChangePorHorasText') ?>', yesCallback, noCallback);
});
function yesCallback() {
- check_por_horas()
- if($('#por_horas').is(':checked')){
-
- theTable.clearPipeline();
- theTable.draw();
+ check_por_horas()
+ if($('#por_horas').is(':checked')){
- $.ajax({
- url: '= route_to('dataTableOfTarifaEncuadernacionLineas') ?>',
- data: {
- cleandatatable: 1,
- tarifa_encuadernacion_id: id,
- = csrf_token() ?? "token" ?>: = csrf_token() ?>v,
- },
- method: 'POST',
- headers: {'X-Requested-With': 'XMLHttpRequest'},
- success:function(response){
- token = response.= csrf_token() ?>;
- yeniden(token);
+ theTable.clearPipeline();
+ theTable.draw();
- theTable3.clearPipeline();
- theTable3.draw();
-
- theTable.clearPipeline();
- theTable.draw();
- }
- });
-
- }else{
+ $.ajax({
+ url: '= route_to('dataTableOfTarifaEncuadernacionLineas') ?>',
+ data: {
+ cleandatatable: 1,
+ tarifa_encuadernacion_id: id,
+ = csrf_token() ?? "token" ?>: = csrf_token() ?>v,
+ },
+ method: 'POST',
+ headers: {'X-Requested-With': 'XMLHttpRequest'},
+ success:function(response){
+ token = response.= csrf_token() ?>;
+ yeniden(token);
- theTable3.clearPipeline();
- theTable3.draw();
+ theTable3.clearPipeline();
+ theTable3.draw();
- $.ajax({
- url: '= route_to('dataTableOfTarifaEncuadernacionLineasHoras') ?>',
- data: {
- cleandatatable: 1,
- tarifa_encuadernacion_id: id,
- = csrf_token() ?? "token" ?>: = csrf_token() ?>v,
- },
- method: 'POST',
- headers: {'X-Requested-With': 'XMLHttpRequest'},
- success:function(response){
-
- token=response.= csrf_token() ?>;
- yeniden(token);
+ theTable.clearPipeline();
+ theTable.draw();
+ }
+ });
- theTable3.clearPipeline();
- theTable3.draw();
-
- theTable.clearPipeline();
- theTable.draw();
- }
- });
- }
+ }else{
+
+ theTable3.clearPipeline();
+ theTable3.draw();
+
+ $.ajax({
+ url: '= route_to('dataTableOfTarifaEncuadernacionLineasHoras') ?>',
+ data: {
+ cleandatatable: 1,
+ tarifa_encuadernacion_id: id,
+ = csrf_token() ?? "token" ?>: = csrf_token() ?>v,
+ },
+ method: 'POST',
+ headers: {'X-Requested-With': 'XMLHttpRequest'},
+ success:function(response){
+
+ token=response.= csrf_token() ?>;
+ yeniden(token);
+
+ theTable3.clearPipeline();
+ theTable3.draw();
+
+ theTable.clearPipeline();
+ theTable.draw();
+ }
+ });
+ }
}
function noCallback() {
- // Toggle behaviour
- $('#por_horas').prop("checked", !$('#por_horas').prop("checked"));
+ // Toggle behaviour
+ $('#por_horas').prop("checked", !$('#por_horas').prop("checked"));
}
-
+
= $this->endSection() ?>
-
+
-
-
-
-= $this->section("additionalInlineJs") ?>
+
+
+
+ = $this->section("additionalInlineJs") ?>
const lastColNr3 = $('#tableOfTarifaencuadernacionlineasHoras').find("tr:first th").length - 1;
var editor3 = new $.fn.dataTable.Editor( {
- ajax: {
- url: "= route_to('editorOfTarifaEncuadernacionLineasHoras') ?>",
- headers: {
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
- },
- },
- table : "#tableOfTarifaencuadernacionlineasHoras",
- idSrc: 'id',
- fields: [
- {name: "id",
- "type": "readonly"},
- {
- name: "tiempo_min"
- }, {
- name: "tiempo_max"
- }, {
- name: "precio_hora"
- }, {
- name: "total_min"
- }, {
- name: "margen"
- }, {
- "name": "tirada_encuadernacion_id",
- "type": "hidden"
- },{
- "name": "deleted_at",
- "type": "hidden"
- },{
- "name": "is_deleted",
- "type": "hidden"
- },
- ]
+ ajax: {
+ url: "= route_to('editorOfTarifaEncuadernacionLineasHoras') ?>",
+ headers: {
+ = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
+ },
+ },
+ table : "#tableOfTarifaencuadernacionlineasHoras",
+ idSrc: 'id',
+ fields: [
+ {name: "id",
+ "type": "readonly"},
+ {
+ name: "tiempo_min"
+ }, {
+ name: "tiempo_max"
+ }, {
+ name: "precio_hora"
+ }, {
+ name: "total_min"
+ }, {
+ name: "margen"
+ }, {
+ "name": "tirada_encuadernacion_id",
+ "type": "hidden"
+ },{
+ "name": "deleted_at",
+ "type": "hidden"
+ },{
+ "name": "is_deleted",
+ "type": "hidden"
+ },
+ ]
} );
editor3.on( 'preSubmit', function ( e, d, type ) {
- if ( type === 'create'){
- d.data[0]['tirada_encuadernacion_id'] = selected_tirada_id;
- }
- else if(type === 'edit' ) {
- for (v in d.data){
- d.data[v]['tirada_encuadernacion_id'] = selected_tirada_id;
- }
- }
+ if ( type === 'create'){
+ d.data[0]['tirada_encuadernacion_id'] = selected_tirada_id;
+ }
+ else if(type === 'edit' ) {
+ for (v in d.data){
+ d.data[v]['tirada_encuadernacion_id'] = selected_tirada_id;
+ }
+ }
});
-
-
+
+
editor3.on( 'postSubmit', function ( e, json, data, action ) {
-
- yeniden(json.= csrf_token() ?>);
+
+ yeniden(json.= csrf_token() ?>);
});
editor3.on( 'submitSuccess', function ( e, json, data, action ) {
-
- theTable3.clearPipeline();
- theTable3.draw();
+
+ theTable3.clearPipeline();
+ theTable3.draw();
});
var theTable3 = $('#tableOfTarifaencuadernacionlineasHoras').DataTable( {
- draw:3,
- serverSide: true,
- processing: true,
- autoWidth: true,
- responsive: true,
- lengthMenu: [ 5, 10, 25],
- order: [[ 0, "asc" ], [ 1, "asc" ]],
- pageLength: 10,
- lengthChange: true,
- searching: false,
- paging: true,
- info: false,
- dom: '<"mt-4"><"float-end"B><"float-start"l><"mt-4 mb-3"p>',
- ajax : $.fn.dataTable.pipeline( {
- url: '= route_to('dataTableOfTarifaEncuadernacionLineasHoras') ?>',
- data: function ( d ) {
- d.tirada_id = selected_tirada_id;
- },
- method: 'POST',
- headers: {'X-Requested-With': 'XMLHttpRequest'},
- async: true,
- }),
- columns: [
- { 'data': 'id' },
- { 'data': 'tiempo_min' },
- { 'data': 'tiempo_max' },
- { 'data': 'precio_hora' },
- { 'data': 'total_min' },
- { 'data': 'margen' },
- {
- data: actionBtns,
- className: 'row-edit dt-center'
- }
- ],
- columnDefs: [
- {
- orderable: false,
- searchable: false,
- targets: [lastColNr3]
- },
- {"orderData": [ 0, 1 ], "targets": 0 },
+ draw:3,
+ serverSide: true,
+ processing: true,
+ autoWidth: true,
+ responsive: true,
+ lengthMenu: [ 5, 10, 25],
+ order: [[ 0, "asc" ], [ 1, "asc" ]],
+ pageLength: 10,
+ lengthChange: true,
+ searching: false,
+ paging: true,
+ info: false,
+ dom: '<"mt-4"><"float-end"B><"float-start"l>
+ <"mt-4 mb-3"p>',
+ ajax : $.fn.dataTable.pipeline( {
+ url: '= route_to('dataTableOfTarifaEncuadernacionLineasHoras') ?>',
+ data: function ( d ) {
+ d.tirada_id = selected_tirada_id;
+ },
+ method: 'POST',
+ headers: {'X-Requested-With': 'XMLHttpRequest'},
+ async: true,
+ }),
+ columns: [
+ { 'data': 'id' },
+ { 'data': 'tiempo_min' },
+ { 'data': 'tiempo_max' },
+ { 'data': 'precio_hora' },
+ { 'data': 'total_min' },
+ { 'data': 'margen' },
+ {
+ data: actionBtns,
+ className: 'row-edit dt-center'
+ }
+ ],
+ columnDefs: [
+ {
+ orderable: false,
+ searchable: false,
+ targets: [lastColNr3]
+ },
+ {"orderData": [ 0, 1 ], "targets": 0 },
- ],
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
- buttons: [
- {
- extend: 'collection',
- text: 'Exportar',
- buttons:[
- 'copy', 'csv', 'excel', 'print', {
+ ],
+ language: {
+ url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
+ },
+ buttons: [
+ {
+ extend: 'collection',
+ text: 'Exportar',
+ buttons:[
+ 'copy', 'csv', 'excel', 'print', {
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'A4'
- }
- ]
- },
- {
- className: 'btn btn-primary float-end me-sm-3 me-1',
- extend: "createInline",
- editor: editor3,
- formOptions: {
- submitTrigger: -1,
- submitHtml: ''
-
- },
- action: function ( e, dt, node, config ) {
- if(selected_tirada_id == -1){
+ }
+ ]
+ },
+ {
+ className: 'btn btn-primary float-end me-sm-3 me-1',
+ extend: "createInline",
+ editor: editor3,
+ formOptions: {
+ submitTrigger: -1,
+ submitHtml: ''
+
+ },
+ action: function ( e, dt, node, config ) {
+ if(selected_tirada_id == -1){
popErrorAlert("= lang('TarifaEncuadernacionLineas.validation.error_seleccion_tiradas') ?>");
- }
- else{
+ }
+ else{
formOptions= {
- submitTrigger: -1,
- submitHtml: ''
-
+ submitTrigger: -1,
+ submitHtml: ''
+
};
- editor3.inlineCreate(config.position, formOptions);
- }
- },
- }
- ]
- } );
-
-
- // Activate an inline edit on click of a table cell
- $('#tableOfTarifaencuadernacionlineasHoras').on( 'click', 'tbody span.edit', function (e) {
- editor3.inline(
- theTable3.cells(this.parentNode.parentNode, '*').nodes(),
- {
- cancelHtml: '',
- cancelTrigger: 'span.cancel',
- submitHtml: '',
- submitTrigger: 'span.edit',
- submit: 'allIfChanged'
- }
- );
- } );
-
- // Delete row
- function remove_lineas_horas(dataId, row){
-
- $.ajax({
- url: `/tarifas/tarifaencuadernacionlineashoras/delete/${dataId}`,
- method: 'GET',
- }).done((data, textStatus, jqXHR) => {
- $('#confirm2delete').modal('toggle');
- theTable3.clearPipeline();
- theTable3.row($(row)).invalidate().draw();
- popSuccessAlert(data.msg ?? jqXHR.statusText);
- }).fail((jqXHR, textStatus, errorThrown) => {
- popErrorAlert(jqXHR.responseJSON.messages.error)
- });
-
- }
-
-
-
-= $this->endSection() ?>
+ editor3.inlineCreate(config.position, formOptions);
+ }
+ },
+ }
+ ]
+ } );
-
-
-
-= $this->section("additionalInlineJs") ?>
+ // Activate an inline edit on click of a table cell
+ $('#tableOfTarifaencuadernacionlineasHoras').on( 'click', 'tbody span.edit', function (e) {
+ editor3.inline(
+ theTable3.cells(this.parentNode.parentNode, '*').nodes(),
+ {
+ cancelHtml: '',
+ cancelTrigger: 'span.cancel',
+ submitHtml: '',
+ submitTrigger: 'span.edit',
+ submit: 'allIfChanged'
+ }
+ );
+ } );
- const lastColNr = $('#tableOfTarifaencuadernacionlineas').find("tr:first th").length - 1;
+ // Delete row
+ function remove_lineas_horas(dataId, row){
- var editor = new $.fn.dataTable.Editor( {
- ajax: {
- url: "= route_to('editorOfTarifaEncuadernacionLineas') ?>",
- headers: {
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
- },
- },
- table : "#tableOfTarifaencuadernacionlineas",
- idSrc: 'id',
- fields: [
- {name: "id",
- "type": "readonly"},
- {
- name: "dimensiones_id",
- "type": "select"
- },
- {
- name: "paginas_libro_min"
- }, {
- name: "precio_min"
- }, {
- name: "paginas_libro_max"
- }, {
- name: "precio_max"
- }, {
- name: "total_min"
- }, {
- name: "margen"
- }, {
- "name": "tirada_encuadernacion_id",
- "type": "hidden"
- },{
- "name": "deleted_at",
- "type": "hidden"
- },{
- "name": "is_deleted",
- "type": "hidden"
- },
- ]
- } );
+ $.ajax({
+ url: `/tarifas/tarifaencuadernacionlineashoras/delete/${dataId}`,
+ method: 'GET',
+ }).done((data, textStatus, jqXHR) => {
+ $('#confirm2delete').modal('toggle');
+ theTable3.clearPipeline();
+ theTable3.row($(row)).invalidate().draw();
+ popSuccessAlert(data.msg ?? jqXHR.statusText);
+ }).fail((jqXHR, textStatus, errorThrown) => {
+ popErrorAlert(jqXHR.responseJSON.messages.error)
+ });
- // Generación de la lista de proveedores (id, nombre) para encuadernación
- const dimensionesList = ;
- editor.field( 'dimensiones_id' ).update( dimensionesList );
-
- editor.on( 'preSubmit', function ( e, d, type ) {
- if ( type === 'create'){
- d.data[0]['tirada_encuadernacion_id'] = selected_tirada_id;
- }
- else if(type === 'edit' ) {
- for (v in d.data){
- d.data[v]['tirada_encuadernacion_id'] = selected_tirada_id;
- }
- }
- });
-
-
- editor.on( 'postSubmit', function ( e, json, data, action ) {
-
- yeniden(json.= csrf_token() ?>);
- });
+ }
- editor.on( 'submitSuccess', function ( e, json, data, action ) {
-
- theTable.clearPipeline();
- theTable.draw();
- });
+
+ = $this->endSection() ?>
- var theTable = $('#tableOfTarifaencuadernacionlineas').DataTable( {
- draw:2,
- serverSide: true,
- processing: true,
- autoWidth: true,
- responsive: true,
- lengthMenu: [ 5, 10, 25],
- order: [[ 0, "asc" ], [ 1, "asc" ]],
- pageLength: 10,
- lengthChange: true,
- searching: false,
- paging: true,
- info: false,
- dom: '<"mt-4"><"float-end"B><"float-start"l><"mt-4 mb-3"p>',
- ajax : $.fn.dataTable.pipeline( {
- url: '= route_to('dataTableOfTarifaEncuadernacionLineas') ?>',
- data: function ( d ) {
- d.tirada_id = selected_tirada_id;
- },
- method: 'POST',
- headers: {'X-Requested-With': 'XMLHttpRequest'},
- async: true,
- }),
- columns: [
- { 'data': 'id' },
- { 'data': 'dimensiones_id',
- render: function(data, type, row, meta) {
- var value = dimensionesList.find(element => element.value === data);
- return value['label'];
- },
- },
- { 'data': 'paginas_libro_min' },
- { 'data': 'precio_max' },
- { 'data': 'paginas_libro_max' },
- { 'data': 'precio_min' },
- { 'data': 'total_min' },
- { 'data': 'margen' },
- {
- data: actionBtns,
- className: 'row-edit dt-center'
- }
- ],
- columnDefs: [
- {
- orderable: false,
- searchable: false,
- targets: [lastColNr]
- },
- {"orderData": [ 0, 1 ], "targets": 0 },
+
+
+
+ = $this->section("additionalInlineJs") ?>
- ],
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
- buttons: [
- {
- extend: 'collection',
- text: 'Exportar',
- buttons:[
- 'copy', 'csv', 'excel', 'print', {
- extend: 'pdfHtml5',
- orientation: 'landscape',
- pageSize: 'A4'
- }
- ]
- },
- {
- className: 'btn btn-primary float-end me-sm-3 me-1',
- extend: "createInline",
- editor: editor,
- formOptions: {
- submitTrigger: -1,
- submitHtml: ''
-
- },
- action: function ( e, dt, node, config ) {
- if(selected_tirada_id == -1){
- popErrorAlert("= lang('TarifaEncuadernacionLineas.validation.error_seleccion_tiradas') ?>");
- }
- else{
- formOptions= {
- submitTrigger: -1,
- submitHtml: ''
-
- };
- editor.inlineCreate(config.position, formOptions);
- }
- },
- }
- ]
- } );
+ const lastColNr = $('#tableOfTarifaencuadernacionlineas').find("tr:first th").length - 1;
-
- // Activate an inline edit on click of a table cell
- $('#tableOfTarifaencuadernacionlineas').on( 'click', 'tbody span.edit', function (e) {
- editor.inline(
- theTable.cells(this.parentNode.parentNode, '*').nodes(),
- {
- cancelHtml: '',
- cancelTrigger: 'span.cancel',
- submitHtml: '',
- submitTrigger: 'span.edit',
- submit: 'allIfChanged'
- }
- );
- } );
+ var editor = new $.fn.dataTable.Editor( {
+ ajax: {
+ url: "= route_to('editorOfTarifaEncuadernacionLineas') ?>",
+ headers: {
+ = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
+ },
+ },
+ table : "#tableOfTarifaencuadernacionlineas",
+ idSrc: 'id',
+ fields: [
+ {name: "id",
+ "type": "readonly"},
+ {
+ name: "dimensiones_id",
+ "type": "select"
+ },
+ {
+ name: "paginas_libro_min"
+ }, {
+ name: "precio_min"
+ }, {
+ name: "paginas_libro_max"
+ }, {
+ name: "precio_max"
+ }, {
+ name: "total_min"
+ }, {
+ name: "margen"
+ }, {
+ "name": "tirada_encuadernacion_id",
+ "type": "hidden"
+ },{
+ "name": "deleted_at",
+ "type": "hidden"
+ },{
+ "name": "is_deleted",
+ "type": "hidden"
+ },
+ ]
+ } );
- // Delete row
- function remove_lineas(dataId, row){
+ // Generación de la lista de proveedores (id, nombre) para encuadernación
+ const dimensionesList = ;
+ editor.field( 'dimensiones_id' ).update( dimensionesList );
- $.ajax({
- url: `/tarifas/tarifaencuadernacionlineas/delete/${dataId}`,
- method: 'GET',
- }).done((data, textStatus, jqXHR) => {
- $('#confirm2delete').modal('toggle');
- theTable.clearPipeline();
- theTable.row($(row)).invalidate().draw();
- popSuccessAlert(data.msg ?? jqXHR.statusText);
- }).fail((jqXHR, textStatus, errorThrown) => {
- popErrorAlert(jqXHR.responseJSON.messages.error)
- });
-
- }
-
-
-
-= $this->endSection() ?>
-
-
-
-
-= $this->section("additionalInlineJs") ?>
-
- // Definicion de la ultima columna de la tabla
- const lastColNr2 = $('#tableOfTarifaencuadernaciontiradas').find("tr:first th").length - 1;
-
-
- // Datatables Editor
- var editor2 = new $.fn.dataTable.Editor( {
- ajax: {
- url: "= route_to('editorOfTarifaEncuadernacionTiradas') ?>",
- headers: {
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
- },
- },
- table : "#tableOfTarifaencuadernaciontiradas",
- idSrc: 'id',
- fields: [ {
- name: "proveedor_id",
- "type": "select"
- }, {
- name: "tirada_min"
- }, {
- name: "tirada_max"
- }, {
- name: "importe_fijo"
- }, {
- "name": "tarifa_encuadernacion_id",
- "type": "hidden"
- },{
- name: "proveedor",
- "type": "hidden"
- }, {
- "name": "deleted_at",
- "type": "hidden"
- },{
- "name": "is_deleted",
- "type": "hidden"
- },
- ]
- } );
+ editor.on( 'preSubmit', function ( e, d, type ) {
+ if ( type === 'create'){
+ d.data[0]['tirada_encuadernacion_id'] = selected_tirada_id;
+ }
+ else if(type === 'edit' ) {
+ for (v in d.data){
+ d.data[v]['tirada_encuadernacion_id'] = selected_tirada_id;
+ }
+ }
+ });
- // Generación de la lista de proveedores (id, nombre) para encuadernación
- const suppliersList = ;
- editor2.field( 'proveedor_id' ).update( suppliersList );
+ editor.on( 'postSubmit', function ( e, json, data, action ) {
+
+ yeniden(json.= csrf_token() ?>);
+ });
- editor2.on( 'preSubmit', function ( e, d, type ) {
- if ( type === 'create'){
- d.data[0]['tarifa_encuadernacion_id'] = id;
- }
- else if(type === 'edit' ) {
- for (v in d.data){
- d.data[v]['tarifa_encuadernacion_id'] = id;
- }
- }
- });
-
-
- editor2.on( 'postSubmit', function ( e, json, data, action ) {
-
- yeniden(json.= csrf_token() ?>);
- });
+ editor.on( 'submitSuccess', function ( e, json, data, action ) {
+
+ theTable.clearPipeline();
+ theTable.draw();
+ });
- editor2.on( 'submitSuccess', function ( e, json, data, action ) {
-
- theTable2.clearPipeline();
- theTable2.draw();
- });
+ var theTable = $('#tableOfTarifaencuadernacionlineas').DataTable( {
+ draw:2,
+ serverSide: true,
+ processing: true,
+ autoWidth: true,
+ responsive: true,
+ lengthMenu: [ 5, 10, 25],
+ order: [[ 0, "asc" ], [ 1, "asc" ]],
+ pageLength: 10,
+ lengthChange: true,
+ searching: false,
+ paging: true,
+ info: false,
+ dom: '<"mt-4"><"float-end"B><"float-start"l>
+ <"mt-4 mb-3"p>',
+ ajax : $.fn.dataTable.pipeline( {
+ url: '= route_to('dataTableOfTarifaEncuadernacionLineas') ?>',
+ data: function ( d ) {
+ d.tirada_id = selected_tirada_id;
+ },
+ method: 'POST',
+ headers: {'X-Requested-With': 'XMLHttpRequest'},
+ async: true,
+ }),
+ columns: [
+ { 'data': 'id' },
+ { 'data': 'dimensiones_id',
+ render: function(data, type, row, meta) {
+ var value = dimensionesList.find(element => element.value === data);
+ return value['label'];
+ },
+ },
+ { 'data': 'paginas_libro_min' },
+ { 'data': 'precio_max' },
+ { 'data': 'paginas_libro_max' },
+ { 'data': 'precio_min' },
+ { 'data': 'total_min' },
+ { 'data': 'margen' },
+ {
+ data: actionBtns,
+ className: 'row-edit dt-center'
+ }
+ ],
+ columnDefs: [
+ {
+ orderable: false,
+ searchable: false,
+ targets: [lastColNr]
+ },
+ {"orderData": [ 0, 1 ], "targets": 0 },
+
+ ],
+ language: {
+ url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
+ },
+ buttons: [
+ {
+ extend: 'collection',
+ text: 'Exportar',
+ buttons:[
+ 'copy', 'csv', 'excel', 'print', {
+ extend: 'pdfHtml5',
+ orientation: 'landscape',
+ pageSize: 'A4'
+ }
+ ]
+ },
+ {
+ className: 'btn btn-primary float-end me-sm-3 me-1',
+ extend: "createInline",
+ editor: editor,
+ formOptions: {
+ submitTrigger: -1,
+ submitHtml: ''
+
+ },
+ action: function ( e, dt, node, config ) {
+ if(selected_tirada_id == -1){
+ popErrorAlert("= lang('TarifaEncuadernacionLineas.validation.error_seleccion_tiradas') ?>");
+ }
+ else{
+ formOptions= {
+ submitTrigger: -1,
+ submitHtml: ''
+
+ };
+ editor.inlineCreate(config.position, formOptions);
+ }
+ },
+ }
+ ]
+ } );
- // Tabla de tiradas
- var theTable2 = $('#tableOfTarifaencuadernaciontiradas').DataTable( {
- draw:1,
- serverSide: true,
- processing: true,
- autoWidth: true,
- responsive: true,
- lengthMenu: [ 5, 10, 25],
- order: [ 0, "asc" ],
- pageLength: 10,
- lengthChange: true,
- searching: false,
- paging: true,
- select: true,
- info: false,
- dom: '<"mt-4"><"float-end"B><"float-start"l><"mt-4 mb-3"p>',
- ajax : $.fn.dataTable.pipeline( {
- url: '= route_to('dataTableOfTarifaEncuadernacionTiradas') ?>',
- data: {
- id_tarifaencuadernacion: id,
- },
- method: 'POST',
- headers: {'X-Requested-With': 'XMLHttpRequest'},
- async: true,
- }),
- columns: [
- { 'data': 'proveedor_id',
- render: function(data, type, row, meta) {
- var value = suppliersList.find(element => element.value === data);
- return value['label'];
- },
- },
- { 'data': 'tirada_min' },
- { 'data': 'tirada_max' },
- { 'data': 'importe_fijo' },
- {
- data: actionBtns,
- className: 'row-edit dt-center'
- }
- ],
- columnDefs: [
- {
- orderable: false,
- searchable: false,
- targets: [lastColNr2]
- },
+ // Activate an inline edit on click of a table cell
+ $('#tableOfTarifaencuadernacionlineas').on( 'click', 'tbody span.edit', function (e) {
+ editor.inline(
+ theTable.cells(this.parentNode.parentNode, '*').nodes(),
+ {
+ cancelHtml: '',
+ cancelTrigger: 'span.cancel',
+ submitHtml: '',
+ submitTrigger: 'span.edit',
+ submit: 'allIfChanged'
+ }
+ );
+ } );
- ],
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
- buttons: [
- {
- extend: 'collection',
- text: 'Exportar',
- buttons:[
- 'copy', 'csv', 'excel', 'print', {
- extend: 'pdfHtml5',
- orientation: 'landscape',
- pageSize: 'A4'
- }
- ]
- },
- {
- className: 'btn btn-primary float-end me-sm-3 me-1',
- extend: "createInline",
- editor: editor2,
- formOptions: {
- submitTrigger: -1,
- submitHtml: ''
- }
- } ]
- } );
+ // Delete row
+ function remove_lineas(dataId, row){
+
+ $.ajax({
+ url: `/tarifas/tarifaencuadernacionlineas/delete/${dataId}`,
+ method: 'GET',
+ }).done((data, textStatus, jqXHR) => {
+ $('#confirm2delete').modal('toggle');
+ theTable.clearPipeline();
+ theTable.row($(row)).invalidate().draw();
+ popSuccessAlert(data.msg ?? jqXHR.statusText);
+ }).fail((jqXHR, textStatus, errorThrown) => {
+ popErrorAlert(jqXHR.responseJSON.messages.error)
+ });
+
+ }
- // Obtener la id de la fila seleccionada o ponerla a -1 cuando no haya ninguna seleccionada
- var selected_tirada_id = -1;
- theTable2.on( 'select', function ( e, dt, type, indexes ) {
- if ( type === 'row' ) {
-
- selected_tirada_id = parseInt(theTable2.rows( indexes ).data().pluck( 'id' )[0]);
- if($('#por_horas').is(':checked')){
- theTable3.clearPipeline();
- theTable3.draw();
- }
- else{
- theTable.clearPipeline();
- theTable.draw();
- }
- }
- } );
- theTable2.on( 'deselect', function ( e, dt, type, indexes ) {
- if ( theTable2.rows( '.selected' ).count() == 0 ) {
- selected_tirada_id = -1;
- if($('#por_horas').is(':checked')){
- theTable3.clearPipeline();
- theTable3.draw();
- }
- else{
- theTable.clearPipeline();
- theTable.draw();
- }
- }
- } );
+ = $this->endSection() ?>
-
- // Activate an inline edit on click of a table cell
- $('#tableOfTarifaencuadernaciontiradas').on( 'click', 'tbody span.edit', function (e) {
- editor2.inline(
- theTable2.cells(this.parentNode.parentNode, '*').nodes(),
- {
- cancelHtml: '',
- cancelTrigger: 'span.cancel',
- submitHtml: '',
- submitTrigger: 'span.edit',
- submit: 'allIfChanged'
- }
- );
- } );
+
+
+
+ = $this->section("additionalInlineJs") ?>
-
- // Delete row
- function remove_tiradas(dataId, row){
-
- $.ajax({
- url: `/tarifas/tarifaencuadernaciontiradas/delete/${dataId}`,
- method: 'GET',
- }).done((data, textStatus, jqXHR) => {
- $('#confirm2delete').modal('toggle');
- theTable2.clearPipeline();
- theTable2.row($(row)).invalidate().draw();
- theTable.clearPipeline();
- theTable.draw();
- popSuccessAlert(data.msg ?? jqXHR.statusText);
- }).fail((jqXHR, textStatus, errorThrown) => {
- popErrorAlert(jqXHR.statusText)
- });
- }
-
-= $this->endSection() ?>
-
-
-
-=$this->section('css') ?>
-
- ">
-=$this->endSection() ?>
+ // Definicion de la ultima columna de la tabla
+ const lastColNr2 = $('#tableOfTarifaencuadernaciontiradas').find("tr:first th").length - 1;
-= $this->section('additionalExternalJs') ?>
-
-
-
-
-
-
-
-
-
-=$this->endSection() ?>
+ // Datatables Editor
+ var editor2 = new $.fn.dataTable.Editor( {
+ ajax: {
+ url: "= route_to('editorOfTarifaEncuadernacionTiradas') ?>",
+ headers: {
+ = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
+ },
+ },
+ table : "#tableOfTarifaencuadernaciontiradas",
+ idSrc: 'id',
+ fields: [ {
+ name: "proveedor_id",
+ "type": "select"
+ }, {
+ name: "tirada_min"
+ }, {
+ name: "tirada_max"
+ }, {
+ name: "importe_fijo"
+ }, {
+ "name": "tarifa_encuadernacion_id",
+ "type": "hidden"
+ },{
+ name: "proveedor",
+ "type": "hidden"
+ }, {
+ "name": "deleted_at",
+ "type": "hidden"
+ },{
+ "name": "is_deleted",
+ "type": "hidden"
+ },
+ ]
+ } );
+
+ // Generación de la lista de proveedores (id, nombre) para encuadernación
+ const suppliersList = ;
+ editor2.field( 'proveedor_id' ).update( suppliersList );
+
+
+ editor2.on( 'preSubmit', function ( e, d, type ) {
+ if ( type === 'create'){
+ d.data[0]['tarifa_encuadernacion_id'] = id;
+ }
+ else if(type === 'edit' ) {
+ for (v in d.data){
+ d.data[v]['tarifa_encuadernacion_id'] = id;
+ }
+ }
+ });
+
+
+ editor2.on( 'postSubmit', function ( e, json, data, action ) {
+
+ yeniden(json.= csrf_token() ?>);
+ });
+
+
+ editor2.on( 'submitSuccess', function ( e, json, data, action ) {
+
+ theTable2.clearPipeline();
+ theTable2.draw();
+ });
+
+
+ // Tabla de tiradas
+ var theTable2 = $('#tableOfTarifaencuadernaciontiradas').DataTable( {
+ draw:1,
+ serverSide: true,
+ processing: true,
+ autoWidth: true,
+ responsive: true,
+ lengthMenu: [ 5, 10, 25],
+ order: [ 0, "asc" ],
+ pageLength: 10,
+ lengthChange: true,
+ searching: false,
+ paging: true,
+ select: true,
+ info: false,
+ dom: '<"mt-4"><"float-end"B><"float-start"l>
+ <"mt-4 mb-3"p>',
+ ajax : $.fn.dataTable.pipeline( {
+ url: '= route_to('dataTableOfTarifaEncuadernacionTiradas') ?>',
+ data: {
+ id_tarifaencuadernacion: id,
+ },
+ method: 'POST',
+ headers: {'X-Requested-With': 'XMLHttpRequest'},
+ async: true,
+ }),
+ columns: [
+ { 'data': 'proveedor_id',
+ render: function(data, type, row, meta) {
+ var value = suppliersList.find(element => element.value === data);
+ return value['label'];
+ },
+ },
+ { 'data': 'tirada_min' },
+ { 'data': 'tirada_max' },
+ { 'data': 'importe_fijo' },
+ {
+ data: actionBtns,
+ className: 'row-edit dt-center'
+ }
+ ],
+ columnDefs: [
+ {
+ orderable: false,
+ searchable: false,
+ targets: [lastColNr2]
+ },
+
+ ],
+ language: {
+ url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
+ },
+ buttons: [
+ {
+ extend: 'collection',
+ text: 'Exportar',
+ buttons:[
+ 'copy', 'csv', 'excel', 'print', {
+ extend: 'pdfHtml5',
+ orientation: 'landscape',
+ pageSize: 'A4'
+ }
+ ]
+ },
+ {
+ className: 'btn btn-primary float-end me-sm-3 me-1',
+ extend: "createInline",
+ editor: editor2,
+ formOptions: {
+ submitTrigger: -1,
+ submitHtml: ''
+ }
+ } ]
+ } );
+
+
+ // Obtener la id de la fila seleccionada o ponerla a -1 cuando no haya ninguna seleccionada
+ var selected_tirada_id = -1;
+ theTable2.on( 'select', function ( e, dt, type, indexes ) {
+ if ( type === 'row' ) {
+
+ selected_tirada_id = parseInt(theTable2.rows( indexes ).data().pluck( 'id' )[0]);
+ if($('#por_horas').is(':checked')){
+ theTable3.clearPipeline();
+ theTable3.draw();
+ }
+ else{
+ theTable.clearPipeline();
+ theTable.draw();
+ }
+ }
+ } );
+
+ theTable2.on( 'deselect', function ( e, dt, type, indexes ) {
+ if ( theTable2.rows( '.selected' ).count() == 0 ) {
+ selected_tirada_id = -1;
+ if($('#por_horas').is(':checked')){
+ theTable3.clearPipeline();
+ theTable3.draw();
+ }
+ else{
+ theTable.clearPipeline();
+ theTable.draw();
+ }
+ }
+ } );
+
+
+ // Activate an inline edit on click of a table cell
+ $('#tableOfTarifaencuadernaciontiradas').on( 'click', 'tbody span.edit', function (e) {
+ editor2.inline(
+ theTable2.cells(this.parentNode.parentNode, '*').nodes(),
+ {
+ cancelHtml: '',
+ cancelTrigger: 'span.cancel',
+ submitHtml: '',
+ submitTrigger: 'span.edit',
+ submit: 'allIfChanged'
+ }
+ );
+ } );
+
+
+ // Delete row
+ function remove_tiradas(dataId, row){
+
+ $.ajax({
+ url: `/tarifas/tarifaencuadernaciontiradas/delete/${dataId}`,
+ method: 'GET',
+ }).done((data, textStatus, jqXHR) => {
+ $('#confirm2delete').modal('toggle');
+ theTable2.clearPipeline();
+ theTable2.row($(row)).invalidate().draw();
+ theTable.clearPipeline();
+ theTable.draw();
+ popSuccessAlert(data.msg ?? jqXHR.statusText);
+ }).fail((jqXHR, textStatus, errorThrown) => {
+ popErrorAlert(jqXHR.statusText)
+ });
+ }
+
+ = $this->endSection() ?>
+
+
+
+ = $this->section('css') ?>
+
+ ">
+ = $this->endSection() ?>
+
+
+ = $this->section('additionalExternalJs') ?>
+
+
+
+
+
+
+
+
+
+ = $this->endSection() ?>
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/tarifas/manipulado/viewTarifaManipuladoForm.php b/ci4/app/Views/themes/vuexy/form/tarifas/manipulado/viewTarifaManipuladoForm.php
index 3603cdca..f07210b3 100644
--- a/ci4/app/Views/themes/vuexy/form/tarifas/manipulado/viewTarifaManipuladoForm.php
+++ b/ci4/app/Views/themes/vuexy/form/tarifas/manipulado/viewTarifaManipuladoForm.php
@@ -6,160 +6,163 @@
= $this->section("content") ?>
-
-
-
- = csrf_field() ?>
- = view("themes/_commonPartialsBs/_alertBoxes") ?>
- = !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
- = view("themes/vuexy/form/tarifas/manipulado/_tarifaManipuladoFormItems") ?>
-
- "
- />
- = anchor(route_to("tarifaManipuladoList"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start",]) ?>
-
-
-
-
+
+
+
+ = csrf_field() ?>
+ = view("themes/_commonPartialsBs/_alertBoxes") ?>
+ = !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
+ = view("themes/vuexy/form/tarifas/manipulado/_tarifaManipuladoFormItems") ?>
+
+ " />
+ = anchor(route_to("tarifaManipuladoList"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start",]) ?>
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
- = view("themes/vuexy/components/forms/tarifa_maquinas",["id" => "tarifa_maquina_component","tarifaId" => $tarifaManipuladoEntity->id ]) ?>
-
+
+
+
+
+
+
+
+
+ | = lang('TarifaManipuladoLineas.tiradaMin') ?> |
+ = lang('TarifaManipuladoLineas.precioMax') ?> |
+ = lang('TarifaManipuladoLineas.tiradaMax') ?> |
+ = lang('TarifaManipuladoLineas.precioMin') ?> |
+ = lang('TarifaManipuladoLineas.margen') ?> |
+ |
+
+
+
+
+
+
-
-= $this->endSection() ?>
-= $this->section("additionalExternalJs") ?>
-
-= $this->endSection() ?>
+
+
+
+
+
+
+
+ = view("themes/vuexy/components/forms/tarifa_maquinas", ["id" => "tarifa_maquina_component", "tarifaId" => $tarifaManipuladoEntity?->id]) ?>
+
+
+
+
+
+
+
+ = $this->endSection() ?>
+ = $this->section("additionalExternalJs") ?>
+
+ = $this->endSection() ?>
-= $this->section("additionalInlineJs") ?>
+ = $this->section("additionalInlineJs") ?>
- const lastColNr = $('#tableOfTarifamanipuladolineas').find("tr:first th").length - 1;
- const url = window.location.href;
- const url_parts = url.split('/');
- let id = -1;
- if(url_parts[url_parts.length-2] == 'edit'){
+ const lastColNr = $('#tableOfTarifamanipuladolineas').find("tr:first th").length - 1;
+ const url = window.location.href;
+ const url_parts = url.split('/');
+ let id = -1;
+ if(url_parts[url_parts.length-2] == 'edit'){
id = url_parts[url_parts.length-1];
- }
+ }
- const actionBtns = function(data) {
+ const actionBtns = function(data) {
return `
-
-
-
- `;
- };
+
+
+
+ `;
+ };
- editor = new $.fn.dataTable.Editor( {
+ editor = new $.fn.dataTable.Editor( {
ajax: {
- url: "= route_to('editorOfTarifaManipuladoLineas') ?>",
- headers: {
- = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
- },
+ url: "= route_to('editorOfTarifaManipuladoLineas') ?>",
+ headers: {
+ = csrf_token() ?? "token" ?> : = csrf_token() ?>v,
},
- table : "#tableOfTarifamanipuladolineas",
- idSrc: 'id',
+ },
+ table : "#tableOfTarifamanipuladolineas",
+ idSrc: 'id',
fields: [ {
- name: "tirada_min"
- }, {
- name: "precio_max"
- }, {
- name: "tirada_max"
- }, {
- name: "precio_min"
- }, {
- name: "margen"
- }, {
- "name": "tarifa_manipulado_id",
- "type": "hidden"
- },{
- "name": "deleted_at",
- "type": "hidden"
- },{
- "name": "is_deleted",
- "type": "hidden"
- },
+ name: "tirada_min"
+ }, {
+ name: "precio_max"
+ }, {
+ name: "tirada_max"
+ }, {
+ name: "precio_min"
+ }, {
+ name: "margen"
+ }, {
+ "name": "tarifa_manipulado_id",
+ "type": "hidden"
+ },{
+ "name": "deleted_at",
+ "type": "hidden"
+ },{
+ "name": "is_deleted",
+ "type": "hidden"
+ },
]
- } );
+ } );
- editor.on( 'preSubmit', function ( e, d, type ) {
+ editor.on( 'preSubmit', function ( e, d, type ) {
if ( type === 'create'){
- d.data[0]['tarifa_manipulado_id'] = id;
+ d.data[0]['tarifa_manipulado_id'] = id;
}
else if(type === 'edit' ) {
- for (v in d.data){
- d.data[v]['tarifa_manipulado_id'] = id;
- }
+ for (v in d.data){
+ d.data[v]['tarifa_manipulado_id'] = id;
}
- });
-
-
- editor.on( 'postSubmit', function ( e, json, data, action ) {
-
- yeniden(json.= csrf_token() ?>);
- });
+ }
+ });
+
+
+ editor.on( 'postSubmit', function ( e, json, data, action ) {
+
+ yeniden(json.= csrf_token() ?>);
+ });
+
+ editor.on( 'submitSuccess', function ( e, json, data, action ) {
- editor.on( 'submitSuccess', function ( e, json, data, action ) {
-
theTable.clearPipeline();
theTable.draw();
- });
+ });
- var theTable = $('#tableOfTarifamanipuladolineas').DataTable( {
- serverSide: true,
+ var theTable = $('#tableOfTarifamanipuladolineas').DataTable( {
+ serverSide: true,
processing: true,
autoWidth: true,
responsive: true,
@@ -167,149 +170,148 @@
order: [[ 0, "asc" ], [ 1, "asc" ]],
pageLength: 10,
lengthChange: true,
- searching: false,
- paging: true,
+ searching: false,
+ paging: true,
info: false,
dom: '<"mt-4"><"float-end"B><"float-start"l>
<"mt-4 mb-3"p>',
- ajax : $.fn.dataTable.pipeline( {
- url: '= route_to('dataTableOfTarifaManipuladoLineas') ?>',
- data: {
- id_tarifamanipulado: id,
- },
- method: 'POST',
- headers: {'X-Requested-With': 'XMLHttpRequest'},
- async: true,
- }),
- columns: [
- { 'data': 'tirada_min' },
- { 'data': 'precio_max' },
- { 'data': 'tirada_max' },
- { 'data': 'precio_min' },
- { 'data': 'margen' },
- {
- data: actionBtns,
- className: 'row-edit dt-center'
- }
- ],
- columnDefs: [
- {
- orderable: false,
- searchable: false,
- targets: [lastColNr]
- },
- {"orderData": [ 0, 1 ], "targets": 0 },
+ ajax : $.fn.dataTable.pipeline( {
+ url: '= route_to('dataTableOfTarifaManipuladoLineas') ?>',
+ data: {
+ id_tarifamanipulado: id,
+ },
+ method: 'POST',
+ headers: {'X-Requested-With': 'XMLHttpRequest'},
+ async: true,
+ }),
+ columns: [
+ { 'data': 'tirada_min' },
+ { 'data': 'precio_max' },
+ { 'data': 'tirada_max' },
+ { 'data': 'precio_min' },
+ { 'data': 'margen' },
+ {
+ data: actionBtns,
+ className: 'row-edit dt-center'
+ }
+ ],
+ columnDefs: [
+ {
+ orderable: false,
+ searchable: false,
+ targets: [lastColNr]
+ },
+ {"orderData": [ 0, 1 ], "targets": 0 },
- ],
- language: {
- url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
- },
- buttons: [
- {
- extend: 'collection',
- text: 'Exportar',
- buttons:[
- 'copy', 'csv', 'excel', 'print', {
- extend: 'pdfHtml5',
- orientation: 'landscape',
- pageSize: 'A4'
- }
- ]
- },
- {
- className: 'btn btn-primary float-end me-sm-3 me-1',
- extend: "createInline",
- editor: editor,
- formOptions: {
- submitTrigger: -1,
- submitHtml: ''
- }
- } ]
- } );
-
-
-
- // Activate an inline edit on click of a table cell
- $('#tableOfTarifamanipuladolineas').on( 'click', 'tbody span.edit', function (e) {
- editor.inline(
- theTable.cells(this.parentNode.parentNode, '*').nodes(),
- {
- cancelHtml: '',
- cancelTrigger: 'span.cancel',
- submitHtml: '',
- submitTrigger: 'span.edit',
- submit: 'allIfChanged'
- }
- );
- } );
-
-
- // Delete row
- $('#tableOfTarifamanipuladolineas').on( 'click', 'tbody span.remove', function (e) {
-
- Swal.fire({
- title: '= lang('Basic.global.sweet.sureToDeleteTitle', [mb_strtolower(lang('Basic.global.sweet.line'))]) ?>',
- text: '= lang('Basic.global.sweet.sureToDeleteText') ?>',
- icon: 'warning',
- showCancelButton: true,
- confirmButtonColor: '#3085d6',
- confirmButtonText: '= lang('Basic.global.sweet.deleteConfirmationButton') ?>',
- cancelButtonText: '= lang('Basic.global.Cancel') ?>',
- cancelButtonColor: '#d33'
- })
- .then((result) => {
- const dataId = $(this).data('id');
- const row = $(this).closest('tr');
- if (result.value) {
- editor
- .create( false )
- .edit( this.parentNode, false)
- .set( 'deleted_at', new Date().toISOString().slice(0, 19).replace('T', ' ') )
- .set( 'is_deleted', 1 )
- .submit();
-
- }
- });
- });
+ ],
+ language: {
+ url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
+ },
+ buttons: [
+ {
+ extend: 'collection',
+ text: 'Exportar',
+ buttons:[
+ 'copy', 'csv', 'excel', 'print', {
+ extend: 'pdfHtml5',
+ orientation: 'landscape',
+ pageSize: 'A4'
+ }
+ ]
+ },
+ {
+ className: 'btn btn-primary float-end me-sm-3 me-1',
+ extend: "createInline",
+ editor: editor,
+ formOptions: {
+ submitTrigger: -1,
+ submitHtml: ''
+ }
+ } ]
+ } );
- // Delete row
- $(document).on('click', '.btn-delete', function(e) {
- $(".btn-remove").attr('data-id', $(this).attr('data-id'));
- });
- $(document).on('click', '.btn-remove', function(e) {
- const dataId = $(this).attr('data-id');
- const row = $(this).closest('tr');
- if ($.isNumeric(dataId)) {
- $.ajax({
- url: `/tarifas/tarifamanipuladolineas/delete/${dataId}`,
- method: 'GET',
- }).done((data, textStatus, jqXHR) => {
- $('#confirm2delete').modal('toggle');
- theTable.clearPipeline();
- theTable.row($(row)).invalidate().draw();
- popSuccessAlert(data.msg ?? jqXHR.statusText);
- }).fail((jqXHR, textStatus, errorThrown) => {
- popErrorAlert(jqXHR.responseJSON.messages.error)
- })
- }
- });
-= $this->endSection() ?>
-
-=$this->section('css') ?>
-
- ">
-=$this->endSection() ?>
+ // Activate an inline edit on click of a table cell
+ $('#tableOfTarifamanipuladolineas').on( 'click', 'tbody span.edit', function (e) {
+ editor.inline(
+ theTable.cells(this.parentNode.parentNode, '*').nodes(),
+ {
+ cancelHtml: '',
+ cancelTrigger: 'span.cancel',
+ submitHtml: '',
+ submitTrigger: 'span.edit',
+ submit: 'allIfChanged'
+ }
+ );
+ } );
-= $this->section('additionalExternalJs') ?>
-
-
-
-
-
-
-
-
-=$this->endSection() ?>
+ // Delete row
+ $('#tableOfTarifamanipuladolineas').on( 'click', 'tbody span.remove', function (e) {
+ Swal.fire({
+ title: '= lang('Basic.global.sweet.sureToDeleteTitle', [mb_strtolower(lang('Basic.global.sweet.line'))]) ?>',
+ text: '= lang('Basic.global.sweet.sureToDeleteText') ?>',
+ icon: 'warning',
+ showCancelButton: true,
+ confirmButtonColor: '#3085d6',
+ confirmButtonText: '= lang('Basic.global.sweet.deleteConfirmationButton') ?>',
+ cancelButtonText: '= lang('Basic.global.Cancel') ?>',
+ cancelButtonColor: '#d33'
+ })
+ .then((result) => {
+ const dataId = $(this).data('id');
+ const row = $(this).closest('tr');
+ if (result.value) {
+ editor
+ .create( false )
+ .edit( this.parentNode, false)
+ .set( 'deleted_at', new Date().toISOString().slice(0, 19).replace('T', ' ') )
+ .set( 'is_deleted', 1 )
+ .submit();
+
+ }
+ });
+ });
+
+
+ // Delete row
+ $(document).on('click', '.btn-delete', function(e) {
+ $(".btn-remove").attr('data-id', $(this).attr('data-id'));
+ });
+
+ $(document).on('click', '.btn-remove', function(e) {
+ const dataId = $(this).attr('data-id');
+ const row = $(this).closest('tr');
+ if ($.isNumeric(dataId)) {
+ $.ajax({
+ url: `/tarifas/tarifamanipuladolineas/delete/${dataId}`,
+ method: 'GET',
+ }).done((data, textStatus, jqXHR) => {
+ $('#confirm2delete').modal('toggle');
+ theTable.clearPipeline();
+ theTable.row($(row)).invalidate().draw();
+ popSuccessAlert(data.msg ?? jqXHR.statusText);
+ }).fail((jqXHR, textStatus, errorThrown) => {
+ popErrorAlert(jqXHR.responseJSON.messages.error)
+ })
+ }
+ });
+ = $this->endSection() ?>
+
+ = $this->section('css') ?>
+
+ ">
+ = $this->endSection() ?>
+
+
+ = $this->section('additionalExternalJs') ?>
+
+
+
+
+
+
+
+
+ = $this->endSection() ?>
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/form/tarifas/preimpresion/viewTarifapreimpresionForm.php b/ci4/app/Views/themes/vuexy/form/tarifas/preimpresion/viewTarifapreimpresionForm.php
index ff1ac32a..a3f3f0dc 100644
--- a/ci4/app/Views/themes/vuexy/form/tarifas/preimpresion/viewTarifapreimpresionForm.php
+++ b/ci4/app/Views/themes/vuexy/form/tarifas/preimpresion/viewTarifapreimpresionForm.php
@@ -1,4 +1,5 @@
= $this->include("themes/_commonPartialsBs/select2bs5") ?>
+= $this->include("themes/_commonPartialsBs/datatables") ?>
= $this->include("themes/_commonPartialsBs/sweetalert") ?>
= $this->extend('themes/vuexy/main/defaultlayout') ?>
= $this->section("content") ?>
@@ -26,21 +27,6 @@
-
-
-
-
-
- = view("themes/vuexy/components/forms/tarifa_maquinas", ["id" => "tarifa_maquina_component", "tarifaId" => $tarifapreimpresionEntity->id]) ?>
-
-
-
-
-= $this->endSection() ?>
-= $this->section("additionalExternalJs") ?>
-
+
+
= $this->endSection() ?>
\ No newline at end of file
diff --git a/ci4/app/Views/themes/vuexy/main/menus/configuracion_menu.php b/ci4/app/Views/themes/vuexy/main/menus/configuracion_menu.php
index b362bc6a..5fe14fba 100644
--- a/ci4/app/Views/themes/vuexy/main/menus/configuracion_menu.php
+++ b/ci4/app/Views/themes/vuexy/main/menus/configuracion_menu.php
@@ -63,6 +63,13 @@ if (
+ user()->inGroup('admin') || auth()->user()->inGroup('beta')) { ?>
+
+
user()->can('usuarios.menu')) { ?>
- user()->inGroup('admin') || auth()->user()->inGroup('beta')) { ?>
-
-
+
user()->inGroup('admin') || auth()->user()->inGroup('beta')) { ?>