diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
index b5c190a7..f0e9a459 100644
--- a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
@@ -81,12 +81,9 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
public function add($tipo_impresion_id = null)
{
-
-
-
if ($this->request->getPost()):
- $nullIfEmpty = true; // !(phpversion() >= '8.1');
+ $nullIfEmpty = false; // !(phpversion() >= '8.1');
$postData = $this->request->getPost();
@@ -149,7 +146,7 @@ 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['POD'] = $this->getPOD();
$this->viewData['formAction'] = route_to('createPresupuestoAdmin', $tipo_impresion_id);
@@ -497,8 +494,10 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$data['comparador']['tipo_impresion'] = $presupuesto->comp_tipo_impresion;
$data['comparador']['json_data'] = json_decode($presupuesto->comparador_json_data, true);
- foreach ($data['comparador']['json_data'] as &$item) {
- $item['papel_nombre'] = $modelPapelGenerico->getNombre($item['papel_id'])['nombre'];
+ if ($data['comparador']['json_data'] != null) {
+ foreach ($data['comparador']['json_data'] as &$item) {
+ $item['papel_nombre'] = $modelPapelGenerico->getNombre($item['papel_id'])['nombre'];
+ }
}
$data['comparador']['posPagColor'] = $presupuesto->comp_pos_paginas_color;
$data['comparador']['lomoRedondo'] = $presupuesto->lomo_redondo;
@@ -534,9 +533,9 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$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) :
+ $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;
@@ -546,9 +545,9 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$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){
+ if ($presupuesto->estado_id == 2) {
$data['resumen']['total_aceptado'] = $presupuesto->total_aceptado;
- }
+ }
return $this->respond([
'status' => 1,
'data' => $data
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
index 7fbe790b..4b8ee670 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
@@ -388,10 +388,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$guardas = PresupuestoClienteService::obtenerGuardas($input_data);
- foreach ($guardas as $linea) {
- if (count($linea) > 0) {
- $lomo += floatval($linea['mano']);
- }
+ if ($guardas != null && count($guardas) > 0) {
+ $lomo += floatval($guardas['mano']);
}
}
}
@@ -429,238 +427,251 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
}
- public function calcular()
+ public function calcular($data = -1)
{
- if ($this->request->isAJAX()) {
-
- try {
-
+ if ($this->request) {
+ if ($this->request->isAJAX())
$reqData = $this->request->getPost();
- $modelPapelGenerico = new PapelGenericoModel();
+ } else {
+ if ($data == -1) {
+ return "Error: sin datos";
+ }
+ $reqData = $data;
+ }
+
+ try {
+
+ $reqData = $this->request->getPost();
+ $modelPapelGenerico = new PapelGenericoModel();
- $id = $reqData['id'] ?? 0;
+ $id = $reqData['id'] ?? 0;
- $cliente_id = $reqData['clienteId'] ?? -1;
+ $cliente_id = $reqData['clienteId'] ?? -1;
- $tirada = $reqData['tirada'] ?? 0;
- $selectedTirada = $reqData['selectedTirada'] ?? -1;
- $tamanio = $reqData['tamanio'];
- $paginas = $reqData['paginas'] ?? 0;
- $paginas_color = $reqData['paginasColor'] ?? 0;
- $tipo = $reqData['tipo'];
+ $tirada = $reqData['tirada'] ?? 0;
+ $selectedTirada = $reqData['selectedTirada'] ?? -1;
+ $tamanio = $reqData['tamanio'];
+ $paginas = $reqData['paginas'] ?? 0;
+ $paginas_color = $reqData['paginasColor'] ?? 0;
+ $tipo = $reqData['tipo'];
- $paginasCuadernillo = $reqData['paginasCuadernillo'] ?? null;
- $papelInteriorDiferente = intval($reqData['papelInteriorDiferente']) ?? null;
+ $paginasCuadernillo = $reqData['paginasCuadernillo'] ?? null;
+ $papelInteriorDiferente = intval($reqData['papelInteriorDiferente']) ?? null;
- $isColor = intval($reqData['isColor']) ?? 0;
- $isHq = intval($reqData['isHq']) ?? 0;
+ $isColor = intval($reqData['isColor']) ?? 0;
+ $isHq = intval($reqData['isHq']) ?? 0;
- $interior = $reqData['interior'] ?? [];
- $cubierta = $reqData['cubierta'] ?? [];
- $sobrecubierta = $reqData['sobrecubierta'] ?? [];
- $guardas = $reqData['guardas'] ?? [];
- $faja = $reqData['faja'] ?? [];
- $excluirRotativa = $reqData['excluirRotativa'] ?? 0;
- $excluirRotativa = intval($excluirRotativa);
+ $interior = $reqData['interior'] ?? [];
+ $cubierta = $reqData['cubierta'] ?? [];
+ $sobrecubierta = $reqData['sobrecubierta'] ?? [];
+ $guardas = $reqData['guardas'] ?? [];
+ $faja = $reqData['faja'] ?? [];
+ $excluirRotativa = $reqData['excluirRotativa'] ?? 0;
+ $excluirRotativa = intval($excluirRotativa);
- $direcciones = $reqData['direcciones'] ?? [];
+ $direcciones = $reqData['direcciones'] ?? [];
- $tipo_impresion_id = $this->getTipoImpresion($tipo, $cubierta['tipoCubierta']);
- $lomoRedondo = $cubierta['lomoRedondo'] ?? 0;
+ $tipo_impresion_id = $this->getTipoImpresion($tipo, $cubierta['tipoCubierta']);
+ $lomoRedondo = $cubierta['lomoRedondo'] ?? 0;
- if ($papelInteriorDiferente) {
- $papel['negro'] = $modelPapelGenerico->where('id', $interior['papelInterior']['negro'])->first()->toArray();
- $papel['color'] = $modelPapelGenerico->where('id', $interior['papelInterior']['color'])->first()->toArray();
- $gramaje['negro'] = intval($interior['gramajeInterior']['negro']);
- $gramaje['color'] = intval($interior['gramajeInterior']['color']);
- } else {
- $papel = $modelPapelGenerico->where('id', $interior['papelInterior'])->first()->toArray();
- $gramaje = intval($interior['gramajeInterior']);
+ if ($papelInteriorDiferente) {
+ $papel['negro'] = $modelPapelGenerico->where('id', $interior['papelInterior']['negro'])->first()->toArray();
+ $papel['color'] = $modelPapelGenerico->where('id', $interior['papelInterior']['color'])->first()->toArray();
+ $gramaje['negro'] = intval($interior['gramajeInterior']['negro']);
+ $gramaje['color'] = intval($interior['gramajeInterior']['color']);
+ } else {
+ $papel = $modelPapelGenerico->where('id', $interior['papelInterior'])->first()->toArray();
+ $gramaje = intval($interior['gramajeInterior']);
+ }
+ // Interior
+ $interior = [
+ 'papel_generico' => $papel,
+ 'gramaje' => $gramaje,
+ 'excluirRotativa' => $excluirRotativa,
+ 'paginas' => $paginas,
+ 'paginas_color' => $paginas_color,
+ 'papelInteriorDiferente' => $papelInteriorDiferente
+ ];
+
+
+ // Cubierta
+ $cubierta = [
+ 'papel_generico_cubierta' => $modelPapelGenerico->where('id', $cubierta['papelCubierta'])->first()->toArray(),
+ 'gramajeCubierta' => intval($cubierta['gramajeCubierta']),
+ 'carasCubierta' => intval($cubierta['carasImpresion'] ?? 0),
+ 'solapasCubierta' => intval($cubierta['solapas'] ?? 0) == 1 ? intval($cubierta['tamanioSolapas']) : 0,
+ 'acabado' => $cubierta['acabado'] ?? 0,
+ 'lomoRedondo' => $lomoRedondo,
+ ];
+
+ // Sobrecubierta
+ if ($sobrecubierta != "false" && $sobrecubierta != null) {
+ $sobrecubierta = [
+ 'papel' => $modelPapelGenerico->getIdFromCode($sobrecubierta['papel']),
+ 'gramaje' => intval($sobrecubierta['gramaje']),
+ 'solapas' => intval($sobrecubierta['solapas'] ?? 0),
+ 'acabado' => $sobrecubierta['acabado'] ?? 0,
+ ];
+ } else
+ $sobrecubierta = false;
+
+ // Guardas
+ if ($guardas != "false" && $guardas != null) {
+ $datos_guardas = [
+ 'papel' => $modelPapelGenerico->getIdFromCode($guardas['papel']),
+ 'gramaje' => intval($guardas['gramaje']),
+ 'caras' => intval($guardas['caras']),
+ ];
+ } else
+ $datos_guardas = false;
+
+ $datos_presupuesto = array(
+ 'id' => $id,
+ 'tirada' => $tirada,
+ 'tamanio' => $tamanio,
+ 'tipo_impresion_id' => $tipo_impresion_id,
+ 'clienteId' => $cliente_id,
+ 'isColor' => $isColor,
+ 'isHq' => $isHq,
+ 'paginasCuadernillo' => $paginasCuadernillo,
+
+ 'interior' => $interior,
+ 'cubierta' => $cubierta,
+ 'sobrecubierta' => $sobrecubierta,
+ 'datos_guardas' => $datos_guardas,
+
+ 'servicios' => $reqData['servicios'] ?? [],
+ );
+
+ $return_data = $this->calcular_presupuesto($datos_presupuesto, 0, false); //TRUE FOR DEBUG
+ if (array_key_exists('errors', $return_data)) {
+ if ($return_data['errors']->status == 1) {
+ $return_data = [
+ 'errors' => (object) ([
+ 'status' => 1
+ ]),
+ ];
+ return $return_data;
}
- // Interior
- $interior = [
- 'papel_generico' => $papel,
- 'gramaje' => $gramaje,
- 'excluirRotativa' => $excluirRotativa,
- 'paginas' => $paginas,
- 'paginas_color' => $paginas_color,
- 'papelInteriorDiferente' => $papelInteriorDiferente
- ];
+ }
+ if (array_key_exists('exception', $return_data)) {
+ return $this->failServerError(
+ $return_data['exception'] . ' - ' .
+ $return_data['file'] . ' - ' . $return_data['line']
+ );
+ }
- // Cubierta
- $cubierta = [
- 'papel_generico_cubierta' => $modelPapelGenerico->where('id', $cubierta['papelCubierta'])->first()->toArray(),
- 'gramajeCubierta' => intval($cubierta['gramajeCubierta']),
- 'carasCubierta' => intval($cubierta['carasImpresion'] ?? 0),
- 'solapasCubierta' => intval($cubierta['solapas'] ?? 0) == 1 ? intval($cubierta['tamanioSolapas']) : 0,
- 'acabado' => $cubierta['acabado'] ?? 0,
- 'lomoRedondo' => $lomoRedondo,
- ];
-
- // Sobrecubierta
- if ($sobrecubierta != "false" && $sobrecubierta != null) {
- $sobrecubierta = [
- 'papel' => $modelPapelGenerico->getIdFromCode($sobrecubierta['papel']),
- 'gramaje' => intval($sobrecubierta['gramaje']),
- 'solapas' => intval($sobrecubierta['solapas'] ?? 0),
- 'acabado' => $sobrecubierta['acabado'] ?? 0,
- ];
- } else
- $sobrecubierta = false;
-
- // Guardas
- if ($guardas != "false" && $guardas != null) {
- $datos_guardas = [
- 'papel' => $modelPapelGenerico->getIdFromCode($guardas['papel']),
- 'gramaje' => intval($guardas['gramaje']),
- 'caras' => intval($guardas['caras']),
- ];
- } else
- $datos_guardas = false;
-
- $datos_presupuesto = array(
- 'id' => $id,
- 'tirada' => $tirada,
- 'tamanio' => $tamanio,
- 'tipo_impresion_id' => $tipo_impresion_id,
- 'clienteId' => $cliente_id,
- 'isColor' => $isColor,
- 'isHq' => $isHq,
- 'paginasCuadernillo' => $paginasCuadernillo,
-
- 'interior' => $interior,
- 'cubierta' => $cubierta,
- 'sobrecubierta' => $sobrecubierta,
- 'datos_guardas' => $datos_guardas,
-
- 'servicios' => $reqData['servicios'] ?? [],
+ // calculo del envio base (tirada_maxima)
+ $return_data['eb'] = [];
+ for ($i = 0; $i < count($tirada); $i++) {
+ $direccion = [];
+ $coste_direccion = $this->getCosteEnvio(
+ $direccion,
+ $return_data['peso'][$i],
+ $tirada[$i],
+ false,
+ true
);
- $return_data = $this->calcular_presupuesto($datos_presupuesto, 0, false); //TRUE FOR DEBUG
- if (array_key_exists('errors', $return_data)) {
- if ($return_data['errors']->status == 1) {
- $return_data = [
- 'errors' => (object) ([
- 'status' => 1
- ]),
- ];
- return $return_data;
- }
- }
-
- if (array_key_exists('exception', $return_data)) {
- return $this->failServerError(
- $return_data['exception'] . ' - ' .
- $return_data['file'] . ' - ' . $return_data['line']
+ if (!property_exists($coste_direccion, 'coste')) {
+ $errorModel = new ErrorPresupuesto();
+ $data['direccion'] = 'Sin direccion';
+ $data['peso'] = $return_data['peso'][$i];
+ $data['palets'] = 'Sin direccion';
+ $errorModel->insertError(
+ $id,
+ auth()->user()->id,
+ 'No se ha podido calcular el coste de envío',
+ $data
);
- }
-
- // calculo del envio base (tirada_maxima)
- $return_data['eb'] = [];
- for ($i = 0; $i < count($tirada); $i++) {
- $direccion = [];
- $coste_direccion = $this->getCosteEnvio(
- $direccion,
- $return_data['peso'][$i],
- $tirada[$i],
- false,
- true
- );
-
- if (!property_exists($coste_direccion, 'coste')) {
- $errorModel = new ErrorPresupuesto();
- $data['direccion'] = 'Sin direccion';
- $data['peso'] = $return_data['peso'][$i];
- $data['palets'] = 'Sin direccion';
- $errorModel->insertError(
- $id,
- auth()->user()->id,
- 'No se ha podido calcular el coste de envío',
- $data
- );
- $return_data = [
- 'errors' => (object) ([
- 'status' => 1
- ]),
- ];
- return $return_data;
- } else {
- $return_data['eb'][$i] = round($coste_direccion->coste, 2);
- }
- }
-
-
- $envio_base = true;
- if (count($direcciones) > 0) {
-
- for ($i = 0; $i < count($tirada); $i++) {
- $coste_envio = 0.0;
- foreach ($direcciones as $direccion) {
- // El primer envio no se calcula ya que se añade el base
- if ($envio_base) {
- //aporte del envio al precio unidad
- $coste_envio += ($return_data['eb'][$i] / $tirada[$i]);
- $envio_base = false;
- continue;
- }
- if($selectedTirada > 0){
- $unidades = floor($direccion['unidades'] * $tirada[$i] / $selectedTirada);
- }
- else{
- $unidades = $direccion['unidades'];
- }
- $coste_direccion = $this->getCosteEnvio(
- $direccion['direccion'],
- $return_data['peso'][$i],
- $unidades,
- $direccion['entregaPalets'] == 'true' ? 1 : 0,
- false,
- );
-
- if (!property_exists($coste_direccion, 'coste')) {
-
- $errorModel = new ErrorPresupuesto();
- $data['direccion'] = $direccion;
- $data['peso'] = $return_data['peso'][$i];
- $data['palets'] = $direccion['entregaPalets'] == 'true' ? 1 : 0;
- $errorModel->insertError(
- $id,
- auth()->user()->id,
- 'No se ha podido calcular el coste de envío',
- $data
- );
- $return_data = [
- 'errors' => (object) ([
- 'status' => 1
- ]),
- ];
- return $return_data;
- } else {
- //aporte del envio al precio unidad
- $coste_envio += ($coste_direccion->coste / $tirada[$i]);
- }
- }
- $return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio, 4);
- }
+ $return_data = [
+ 'errors' => (object) ([
+ 'status' => 1
+ ]),
+ ];
+ return $return_data;
} else {
- for ($i = 0; $i < count($tirada); $i++) {
- $coste_envio = 0.0;
- $coste_envio += ($return_data['eb'][$i] / $tirada[$i]);
- $return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio, 4);
- }
+ $return_data['eb'][$i] = round($coste_direccion->coste, 2);
}
-
-
-
- return $this->respond($return_data);
- } catch (Exception $e) {
- return $this->failServerError($e->getMessage() . ' - ' . $e->getFile() . ' - ' . $e->getLine());
}
- } else {
- return $this->failUnauthorized('Invalid request', 403);
+
+
+ $envio_base = true;
+ if (count($direcciones) > 0) {
+
+ for ($i = 0; $i < count($tirada); $i++) {
+ $coste_envio = 0.0;
+ foreach ($direcciones as $direccion) {
+ // El primer envio no se calcula ya que se añade el base
+ if ($envio_base) {
+ //aporte del envio al precio unidad
+ $coste_envio += ($return_data['eb'][$i] / $tirada[$i]);
+ $envio_base = false;
+ continue;
+ }
+ if ($selectedTirada > 0) {
+ $unidades = floor($direccion['unidades'] * $tirada[$i] / $selectedTirada);
+ } else {
+ $unidades = $direccion['unidades'];
+ }
+ $coste_direccion = $this->getCosteEnvio(
+ $direccion['direccion'],
+ $return_data['peso'][$i],
+ $unidades,
+ $direccion['entregaPalets'] == 'true' ? 1 : 0,
+ false,
+ );
+
+ if (!property_exists($coste_direccion, 'coste')) {
+
+ $errorModel = new ErrorPresupuesto();
+ $data['direccion'] = $direccion;
+ $data['peso'] = $return_data['peso'][$i];
+ $data['palets'] = $direccion['entregaPalets'] == 'true' ? 1 : 0;
+ $errorModel->insertError(
+ $id,
+ auth()->user()->id,
+ 'No se ha podido calcular el coste de envío',
+ $data
+ );
+ $return_data = [
+ 'errors' => (object) ([
+ 'status' => 1
+ ]),
+ ];
+ return $return_data;
+ } else {
+ //aporte del envio al precio unidad
+ $coste_envio += ($coste_direccion->coste / $tirada[$i]);
+ }
+ }
+ $return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio, 4);
+ }
+ } else {
+ for ($i = 0; $i < count($tirada); $i++) {
+ $coste_envio = 0.0;
+ $coste_envio += ($return_data['eb'][$i] / $tirada[$i]);
+ $return_data['precio_u'][$i] = round(floatval($return_data['precio_u'][$i]) + $coste_envio, 4);
+ }
+ }
+ if ($this->request) {
+ if ($this->request->isAJAX())
+ return $this->respond($return_data);
+ } else {
+ return $return_data;
+ }
+
+ } catch (Exception $e) {
+ if ($this->request) {
+ if ($this->request->isAJAX())
+ return $this->failServerError($e->getMessage() . ' - ' . $e->getFile() . ' - ' . $e->getLine());
+ } else {
+ return "Error: " . $e->getMessage();
+ }
}
+
}
@@ -930,7 +941,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$datosCabecera = $reqData['datosCabecera'] ?? [];
-
+
$confirmar = $reqData['confirmar'] ?? 0;
$confirmar = intval($confirmar);
@@ -1084,8 +1095,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
true
);
- if(intval($selected_tirada) == intval($tirada[$i])){
- $datos_presupuesto['envio_base'] = round($coste_direccion->coste*(1 + $coste_direccion->margen/100.0), 2) ;
+ if (intval($selected_tirada) == intval($tirada[$i])) {
+ $datos_presupuesto['envio_base'] = round($coste_direccion->coste * (1 + $coste_direccion->margen / 100.0), 2);
}
if (!property_exists($coste_direccion, 'coste')) {
@@ -1111,9 +1122,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
}
-
+
for ($i = 0; $i < count($tirada); $i++) {
-
+
$resultado_presupuesto['info']['totales'][$i]['coste_envio'] = 0.0;
$resultado_presupuesto['info']['totales'][$i]['margen_envio'] = 0.0;
}
@@ -1124,8 +1135,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$envio_base = true;
$coste_envio = 0.0;
$margen_envio = 0.0;
- foreach ($direcciones as $direccion)
- {
+ foreach ($direcciones as $direccion) {
// El primer envio no se calcula ya que se añade el base
if ($envio_base) {
//aporte del envio al precio unidad
@@ -1227,7 +1237,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$datos_presupuesto['retractilado'] = $retractilado;
$datos_presupuesto['retractilado5'] = $retractilado5;
$datos_presupuesto['entrega_taller'] = $reqData['entrega_taller'] ?? 0;
-
+
$resultado_presupuesto['info']['merma'] = $this->calcular_merma($selected_tirada, $POD);
diff --git a/ci4/app/Entities/Presupuestos/PresupuestoEntity.php b/ci4/app/Entities/Presupuestos/PresupuestoEntity.php
index 68de926f..7d736a94 100755
--- a/ci4/app/Entities/Presupuestos/PresupuestoEntity.php
+++ b/ci4/app/Entities/Presupuestos/PresupuestoEntity.php
@@ -118,7 +118,6 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"tipologia_id" => "?int",
"pais_id" => "int",
"estado_id" => "int",
- "inc_rei" => "?int",
"retractilado" => "boolean",
"retractilado5" => "boolean",
"guardas" => "boolean",
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 e80d1eab..1ecd5e1f 100644
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems.php
@@ -58,7 +58,7 @@
- Total
- - Descuento
+ - Descuento (%)
- Total presupuesto
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 221c108d..00000000
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_resumenPresupuestos.js
+++ /dev/null
@@ -1,275 +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 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
-}
-
-
-
-
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminAdd.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminAdd.js
index 2ba02e94..6f5b4830 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminAdd.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminAdd.js
@@ -1,28 +1,55 @@
import ClassSelect from '../../components/select2.js';
import Ajax from '../../components/ajax.js';
-class PresupuestoAdminAdd{
+class PresupuestoAdminAdd {
- constructor(){
+ constructor() {
+
+ this.cosido = $("#isCosido");
+ this.tipo_impresion = $("#tipo_impresion_id");
+ this.POD = $("#POD");
this.inc_rei = $('#incRei');
this.cliente = new ClassSelect($('#clienteId'), '/clientes/cliente/getSelect2', 'Seleccione cliente');
this.pais = new ClassSelect($('#paisId'), '/paises/menuitems2', 'Seleccione País');
- $('#solapas').addClass('d-none');
- $('#solapas_sobrecubierta').addClass('d-none');
- $('#div_solapas_ancho').addClass('d-none');
- $('#div_solapas_ancho_sobrecubierta').addClass('d-none');
+ this.fecha = $('#updated_at');
+ this.estado = $('#estado_id');
+ this.titulo = $('#titulo');
+ this.autor = $('#autor');
+ this.coleccion = $('#coleccion');
+ this.numeroEdicion = $('#numeroEdicion');
+ this.isbn = $('#isbn');
+ this.referenciaCliente = $('#referenciaCliente');
+
+ this.paginas = $('#paginas');
+ this.tirada = $('#tirada');
+ this.merma = $('#merma');
+ this.mermaCubierta = $('#mermacubierta');
this.tamanio = new ClassSelect($("#papelFormatoId"), '/papel-formato/getSelect2', window.language.Presupuestos.formatoLibro);
this.tamanioPersonalizado = $('#papelFormatoPersonalizado');
this.anchoPersonalizado = $('#papelFormatoAncho');
this.altoPersonalizado = $('#papelFormatoAlto');
+ this.guardar = $('#saveForm');
+
this.init();
}
- init(){
+ init() {
+
+ // Fuerza el foco en el campo de búsqueda de select2
+ $(document).on('select2:open', () => {
+ document.querySelector('.select2-search__field').focus();
+ });
+
+ $('#solapas').addClass('d-none');
+ $('#solapas_sobrecubierta').addClass('d-none');
+ $('#div_solapas_ancho').addClass('d-none');
+ $('#div_solapas_ancho_sobrecubierta').addClass('d-none');
+ $('.solapas-cubierta-div').addClass('d-none');
+ $('.solapas-sobrecubierta-div').addClass('d-none');
this.cliente.init();
this.pais.init();
@@ -34,6 +61,8 @@ class PresupuestoAdminAdd{
});
this.tamanioPersonalizado.on('change', this.changeTipoTamanio.bind(this));
+ this.guardar.on('click', this.guardarPresupuesto.bind(this));
+ this.tirada.on('change', this.calcular_mermas.bind(this));
}
changeTipoTamanio() {
@@ -54,7 +83,88 @@ class PresupuestoAdminAdd{
$("#label_papelFormatoId").text(
window.language.Presupuestos.papelFormatoId + '*');
}
+
+ }
+
+ async guardarPresupuesto() {
+
+ $('#loader').modal('show');
+
+ try {
+
+ let data = this.getFormData();
+
+ new Ajax('/presupuestoadmin/add/', data, {},
+ function (response) {
+ popSuccessAlert(response.mensaje);
+ $('#loader').modal('hide');
+ },
+ function (error) {
+ console.error(error);
+ $('#loader').modal('hide');
+ }
+ ).post();
+
+
+ } catch (error) {
+ console.error(error);
+ $('#loader').modal('hide');
+ }
+ }
+
+ getFormData() {
+
+ let datos = {};
+
+ datos.cliente_id = this.cliente.getVal();
+ datos.tipo_impresion_id = this.tipo_impresion.val();
+ datos.cosido = this.cosido.val();
+
+ datos = {
+ ...datos, ...{
+ inc_rei: this.inc_rei.select2('data')[0].id,
+ titulo: this.titulo.val(),
+ autor: this.autor.val(),
+ isbn: this.isbn.val(),
+ pais_id: this.pais.getVal(),
+ coleccion: this.coleccion.val(),
+ numero_edicion: this.numeroEdicion.val(),
+ referencia_cliente: this.referenciaCliente.val(),
+ updated_at: new Date().toISOString().slice(0, 19).replace('T', ' '),
+ }
+ }
+
+ datos = {
+ ...datos, ...{
+ paginas: this.paginas.val(),
+ tirada: this.tirada.val(),
+ papel_formato_id: this.tamanio.item.hasClass('d-none') ? 0 : this.tamanio.getVal(),
+ papel_formato_personalizado: this.tamanio.item.hasClass('d-none') ? 1 : 0,
+ merma: this.merma.val(),
+ merma_cubierta: this.mermaCubierta.val(),
+ solapas_ancho: "0",
+ solapas_ancho_sobrecubierta: "0",
+ }
+ }
+ if (datos.papel_formato_personalizado) {
+ datos.papel_formato_ancho = this.anchoPersonalizado.val(),
+ datos.papel_formato_alto = this.altoPersonalizado.val()
+ }
+ datos.selectedTirada = this.tirada.val();
+ return datos;
+ }
+
+ calcular_mermas() {
+
+ const tirada = parseInt($('#tirada').val());
+ const POD = parseInt($('#POD').val());
+ let merma = 0;
+
+ merma = tirada * 0.1 <= POD ? tirada * 0.1 : POD;
+
+ $('#mermacubierta').val(parseInt(merma))
+ $('#merma').val(parseInt(merma))
}
}
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js
index 59c1d8d9..f2c49e31 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js
@@ -122,12 +122,25 @@ class PresupuestoAdminEdit {
try {
- let formData = $('#presupuestoForm').serialize()
+ const id = window.location.href.split("/").pop();
+ let data = this.getFormData();
await this.servicios.guardar();
await this.envios.guardarEnvios();
await this.lineasPresupuesto.guardarLineasPresupuesto();
+ new Ajax('/presupuestoadmin/edit/' + id, data, {},
+ function (response) {
+ popSuccessAlert(response.mensaje);
+ $('#loader').modal('hide');
+ },
+ function (error) {
+ console.error(error);
+ $('#loader').modal('hide');
+ }
+ ).post();
+
+
} catch (error) {
console.error(error);
$('#loader').modal('hide');
@@ -142,13 +155,18 @@ class PresupuestoAdminEdit {
datos.id = window.location.href.split("/").pop();
datos.cliente_id = this.datosGenerales.cliente.getVal();
datos.tipo_impresion_id = this.tipo_impresion.val();
+ datos.cosido = this.cosido.val();
+ datos.lomo_cubierta = this.lc.val();
+ datos.lomo_sobrecubierta = this.lsc.val();
+ datos.envio_base = $('#envio_base').val();
datos = {
...datos, ...{
- inc_rei = this.datosGenerales.inc_rei.val();
+ inc_rei: this.datosGenerales.inc_rei.select2('data')[0].id,
titulo: this.datosGenerales.titulo.val(),
autor: this.datosGenerales.autor.val(),
isbn: this.datosGenerales.isbn.val(),
+ pais_id: this.datosGenerales.pais.getVal(),
coleccion: this.datosGenerales.coleccion.val(),
numero_edicion: this.datosGenerales.numeroEdicion.val(),
referencia_cliente: this.datosGenerales.referenciaCliente.val(),
@@ -160,29 +178,53 @@ class PresupuestoAdminEdit {
...datos, ...{
paginas: this.datosLibro.paginas.val(),
tirada: this.datosLibro.tirada.val(),
- papel_formato_id: this.datosLibro.papelFormatoId.hasClass('d-none') ? 0 : this.datosLibro.papelFormatoId.val(),
- /////////////////////////////////////////////////////////
+ papel_formato_id: this.datosLibro.tamanio.item.hasClass('d-none') ? 0 : this.datosLibro.tamanio.getVal(),
+ papel_formato_personalizado: this.datosLibro.tamanio.item.hasClass('d-none') ? 1 : 0,
+ merma: this.datosLibro.merma.val(),
+ merma_cubierta: this.datosLibro.mermaCubierta.val()
}
}
+ if (datos.papel_formato_personalizado) {
+ datos.papel_formato_ancho = this.datosLibro.anchoPersonalizado.val(),
+ datos.papel_formato_alto = this.datosLibro.altoPersonalizado.val()
+ }
datos.selectedTirada = this.datosLibro.tirada.val();
+ datos.acabado_cubierta_id = this.datosLibro.acabadoCubierta.getVal();
+ datos.acabado_sobrecubierta_id = this.datosLibro.acabadoSobrecubierta.getVal();
- datos.servicios = {
- 'prototipo': this.datosLibro.prototipo.is(':checked') ? 1 : 0,
- 'ferro': this.datosLibro.ferro.is(':checked') ? 1 : 0,
- 'ferroDigital': this.datosLibro.ferroDigital.is(':checked') ? 1 : 0,
- 'marcapaginas': this.datosLibro.marcapaginas.is(':checked') ? 1 : 0,
- 'retractilado': this.datosLibro.retractilado.is(':checked') ? 1 : 0,
- 'retractilado5': this.datosLibro.retractilado5.is(':checked') ? 1 : 0,
+ datos = {
+ ...datos, ...{
+ 'prototipo': this.datosLibro.prototipo.is(':checked') ? 1 : 0,
+ 'ferro': this.datosLibro.ferro.is(':checked') ? 1 : 0,
+ 'ferro_digital': this.datosLibro.ferroDigital.is(':checked') ? 1 : 0,
+ 'marcapaginas': this.datosLibro.marcapaginas.is(':checked') ? 1 : 0,
+ 'retractilado': this.datosLibro.retractilado.is(':checked') ? 1 : 0,
+ 'retractilado5': this.datosLibro.retractilado5.is(':checked') ? 1 : 0,
+ }
};
+ datos.comp_tipo_impresion = this.comparador.tipo_impresion.val();
+ datos.comp_pos_paginas_color = this.comparador.posPagColor.val();
+
+
if (this.comparador.tipo_impresion_id == 1 || this.tipo_impresion_id == 3) {
datos.lomoRedondo = this.comparador.lomoRedondo.select2('data')[0].id;
+ datos.cabezada = this.comparador.cabezada.val();
}
else {
datos.lomoRedondo = 0;
}
- this.datos.entrega_taller = this.envios.entrega_taller.is(':checked') ? 1 : 0;
+ if ($('#tipo_impresion_id').val() != 1 && $('#tipo_impresion_id').val() != 3 &&
+ $('#tipo_impresion_id').val() != 5 && $('#tipo_impresion_id').val() != 7) {
+ datos.solapas = this.datosLibro.solapasCubierta.is(':checked') ? 1 : 0;
+ datos.solapas_ancho = this.datosLibro.anchoSolapasCubierta.val();
+ }
+
+ datos.solapas_sobrecubierta = this.datosLibro.solapasSobrecubierta.is(':checked') ? 1 : 0;
+ datos.solapas_ancho_sobrecubierta = this.datosLibro.anchoSolapasSobrecubierta.val();
+
+ datos.entrega_taller = this.envios.recogerTaller.is(':checked') ? 1 : 0;
if (parseInt(this.cosido.val())) {
let paginas_por_cuadernillo = "";
@@ -202,6 +244,9 @@ class PresupuestoAdminEdit {
datos.comentarios_presupuesto = $('#comentariosPdf').val();
datos.comentarios_produccion = $('#comentariosProduccion').val();
+ datos = { ...datos, ...this.resumen.getData() };
+
+ return datos;
}
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/comparador.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/comparador.js
index c4725668..01eb1ec9 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/comparador.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/comparador.js
@@ -352,64 +352,67 @@ class Comparador {
this.tipo_impresion.val(datos.tipo_impresion).trigger('change');
this.updateOpcionesComparador();
- this.comparador_json.val(JSON.stringify(datos.json_data));
- if (datos.json_data.bn) {
- this.paginasNegro.val(datos.json_data.bn.paginas);
- this.papelNegro.setOption(datos.json_data.bn.papel_id, datos.json_data.bn.papel_nombre);
- this.gramajeNegro.setOption(datos.json_data.bn.gramaje, datos.json_data.bn.gramaje);
- }
- else {
- this.paginasNegro.val(0);
- }
- if (datos.json_data.bnhq) {
- this.paginasNegrohq.val(datos.json_data.bnhq.paginas);
- this.papelNegrohq.setOption(datos.json_data.bnhq.papel_id, datos.json_data.bnhq.papel_nombre);
- this.gramajeNegrohq.setOption(datos.json_data.bnhq.gramaje, datos.json_data.bnhq.gramaje);
- }
- else {
- this.paginasNegrohq.val(0);
- }
- if (datos.json_data.color) {
- this.paginasColor.val(datos.json_data.color.paginas);
- this.papelColor.setOption(datos.json_data.color.papel_id, datos.json_data.color.papel_nombre);
- this.gramajeColor.setOption(datos.json_data.color.gramaje, datos.json_data.color.gramaje);
- }
- else {
- this.paginasColor.val(0);
- }
- if (datos.json_data.colorhq) {
- this.paginasColorhq.val(datos.json_data.colorhq.paginas);
- this.papelColorhq.setOption(datos.json_data.colorhq.papel_id, datos.json_data.colorhq.papel_nombre);
- this.gramajeColorhq.setOption(datos.json_data.colorhq.gramaje, datos.json_data.colorhq.gramaje);
- }
- else {
- this.paginasColorhq.val(0);
- }
- if (datos.json_data.cubierta) {
- this.paginasCubierta.val(datos.json_data.cubierta.paginas);
- this.papelCubierta.setOption(datos.json_data.cubierta.papel_id, datos.json_data.cubierta.papel_nombre);
- this.gramajeCubierta.setOption(datos.json_data.cubierta.gramaje, datos.json_data.cubierta.gramaje);
- }
- if (datos.json_data.sobrecubierta) {
- this.sobrecubierta.val(datos.json_data.sobrecubierta.imprimir).trigger('change');
- this.papelSobrecubierta.setOption(datos.json_data.sobrecubierta.papel_id, datos.json_data.sobrecubierta.papel_nombre);
- this.gramajeSobrecubierta.setOption(datos.json_data.sobrecubierta.gramaje, datos.json_data.sobrecubierta.gramaje);
- }
- if (datos.json_data.guardas) {
- this.carasGuardas.val(datos.json_data.guardas.paginas).trigger('change');
- this.papelGuardas.setOption(datos.json_data.guardas.papel_id, datos.json_data.guardas.papel_nombre);
- this.gramajeGuardas.setOption(datos.json_data.guardas.gramaje, datos.json_data.guardas.gramaje);
- }
+ if (datos.json_data != null) {
+ this.comparador_json.val(JSON.stringify(datos.json_data));
- if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3) {
- this.lomoRedondo.val(datos.lomoRedondo ? 1 : 0).trigger('change');
- this.cabezada.val(datos.cabezada).trigger('change');
- }
+ if (datos.json_data.bn) {
+ this.paginasNegro.val(datos.json_data.bn.paginas);
+ this.papelNegro.setOption(datos.json_data.bn.papel_id, datos.json_data.bn.papel_nombre);
+ this.gramajeNegro.setOption(datos.json_data.bn.gramaje, datos.json_data.bn.gramaje);
+ }
+ else {
+ this.paginasNegro.val(0);
+ }
+ if (datos.json_data.bnhq) {
+ this.paginasNegrohq.val(datos.json_data.bnhq.paginas);
+ this.papelNegrohq.setOption(datos.json_data.bnhq.papel_id, datos.json_data.bnhq.papel_nombre);
+ this.gramajeNegrohq.setOption(datos.json_data.bnhq.gramaje, datos.json_data.bnhq.gramaje);
+ }
+ else {
+ this.paginasNegrohq.val(0);
+ }
+ if (datos.json_data.color) {
+ this.paginasColor.val(datos.json_data.color.paginas);
+ this.papelColor.setOption(datos.json_data.color.papel_id, datos.json_data.color.papel_nombre);
+ this.gramajeColor.setOption(datos.json_data.color.gramaje, datos.json_data.color.gramaje);
+ }
+ else {
+ this.paginasColor.val(0);
+ }
+ if (datos.json_data.colorhq) {
+ this.paginasColorhq.val(datos.json_data.colorhq.paginas);
+ this.papelColorhq.setOption(datos.json_data.colorhq.papel_id, datos.json_data.colorhq.papel_nombre);
+ this.gramajeColorhq.setOption(datos.json_data.colorhq.gramaje, datos.json_data.colorhq.gramaje);
+ }
+ else {
+ this.paginasColorhq.val(0);
+ }
+ if (datos.json_data.cubierta) {
+ this.paginasCubierta.val(datos.json_data.cubierta.paginas);
+ this.papelCubierta.setOption(datos.json_data.cubierta.papel_id, datos.json_data.cubierta.papel_nombre);
+ this.gramajeCubierta.setOption(datos.json_data.cubierta.gramaje, datos.json_data.cubierta.gramaje);
+ }
+ if (datos.json_data.sobrecubierta) {
+ this.sobrecubierta.val(datos.json_data.sobrecubierta.imprimir).trigger('change');
+ this.papelSobrecubierta.setOption(datos.json_data.sobrecubierta.papel_id, datos.json_data.sobrecubierta.papel_nombre);
+ this.gramajeSobrecubierta.setOption(datos.json_data.sobrecubierta.gramaje, datos.json_data.sobrecubierta.gramaje);
+ }
+ if (datos.json_data.guardas) {
+ this.carasGuardas.val(datos.json_data.guardas.paginas).trigger('change');
+ this.papelGuardas.setOption(datos.json_data.guardas.papel_id, datos.json_data.guardas.papel_nombre);
+ this.gramajeGuardas.setOption(datos.json_data.guardas.gramaje, datos.json_data.guardas.gramaje);
+ }
- if (datos.posPagColor != null && datos.posPagColor.length > 0) {
- this.posPagColor.val(datos.posPagColor);
- this.#computarPaginasColor(datos.posPagColor);
+ if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3) {
+ this.lomoRedondo.val(datos.lomoRedondo ? 1 : 0).trigger('change');
+ this.cabezada.val(datos.cabezada).trigger('change');
+ }
+
+ if (datos.posPagColor != null && datos.posPagColor.length > 0) {
+ this.posPagColor.val(datos.posPagColor);
+ this.#computarPaginasColor(datos.posPagColor);
+ }
}
this.cargando = false;
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/lineasPresupuesto.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/lineasPresupuesto.js
index d5799ac0..c0442a7c 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/lineasPresupuesto.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/lineasPresupuesto.js
@@ -626,7 +626,6 @@ class LineasPresupuesto {
dataType: 'json',
success: function (response) {
- token = response[window.csrf_token];
}
}).fail(function (jqXHR, textStatus, error) {
// Handle error here
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js
index 1210bdfb..b76dc98e 100644
--- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js
+++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js
@@ -42,12 +42,12 @@ class Resumen {
$("#totalMargenes").text(resumen.total_margenes + "€" || "0€");
$("#totalAntesDescuento").text(resumen.total_antes_descuento + "€" || "0€");
- $("#total_descuentoPercent").val(resumen.total_descuentoPercent + "€" || "0€");
+ $("#total_descuentoPercent").val(resumen.total_descuentoPercent || "0");
$("#descuentoTotal").text(resumen.total_descuento + "€" || "0€");
$("#totalDespuesDecuento").text(resumen.total_presupuesto + "€" || "0€");
$("#precioUnidadPresupuesto").text(resumen.total_precio_unidad + "€" || "0€");
- $("#factor").text(resumen.total_factor + "€" || "0€");
- $("#factor_ponderado").text(resumen.total_factor_ponderado + "€" || "0€");
+ $("#factor").text(resumen.total_factor || "0");
+ $("#factor_ponderado").text(resumen.total_factor_ponderado || "0");
if (resumen.total_aceptado !== undefined) {
$("#totalAceptado").val(resumen.total_aceptado + "€" || "0€");
@@ -143,10 +143,10 @@ class Resumen {
})
}
- totalImpresion -= margenImpresion
- totalPapel -= margenPapel
+ totalImpresion -= parseFloat(margenImpresion);
+ totalPapel -= parseFloat(margenPapel);
- margenImpresion += margenPorHoras
+ margenImpresion += parseFloat(margenPorHoras);
let porcentajeMargenPapel = isNaN(margenPapel / (totalPapel) * 100.0) ? 0 : margenPapel / (totalPapel) * 100.0
$('#porcentajeMargenPapel').text(porcentajeMargenPapel.toFixed(0) + '%')
@@ -177,8 +177,8 @@ class Resumen {
if (typeof $("#tableOfServiciosEncuadernacion").DataTable() !== 'undefined' && $("#tableOfServiciosEncuadernacion").DataTable().rows().count() > 0) {
$('#tableOfServiciosEncuadernacion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data();
- let total_servicio = rowData.precio_total;
- let margen_servicio = rowData.margen;
+ let total_servicio = parseFloat(rowData.precio_total);
+ let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio
let base = total_servicio / (1 + margen_servicio / 100.0);
margenServicios = total_servicio - base;
@@ -188,8 +188,8 @@ class Resumen {
if (typeof $("#tableOfServiciosAcabado").DataTable() !== 'undefined' && $("#tableOfServiciosAcabado").DataTable().rows().count() > 0) {
$('#tableOfServiciosAcabado').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data();
- let total_servicio = rowData.precio_total;
- let margen_servicio = rowData.margen;
+ let total_servicio = parseFloat(rowData.precio_total);
+ let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio
let base = total_servicio / (1 + margen_servicio / 100.0);
margenServicios = total_servicio - base;
@@ -199,8 +199,8 @@ class Resumen {
if (typeof $("#tableOfServiciosPreimpresion").DataTable() !== 'undefined' && $("#tableOfServiciosPreimpresion").DataTable().rows().count() > 0) {
$('#tableOfServiciosPreimpresion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data();
- let total_servicio = rowData.precio;
- let coste_servicio = rowData.coste;
+ let total_servicio = parseFloat(rowData.precio);
+ let coste_servicio = parseFloat(rowData.coste);
totalServicios += total_servicio
margenServicios = total_servicio - coste_servicio;
});
@@ -209,8 +209,8 @@ class Resumen {
if (typeof $("#tableOfServiciosExtra").DataTable() !== 'undefined' && $("#tableOfServiciosExtra").DataTable().rows().count() > 0) {
$('#tableOfServiciosExtra').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data();
- let total_servicio = rowData.precio;
- let coste_servicio = rowData.coste;
+ let total_servicio = parseFloat(rowData.precio);
+ let coste_servicio = parseFloat(rowData.coste);
totalServicios += total_servicio
margenServicios = total_servicio - coste_servicio;
});
@@ -219,8 +219,8 @@ class Resumen {
if (typeof $("#tableOfServiciosManipulado").DataTable() !== 'undefined' && $("#tableOfServiciosManipulado").DataTable().rows().count() > 0) {
$('#tableOfServiciosManipulado').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data();
- let total_servicio = rowData.precio_total;
- let margen_servicio = rowData.margen;
+ let total_servicio = parseFloat(rowData.precio_total);
+ let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio
let base = total_servicio / (1 + margen_servicio / 100.0);
margenServicios = total_servicio - base;
@@ -306,6 +306,46 @@ class Resumen {
$('#factor_ponderado').attr('val', ((totalPresupuesto - totalEnvios - margenEnvios) / sumForFactorPonderado).toFixed(2))
}
+
+
+ getData(){
+
+ let data = {
+ 'total_coste_papel': $('#totalCostePapel').attr('val').replace('€', ''),
+ 'total_margen_papel': $('#margenPapel').attr('val').replace('€', ''),
+ 'total_margenPercent_papel': $('#porcentajeMargenPapel').text().replace('%', ''),
+
+ 'total_coste_impresion': $('#totalCosteImpresion').attr('val').replace('€', ''),
+ 'total_margen_impresion': $('#margenImpresion').attr('val').replace('€', ''),
+ 'total_margenPercent_impresion': $('#porcentajeMargenImpresion').text().replace('%', ''),
+
+ 'total_coste_servicios': $('#totalServicios').attr('val').replace('€', ''),
+ 'total_margen_servicios': $('#margenServicios').attr('val').replace('€', ''),
+ 'total_margenPercent_servicios': $('#porcentajeMargenServicios').text().replace('%', ''),
+
+ 'total_coste_envios': $('#totalEnvios').attr('val').replace('€', ''),
+ 'total_margen_envios': $('#margenEnvios').attr('val').replace('€', ''),
+
+ 'total_costes': $('#totalCostes').attr('val').replace('€', ''),
+ 'total_margenes': $('#totalMargenes').attr('val').replace('€', ''),
+
+ 'total_antes_descuento': $('#totalAntesDescuento').attr('val').replace('€', ''),
+ 'total_descuento': $('#descuentoTotal').attr('val').replace('€', ''),
+ 'total_descuentoPercent': $('#total_descuentoPercent').val().replace('€', ''),
+ 'total_presupuesto': $('#totalDespuesDecuento').attr('val').replace('€', ''),
+ 'total_precio_unidad': $('#precioUnidadPresupuesto').attr('val').replace('€', ''),
+
+ 'total_factor': $('#factor').text().replace(/,/g, '.'),
+ 'total_factor_ponderado': $('#factor_ponderado').text().replace(/,/g, '.'),
+ };
+
+ if($('#confirmar_presupuesto').prop('checked')){
+ data.confirmar = '1';
+ data.total_aceptado = $('#totalDespuesDecuento').attr('val').replace('€', '');
+ }
+
+ return data;
+ }
}
export default Resumen;
\ No newline at end of file