Merge branch 'main' into refactor/sk-21

This commit is contained in:
amazuecos
2025-02-08 19:04:18 +01:00
39 changed files with 1546 additions and 778 deletions

View File

@ -72,6 +72,7 @@ $routes->group('tarifas', ['namespace' => 'App\Controllers\Tarifas'], function (
$routes->group('acabados', ['namespace' => 'App\Controllers\Tarifas\Acabados'], function ($routes) { $routes->group('acabados', ['namespace' => 'App\Controllers\Tarifas\Acabados'], function ($routes) {
$routes->get('', 'TarifaAcabados::index', ['as' => 'tarifaAcabadoList']); $routes->get('', 'TarifaAcabados::index', ['as' => 'tarifaAcabadoList']);
$routes->get('gettarifas', 'TarifaAcabados::getSelect2');
$routes->match(['get', 'post'], 'add', 'TarifaAcabados::add', ['as' => 'tarifaAcabadoAdd']); $routes->match(['get', 'post'], 'add', 'TarifaAcabados::add', ['as' => 'tarifaAcabadoAdd']);
$routes->match(['get', 'post'], 'edit/(:num)', 'TarifaAcabados::edit/$1', ['as' => 'tarifaAcabadoEdit']); $routes->match(['get', 'post'], 'edit/(:num)', 'TarifaAcabados::edit/$1', ['as' => 'tarifaAcabadoEdit']);
$routes->get('delete/(:num)', 'TarifaAcabados::delete/$1', ['as' => 'tarifaAcabadoDelete']); $routes->get('delete/(:num)', 'TarifaAcabados::delete/$1', ['as' => 'tarifaAcabadoDelete']);

View File

@ -304,8 +304,7 @@ class Papelesgenericos extends \App\Controllers\BaseResourceController
$POD_value = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; $POD_value = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
if (intval($tirada) <= intval($POD_value)) { if (intval($tirada) <= intval($POD_value)) {
$POD = true; $POD = true;
} } else {
else{
$POD = false; $POD = false;
} }
} }
@ -313,16 +312,37 @@ class Papelesgenericos extends \App\Controllers\BaseResourceController
$selected_papel = goSanitize($this->request->getGet('papel'))[0] ?? null; $selected_papel = goSanitize($this->request->getGet('papel'))[0] ?? null;
$cubierta = goSanitize($this->request->getGet('cubierta'))[0] ?? 0; $cubierta = goSanitize($this->request->getGet('cubierta'))[0] ?? 0;
$tapa_dura = goSanitize($this->request->getGet('tapa_dura'))[0] ?? null; $tapa_dura = goSanitize($this->request->getGet('tapa_dura'))[0] ?? null;
$sobrecubierta = goSanitize($this->request->getGet('sobrecubierta'))[0] ?? 0;
$ancho = floatval($this->request->getGet('ancho') ?? 0); $ancho = floatval($this->request->getGet('ancho') ?? 0);
$alto = floatval($this->request->getGet('alto') ?? 0); $alto = floatval($this->request->getGet('alto') ?? 0);
$solapas = floatval($this->request->getGet('solapas') ?? 0); $solapas = floatval($this->request->getGet('solapas') ?? 0);
$lomo = floatval($this->request->getGet('lomo') ?? 0); $lomo = floatval($this->request->getGet('lomo') ?? 0);
$forSelect2 = intval($this->request->getGet('forSelect2') ?? 0);
$anchoLibro = 2 * $ancho + 2 * $solapas + $lomo; $anchoLibro = 2 * $ancho + 2 * $solapas + $lomo;
$menu = $this->model->getPapelCliente($tipo, $cubierta, $selected_papel, $tapa_dura, false, $POD, $anchoLibro, $alto, $tirada); $menu = $this->model->getPapelCliente($tipo, $cubierta, $sobrecubierta, $selected_papel, $tapa_dura, false, $POD, $anchoLibro, $alto, $tirada);
$menu2 = $this->model->getPapelCliente($tipo, $cubierta, $selected_papel, $tapa_dura, true, $POD, $anchoLibro, $alto, $tirada); $menu2 = $this->model->getPapelCliente($tipo, $cubierta, $sobrecubierta, $selected_papel, $tapa_dura, true, $POD, $anchoLibro, $alto, $tirada);
if ($forSelect2) {
$menu = array_map(function ($item) {
if (isset($item->id)) {
return [
'id' => $item->id,
'name' => $item->nombre
];
} else {
return [
'id' => $item->gramaje,
'name' => $item->gramaje
];
}
}, $menu);
return $this->respond($menu);
}
$newTokenHash = csrf_hash(); $newTokenHash = csrf_hash();
$csrfTokenName = csrf_token(); $csrfTokenName = csrf_token();
@ -349,13 +369,13 @@ class Papelesgenericos extends \App\Controllers\BaseResourceController
$POD_value = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; $POD_value = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value;
if (intval($tirada) <= intval($POD_value)) { if (intval($tirada) <= intval($POD_value)) {
$POD = true; $POD = true;
} } else {
else{
$POD = false; $POD = false;
} }
} }
$tipo = goSanitize($this->request->getGet('tipo'))[0]; $tipo = goSanitize($this->request->getGet('tipo'))[0];
$cubierta = goSanitize($this->request->getGet('cubierta'))[0] ?? 0; $cubierta = goSanitize($this->request->getGet('cubierta'))[0] ?? 0;
$sobrecubierta = goSanitize($this->request->getGet('sobrecubierta'))[0] ?? 0;
$ancho = floatval($this->request->getGet('ancho') ?? 0); $ancho = floatval($this->request->getGet('ancho') ?? 0);
$alto = floatval($this->request->getGet('alto') ?? 0); $alto = floatval($this->request->getGet('alto') ?? 0);
@ -366,7 +386,7 @@ class Papelesgenericos extends \App\Controllers\BaseResourceController
$anchoLibro = 2 * $ancho + 2 * $solapas + $lomo; $anchoLibro = 2 * $ancho + 2 * $solapas + $lomo;
$items = $this->model->getPapelCliente($tipo, $cubierta, null, $tapa_dura, true, $POD, $anchoLibro, $alto, $tirada); $items = $this->model->getPapelCliente($tipo, $cubierta, $sobrecubierta, null, $tapa_dura, true, $POD, $anchoLibro, $alto, $tirada);
$items = array_map(function ($item) { $items = array_map(function ($item) {
return [ return [
'id' => $item->id, 'id' => $item->id,

View File

@ -97,6 +97,7 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
$values = $model->getPrecioTarifa($tarifa['tarifa_id'], $tirada, $proveedor, $POD); $values = $model->getPrecioTarifa($tarifa['tarifa_id'], $tirada, $proveedor, $POD);
$values[0]->cubierta = $tarifa['cubierta'] ?? 0; $values[0]->cubierta = $tarifa['cubierta'] ?? 0;
$values[0]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0; $values[0]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0;
$values[0]->faja = $tarifa['faja'] ?? 0;
array_push($result, $values[0]); array_push($result, $values[0]);
} }
} }

View File

@ -495,6 +495,12 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
} else { } else {
$data['datosLibro']['acabadoSobrecubierta']['text'] = $modelAcabado->find($presupuesto->acabado_sobrecubierta_id)->nombre; $data['datosLibro']['acabadoSobrecubierta']['text'] = $modelAcabado->find($presupuesto->acabado_sobrecubierta_id)->nombre;
} }
$data['datosLibro']['acabadoFaja']['id'] = $presupuesto->acabado_faja_id;
if ($presupuesto->acabado_faja_id == 0) {
$data['datosLibro']['acabadoFaja']['text'] = "Ninguno";
} else {
$data['datosLibro']['acabadoFaja']['text'] = $modelAcabado->find($presupuesto->acabado_faja_id)->nombre;
}
$data['datosLibro']['prototipo'] = $presupuesto->prototipo; $data['datosLibro']['prototipo'] = $presupuesto->prototipo;
$data['datosLibro']['ferro'] = $presupuesto->ferro; $data['datosLibro']['ferro'] = $presupuesto->ferro;
$data['datosLibro']['ferroDigital'] = $presupuesto->ferro_digital; $data['datosLibro']['ferroDigital'] = $presupuesto->ferro_digital;
@ -1110,7 +1116,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$tirada); $tirada);
if ($this->request->getGet("q")) { if ($this->request->getGet("q")) {
$query->groupStart() $query->groupStart()
->orLike("lg_papel_generico.nombre", $this->request->getGet("q")) ->orLike("t1.nombre", $this->request->getGet("q"))
->groupEnd(); ->groupEnd();
} }
@ -1174,7 +1180,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$tirada); $tirada);
if ($this->request->getGet("q")) { if ($this->request->getGet("q")) {
$query->groupStart() $query->groupStart()
->orLike("lg_papel_impresion.gramaje", $this->request->getGet("q")) ->orLike("t2.gramaje", $this->request->getGet("q"))
->groupEnd(); ->groupEnd();
} }

View File

@ -540,6 +540,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'cubierta' => $cubierta, 'cubierta' => $cubierta,
'sobrecubierta' => $sobrecubierta, 'sobrecubierta' => $sobrecubierta,
'datos_guardas' => $datos_guardas, 'datos_guardas' => $datos_guardas,
'faja' => $faja,
'servicios' => $reqData['servicios'] ?? [], 'servicios' => $reqData['servicios'] ?? [],
); );
@ -1054,6 +1055,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'cubierta' => $cubierta, 'cubierta' => $cubierta,
'sobrecubierta' => $sobrecubierta, 'sobrecubierta' => $sobrecubierta,
'datos_guardas' => $datos_guardas, 'datos_guardas' => $datos_guardas,
'faja' => $faja,
'servicios' => $reqData['servicios'] ?? [], 'servicios' => $reqData['servicios'] ?? [],
); );
@ -1241,6 +1243,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$resultado_presupuesto['info']['merma'] = $this->calcular_merma($selected_tirada, $POD); $resultado_presupuesto['info']['merma'] = $this->calcular_merma($selected_tirada, $POD);
$datos_presupuesto['faja'] = $faja;
$id = $model_presupuesto->insertarPresupuestoCliente( $id = $model_presupuesto->insertarPresupuestoCliente(
$id, $id,
$selected_tirada, $selected_tirada,
@ -1267,6 +1271,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$this->guardarLineaPresupuesto($id, $resultado_presupuesto['values']['cubierta']); $this->guardarLineaPresupuesto($id, $resultado_presupuesto['values']['cubierta']);
if (count($resultado_presupuesto['values']['sobrecubierta']) > 0) if (count($resultado_presupuesto['values']['sobrecubierta']) > 0)
$this->guardarLineaPresupuesto($id, $resultado_presupuesto['values']['sobrecubierta']); $this->guardarLineaPresupuesto($id, $resultado_presupuesto['values']['sobrecubierta']);
if (count($resultado_presupuesto['values']['faja']) > 0)
$this->guardarLineaPresupuesto($id, $resultado_presupuesto['values']['faja']);
if (count($resultado_presupuesto['values']['guardas']) > 0) if (count($resultado_presupuesto['values']['guardas']) > 0)
$this->guardarLineaPresupuesto($id, $resultado_presupuesto['values']['guardas']); $this->guardarLineaPresupuesto($id, $resultado_presupuesto['values']['guardas']);
@ -1293,6 +1299,17 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
} }
} }
}
if (is_array($faja) && intval($faja['acabado']) > 0) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$servicio = $model->getPrecioTarifa(intval($faja['acabado']), intval($selected_tirada), -1, $POD);
if (count($servicio) > 0) {
if ($servicio[0]->total > 0) {
$this->guardarServicio($id, $servicio[0], 'acabado', false, false, true);
}
}
} }
foreach ($resultado_presupuesto['values']['serviciosDefecto']['encuadernacion'] as $servicio) { foreach ($resultado_presupuesto['values']['serviciosDefecto']['encuadernacion'] as $servicio) {
$this->guardarServicio($id, $servicio, 'encuadernacion'); $this->guardarServicio($id, $servicio, 'encuadernacion');
@ -1475,6 +1492,21 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data['sobrecubierta']['acabado']['text'] = $modelAcabado->find($presupuesto->acabado_sobrecubierta_id)->nombre; $data['sobrecubierta']['acabado']['text'] = $modelAcabado->find($presupuesto->acabado_sobrecubierta_id)->nombre;
} }
if (array_key_exists('faja', $datos_papel)) {
$data['faja']['papel'] = $datos_papel['faja'];
$data['faja']['alto'] = $presupuesto->alto_faja_color;
$data['faja']['solapas'] = 1;
$data['faja']['solapas_ancho'] = $presupuesto->solapas_ancho_faja_color;
$data['faja']['acabado']['id'] = $presupuesto->acabado_sobrecubierta_id;
if ($presupuesto->acabado_faja_id == 0) {
$data['faja']['acabado']['text'] = "Ninguno";
} else {
$data['faja']['acabado']['text'] = $modelAcabado->find($presupuesto->acabado_faja_id)->nombre;
}
} else {
$data['faja'] = [];
}
$data['guardas'] = array_key_exists('guardas', $datos_papel) ? $datos_papel['guardas'] : []; $data['guardas'] = array_key_exists('guardas', $datos_papel) ? $datos_papel['guardas'] : [];
$modelLinea = new PresupuestoLineaModel(); $modelLinea = new PresupuestoLineaModel();
@ -1586,11 +1618,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if (!is_null($new_name)) { if (!is_null($new_name)) {
$path = WRITEPATH . 'uploads/presupuestos/' . $new_name; $path = WRITEPATH . 'uploads/presupuestos/' . $new_name;
move_uploaded_file($tmp_name, $path); move_uploaded_file($tmp_name, $path);
<<<<<<< HEAD
=======
>>>>>>> main
} }
} }
$ftp->uploadFilePresupuesto($presupuesto_id); $ftp->uploadFilePresupuesto($presupuesto_id);
@ -1684,7 +1711,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
} }
protected function guardarServicio($presupuestoId, $servicio, $tipo, $cubierta = false, $sobrecubierta = false) protected function guardarServicio($presupuestoId, $servicio, $tipo, $cubierta = false, $sobrecubierta = false, $faja = false)
{ {
if ($tipo == 'encuadernacion') { if ($tipo == 'encuadernacion') {
@ -1695,8 +1722,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'tarifa_encuadernado_id' => $servicio->tarifa_id, 'tarifa_encuadernado_id' => $servicio->tarifa_id,
'proveedor_id' => $servicio->proveedor_id, 'proveedor_id' => $servicio->proveedor_id,
'tiempo' => $servicio->tiempo, 'tiempo' => $servicio->tiempo,
'precio_total' => $servicio->total, 'precio_total' => round($servicio->total, 2),
'precio_unidad' => $servicio->precio_unidad, 'precio_unidad' => round($servicio->precio_unidad, 2),
'margen' => $servicio->margen, 'margen' => $servicio->margen,
]; ];
@ -1712,7 +1739,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data = [ $data = [
'presupuesto_id' => $presupuestoId, 'presupuesto_id' => $presupuestoId,
'tarifa_extra_id' => $servicio->tarifa_id, 'tarifa_extra_id' => $servicio->tarifa_id,
'precio' => $servicio->precio, 'precio' => round($servicio->precio, 2),
'margen' => $servicio->margen, 'margen' => $servicio->margen,
]; ];
$model->insert($data); $model->insert($data);
@ -1728,6 +1755,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'proveedor_id' => $servicio->proveedor_id, 'proveedor_id' => $servicio->proveedor_id,
'cubierta' => $cubierta, 'cubierta' => $cubierta,
'sobrecubierta' => $sobrecubierta, 'sobrecubierta' => $sobrecubierta,
'faja' => $faja,
]; ];
$model->insert($data); $model->insert($data);
} else if ($tipo == 'manipulado') { } else if ($tipo == 'manipulado') {
@ -1736,8 +1764,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$data = [ $data = [
'presupuesto_id' => $presupuestoId, 'presupuesto_id' => $presupuestoId,
'tarifa_manipulado_id' => $servicio->tarifa_id, 'tarifa_manipulado_id' => $servicio->tarifa_id,
'precio_total' => $servicio->total, 'precio_total' => round($servicio->total, 2),
'precio_unidad' => $servicio->precio_unidad, 'precio_unidad' => round($servicio->precio_unidad, 2),
'margen' => $servicio->margen, 'margen' => $servicio->margen,
]; ];
$model->insert($data); $model->insert($data);
@ -1764,7 +1792,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$margen = 0; $margen = 0;
$peso_envio = round(floatval(floatval($peso) * floatval($unidades) / 1000.0)); // peso libro * unidades y se pasa a kilogramos $peso_envio = round(floatval(floatval($peso) * floatval($unidades) / 1000.0), 3); // peso libro * unidades y se pasa a kilogramos
$tarifas_envio = $modelTarifaEnvio->getTarifaEnvio($pais_id, $cp, $peso_envio, $entregaPieCalle ? 'palets' : 'cajas'); $tarifas_envio = $modelTarifaEnvio->getTarifaEnvio($pais_id, $cp, $peso_envio, $entregaPieCalle ? 'palets' : 'cajas');
for ($i = 0; $i < count($tarifas_envio); $i++) { for ($i = 0; $i < count($tarifas_envio); $i++) {
if ($peso_envio > $tarifas_envio[$i]->peso_max || floatval($tarifas_envio[$i]->precio_max) == 0) { if ($peso_envio > $tarifas_envio[$i]->peso_max || floatval($tarifas_envio[$i]->precio_max) == 0) {
@ -1840,6 +1868,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Sobrecubierta // Sobrecubierta
$sobreCubierta = $datos_entrada["sobrecubierta"] ?? null; $sobreCubierta = $datos_entrada["sobrecubierta"] ?? null;
// Faja
$faja = $datos_entrada["faja"] ?? null;
// Guardas // Guardas
$datos_guardas = $datos_entrada['datos_guardas'] ?? []; $datos_guardas = $datos_entrada['datos_guardas'] ?? [];
@ -1930,7 +1961,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$peso_interior = 0.0; $peso_interior = 0.0;
foreach ($interior as $linea) { foreach ($interior as $linea) {
if (count($linea) > 0) { if (count($linea) > 0) {
$costeInterior += floatval($linea['total_impresion']); $costeInterior += round(floatval($linea['total_impresion']), 2);
$peso_interior += floatval($linea['peso']); $peso_interior += floatval($linea['peso']);
$lomo += floatval($linea['mano']); $lomo += floatval($linea['mano']);
$info['lomo_interior'] += floatval($linea['mano']); $info['lomo_interior'] += floatval($linea['mano']);
@ -1990,7 +2021,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
} }
foreach ($interior as $linea) { foreach ($interior as $linea) {
if (count($linea) > 0) { if (count($linea) > 0) {
$costeInterior += floatval($linea['total_impresion']); $costeInterior += round(floatval($linea['total_impresion']), 2);
$peso_interior += floatval($linea['peso']); $peso_interior += floatval($linea['peso']);
$lomo += floatval($linea['mano']); $lomo += floatval($linea['mano']);
if ($extra_info) { if ($extra_info) {
@ -2042,7 +2073,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_cubierta = 0.0; $coste_cubierta = 0.0;
$peso_cubierta = 0.0; $peso_cubierta = 0.0;
if (count($cubierta) > 0) { if (count($cubierta) > 0) {
$coste_cubierta += floatval($cubierta['total_impresion']); $coste_cubierta += round(floatval($cubierta['total_impresion']), 2);
$peso_cubierta += floatval($cubierta['peso']); $peso_cubierta += floatval($cubierta['peso']);
$lomo += floatval($cubierta['mano']); $lomo += floatval($cubierta['mano']);
if ($extra_info) { if ($extra_info) {
@ -2099,7 +2130,13 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
]; ];
return $return_data; return $return_data;
} }
$coste_servicios += floatval($acabadoCubierta[0]->total); $coste_servicios += round(floatval($acabadoCubierta[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($acabadoCubierta[0]->total), 2);
$base = round(floatval($acabadoCubierta[0]->total / (1 + $acabadoCubierta[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($acabadoCubierta[0]->total - $base), 2);
}
} }
} }
@ -2126,7 +2163,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$linea_sobrecubierta = PresupuestoClienteService::obtenerSobrecubierta($input_data); $linea_sobrecubierta = PresupuestoClienteService::obtenerSobrecubierta($input_data);
if (count($linea_sobrecubierta) > 0) { if (count($linea_sobrecubierta) > 0) {
$coste_sobrecubierta += floatval($linea_sobrecubierta['total_impresion']); $coste_sobrecubierta += round(floatval($linea_sobrecubierta['total_impresion']), 2);
$peso_sobrecubierta += floatval($linea_sobrecubierta['peso']); $peso_sobrecubierta += floatval($linea_sobrecubierta['peso']);
if ($extra_info) { if ($extra_info) {
@ -2184,7 +2221,13 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
return $return_data; return $return_data;
} }
$coste_servicios += floatval($acabadoSobrecubierta[0]->total); $coste_servicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
$base = round(floatval($acabadoSobrecubierta[0]->total / (1 + $acabadoSobrecubierta[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($acabadoSobrecubierta[0]->total - $base), 2);
}
} }
} }
} }
@ -2220,7 +2263,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$guardas = PresupuestoClienteService::obtenerGuardas($input_data); $guardas = PresupuestoClienteService::obtenerGuardas($input_data);
if (count($guardas) > 0) { if (count($guardas) > 0) {
$coste_guardas += floatval($guardas['total_impresion']); $coste_guardas += round(floatval($guardas['total_impresion']), 2);
$peso_guardas += floatval($guardas['peso']); $peso_guardas += floatval($guardas['peso']);
if ($extra_info) { if ($extra_info) {
@ -2251,6 +2294,98 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
} }
} }
} }
$coste_faja = 0.0;
$peso_faja = 0.0;
$linea_faja = [];
$acabadoFaja = [];
if (!is_null($faja) && $faja && $faja != false) {
$input_data['papel_generico']['id'] = $faja['papel'] ?? 0;
$input_data['gramaje'] = $faja['gramaje'] ?? 0;
$input_data['datosPedido']->paginas = 4;
$input_data['datosPedido']->alto = floatval($faja['alto'] ?? 0);
$input_data['paginas_color'] = 4;
$input_data['datosPedido']->solapas_ancho = intval($faja['solapas'] ?? 0);
$input_data['datosPedido']->solapas = 1;
$input_data['datosPedido']->lomo = $this->calcular_lomo([$cubierta], $input_data['datosPedido']->lomo);
$input_data['isColor'] = 1;
$input_data['isHq'] = 1;
$input_data['uso'] = 'faja';
$linea_faja = PresupuestoClienteService::obtenerSobrecubierta($input_data);
if (count($linea_faja) > 0) {
$linea_faja['tipo_linea'] = 'lp_faja';
$coste_faja += round(floatval($linea_faja['total_impresion']), 2);
$peso_faja += floatval($linea_faja['peso']);
if ($extra_info) {
$this->calcular_coste_linea(
$linea_faja,
$totalPapel,
$margenPapel,
$sumForFactor,
$totalImpresion,
$margenImpresion
);
}
}
if ($coste_faja <= 0) {
$errorModel = new ErrorPresupuesto();
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener la faja',
$input_data
);
$return_data = [
'errors' => (object) ([
'status' => 1
]),
];
return $return_data;
}
// Acabado faja
if (intval($faja['acabado']) != 0) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$acabadoFaja = $model->getPrecioTarifa(intval($faja['acabado']), $datosPedido->tirada, -1, $POD);
if (count($acabadoFaja) > 0) {
if ($acabadoFaja[0]->total <= 0) {
$input_data['tarifas_acabado_faja'] = intval($faja['acabado']);
$errorModel = new ErrorPresupuesto();
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener acabados de faja',
$input_data
);
$return_data = [
'errors' => (object) ([
'status' => 1
]),
];
return $return_data;
}
$coste_servicios += round(floatval($acabadoFaja[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($acabadoFaja[0]->total), 2);
$base = round(floatval($acabadoFaja[0]->total / (1 + $acabadoFaja[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($acabadoFaja[0]->total - $base), 2);
}
}
}
}
if ($extra_info) { if ($extra_info) {
$totalPapel -= $margenPapel; $totalPapel -= $margenPapel;
$totalImpresion -= $margenImpresion; $totalImpresion -= $margenImpresion;
@ -2293,10 +2428,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
} }
$costeServiciosDefecto += floatval($servicio->total); $costeServiciosDefecto += round(floatval($servicio->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += floatval($servicio->total); $totalServicios += round(floatval($servicio->total), 2);
$margenServicios += floatval($servicio->total) * floatval($servicio->margen) / 100.0; $base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2)*$datosPedido->tirada;
$margenServicios += round(floatval($servicio->total -$base), 2);
} }
} }
@ -2328,10 +2465,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
} }
$costeServiciosDefecto += floatval($servicio->total); $costeServiciosDefecto += round(floatval($servicio->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += floatval($servicio->total); $totalServicios += round(floatval($servicio->total), 2);
$margenServicios += floatval($servicio->total) * floatval($servicio->margen) / 100.0; $base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2)*$datosPedido->tirada;
$margenServicios += round(floatval($servicio->total -$base), 2);
} }
} }
@ -2388,11 +2527,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'id' => model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_plegado_exceso_solapas_faja')->value '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
=======
// se comprueba si $datos guardas es un array
>>>>>>> main
if (is_array($datos_guardas)) { if (is_array($datos_guardas)) {
if (count($datos_guardas) > 0) { if (count($datos_guardas) > 0) {
array_push($servicios, $servicio_plegado_guardas); // Plegado de guardas array_push($servicios, $servicio_plegado_guardas); // Plegado de guardas
@ -2411,18 +2546,13 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
array_push($servicios, $servicio_prototipo); array_push($servicios, $servicio_prototipo);
if ($datos_entrada['servicios']['ferro']) // extra if ($datos_entrada['servicios']['ferro']) // extra
array_push($servicios, $servicio_ferro); array_push($servicios, $servicio_ferro);
if ($input_data['datosPedido']->solapas_ancho > 0) if ($solapasCubierta > 0)
array_push($servicios, $servicio_solapas_cubierta); array_push($servicios, $servicio_solapas_cubierta);
if (!is_null($sobreCubierta) && $sobreCubierta) // Si hay sobrecubierta, siempre con solapas if (!is_null($sobreCubierta) && $sobreCubierta) // Si hay sobrecubierta, siempre con solapas
array_push($servicios, $servicio_solapas_sobrecubierta); array_push($servicios, $servicio_solapas_sobrecubierta);
<<<<<<< HEAD if (!is_null($faja) && $faja && $faja != false) // Si hay faja, siempre con solapas
/* TO-DO
=======
/* TO-DO
>>>>>>> main
if (!is_null($faja) && $faja) // Si hay faja, siempre con solapas
array_push($servicios, $servicio_solapas_faja); array_push($servicios, $servicio_solapas_faja);
*/
foreach ($servicios as $servicio) { foreach ($servicios as $servicio) {
@ -2452,10 +2582,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
return $return_data; return $return_data;
} }
$coste_servicios += floatval($resultado[0]->total); $coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += floatval($resultado[0]->total); $totalServicios += round(floatval($resultado[0]->total), 2);
$margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0; $base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
} }
} else if ($servicio->nombre == "ferro" || $servicio->nombre == "prototipo") { } else if ($servicio->nombre == "ferro" || $servicio->nombre == "prototipo") {
// Extra // Extra
@ -2482,13 +2614,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
array_push($serviciosAutomaticos, $resultado[0]); array_push($serviciosAutomaticos, $resultado[0]);
$coste_servicios += floatval($resultado[0]->precio); $coste_servicios += round(floatval($resultado[0]->precio), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += floatval($resultado[0]->precio); $totalServicios += round(floatval($resultado[0]->precio), 2);
$margenServicios += floatval($resultado[0]->precio) * floatval($resultado[0]->margen) / 100.0; $base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
} }
} } else if ($servicio->nombre == 'solapas_cubierta' || $servicio->nombre == 'solapas_sobrecubierta' || $servicio->nombre == 'solapas_faja') {
else if ($servicio->nombre == 'solapas_cubierta' || $servicio->nombre == 'solapas_sobrecubierta' || $servicio->nombre == 'solapas_faja'){
// Servicios manipulado // Servicios manipulado
$resultado = PresupuestoCLienteService::getServiciosManipulado([ $resultado = PresupuestoCLienteService::getServiciosManipulado([
'tarifa_id' => intval($servicio->id), 'tarifa_id' => intval($servicio->id),
@ -2515,10 +2648,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
array_push($serviciosAutomaticos, $resultado[0]); array_push($serviciosAutomaticos, $resultado[0]);
} }
$coste_servicios += floatval($resultado[0]->total); $coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += floatval($resultado[0]->total); $totalServicios += round(floatval($resultado[0]->total), 2);
$margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0; $base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
} }
} }
} }
@ -2551,10 +2686,12 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
array_push($serviciosAutomaticos, $resultado[0]); array_push($serviciosAutomaticos, $resultado[0]);
} }
$coste_servicios += floatval($resultado[0]->total); $coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += floatval($resultado[0]->total); $totalServicios += round(floatval($resultado[0]->total), 2);
$margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0; $base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
} }
} }
@ -2586,22 +2723,68 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
array_push($serviciosAutomaticos, $resultado[0]); array_push($serviciosAutomaticos, $resultado[0]);
} }
$coste_servicios += floatval($resultado[0]->total); $coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) { if ($extra_info) {
$totalServicios += floatval($resultado[0]->total); $totalServicios += round(floatval($resultado[0]->total), 2);
$margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0; $base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
} }
} }
// TO-DO Faja if (is_array($faja) && ($faja['solapas'] > 0 && intval($linea_faja['dimension_desarrollo']['ancho']) > 630)) {
array_push($precio_u, round(($costeInterior + $coste_cubierta + $coste_sobrecubierta + $costeServiciosDefecto + $coste_servicios) / $tirada[$t], 4)); // Servicios manipulado
array_push($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas, 2)); $resultado = PresupuestoCLienteService::getServiciosManipulado([
'tarifa_id' => intval($servicio_solapas_grandes_faja->id),
'tirada' => $datosPedido->tirada,
'POD' => $POD,
]);
if ($resultado[0]->total <= 0) {
$errorModel = new ErrorPresupuesto();
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener servicio de manupulado ' . ((string) $servicio->nombre),
$input_data
);
$return_data = [
'errors' => (object) ([
'status' => 1
]),
];
return $return_data;
} else {
array_push($serviciosAutomaticos, $resultado[0]);
}
$coste_servicios += round(floatval($resultado[0]->total), 2);
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
}
$total_por_tirada = $costeInterior +
$coste_cubierta +
$coste_sobrecubierta +
$coste_guardas +
$coste_faja +
$costeServiciosDefecto + $coste_servicios;
array_push(
$precio_u,
round(($total_por_tirada) / $tirada[$t], 4)
);
array_push($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas + $peso_faja, 2));
if ($extra_info) { if ($extra_info) {
$totalServicios -= $margenServicios; $totalServicios -= $margenServicios;
if (($margenServicios + $totalServicios) > 0) { if (($margenServicios + $totalServicios) > 0) {
$porcentajeMargenServicios = $margenServicios / ($margenServicios + $totalServicios) * 100; $porcentajeMargenServicios = $margenServicios / ($totalServicios) * 100;
} else { } else {
$porcentajeMargenServicios = 0; $porcentajeMargenServicios = 0;
} }
@ -2638,6 +2821,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$return_data['values']['cubierta'] = $cubierta; $return_data['values']['cubierta'] = $cubierta;
$return_data['values']['sobrecubierta'] = $linea_sobrecubierta; $return_data['values']['sobrecubierta'] = $linea_sobrecubierta;
$return_data['values']['guardas'] = $guardas; $return_data['values']['guardas'] = $guardas;
$return_data['values']['faja'] = $linea_faja;
$return_data['values']['serviciosDefecto']['encuadernacion'] = $servDefectoEnc; $return_data['values']['serviciosDefecto']['encuadernacion'] = $servDefectoEnc;
$return_data['values']['serviciosDefecto']['manipulado'] = $servDefectoMan; $return_data['values']['serviciosDefecto']['manipulado'] = $servDefectoMan;
$return_data['values']['servicios_automaticos'] = $serviciosAutomaticos; $return_data['values']['servicios_automaticos'] = $serviciosAutomaticos;
@ -2676,25 +2860,25 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
{ {
if (count($linea) == 0) if (count($linea) == 0)
return; return;
$totalPapel += $linea['precio_pedido']; $totalPapel += round($linea['precio_pedido'], 2);
$margenPapel += $linea['margen_papel_pedido']; $margenPapel += round($linea['margen_papel_pedido'], 2);
$sumForFactor += $linea['precio_pedido']; $sumForFactor += round($linea['precio_pedido'], 2);
$sumForFactor -= $linea['precio_pedido']; $sumForFactor -= round($linea['precio_pedido'], 2);
$totalImpresion += $linea['precio_impresion_horas']; $totalImpresion += round($linea['precio_impresion_horas'], 2);
$totalImpresion += $linea['precio_click_pedido']; $totalImpresion += round($linea['precio_click_pedido'], 2);
$sumForFactor += $linea['precio_click_pedido']; $sumForFactor += round($linea['precio_click_pedido'], 2);
if ($linea['tipo_maquina'] == 'inkjet') { if ($linea['tipo_maquina'] == 'inkjet') {
$totalImpresion += $linea['precio_tinta']; $totalImpresion += round($linea['precio_tinta'], 2);
if (array_key_exists('total_corte', $linea)) { if (array_key_exists('total_corte', $linea)) {
$totalImpresion += $linea['total_corte']; $totalImpresion += round($linea['total_corte'], 2);
$sumForFactor += $linea['total_corte']; $sumForFactor += round($linea['total_corte'], 2);
} }
} }
$margenImpresion += $linea['margen_impresion_horas']; $margenImpresion += round($linea['margen_impresion_horas'], 2);
$margenImpresion += $linea['margen_click_pedido']; $margenImpresion += round($linea['margen_click_pedido'], 2);
$sumForFactor -= $linea['margen_click_pedido']; $sumForFactor -= round($linea['margen_click_pedido'], 2);
} }
protected function calcular_lomo($lineas, $lomo_inicial) protected function calcular_lomo($lineas, $lomo_inicial)
@ -2980,6 +3164,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$return_data['sobrecubierta']['papel'] = $modelPapelGenerico->getCodeFromId($linea->papel_id); $return_data['sobrecubierta']['papel'] = $modelPapelGenerico->getCodeFromId($linea->papel_id);
$return_data['sobrecubierta']['gramaje'] = $linea->gramaje; $return_data['sobrecubierta']['gramaje'] = $linea->gramaje;
$return_data['sobrecubierta']['paginas'] = $linea->paginas; $return_data['sobrecubierta']['paginas'] = $linea->paginas;
} else if ($linea->tipo == 'lp_faja') {
$return_data['faja']['papel'] = $modelPapelGenerico->getNombre($linea->papel_id)['nombre'];
$return_data['faja']['papel_id'] = $linea->papel_id;
$return_data['faja']['gramaje'] = $linea->gramaje;
$return_data['faja']['paginas'] = $linea->paginas;
} else if ($linea->tipo == 'lp_guardas') { } else if ($linea->tipo == 'lp_guardas') {
$return_data['guardas']['papel'] = $modelPapelGenerico->getCodeFromId($linea->papel_id); $return_data['guardas']['papel'] = $modelPapelGenerico->getCodeFromId($linea->papel_id);
$return_data['guardas']['gramaje'] = $linea->gramaje; $return_data['guardas']['gramaje'] = $linea->gramaje;

View File

@ -115,7 +115,20 @@ class Presupuestomanipulados extends \App\Controllers\BaseResourceController
if (count($datos_tarifas) > 0) { if (count($datos_tarifas) > 0) {
foreach ($datos_tarifas as $tarifa) { foreach ($datos_tarifas as $tarifa) {
$values = $model->getPrecioTarifa($tarifa, $tirada, $POD); $tarifa_id = 0;
if(is_array($tarifa)){
//check if $tarifa['tarifa_manipulado_id'] exists
if(array_key_exists('tarifa_manipulado_id', $tarifa)){
$tarifa_id = $tarifa['tarifa_manipulado_id'];
}
else if(array_key_exists('tarifa_id', $tarifa)){
$tarifa_id = $tarifa['tarifa_id'];
}
}
else{
$tarifa_id = $tarifa;
}
$values = $model->getPrecioTarifa($tarifa_id, $tirada, $POD);
$values[0]->cubierta = $tarifa['cubierta'] ?? 0; $values[0]->cubierta = $tarifa['cubierta'] ?? 0;
$values[0]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0; $values[0]->sobrecubierta = $tarifa['sobrecubierta'] ?? 0;
array_push($result, $values[0]); array_push($result, $values[0]);

View File

@ -86,6 +86,21 @@ class Presupuestopreimpresiones extends \App\Controllers\BaseResourceController
return $this->respond($data); return $this->respond($data);
} }
public function getServiciosPreimpresion($datos_tarifas)
{
$result = [];
$model = model('App\Models\Presupuestos\Presupuestopreimpresiones');
if (count($datos_tarifas) > 0) {
foreach ($datos_tarifas as $tarifa) {
$values = $model->getPrecioTarifa($tarifa);
array_push($result, $values[0]);
}
}
return $result;
}
public function datatable() public function datatable()
{ {
if ($this->request->isAJAX()) { if ($this->request->isAJAX()) {

View File

@ -86,6 +86,20 @@ class Presupuestoserviciosextra extends \App\Controllers\BaseResourceController
return $this->respond($data); return $this->respond($data);
} }
public function getServiciosExtra($datos_tarifas)
{
$result = [];
$model = model('App\Models\Presupuestos\PresupuestoServiciosExtraModel');
if (count($datos_tarifas) > 0) {
foreach ($datos_tarifas as $tarifa) {
$values = $model->getPrecioTarifa($tarifa);
array_push($result, $values[0]);
}
}
return $result;
}
public function datatable() public function datatable()
{ {
if ($this->request->isAJAX()) { if ($this->request->isAJAX()) {

View File

@ -88,10 +88,17 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$json_data_acabados = $reqData['json_acabados'] ?? null; $json_data_acabados = $reqData['json_acabados'] ?? null;
$json_data_encuadernacion = $reqData['json_encuadernaciones'] ?? null; $json_data_encuadernacion = $reqData['json_encuadernaciones'] ?? null;
$json_data_manipulado = $reqData['json_manipulado'] ?? null; $json_data_manipulado = $reqData['json_manipulado'] ?? null;
$json_data_preimpresion = $reqData['json_preimpresion'] ?? null;
$json_data_extra = $reqData['json_extra'] ?? null;
$cliente_id = $reqData['cliente_id'] ?? 0; $cliente_id = $reqData['cliente_id'] ?? 0;
$faja_alto = $reqData['faja_alto'] ?? 0;
$solapas_faja = $reqData['solapas_faja'] ?? 0;
$tipo_impresion_id = $reqData['tipo_impresion_id'] ?? 4; $tipo_impresion_id = $reqData['tipo_impresion_id'] ?? 4;
$tirada = $reqData['tirada'] ?? 0;
$values = []; $values = [];
if ($json_data) { if ($json_data) {
@ -120,14 +127,29 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
} else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) { } else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
$datosPedido->isCosido = false; $datosPedido->isCosido = false;
} }
} else if ($linea['row_id'] == 'lp_sobrecubierta' || $linea['row_id'] == 'lp_cubierta') { } else if ($linea['row_id'] == 'lp_sobrecubierta' || $linea['row_id'] == 'lp_cubierta' || $linea['row_id'] == 'lp_faja') {
$datosPedido->solapas = $datosPedido->solapas = $reqData['solapas_cubierta'];
$linea['row_id'] == 'lp_cubierta' ? $reqData['solapas_cubierta'] : $reqData['solapas_sobrecubierta']; if ($linea['row_id'] == 'lp_faja') {
$datosPedido->solapas_ancho = $datosPedido->solapas = 1;
$linea['row_id'] == 'lp_cubierta' ? $reqData['solapas_cubierta_ancho'] : $reqData['solapas_sobrecubierta_ancho']; $datosPedido->alto = $faja_alto;
} else if ($linea['row_id'] == 'lp_sobrecubierta') {
$datosPedido->solapas = $reqData['solapas_sobrecubierta'];
}
$datosPedido->solapas_ancho = $reqData['solapas_cubierta_ancho'];
if ($linea['row_id'] == 'lp_faja') {
$datosPedido->solapas_ancho = $solapas_faja;
} else if ($linea['row_id'] == 'lp_sobrecubierta') {
$datosPedido->solapas_ancho = $reqData['solapas_sobrecubierta_ancho'];
}
$datosPedido->lomo = $reqData['lomo']; $datosPedido->lomo = $reqData['lomo'];
$type = $linea['row_id'] == 'lp_cubierta' ? 'cubierta' : 'sobrecubierta'; $type = 'lp_cubierta';
if ($linea['row_id'] == 'lp_sobrecubierta') {
$type = 'lp_sobrecubierta';
} else if ($linea['row_id'] == 'lp_faja') {
$type = 'lp_faja';
}
$datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($type, $tipo_impresion_id, $datosPedido); $datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($type, $tipo_impresion_id, $datosPedido);
$datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($type, $tipo_impresion_id, $datosPedido); $datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($type, $tipo_impresion_id, $datosPedido);
@ -174,6 +196,9 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
case 'lp_sobrecubierta': case 'lp_sobrecubierta':
$uso = 'sobrecubierta'; $uso = 'sobrecubierta';
break; break;
case 'lp_faja':
$uso = 'faja';
break;
case 'lp_guardas': case 'lp_guardas':
$uso = 'guardas'; $uso = 'guardas';
break; break;
@ -185,7 +210,7 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
break; break;
} }
if ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'guardas') { if ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja' || $uso == 'guardas') {
$isColor = true; $isColor = true;
$isHq = true; $isHq = true;
$tipo = 'colorhq'; $tipo = 'colorhq';
@ -288,10 +313,10 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$result = $acabados->getServiciosAcabados($json_data_acabados, $reqData['tirada'], $POD); $result = $acabados->getServiciosAcabados($json_data_acabados, $reqData['tirada'], $POD);
if (count($result) > 0) { if (count($result) > 0) {
foreach ($result as $servicio) { foreach ($result as $servicio) {
$coste = round($servicio->total / (1 + $servicio->margen / 100), 2); $servicios->coste += round(floatval($servicio->total), 2);
$margen = round($servicio->total - $coste, 2); $base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$servicios->coste += $coste; $base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$servicios->margen += $margen; $servicios->margen += round(floatval($servicio->total - $base), 2);
} }
} }
} }
@ -306,10 +331,10 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$result = $encuadernacion->getServiciosEncuadernacion($json_data_encuadernacion, $reqData['tirada'], $reqData['paginas'], $reqData['ancho'], $reqData['alto'], $POD); $result = $encuadernacion->getServiciosEncuadernacion($json_data_encuadernacion, $reqData['tirada'], $reqData['paginas'], $reqData['ancho'], $reqData['alto'], $POD);
if (count($result) > 0) { if (count($result) > 0) {
foreach ($result as $servicio) { foreach ($result as $servicio) {
$coste = round($servicio->total / (1 + $servicio->margen / 100), 2); $servicios->coste += round(floatval($servicio->total), 2);
$margen = round($servicio->total - $coste, 2); $base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$servicios->coste += $coste; $base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$servicios->margen += $margen; $servicios->margen += round(floatval($servicio->total - $base), 2);
} }
} }
} }
@ -323,10 +348,44 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro
$result = $manipulados->getServiciosManipulado($json_data_manipulado, $reqData['tirada'], $POD); $result = $manipulados->getServiciosManipulado($json_data_manipulado, $reqData['tirada'], $POD);
if (count($result) > 0) { if (count($result) > 0) {
foreach ($result as $servicio) { foreach ($result as $servicio) {
$coste = round($servicio->total / (1 + $servicio->margen / 100), 2); $servicios->coste += round(floatval($servicio->total), 2);
$margen = round($servicio->total - $coste, 2); $base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$servicios->coste += $coste; $base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$servicios->margen += $margen; $servicios->margen += round(floatval($servicio->total - $base), 2);
}
}
}
}
if($json_data_preimpresion){
$json_data_preimpresion = json_decode($json_data_preimpresion, true);
if (count($json_data_preimpresion) > 0) {
$preimpresion = new Presupuestopreimpresiones();
$POD = (new \App\Models\Configuracion\ConfigVariableModel())->getVariable('POD')->value;
$result = $preimpresion->getServiciosPreimpresion($json_data_preimpresion);
if (count($result) > 0) {
foreach ($result as $servicio) {
$servicios->coste += round(floatval($servicio->total), 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$servicios->margen += round(floatval($servicio->total - $base), 2);
}
}
}
}
if($json_data_extra){
$json_data_extra = json_decode($json_data_extra, true);
if (count($json_data_extra) > 0) {
$extra = new Presupuestoserviciosextra();
$POD = (new \App\Models\Configuracion\ConfigVariableModel())->getVariable('POD')->value;
$result = $extra->getServiciosExtra($json_data_extra, $reqData['tirada'], $POD);
if (count($result) > 0) {
foreach ($result as $servicio) {
$servicios->coste += round(floatval($servicio->total), 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada;
$servicios->margen += round(floatval($servicio->total - $base), 2);
} }
} }
} }

View File

@ -26,13 +26,13 @@ class Test extends BaseController
public function index() public function index()
{ {
$model = model("\App\Models\Clientes\ClientePreciosModel"); /*$model = model("\App\Models\Clientes\ClientePreciosModel");
$model->debug_all_clientes_to_defecto(); $model->debug_all_clientes_to_defecto();
echo '<pre>'; echo '<pre>';
echo 'OK'; echo 'OK';
echo '</pre>'; echo '</pre>';*/
//xdebug_info(); xdebug_info();

View File

@ -15,10 +15,13 @@ class PresupuestoAcabadosEntity extends \CodeIgniter\Entity\Entity
"tarifa_acabado_id" => null, "tarifa_acabado_id" => null,
"proveedor_id" => null, "proveedor_id" => null,
"precio_unidad" => null, "precio_unidad" => null,
"importe_minimo" => null,
"importe_fijo" => null,
"precio_total" => null, "precio_total" => null,
"margen" => null, "margen" => null,
"cubierta" => null, "cubierta" => null,
"sobrecubierta" => null, "sobrecubierta" => null,
"faja" => null,
"created_at" => null, "created_at" => null,
"updated_at" => null, "updated_at" => null,
]; ];
@ -27,10 +30,12 @@ class PresupuestoAcabadosEntity extends \CodeIgniter\Entity\Entity
"tarifa_acabado_id" => "int", "tarifa_acabado_id" => "int",
"proveedor_id" => "int", "proveedor_id" => "int",
"precio_unidad" => "float", "precio_unidad" => "float",
"precio_total" => "float", "importe_minimo" => "float",
"importe_fijo" => "float",
"margen" => "float", "margen" => "float",
"cubierta" => "int", "cubierta" => "int",
"sobrecubierta" => "int", "sobrecubierta" => "int",
"faja" => "int",
]; ];
public function maquinas() : array public function maquinas() : array

View File

@ -104,6 +104,7 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
'excluir_rotativa' => null, 'excluir_rotativa' => null,
"acabado_cubierta_id" => null, "acabado_cubierta_id" => null,
"acabado_sobrecubierta_id" => null, "acabado_sobrecubierta_id" => null,
"acabado_faja_id" => null,
"is_duplicado" => false, "is_duplicado" => false,
'paginas_color_consecutivas' => null, 'paginas_color_consecutivas' => null,
'papel_interior_diferente' => null, 'papel_interior_diferente' => null,
@ -176,6 +177,7 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
'excluir_rotativa' => "?boolean", 'excluir_rotativa' => "?boolean",
"acabado_cubierta_id" => "int", "acabado_cubierta_id" => "int",
"acabado_sobrecubierta_id" => "int", "acabado_sobrecubierta_id" => "int",
"acabado_faja_id" => "int",
"is_duplicado" => "boolean", "is_duplicado" => "boolean",
'paginas_color_consecutivas' => "boolean", 'paginas_color_consecutivas' => "boolean",
'papel_interior_diferente' => "boolean", 'papel_interior_diferente' => "boolean",

View File

@ -71,6 +71,7 @@ return [
'acabadosExteriores' => 'Acabados exteriores', 'acabadosExteriores' => 'Acabados exteriores',
'acabadoCubierta' => 'Acabado Cubierta', 'acabadoCubierta' => 'Acabado Cubierta',
'acabadoSobrecubierta' => 'Acabado Sobrecubierta', 'acabadoSobrecubierta' => 'Acabado Sobrecubierta',
'acabadoFaja' => 'Acabado Faja',
'cosido' => 'Cosido', 'cosido' => 'Cosido',
'ferro' => 'Ferro', 'ferro' => 'Ferro',
'ferroDigital' => 'Ferro Digital', 'ferroDigital' => 'Ferro Digital',
@ -125,6 +126,7 @@ return [
'faja' => 'Faja', 'faja' => 'Faja',
'altoFaja' => 'Alto faja', 'altoFaja' => 'Alto faja',
'papelFaja' => 'Papel faja', 'papelFaja' => 'Papel faja',
'gramajeFaja' => 'Gramaje faja',
'tamanioSolapasFaja' => 'Tamaño solapas faja', 'tamanioSolapasFaja' => 'Tamaño solapas faja',
'plastificadoFaja' => 'Plastificado faja', 'plastificadoFaja' => 'Plastificado faja',
'estucadoMate170gr' => 'Estucado mate 170 gr', 'estucadoMate170gr' => 'Estucado mate 170 gr',
@ -263,7 +265,7 @@ return [
'formatoLibro' => "Formato libro", 'formatoLibro' => "Formato libro",
'selectCliente' => "Seleccione cliente", 'selectCliente' => "Seleccione cliente",
'selectPapel' => "Seleccione papel", 'selectPapel' => "Seleccione papel",
'selectGramaje' => "Seleccione gramaje",
// Preview // Preview
'preview' => 'Previsualización de configuraciones', 'preview' => 'Previsualización de configuraciones',
@ -370,6 +372,7 @@ return [
'opcion_solapas' => 'Seleccione la opción para las solapas', 'opcion_solapas' => 'Seleccione la opción para las solapas',
'paginas_multiplo_4' => 'El número de páginas para <b>cosido</b> o <b>grapado</b> debe ser múltiplo de 4', 'paginas_multiplo_4' => 'El número de páginas para <b>cosido</b> o <b>grapado</b> debe ser múltiplo de 4',
'paginas_pares' => 'El número de páginas debe ser par', 'paginas_pares' => 'El número de páginas debe ser par',
'extras_cubierta' => 'Rellene todos los campos',
], ],
'errores' => [ 'errores' => [

View File

@ -413,6 +413,7 @@ class PapelGenericoModel extends \App\Models\BaseModel
public function getPapelCliente( public function getPapelCliente(
$tipo, $tipo,
$is_cubierta = false, $is_cubierta = false,
$is_sobrecubierta = false,
$selected_papel_id = null, $selected_papel_id = null,
$tapa_dura = null, $tapa_dura = null,
$papel_especial = false, $papel_especial = false,
@ -517,6 +518,9 @@ class PapelGenericoModel extends \App\Models\BaseModel
if ($tapa_dura == true) { if ($tapa_dura == true) {
$builder->where("t2.use_for_tapa_dura", 1); $builder->where("t2.use_for_tapa_dura", 1);
} }
} else if ($is_sobrecubierta == true) {
$builder->where("t2.sobrecubierta", 1);
$builder->where("t5.uso", 'sobrecubierta');
} else { } else {
$builder->where("t2.interior", 1); $builder->where("t2.interior", 1);
$builder->where("t5.uso", 'interior'); $builder->where("t5.uso", 'interior');

View File

@ -22,7 +22,7 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
3 => "t1.precio_total" 3 => "t1.precio_total"
]; ];
protected $allowedFields = ["presupuesto_id", "tarifa_acabado_id", "proveedor_id", "nombre", "precio_total", "precio_unidad", "margen", "cubierta", "sobrecubierta"]; protected $allowedFields = ["presupuesto_id", "tarifa_acabado_id", "proveedor_id", "nombre", "precio_total", "importe_fijo", "importe_minimo", "precio_unidad", "margen", "cubierta", "sobrecubierta", "faja"];
protected $returnType = "App\Entities\Presupuestos\PresupuestoAcabadosEntity"; protected $returnType = "App\Entities\Presupuestos\PresupuestoAcabadosEntity";
protected $useTimestamps = true; protected $useTimestamps = true;
@ -48,7 +48,8 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
]; ];
public function getProveedoresForSelector($tarifa_acabado_id, $tirada){ public function getProveedoresForSelector($tarifa_acabado_id, $tirada)
{
$proveedores = []; $proveedores = [];
$modelTarifa = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel'); $modelTarifa = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
@ -57,16 +58,19 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
if (count($tarifa_value) > 0) { if (count($tarifa_value) > 0) {
foreach ($tarifa_value as $tarifa) foreach ($tarifa_value as $tarifa)
array_push($proveedores, array_push(
$proveedores,
(object) [ (object) [
'id' => $tarifa->proveedor_id, 'id' => $tarifa->proveedor_id,
'text' => $tarifa->proveedor_nombre, 'text' => $tarifa->proveedor_nombre,
]); ]
);
} }
return $proveedores; return $proveedores;
} }
public function getPrecioTarifa($tarifa_acabado_id, $tirada, $proveedor_id, $POD){ public function getPrecioTarifa($tarifa_acabado_id, $tirada, $proveedor_id, $POD)
{
$modelTarifa = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel'); $modelTarifa = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
$tarifa_value = $modelTarifa->getTarifaPresupuestoAcabado($tarifa_acabado_id, $tirada, $proveedor_id); $tarifa_value = $modelTarifa->getTarifaPresupuestoAcabado($tarifa_acabado_id, $tirada, $proveedor_id);
@ -91,8 +95,7 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
return $a->precio_total <=> $b->precio_total; return $a->precio_total <=> $b->precio_total;
}); });
return $ret_array; return $ret_array;
} } else {
else{
$ret_array[] = (object) [ $ret_array[] = (object) [
'tarifa_id' => $tarifa_acabado_id, 'tarifa_id' => $tarifa_acabado_id,
'tarifa_nombre' => $modelTarifa->getNombreTarifaAcabado($tarifa_acabado_id)[0]->nombre, 'tarifa_nombre' => $modelTarifa->getNombreTarifaAcabado($tarifa_acabado_id)[0]->nombre,
@ -110,7 +113,8 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
} }
public function deleteAllServicios($presupuesto_id){ public function deleteAllServicios($presupuesto_id)
{
$this->db $this->db
->table($this->table . " t1") ->table($this->table . " t1")
@ -118,7 +122,8 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
->delete(); ->delete();
} }
public function deleteServiciosNotInArray($presupuesto_id, $tarifas){ public function deleteServiciosNotInArray($presupuesto_id, $tarifas)
{
$builder = $this->db $builder = $this->db
->table($this->table . " t1"); ->table($this->table . " t1");
@ -130,9 +135,12 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
foreach ($results as $result) { foreach ($results as $result) {
$found = false; $found = false;
foreach ($tarifas as $tarifa) { foreach ($tarifas as $tarifa) {
if($tarifa->tarifa_id == $result->tarifa_acabado_id && if (
$tarifa->tarifa_id == $result->tarifa_acabado_id &&
$tarifa->cubierta == $result->cubierta && $tarifa->cubierta == $result->cubierta &&
$tarifa->sobrecubierta == $result->sobrecubierta) $tarifa->sobrecubierta == $result->sobrecubierta &&
$tarifa->faja == $result->faja
)
$found = true; $found = true;
} }
if (!$found) { if (!$found) {
@ -149,7 +157,8 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
$builder->delete(); $builder->delete();
} }
public function updateTarifas($presupuesto_id, $tarifas){ public function updateTarifas($presupuesto_id, $tarifas)
{
foreach ($tarifas as $tarifa) { foreach ($tarifas as $tarifa) {
@ -162,6 +171,7 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
$builder->where('tarifa_acabado_id', $tarifa->tarifa_id); $builder->where('tarifa_acabado_id', $tarifa->tarifa_id);
$builder->where('cubierta', $tarifa->cubierta); $builder->where('cubierta', $tarifa->cubierta);
$builder->where('sobrecubierta', $tarifa->sobrecubierta); $builder->where('sobrecubierta', $tarifa->sobrecubierta);
$builder->where('faja', $tarifa->faja);
$result = $builder->get()->getResultObject(); $result = $builder->get()->getResultObject();
if (count($result) > 0) { if (count($result) > 0) {
$this->db $this->db
@ -174,11 +184,11 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
->set('margen', $tarifa->margen) ->set('margen', $tarifa->margen)
->set('cubierta', $tarifa->cubierta) ->set('cubierta', $tarifa->cubierta)
->set('sobrecubierta', $tarifa->sobrecubierta) ->set('sobrecubierta', $tarifa->sobrecubierta)
->set('faja', $tarifa->faja)
->update(); ->update();
} } else {
else{
$this->db $this->db
->table($this->table . " t1") ->table($this->table . " t1")
->set('presupuesto_id', $presupuesto_id) ->set('presupuesto_id', $presupuesto_id)
@ -189,6 +199,7 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
->set('margen', $tarifa->margen) ->set('margen', $tarifa->margen)
->set('cubierta', $tarifa->cubierta) ->set('cubierta', $tarifa->cubierta)
->set('sobrecubierta', $tarifa->sobrecubierta) ->set('sobrecubierta', $tarifa->sobrecubierta)
->set('faja', $tarifa->faja)
->insert(); ->insert();
} }
} }
@ -208,6 +219,7 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
->select( ->select(
"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.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.precio_total AS precio_total, t1.margen AS margen, t2.nombre AS nombre, t1.cubierta AS cubierta, t1.sobrecubierta AS sobrecubierta,
t1.faja AS faja,
t1.proveedor_id AS proveedor_id, t3.nombre AS proveedor," t1.proveedor_id AS proveedor_id, t3.nombre AS proveedor,"
); );
@ -285,13 +297,18 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
return $builder; return $builder;
} }
private function calcularTarifa($tarifa, $tirada, $is_POD=false){ private function calcularTarifa($tarifa, $tirada, $is_POD = false)
{
$precio_unidad = floatval($tarifa->precio_min) - (floatval($tarifa->precio_min) - floatval($tarifa->precio_max)) / ($tarifa->tirada_max - $tarifa->tirada_min) * ($tirada - $tarifa->tirada_min); $precio_unidad = floatval($tarifa->precio_min) - (floatval($tarifa->precio_min) - floatval($tarifa->precio_max)) / ($tarifa->tirada_max - $tarifa->tirada_min) * ($tirada - $tarifa->tirada_min);
if ($tirada > $tarifa->tirada_max) if ($tirada > $tarifa->tirada_max)
$precio_unidad = $tarifa->precio_max; $precio_unidad = $tarifa->precio_max;
$precio_unidad = $precio_unidad * (1 + floatval($tarifa->margen) / 100.0); $precio_unidad = $precio_unidad * (1 + floatval($tarifa->margen) / 100.0);
if (!$is_POD) {
$precio_unidad += floatval($tarifa->tarifa_importe_fijo)/floatval($tirada);
}
$total = $precio_unidad * $tirada; $total = $precio_unidad * $tirada;
$margen = floatval($tarifa->margen); $margen = floatval($tarifa->margen);
@ -302,10 +319,6 @@ class PresupuestoAcabadosModel extends \App\Models\BaseModel
$precio_unidad = round(floatval($total / $tirada), 2); $precio_unidad = round(floatval($total / $tirada), 2);
} }
if (!$is_POD){
$total += floatval($tarifa->tarifa_importe_fijo);
}
return [$precio_unidad, $total, $margen]; return [$precio_unidad, $total, $margen];
} }

View File

@ -48,7 +48,8 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
public function initPresupuesto($tipo_presupuesto, $solapas, $tirada, $paginas, $ancho, $alto, $POD, $paginasCuadernillo = 32){ public function initPresupuesto($tipo_presupuesto, $solapas, $tirada, $paginas, $ancho, $alto, $POD, $paginasCuadernillo = 32)
{
$model = model('App\Models\Presupuestos\TipoPresupuestoServiciosDefectoModel'); $model = model('App\Models\Presupuestos\TipoPresupuestoServiciosDefectoModel');
$tarifas_procesar = $model->get_tarifas($tipo_presupuesto, $solapas, "encuadernacion"); $tarifas_procesar = $model->get_tarifas($tipo_presupuesto, $solapas, "encuadernacion");
@ -62,8 +63,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
if ($tarifa['tarifa_id'] == 2 || $tarifa['tarifa_id'] == 14) { // Rústica cosido hilo vegetal y Rústica cosido hilo vegetal solapas if ($tarifa['tarifa_id'] == 2 || $tarifa['tarifa_id'] == 14) { // Rústica cosido hilo vegetal y Rústica cosido hilo vegetal solapas
$tiempo = $this->calcularTiempoCosido(16, $paginas, $tirada, $paginasCuadernillo); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos $tiempo = $this->calcularTiempoCosido(16, $paginas, $tirada, $paginasCuadernillo); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos
} } else {
else{
$tiempo = $this->calcularTiempo(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos $tiempo = $this->calcularTiempo(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos
} }
@ -77,8 +77,8 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$precio_total += floatval($tarifa_proveedor->tarifa_importe_fijo); $precio_total += floatval($tarifa_proveedor->tarifa_importe_fijo);
} }
$result_data[0] = floatval($precio_total / $tirada); // Precio/unidad $result_data[0] = round(floatval($precio_total / $tirada), 2); // Precio/unidad
$result_data[1] = $precio_total; $result_data[1] = round($result_data[0] * $tirada, 2);
$result_data[2] = $tarifa_proveedor->margen; // margen $result_data[2] = $tarifa_proveedor->margen; // margen
$datos = [ $datos = [
@ -98,8 +98,10 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$datos['paginas_por_cuadernillo'] = $paginasCuadernillo; $datos['paginas_por_cuadernillo'] = $paginasCuadernillo;
} }
array_push($result_array, array_push(
(object)$datos); $result_array,
(object) $datos
);
} }
usort($result_array, function ($a, $b) { usort($result_array, function ($a, $b) {
@ -113,9 +115,9 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
array_push($tarifas, $result_array[0]); array_push($tarifas, $result_array[0]);
} } else {
else{ array_push(
array_push($tarifas, $tarifas,
(object) [ (object) [
'tarifa_id' => $tarifa['tarifa_id'], 'tarifa_id' => $tarifa['tarifa_id'],
'tarifa_nombre' => $tarifa['tarifa_nombre'], 'tarifa_nombre' => $tarifa['tarifa_nombre'],
@ -126,10 +128,10 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
'total' => 0, 'total' => 0,
'precio_total' => 0, 'precio_total' => 0,
'margen' => 0, 'margen' => 0,
]); ]
);
} }
} } else {
else{
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa['tarifa_id'], $paginas, $tirada, $ancho, $alto); $tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa['tarifa_id'], $paginas, $tirada, $ancho, $alto);
if (count($tarifa_value) > 0) { if (count($tarifa_value) > 0) {
@ -159,9 +161,9 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
}); });
array_push($tarifas, $result_array[0]); array_push($tarifas, $result_array[0]);
} } else {
else{ array_push(
array_push($tarifas, $tarifas,
(object) [ (object) [
'tarifa_id' => $tarifa['tarifa_id'], 'tarifa_id' => $tarifa['tarifa_id'],
'tarifa_nombre' => $tarifa['tarifa_nombre'], 'tarifa_nombre' => $tarifa['tarifa_nombre'],
@ -172,7 +174,8 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
'total' => 0, 'total' => 0,
'precio_total' => 0, 'precio_total' => 0,
'margen' => 0, 'margen' => 0,
]); ]
);
} }
} }
} }
@ -181,7 +184,8 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
} }
public function getProveedoresForSelector($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $paginasCuadernillo = 32){ public function getProveedoresForSelector($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $paginasCuadernillo = 32)
{
$proveedores = []; $proveedores = [];
$modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel'); $modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel');
@ -189,29 +193,30 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
if ($modelTarifa->isTarifaPorHoras($tarifa_encuadernacion_id)) { 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 $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); $tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacionHoras($tarifa_encuadernacion_id, $tiempo, $tirada);
} } else {
else{
$tiempo = $this->calcularTiempo(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos $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); $tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto);
} }
if (count($tarifa_value) > 0) { if (count($tarifa_value) > 0) {
foreach ($tarifa_value as $tarifa) foreach ($tarifa_value as $tarifa)
array_push($proveedores, array_push(
$proveedores,
(object) [ (object) [
'id' => $tarifa->proveedor_id, 'id' => $tarifa->proveedor_id,
'text' => $tarifa->proveedor_nombre, 'text' => $tarifa->proveedor_nombre,
]); ]
);
} }
return $proveedores; return $proveedores;
} }
public function getPrecioTarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $POD){ public function getPrecioTarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $POD)
{
$modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel'); $modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel');
if ($proveedor_id != -1) { if ($proveedor_id != -1) {
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id); $tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id);
} } else {
else{
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto); $tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto);
} }
if (count($tarifa_value) > 0) { if (count($tarifa_value) > 0) {
@ -242,8 +247,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
return ($a->total < $b->total) ? -1 : 1; return ($a->total < $b->total) ? -1 : 1;
}); });
return $ret_array; return $ret_array;
} } else {
else{
$ret_array[] = (object) [ $ret_array[] = (object) [
'tarifa_id' => $tarifa_encuadernacion_id, 'tarifa_id' => $tarifa_encuadernacion_id,
'tarifa_nombre' => $modelTarifa->getNombreTarifaEncuadernacion($tarifa_encuadernacion_id)[0]->nombre, 'tarifa_nombre' => $modelTarifa->getNombreTarifaEncuadernacion($tarifa_encuadernacion_id)[0]->nombre,
@ -260,14 +264,14 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
return []; return [];
} }
public function getPrecioTarifaHoras($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD, $paginas_cuadernillo = 32){ public function getPrecioTarifaHoras($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD, $paginas_cuadernillo = 32)
{
$modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel'); $modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel');
if ($tarifa_encuadernacion_id == 2 || $tarifa_encuadernacion_id == 14) { // Rústica cosido hilo vegetal y Rústica cosido hilo vegetal solapas if ($tarifa_encuadernacion_id == 2 || $tarifa_encuadernacion_id == 14) { // Rústica cosido hilo vegetal y Rústica cosido hilo vegetal solapas
$tiempo = $this->calcularTiempoCosido(16, $paginas, $tirada, $paginas_cuadernillo); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos $tiempo = $this->calcularTiempoCosido(16, $paginas, $tirada, $paginas_cuadernillo); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos
} } else {
else{
$tiempo = $this->calcularTiempo(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos $tiempo = $this->calcularTiempo(16, $paginas, $tirada); // ID fija. Cambiar cuando se metan maquinas de corte. Velocidad en minutos
} }
@ -284,17 +288,20 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$tarifa_precio_min = floatval($tarifa_proveedor->tarifa_precio_min); $tarifa_precio_min = floatval($tarifa_proveedor->tarifa_precio_min);
if ($tarifa_precio_min > $precio_total) { if ($tarifa_precio_min > $precio_total) {
$total = $total-($total * $margen/100.0); $precio_total = $precio_total - ($precio_total * $margen / 100.0);
$margen = round(100.0 * (floatval($$tarifa_precio_min) - $total) / floatval($$tarifa_precio_min), 0); $margen = round(100.0 * (floatval($tarifa_precio_min) - $precio_total) / floatval($tarifa_precio_min), 0);
$total = floatval($$tarifa_precio_min); $precio_total = floatval($tarifa_precio_min);
} }
$result_data[0] = floatval($precio_total / $tirada); // Precio/unidad $precio_total = round($precio_total, 2);
$result_data[1] = $precio_total;
$result_data[0] = round(floatval($precio_total / $tirada), 2); // Precio/unidad
$result_data[1] = round($result_data[0] * $tirada, 2);
$result_data[2] = $tarifa_proveedor->margen; // margen $result_data[2] = $tarifa_proveedor->margen; // margen
array_push($ret_array, array_push(
$ret_array,
(object) [ (object) [
'tarifa_id' => $tarifa_proveedor->tarifa_enc_id, 'tarifa_id' => $tarifa_proveedor->tarifa_enc_id,
'tarifa_nombre' => $tarifa_proveedor->tarifa_enc_nombre, 'tarifa_nombre' => $tarifa_proveedor->tarifa_enc_nombre,
@ -307,7 +314,8 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
'margen' => $result_data[2], 'margen' => $result_data[2],
'proveedor' => $tarifa_proveedor->proveedor_nombre, 'proveedor' => $tarifa_proveedor->proveedor_nombre,
'proveedor_id' => $tarifa_proveedor->proveedor_id, 'proveedor_id' => $tarifa_proveedor->proveedor_id,
]); ]
);
} }
usort($ret_array, function ($a, $b) { usort($ret_array, function ($a, $b) {
@ -319,8 +327,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
}); });
return $ret_array; return $ret_array;
} } else {
else{
$ret_array[] = (object) [ $ret_array[] = (object) [
'tarifa_id' => $tarifa_encuadernacion_id, 'tarifa_id' => $tarifa_encuadernacion_id,
'tarifa_nombre' => $modelTarifa->getNombreTarifaEncuadernacion($tarifa_encuadernacion_id)[0]->nombre, 'tarifa_nombre' => $modelTarifa->getNombreTarifaEncuadernacion($tarifa_encuadernacion_id)[0]->nombre,
@ -338,13 +345,20 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
} }
private function calcularTarifa($tarifa, $paginas, $ejemplares, $is_POD=false){ private function calcularTarifa($tarifa, $paginas, $ejemplares, $is_POD = false)
{
$precio_unidad = floatval($tarifa->precio_max) - (floatval($tarifa->precio_max) - floatval($tarifa->precio_min)) / ($tarifa->paginas_max - $tarifa->paginas_min) * ($paginas - $tarifa->paginas_min); $precio_unidad = floatval($tarifa->precio_max) - (floatval($tarifa->precio_max) - floatval($tarifa->precio_min)) / ($tarifa->paginas_max - $tarifa->paginas_min) * ($paginas - $tarifa->paginas_min);
if ($paginas > $tarifa->paginas_max) if ($paginas > $tarifa->paginas_max)
$precio_unidad = $tarifa->precio_max; $precio_unidad = $tarifa->precio_max;
$precio_unidad = $precio_unidad * (1 + floatval($tarifa->margen) / 100.0); $precio_unidad = $precio_unidad * (1 + floatval($tarifa->margen) / 100.0);
if (!$is_POD) {
$precio_unidad += floatval($tarifa->tarifa_importe_fijo) / floatval($ejemplares);
}
$precio_unidad = round($precio_unidad, 2);
$total = $precio_unidad * $ejemplares; $total = $precio_unidad * $ejemplares;
$margen = floatval($tarifa->margen); $margen = floatval($tarifa->margen);
$tarifa_precio_min = floatval($tarifa->tarifa_precio_min); $tarifa_precio_min = floatval($tarifa->tarifa_precio_min);
@ -356,15 +370,12 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$precio_unidad = round(floatval($total / $ejemplares), 2); $precio_unidad = round(floatval($total / $ejemplares), 2);
} }
if (!$is_POD){
$total += floatval($tarifa->tarifa_importe_fijo);
}
return [$precio_unidad, $total, $margen]; return [$precio_unidad, $total, $margen];
} }
public function getIdFromTarifa($tarifa_id){ public function getIdFromTarifa($tarifa_id)
{
$builder = $this->db $builder = $this->db
->table($this->table . " t1") ->table($this->table . " t1")
@ -376,7 +387,8 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
} }
public function deleteAllServicios($presupuesto_id){ public function deleteAllServicios($presupuesto_id)
{
$this->db $this->db
->table($this->table . " t1") ->table($this->table . " t1")
@ -384,7 +396,8 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
->delete(); ->delete();
} }
public function deleteServiciosNotInArray($presupuesto_id, $tarifas_id){ public function deleteServiciosNotInArray($presupuesto_id, $tarifas_id)
{
$builder = $this->db $builder = $this->db
->table($this->table . " t1"); ->table($this->table . " t1");
@ -395,7 +408,8 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
$builder->delete(); $builder->delete();
} }
public function updateTarifas($presupuesto_id, $tarifas){ public function updateTarifas($presupuesto_id, $tarifas)
{
foreach ($tarifas as $tarifa) { foreach ($tarifas as $tarifa) {
@ -421,8 +435,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
->update(); ->update();
} } else {
else{
$this->db $this->db
->table($this->table . " t1") ->table($this->table . " t1")
->set('presupuesto_id', $presupuesto_id) ->set('presupuesto_id', $presupuesto_id)
@ -461,7 +474,8 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
return $builder; return $builder;
} }
private function calcularTiempo($maquina_id, $paginas, $tirada){ private function calcularTiempo($maquina_id, $paginas, $tirada)
{
$maquinaModel = model("App\Models\Configuracion\MaquinaModel"); $maquinaModel = model("App\Models\Configuracion\MaquinaModel");
$cuadernillos_libro = $paginas / 4; $cuadernillos_libro = $paginas / 4;
@ -470,7 +484,8 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
return round($cuadernillos_pedido / ($velocidad * 60.0), 2); return round($cuadernillos_pedido / ($velocidad * 60.0), 2);
} }
private function calcularTiempoCosido($maquina_id, $paginas, $tirada, $cuadernillos_por_pagina = 32){ private function calcularTiempoCosido($maquina_id, $paginas, $tirada, $cuadernillos_por_pagina = 32)
{
$maquinaModel = model("App\Models\Configuracion\MaquinaModel"); $maquinaModel = model("App\Models\Configuracion\MaquinaModel");
$velocidad = $maquinaModel->getVelocidad($maquina_id); // cuadernillos por minuto $velocidad = $maquinaModel->getVelocidad($maquina_id); // cuadernillos por minuto

View File

@ -45,7 +45,8 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
]; ];
public function getPrecioTarifa($tarifa_manipulado_id, $tirada, $POD){ public function getPrecioTarifa($tarifa_manipulado_id, $tirada, $POD)
{
$modelTarifa = model('App\Models\Tarifas\TarifaManipuladoModel'); $modelTarifa = model('App\Models\Tarifas\TarifaManipuladoModel');
$tarifa_value = $modelTarifa->getTarifaPresupuestoManipulado($tarifa_manipulado_id, $tirada); $tarifa_value = $modelTarifa->getTarifaPresupuestoManipulado($tarifa_manipulado_id, $tirada);
@ -69,8 +70,17 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
}); });
return $ret_array; return $ret_array;
} } else {
else{ if (is_array($tarifa_manipulado_id)) {
$ret_array[] = (object) [
'tarifa_id' => $tarifa_manipulado_id['id'],
'tarifa_nombre' => $tarifa_manipulado_id['nombre'],
'nombre' => $tarifa_manipulado_id['nombre'],
'precio_unidad' => 0,
'total' => 0,
'margen' => 0,
];
} else {
$ret_array[] = (object) [ $ret_array[] = (object) [
'tarifa_id' => $tarifa_manipulado_id, 'tarifa_id' => $tarifa_manipulado_id,
'tarifa_nombre' => $modelTarifa->getNombreTarifaManipulado($tarifa_manipulado_id)[0]->nombre, 'tarifa_nombre' => $modelTarifa->getNombreTarifaManipulado($tarifa_manipulado_id)[0]->nombre,
@ -79,17 +89,23 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
'total' => 0, 'total' => 0,
'margen' => 0, 'margen' => 0,
]; ];
}
return $ret_array; return $ret_array;
} }
} }
private function calcularTarifa($tarifa, $tirada, $is_POD=false){ private function calcularTarifa($tarifa, $tirada, $is_POD = false)
{
$precio_unidad = floatval($tarifa->precio_min) - (floatval($tarifa->precio_min) - floatval($tarifa->precio_max)) / ($tarifa->tirada_max - $tarifa->tirada_min) * ($tirada - $tarifa->tirada_min); $precio_unidad = floatval($tarifa->precio_min) - (floatval($tarifa->precio_min) - floatval($tarifa->precio_max)) / ($tarifa->tirada_max - $tarifa->tirada_min) * ($tirada - $tarifa->tirada_min);
if ($tirada > $tarifa->tirada_max) if ($tirada > $tarifa->tirada_max)
$precio_unidad = $tarifa->precio_max; $precio_unidad = $tarifa->precio_max;
$precio_unidad = $precio_unidad * (1 + floatval($tarifa->margen) / 100.0); $precio_unidad = $precio_unidad * (1 + floatval($tarifa->margen) / 100.0);
if (!$is_POD) {
$precio_unidad += floatval($tarifa->tarifa_importe_fijo)/floatval($tirada);
}
$total = $precio_unidad * $tirada; $total = $precio_unidad * $tirada;
$margen = floatval($tarifa->margen); $margen = floatval($tarifa->margen);
@ -100,14 +116,11 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
$precio_unidad = round(floatval($total / $tirada), 2); $precio_unidad = round(floatval($total / $tirada), 2);
} }
if (!$is_POD){
$total += floatval($tarifa->tarifa_importe_fijo);
}
return [$precio_unidad, $total, $margen]; return [$precio_unidad, $total, $margen];
} }
public function deleteAllServicios($presupuesto_id){ public function deleteAllServicios($presupuesto_id)
{
$this->db $this->db
->table($this->table . " t1") ->table($this->table . " t1")
@ -115,7 +128,8 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
->delete(); ->delete();
} }
public function deleteServiciosNotInArray($presupuesto_id, $tarifas_id){ public function deleteServiciosNotInArray($presupuesto_id, $tarifas_id)
{
$builder = $this->db $builder = $this->db
->table($this->table . " t1"); ->table($this->table . " t1");
@ -126,7 +140,8 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
$builder->delete(); $builder->delete();
} }
public function updateTarifas($presupuesto_id, $tarifas){ public function updateTarifas($presupuesto_id, $tarifas)
{
foreach ($tarifas as $tarifa) { foreach ($tarifas as $tarifa) {
@ -147,8 +162,7 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
->update(); ->update();
} } else {
else{
$this->db $this->db
->table($this->table . " t1") ->table($this->table . " t1")
->set('presupuesto_id', $presupuesto_id) ->set('presupuesto_id', $presupuesto_id)
@ -162,7 +176,8 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
} }
public function initPresupuesto($tipo_presupuesto, $solapas, $tirada, $POD){ public function initPresupuesto($tipo_presupuesto, $solapas, $tirada, $POD)
{
$model = model('App\Models\Presupuestos\TipoPresupuestoServiciosDefectoModel'); $model = model('App\Models\Presupuestos\TipoPresupuestoServiciosDefectoModel');
$tarifas_procesar = $model->get_tarifas($tipo_presupuesto, $solapas, "manipulado"); $tarifas_procesar = $model->get_tarifas($tipo_presupuesto, $solapas, "manipulado");
@ -185,9 +200,9 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
'precio_total' => $result_data[1], 'precio_total' => $result_data[1],
'margen' => $result_data[2], 'margen' => $result_data[2],
]); ]);
} } else {
else{ array_push(
array_push($tarifas, $tarifas,
(object) [ (object) [
'tarifa_id' => $tarifa['tarifa_id'], 'tarifa_id' => $tarifa['tarifa_id'],
'tarifa_nombre' => $tarifa['tarifa_nombre'], 'tarifa_nombre' => $tarifa['tarifa_nombre'],
@ -196,7 +211,8 @@ class PresupuestoManipuladosModel extends \App\Models\BaseModel
'total' => 0, 'total' => 0,
'precio_total' => 0, 'precio_total' => 0,
'margen' => 0, 'margen' => 0,
]); ]
);
} }
} }

View File

@ -129,6 +129,7 @@ class PresupuestoModel extends \App\Models\BaseModel
"barniz_cubierta_id", "barniz_cubierta_id",
"estampado_cubierta_id", "estampado_cubierta_id",
"acabado_sobrecubierta_id", "acabado_sobrecubierta_id",
"acabado_faja_id",
"is_duplicado", "is_duplicado",
'paginas_color_consecutivas', 'paginas_color_consecutivas',
'papel_interior_diferente', 'papel_interior_diferente',
@ -410,8 +411,6 @@ class PresupuestoModel extends \App\Models\BaseModel
'pais_id' => 1, 'pais_id' => 1,
'retractilado' => $data['retractilado'] ? 1 : 0, 'retractilado' => $data['retractilado'] ? 1 : 0,
'retractilado5' => $data['retractilado5'] ? 1 : 0, 'retractilado5' => $data['retractilado5'] ? 1 : 0,
'guardas' => in_array(62, $data['servicios']) ? 1 : 0,
'faja_color' => in_array(16, $data['servicios']) ? 1 : 0,
'ferro' => $data['ferro'] ? 1 : 0, 'ferro' => $data['ferro'] ? 1 : 0,
'ferro_digital' => $data['ferro_digital'] ? 1 : 0, 'ferro_digital' => $data['ferro_digital'] ? 1 : 0,
'marcapaginas' => $data['marcapaginas'] ? 1 : 0, 'marcapaginas' => $data['marcapaginas'] ? 1 : 0,
@ -450,8 +449,13 @@ class PresupuestoModel extends \App\Models\BaseModel
'comparador_json_data' => $this->generateJson($data), 'comparador_json_data' => $this->generateJson($data),
'faja_color' => is_array($data['faja']) ? 1 : 0,
'solapas_ancho_faja_color' => is_array($data['faja']) ? $data['faja']['solapas'] : 60,
'alto_faja_color' => is_array($data['faja']) ? $data['faja']['alto'] : 50,
'acabado_cubierta_id' => $data['cubierta']['acabado'], 'acabado_cubierta_id' => $data['cubierta']['acabado'],
'acabado_sobrecubierta_id' => !$data['sobrecubierta'] ? 0 : $data['sobrecubierta']['acabado'], 'acabado_sobrecubierta_id' => !$data['sobrecubierta'] ? 0 : $data['sobrecubierta']['acabado'],
'acabado_faja_id' => is_array($data['faja']) ? $data['faja']['acabado'] : 0,
'comp_tipo_impresion' => $data['isHq'] ? ($data['isColor'] ? 'colorhq' : 'negrohq') : ($data['isColor'] ? 'color' : 'negro'), 'comp_tipo_impresion' => $data['isHq'] ? ($data['isColor'] ? 'colorhq' : 'negrohq') : ($data['isColor'] ? 'color' : 'negro'),
@ -571,11 +575,20 @@ class PresupuestoModel extends \App\Models\BaseModel
// -- GUARDAS -- // -- GUARDAS --
if ($data['datos_guardas'] != 0) { if ($data['datos_guardas'] != 0) {
$values['guardas'] = array( $values['guardas'] = array(
'papel_id' => intval($data['datos_guardas']['papel']), 'papel_id' => intval($data['datos_guardas']['papel']['id']),
'gramaje' => intval($data['datos_guardas']['gramaje']), 'gramaje' => intval($data['datos_guardas']['gramaje']),
'paginas' => intval($data['datos_guardas']['caras']), 'paginas' => intval($data['datos_guardas']['caras']),
); );
} }
// -- Faja --
if ($data['faja'] != 0) {
$values['faja'] = array(
'papel_id' => intval($data['faja']['papel']),
'gramaje' => intval($data['faja']['gramaje']),
);
}
} }
$json = json_encode($values); $json = json_encode($values);
return $json; return $json;

View File

@ -112,7 +112,8 @@ class TarifaManipuladoModel extends \App\Models\BaseModel
return $builder->orderBy("t1.nombre", "asc")->get()->getResultObject(); return $builder->orderBy("t1.nombre", "asc")->get()->getResultObject();
} }
public function getTarifaPresupuestoManipulado($tarifa_id, $tirada){ public function getTarifaPresupuestoManipulado($tarifa_id, $tirada)
{
$builder = $this->db $builder = $this->db
->table($this->table . " t1") ->table($this->table . " t1")
@ -126,7 +127,14 @@ class TarifaManipuladoModel extends \App\Models\BaseModel
//->where("t1.mostrar_en_presupuesto", 1) //->where("t1.mostrar_en_presupuesto", 1)
->where("t2.is_deleted", 0); ->where("t2.is_deleted", 0);
$builder->where('t1.id =', $tarifa_id); // check if tarifa_id is an array
if (is_array($tarifa_id)) {
// check if tarifa_id['id'] exists
$builder->where('t1.id', array_key_exists('id', $tarifa_id)? $tarifa_id['id']:$tarifa_id['tarifa_id']);
} else {
$builder->where('t1.id', $tarifa_id);
}
$builder->where('t2.tirada_min <=', $tirada); $builder->where('t2.tirada_min <=', $tirada);
$builder->where('t2.tirada_max >=', $tirada); $builder->where('t2.tirada_max >=', $tirada);
@ -142,9 +150,13 @@ class TarifaManipuladoModel extends \App\Models\BaseModel
->table($this->table . " t1") ->table($this->table . " t1")
->select( ->select(
"t1.nombre AS nombre" "t1.nombre AS nombre"
) );
->where("t1.id", $id) $builder->where("t1.is_deleted", 0);
->where("t1.is_deleted", 0); if (is_array($id)) {
$builder->where("t1.id", $id['id']);
} else
$builder->where("t1.id", $id);
return $builder->orderBy("t1.nombre", "asc")->get()->getResultObject(); return $builder->orderBy("t1.nombre", "asc")->get()->getResultObject();
} }

View File

@ -142,6 +142,7 @@ class PresupuestoService extends BaseService
$linea['fields']['precio_click'], $linea['fields']['precio_click'],
$maquina->velocidad $maquina->velocidad
); );
$tiempo = round($tiempo, 2);
[$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo); [$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo);
@ -251,8 +252,7 @@ class PresupuestoService extends BaseService
$linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $linea['fields']['precios_pliegos']; $linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $linea['fields']['precios_pliegos'];
// Precio papel pedido // Precio papel pedido
$linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma); $linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma);
$linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro'] * $margen_pliego_impresion * ($datosPedido->tirada + $datosPedido->merma); $linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro'] * $margen_pliego_impresion * ($datosPedido->tirada + $datosPedido->merma);;
;
$linea['fields']['a_favor_fibra'] = $parametrosRotativa->a_favor_fibra; $linea['fields']['a_favor_fibra'] = $parametrosRotativa->a_favor_fibra;
$linea['fields']['maquina'] = $maquina->maquina; $linea['fields']['maquina'] = $maquina->maquina;
@ -274,7 +274,7 @@ class PresupuestoService extends BaseService
$linea['fields']['datosTipologias'] = //$datosTipologias[0]; $linea['fields']['datosTipologias'] = //$datosTipologias[0];
(Object) array( (object) array(
'gota_negro' => $parametrosRotativa->rotativa_gota_negro, 'gota_negro' => $parametrosRotativa->rotativa_gota_negro,
'gota_color' => $parametrosRotativa->rotativa_gota_color, 'gota_color' => $parametrosRotativa->rotativa_gota_color,
'negro' => $parametrosRotativa->rotativa_negro, 'negro' => $parametrosRotativa->rotativa_negro,
@ -730,7 +730,12 @@ class PresupuestoService extends BaseService
// No es cubierta ni sobrecubierta // No es cubierta ni sobrecubierta
else { else {
// horizontales // horizontales
if ($uso == 'faja') {
$h1_temp = 1;
} else {
$h1_temp = floor(floatval($maquina->ancho_impresion) / $anchoForCalculo); $h1_temp = floor(floatval($maquina->ancho_impresion) / $anchoForCalculo);
}
$h2_temp = floor(floatval($maquina->ancho_impresion) / $altoForCalculo); $h2_temp = floor(floatval($maquina->ancho_impresion) / $altoForCalculo);
} }
@ -885,11 +890,18 @@ class PresupuestoService extends BaseService
$ancho_total += 6; $ancho_total += 6;
} }
} }
else if ($uso == 'faja' || $uso == 'sobrecubierta') {
if ($datosPedido->solapas) {
// 7 es el vuelo de la tapa dura sobre el interior
$ancho_total += (floatval($datosPedido->solapas_ancho) * 2) + (2 * self::SANGRE_FORMAS) + 2*7;
}
}
// si es sobrecubierta // si es sobrecubierta
// Se añaden 5mm de sangre por cada lado + 2 * 7mm de vuelo portada y contraportada -> total 52 // Se añaden 5mm de sangre por cada lado + 2 * 7mm de vuelo portada y contraportada -> total 52
else else{
$ancho_total += (2 * 7 + 2 * self::SANGRE_FORMAS) + 7; $ancho_total += (2 * 7 + 2 * self::SANGRE_FORMAS);
}
} }
// Wire-o y espiral (tapa blanda y tapa dura) // Wire-o y espiral (tapa blanda y tapa dura)
else if ( else if (
@ -947,9 +959,11 @@ class PresupuestoService extends BaseService
if ($uso == "cubierta") if ($uso == "cubierta")
$alto_total += (2 * 3.5 + 2 * $sangre_cubierta); $alto_total += (2 * 3.5 + 2 * $sangre_cubierta);
// si es sobrecubierta // si es sobrecubierta
// Se añaden 5mm de sangre por cada lado + 7mm de vuelo // Se añaden 5mm de sangre por cada lado
else else if ($uso == 'sobrecubierta')
$alto_total += (7 + 2 * self::SANGRE_FORMAS); $alto_total += (7 + 2 * self::SANGRE_FORMAS);
else if ($uso == 'faja')
$alto_total += (2 * self::SANGRE_FORMAS);
} }
// Tapa dura (espiral y wire-0) // Tapa dura (espiral y wire-0)
else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) { else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
@ -976,7 +990,7 @@ class PresupuestoService extends BaseService
//'color' => 1, //'color' => 1,
'rotativa' => 0, 'rotativa' => 0,
); );
} else if ($uso == 'sobrecubierta') { } else if ($uso == 'sobrecubierta' || $uso == 'faja') {
$opciones_papel = array( $opciones_papel = array(
'sobrecubierta' => 1, 'sobrecubierta' => 1,
//'color' => 1, //'color' => 1,
@ -1008,7 +1022,6 @@ class PresupuestoService extends BaseService
{ {
$presupuesto = (new PresupuestoModel())->find($presupuesto_id); $presupuesto = (new PresupuestoModel())->find($presupuesto_id);
$lineas = (new LineaPresupuestoModel())->where('presupuesto_id', $presupuesto_id)->findAll(); $lineas = (new LineaPresupuestoModel())->where('presupuesto_id', $presupuesto_id)->findAll();
} }
public static function checkLineasPresupuesto($input_data, $array_lineas) public static function checkLineasPresupuesto($input_data, $array_lineas)
@ -1149,7 +1162,6 @@ class PresupuestoService extends BaseService
} }
$comp_data = PresupuestoService::obtenerComparadorPlana($datos); $comp_data = PresupuestoService::obtenerComparadorPlana($datos);
} }
// se ordena $comp_data usando el campo ['fields]['total_impresion'] // se ordena $comp_data usando el campo ['fields]['total_impresion']
@ -1175,7 +1187,6 @@ class PresupuestoService extends BaseService
array_push($lineas, $linea); array_push($lineas, $linea);
} }
} }
} }
} }
@ -1409,7 +1420,6 @@ class PresupuestoService extends BaseService
$servicio_temp = $servicio; $servicio_temp = $servicio;
$servicio_temp->tarifa_id = $servicio_temp->tarifa_acabado_id; $servicio_temp->tarifa_id = $servicio_temp->tarifa_acabado_id;
$model->updateTarifas($input_data['presupuesto_id'], array($servicio_temp)); $model->updateTarifas($input_data['presupuesto_id'], array($servicio_temp));
} }
} }
@ -1443,7 +1453,6 @@ class PresupuestoService extends BaseService
$servicio_temp = $servicio; $servicio_temp = $servicio;
$servicio_temp->tarifa_id = $servicio_temp->tarifa_manipulado_id; $servicio_temp->tarifa_id = $servicio_temp->tarifa_manipulado_id;
$model->updateTarifas($input_data['presupuesto_id'], array($servicio_temp)); $model->updateTarifas($input_data['presupuesto_id'], array($servicio_temp));
} }
} }
@ -1487,7 +1496,6 @@ class PresupuestoService extends BaseService
$input_data['POD'] $input_data['POD']
); );
} }
} }
// En caso de que el presupuesto no sea duplicado, recalcular la tarifa // En caso de que el presupuesto no sea duplicado, recalcular la tarifa
// con el mismo proveedor // con el mismo proveedor
@ -1600,9 +1608,7 @@ class PresupuestoService extends BaseService
$presupuestoDirecciones = new PresupuestoDireccionesModel(); $presupuestoDirecciones = new PresupuestoDireccionesModel();
$presupuestoDirecciones->updateLineaEnvio($envio); $presupuestoDirecciones->updateLineaEnvio($envio);
} }
} }
} }
} }
@ -1797,8 +1803,8 @@ class PresupuestoService extends BaseService
if ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') { if ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') {
$datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($uso_papel, $tipo_impresion_id, $datosPedido, $maquina->maquina_id, $lomoRedondo); $datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($uso, $tipo_impresion_id, $datosPedido, $maquina->maquina_id, $lomoRedondo);
$datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($uso_papel, $tipo_impresion_id, $datosPedido); $datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($uso, $tipo_impresion_id, $datosPedido);
} }
$data['uso'] = $uso; $data['uso'] = $uso;
@ -1830,7 +1836,7 @@ class PresupuestoService extends BaseService
} }
} }
if ($uso == 'cubierta' || $uso == 'sobrecubierta') { if ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') {
$linea['fields']['dimension_desarrollo']['ancho'] = $datosPedido->anchoExteriores; $linea['fields']['dimension_desarrollo']['ancho'] = $datosPedido->anchoExteriores;
$linea['fields']['dimension_desarrollo']['alto'] = $datosPedido->altoExteriores; $linea['fields']['dimension_desarrollo']['alto'] = $datosPedido->altoExteriores;

View File

@ -333,7 +333,7 @@
lengthChange: false, lengthChange: false,
searching: false, searching: false,
info: false, info: false,
dom: "lftp", dom: '<"mt-4"><"float-end"B><"float-start"l><t><"mt-4 mb-3"p>',
stateSave: true, stateSave: true,
@ -561,7 +561,7 @@
lengthChange: false, lengthChange: false,
searching: false, searching: false,
info: false, info: false,
dom: "lftp", dom: '<"mt-4"><"float-end"B><"float-start"l><t><"mt-4 mb-3"p>',
stateSave: true, stateSave: true,

View File

@ -114,7 +114,7 @@
<?= lang('Presupuestos.solapasAnchoCubierta') ?>* <?= lang('Presupuestos.solapasAnchoCubierta') ?>*
</label> </label>
<input type="number" id="solapas_ancho" name="solapas_ancho" placeholder="0" <input type="number" id="solapas_ancho" name="solapas_ancho" placeholder="0"
maxLength="8" step="1" class="form-control solapas_cubierta" value=""> maxLength="8" step="1" min=60 class="form-control solapas_cubierta" value="60">
<div class="form-text"> <div class="form-text">
Entre 60 y 120 mm Entre 60 y 120 mm
</div> </div>
@ -242,6 +242,18 @@
</div> </div>
</div> </div>
<div class="col-md-12 col-lg-6 px-4 d-none acabado-faja">
<div class="row">
<div class="mb-1">
<label id="label_acabado_faja_id" for="acabado_faja_id" class="form-label">
<?= lang('Presupuestos.acabadoFaja') ?>*
</label>
<select id="acabado_faja_id" name="acabado_faja_id" tabindex="3"
class="form-control select2bs2" style="width: 100%;">
</select>
</div>
</div>
</div>
</div> </div>
<!-----------------------------------------------------------------------------> <!----------------------------------------------------------------------------->

View File

@ -96,6 +96,7 @@
<th><?= lang('Tarifaacabado.margen') ?></th> <th><?= lang('Tarifaacabado.margen') ?></th>
<th></th> <th></th>
<th></th> <th></th>
<th></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th> <th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
</tr> </tr>
</thead> </thead>

View File

@ -172,7 +172,8 @@
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-sm-6"> <div class="col-sm-6">
<select class="form-select select2bs2 calcular-presupuesto" id="acabadoCubierta" name="acabado_cubierta"> <select class="form-select select2bs2 calcular-presupuesto" id="acabadoCubierta"
name="acabado_cubierta">
<option value="0"> <?= lang('Presupuestos.acabadoNinguno') ?> </option> <option value="0"> <?= lang('Presupuestos.acabadoNinguno') ?> </option>
</select> </select>
</div> </div>
@ -187,16 +188,13 @@
<h3 class="mb-1 fw-bold"> Extras </h3> <h3 class="mb-1 fw-bold"> Extras </h3>
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
<div class="row col-sm-12 mb-3 justify-content-center align-items-top"> <div id="divExtras" name="div_extras" class="row col-sm-12 mb-3 justify-content-center align-items-top">
<div class="row col-sm-2 mb-3 d-flex flex-column align-items-center sobrecubierta-items"> <div class="row col-sm-2 mb-3 d-flex flex-column align-items-center sobrecubierta-items">
<div class="form-check form-switch mb-2"> <div class="form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="addSobrecubierta" <input class="calcular-presupuesto form-check-input" type="checkbox" id="addSobrecubierta"
name="add_sobrecubierta" value="1"> name="add_sobrecubierta" value="1">
<label class="form-check-label" <label class="form-check-label" for="addSobrecubierta"><?= lang('Presupuestos.sobrecubierta') ?></label>
for="addSobrecubierta"><?= lang('Presupuestos.sobrecubierta') ?></label>
</div> </div>
</div> </div>
@ -216,8 +214,7 @@
<?= lang('Presupuestos.tamanioSolapasSobrecubierta') ?> <?= lang('Presupuestos.tamanioSolapasSobrecubierta') ?>
</label> </label>
<input id="solapasSobrecubierta" name="solapas_sobrecubierta" type="number" <input id="solapasSobrecubierta" name="solapas_sobrecubierta" type="number"
class="calcular-presupuesto form-control text-center num-input" min="60" max="120" step="1" class="calcular-presupuesto form-control text-center num-input" min="60" max="120" step="1" value="60">
value="60">
<div id="textoLimitesSolapasSobrecubierta" class="form-text"> <div id="textoLimitesSolapasSobrecubierta" class="form-text">
Entre 60 y 120 mm Entre 60 y 120 mm
</div> </div>
@ -234,11 +231,11 @@
</div> </div>
</div> </div>
<div class="row col-sm-12 mb-0 justify-content-center d-none"> <div class="row col-sm-12 mb-0 justify-content-center">
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="row col-sm-2 mb-3 d-flex flex-column align-items-center"> <div class="col-sm-2 mb-3 d-flex flex-column align-items-center">
<div class="form-check form-switch mb-2"> <div class="form-check form-switch mb-2">
<input class="calcular-presupuesto form-check-input" type="checkbox" id="addFaja" name="add_faja" <input class="calcular-presupuesto form-check-input" type="checkbox" id="addFaja" name="add_faja"
value="1"> value="1">
@ -246,26 +243,35 @@
</div> </div>
</div> </div>
<div class="row col-sm-3 config-faja d-none">
<div class="">
<label for="papelFaja" class="form-label">
<?= lang('Presupuestos.papelFaja') ?>
</label>
<select class="form-select select2bs2 calcular-presupuesto" id="papelFaja" name="papel_faja">
</select>
</div>
<div class="">
<label for="papelFaja" class="form-label">
<?= lang('Presupuestos.gramajeFaja') ?>
</label>
<select class="form-select select2bs2 calcular-presupuesto" id="gramajeFaja" name="gramaje_faja">
</select>
</div>
</div>
<div class="col-sm-2 config-faja d-none"> <div class="col-sm-2 config-faja d-none">
<label for="altoFaja" class="form-label"> <label for="altoFaja" class="form-label">
<?= lang('Presupuestos.altoFaja') ?> <?= lang('Presupuestos.altoFaja') ?>
</label> </label>
<input id="altoFaja" name="alto_faja" type="number" <input id="altoFaja" name="alto_faja" type="number"
class="calcular-presupuesto form-control text-center num-input" min="60" step="1" value="60"> class="calcular-presupuesto form-control text-center num-input" min="50" step="1" value="60">
<div class="form-text"> <div class="form-text">
Mayor 60 mm Entre 50 mm y 120 mm
</div> </div>
</div> </div>
<div class="col-sm-3 config-faja d-none">
<label for="barniz" class="form-label">
<?= lang('Presupuestos.papelFaja') ?>
</label>
<select class="form-select select2bs2 calcular-presupuesto" id="papelFaja" name="papel_sobrecubierta">
<option value="EST2_170"><?= lang('Presupuestos.estucadoMate170gr') ?></option>
<option value="EST2_200"><?= lang('Presupuestos.estucadoMate200gr') ?></option>
</select>
</div>
<div class="col-sm-2 config-faja d-none"> <div class="col-sm-2 config-faja d-none">
<label for="solapasFaja" class="form-label"> <label for="solapasFaja" class="form-label">
@ -274,21 +280,18 @@
<input id="solapasFaja" name="solapas_faja" type="number" <input id="solapasFaja" name="solapas_faja" type="number"
class="calcular-presupuesto form-control text-center num-input" min="60" max="120" step="1" class="calcular-presupuesto form-control text-center num-input" min="60" max="120" step="1"
value="60"> value="60">
<div class="form-text"> <div id="textoLimitesSolapasFaja" class="form-text">
Entre 60 y 120 mm Entre 60 y 120 mm
</div> </div>
</div> </div>
<div class="col-sm-3 config-faja d-none"> <div class="col-sm-3 config-faja d-none">
<label for="plastificadoFaja" class="form-label"> <label for="acabadoFaja" class="form-label">
<?= lang('Presupuestos.plastificadoFaja') ?> <?= lang('Presupuestos.plastificadoFaja') ?>
</label> </label>
<select class="form-select select2bs2 calcular-presupuesto" id="plastificadoFaja" <select class="form-select select2bs2 calcular-presupuesto" id="acabadoFaja"
name="plastificado_faja"> name="plastificado_faja">
<option value="NONE"> - </option> <option value="0"> <?= lang('Presupuestos.acabadoNinguno') ?> </option>
<option value="BRIL"><?= lang('Presupuestos.brillo') ?></option>
<option value="MATE"><?= lang('Presupuestos.mate') ?></option>
<option value="ANTI"><?= lang('Presupuestos.antirrayado') ?></option>
</select> </select>
</div> </div>

View File

@ -60,8 +60,7 @@
</div> </div>
</div> </div>
</div> <!-- //.accordion --> </div> <!-- //.accordion -->
<?php if (str_contains($formAction, 'edit')): ?> <?php if ($tarifaacabadoEntity->id): ?>
<div class="accordion mt-3" id="accordionTarifaMaquinas" style="visibility:visible"> <div class="accordion mt-3" id="accordionTarifaMaquinas" style="visibility:visible">
<div class="card accordion-item active"> <div class="card accordion-item active">
<h2 class="accordion-header" id="headingTwo"> <h2 class="accordion-header" id="headingTwo">

View File

@ -32,14 +32,14 @@
<?php if (str_contains($formAction, 'edit')): ?> <?php if (str_contains($formAction, 'edit')): ?>
<div class="accordion mt-3" id="accordionEncuadernacionTiradas" style="visibility:visible"> <div class="accordion mt-3" id="accordionEncuadernacionTiradas" style="visibility:visible">
<div class="card accordion-item active"> <div class="card accordion-item active">
<h2 class="accordion-header" id="headingOne"> <h2 class="accordion-header" id="headingZero">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionTip2" aria-expanded="false" aria-controls="accordionTip2"> <button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionTip0" aria-expanded="false" aria-controls="accordionTip0">
<h3><?= lang("TarifaEncuadernacionTiradas.moduleTitle") ?></h3> <h3><?= lang("TarifaEncuadernacionTiradas.moduleTitle") ?></h3>
</button> </button>
</h2> </h2>
<div id="accordionTip2" class="accordion-collapse collapse show" data-bs-parent="#accordionEncuadernacionTiradas"> <div id="accordionTip0" class="accordion-collapse collapse show" data-bs-parent="#accordionEncuadernacionTiradas">
<div class="accordion-body"> <div class="accordion-body">
<table id="tableOfTarifaencuadernaciontiradas" class="table table-striped table-hover" style="width: 100%;"> <table id="tableOfTarifaencuadernaciontiradas" class="table table-striped table-hover" style="width: 100%;">
@ -60,7 +60,7 @@
</div> </div>
</div> <!-- //.accordion --> </div> <!-- //.accordion -->
<div class="accordion mt-3" id="accordionEncuadernacionLineas" style="visibility:<?php ?>visible"> <div class="accordion mt-3" id="accordionEncuadernacionLineas" style="visibility:visible">
<div class="card accordion-item active"> <div class="card accordion-item active">
<h2 class="accordion-header" id="headingOne"> <h2 class="accordion-header" id="headingOne">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionTip1" aria-expanded="false" aria-controls="accordionTip1"> <button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionTip1" aria-expanded="false" aria-controls="accordionTip1">
@ -93,28 +93,15 @@
</div> </div>
</div> </div>
</div> <!-- //.accordion --> </div> <!-- //.accordion -->
<div class="accordion mt-3" id="accordionTarifaMaquinas" style="visibility:visible">
<div class="accordion mt-3 d-none" id="accordionEncuadernacionLineasHoras" style="visibility:visible">
<div class="card accordion-item active"> <div class="card accordion-item active">
<h2 class="accordion-header" id="headingTwo"> <h2 class="accordion-header" id="headingThree">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionTipTarifaMaquina" aria-expanded="false" aria-controls="accordionTipTarifaMaquina"> <button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionTip3" aria-expanded="false" aria-controls="accordionTip3">
<h3>Tarifa máquinas</h3>
</button>
</h2>
<div id="accordionTipTarifaMaquina" class="accordion-collapse collapse show" data-bs-parent="#accordionTarifaMaquinas">
<div class="accordion-body">
<?= view("themes/vuexy/components/forms/tarifa_maquinas", ["id" => "tarifa_maquina_component", "tarifaId" => $tarifaEncuadernacionEntity->id]) ?>
</div>
</div>
</div>
</div> <!-- //.accordion -->
<div class="accordion mt-3" id="accordionEncuadernacionLineasHoras" style="visibility:hidden">
<div class="card accordion-item active">
<h2 class="accordion-header" id="headingOne">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionTip1" aria-expanded="false" aria-controls="accordionTip1">
<h3><?= lang("TarifaEncuadernacionLineas.moduleTitle") ?></h3> <h3><?= lang("TarifaEncuadernacionLineas.moduleTitle") ?></h3>
</button> </button>
</h2> </h2>
<div id="accordionTip1" class="accordion-collapse collapse show" data-bs-parent="#accordionEncuadernacionLineas"> <div id="accordionTip3" class="accordion-collapse collapse show" data-bs-parent="#accordionEncuadernacionLineasHoras">
<div class="accordion-body"> <div class="accordion-body">
<table id="tableOfTarifaencuadernacionlineasHoras" class="table table-striped table-hover" style="width: 100%;"> <table id="tableOfTarifaencuadernacionlineasHoras" class="table table-striped table-hover" style="width: 100%;">
@ -136,6 +123,21 @@
</div> </div>
</div> </div>
</div> <!-- //.accordion --> </div> <!-- //.accordion -->
<div class="accordion mt-3" id="accordionTarifaMaquinas" style="visibility:visible">
<div class="card accordion-item active">
<h2 class="accordion-header" id="headingTwo">
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionTipTarifaMaquina" aria-expanded="false" aria-controls="accordionTipTarifaMaquina">
<h3>Tarifa máquinas</h3>
</button>
</h2>
<div id="accordionTipTarifaMaquina" class="accordion-collapse collapse show" data-bs-parent="#accordionTarifaMaquinas">
<div class="accordion-body">
<?= view("themes/vuexy/components/forms/tarifa_maquinas", ["id" => "tarifa_maquina_component", "tarifaId" => $tarifaEncuadernacionEntity->id]) ?>
</div>
</div>
</div>
</div> <!-- //.accordion -->
@ -207,12 +209,12 @@ id = -1;
function check_por_horas(){ function check_por_horas(){
if($('#por_horas').is(':checked')){ if($('#por_horas').is(':checked')){
$('#accordionEncuadernacionLineasHoras').css("visibility", "visible"); $('#accordionEncuadernacionLineasHoras').removeClass("d-none");
$('#accordionEncuadernacionLineas').css("visibility", "collapse"); $('#accordionEncuadernacionLineas').addClass("d-none");
} }
else{ else{
$('#accordionEncuadernacionLineasHoras').css("visibility", "collapse"); $('#accordionEncuadernacionLineasHoras').addClass("d-none");
$('#accordionEncuadernacionLineas').css("visibility", "visible"); $('#accordionEncuadernacionLineas').removeClass("d-none");
} }
} }
check_por_horas() check_por_horas()

View File

@ -61,7 +61,7 @@
</div> </div>
</div> </div>
</div> <!-- //.accordion --> </div> <!-- //.accordion -->
<?php if ($formAction != site_url('tarifas/tarifasmanipulado/add')): ?> <?php if ($tarifaManipuladoEntity?->id): ?>
<div class="accordion mt-3" id="accordionTarifaMaquinas" style="visibility:visible"> <div class="accordion mt-3" id="accordionTarifaMaquinas" style="visibility:visible">
<div class="card accordion-item active"> <div class="card accordion-item active">

View File

@ -108,7 +108,7 @@ class previewFormas {
anchoMaquina: parseFloat(rowData.maquina_ancho), anchoMaquina: parseFloat(rowData.maquina_ancho),
altoImpresion: parseFloat(rowData.maquina_impresion_alto), altoImpresion: parseFloat(rowData.maquina_impresion_alto),
anchoImpresion: parseFloat(rowData.maquina_impresion_ancho), anchoImpresion: parseFloat(rowData.maquina_impresion_ancho),
altoLibro: lpName=='faja'? parseFloat(rowData.alto_faja).toFixed(0):this.alto(), altoLibro: lpName=='faja'? parseFloat(parseFloat(rowData.alto_faja).toFixed(0)):parseFloat(this.alto()),
anchoLibro: this.ancho(), anchoLibro: this.ancho(),
offsetSolapa: 0 offsetSolapa: 0
}; };
@ -116,7 +116,7 @@ class previewFormas {
//console.log(pvObj); //console.log(pvObj);
// Printing shape definition // Printing shape definition
this.pvObj.anchoForma = parseInt(_isCosido) ? 2 * this.pvObj.anchoLibro : this.pvObj.anchoLibro; this.pvObj.anchoForma = parseInt(_isCosido) ? parseInt(2 * this.pvObj.anchoLibro) : parseInt(this.pvObj.anchoLibro);
this.pvObj.altoForma = this.pvObj.altoLibro; this.pvObj.altoForma = this.pvObj.altoLibro;
@ -204,9 +204,8 @@ class previewFormas {
let anchoSolapaFaja = $('#faja').is(':checked') ? parseFloat($('#faja_solapas_ancho').val()) : parseFloat(0); // mm let anchoSolapaFaja = $('#faja').is(':checked') ? parseFloat($('#faja_solapas_ancho').val()) : parseFloat(0); // mm
if (_isTapaDura) { if (_isTapaDura) {
let anchoPliegue = parseFloat(7); // mm let anchoPliegue = parseFloat(7); // mm
let altoPliegue = parseFloat(7); // mm
this.pvObj.anchoForma = ((2 * this.pvObj.anchoLibro) + (2 * anchoPliegue) + (2 * (anchoSolapaFaja + this.pvObj.offsetSolapa)) + (2 * sangreFaja) + this.pvObj.lomoLibroSobrecubierta); this.pvObj.anchoForma = ((2 * this.pvObj.anchoLibro) + (2 * anchoPliegue) + (2 * (anchoSolapaFaja + this.pvObj.offsetSolapa)) + (2 * sangreFaja) + this.pvObj.lomoLibroSobrecubierta);
this.pvObj.altoForma += altoPliegue + parseFloat(2 * sangreFaja); this.pvObj.altoForma += parseFloat(2 * sangreFaja);
} else { } else {
this.pvObj.anchoForma = ((2 * this.pvObj.anchoLibro) + (2 * (anchoSolapaFaja + this.pvObj.offsetSolapa)) + (2 * sangreFaja) + this.pvObj.lomoLibroSobrecubierta); this.pvObj.anchoForma = ((2 * this.pvObj.anchoLibro) + (2 * (anchoSolapaFaja + this.pvObj.offsetSolapa)) + (2 * sangreFaja) + this.pvObj.lomoLibroSobrecubierta);
this.pvObj.altoForma = parseFloat(this.pvObj.altoForma) + parseFloat(2 * sangreFaja); this.pvObj.altoForma = parseFloat(this.pvObj.altoForma) + parseFloat(2 * sangreFaja);

View File

@ -29,14 +29,18 @@ class PresupuestoAdminEdit {
this.tipoTapa = $('.card-title').text().toLowerCase().includes('dura') ? 'dura' : 'blanda'; this.tipoTapa = $('.card-title').text().toLowerCase().includes('dura') ? 'dura' : 'blanda';
this.cargandoPresupuesto = false;
this.datosGenerales = new DatosGenerales(this.domItem.find('#accordionDatosPresupuestoTip')); this.datosGenerales = new DatosGenerales(this.domItem.find('#accordionDatosPresupuestoTip'));
this.datosLibro = new DatosLibro(this.domItem.find('#accordionDatosLibroTip'), this.datosLibro = new DatosLibro(this.domItem.find('#accordionDatosLibroTip'),
() => { return this.cargandoPresupuesto },
{ {
checkPaginasPresupuesto: this.checkPaginasPresupuesto, checkPaginasPresupuesto: this.checkPaginasPresupuesto,
getDimensionLibro: this.getDimensionLibro, getDimensionLibro: this.getDimensionLibro,
calcularSolapas: this.calcularSolapas.bind(this) calcularSolapas: this.calcularSolapas.bind(this),
}); });
this.comparador = new Comparador(this.domItem.find('#accordionDatosPresupuestoClienteTip'), this.comparador = new Comparador(this.domItem.find('#accordionDatosPresupuestoClienteTip'),
() => { return this.cargandoPresupuesto },
{ {
getDimensionLibro: this.getDimensionLibro, getDimensionLibro: this.getDimensionLibro,
}); });
@ -56,8 +60,6 @@ class PresupuestoAdminEdit {
this.guardar = $('#saveForm'); this.guardar = $('#saveForm');
this.calcularPresupuesto = false; this.calcularPresupuesto = false;
this.cargandoPresupuesto = false;
this.configUploadDropzone = { this.configUploadDropzone = {
domElement: '#dropzone-presupuesto-admin-files', domElement: '#dropzone-presupuesto-admin-files',
@ -134,6 +136,10 @@ class PresupuestoAdminEdit {
$('#lomo_cubierta').on('change', this.datosLibro.changeAnchoSolapasCubierta); $('#lomo_cubierta').on('change', this.datosLibro.changeAnchoSolapasCubierta);
$('#lomo_sobrecubierta').on('change', this.datosLibro.changeAnchoSolapasSobrecubierta); $('#lomo_sobrecubierta').on('change', this.datosLibro.changeAnchoSolapasSobrecubierta);
if ($(this.configUploadDropzone.domElement).length > 0) {
this.fileUploadDropzone.init()
}
} }
@ -297,6 +303,9 @@ class PresupuestoAdminEdit {
}; };
if (self.cargandoPresupuesto == false) { if (self.cargandoPresupuesto == false) {
self.comparador.updateComparador();
// Ejecutar los pasos de forma secuencial si están habilitados // Ejecutar los pasos de forma secuencial si están habilitados
if (update_lineas) { if (update_lineas) {
$(document).trigger('update-lineas-presupuesto'); $(document).trigger('update-lineas-presupuesto');
@ -330,6 +339,8 @@ class PresupuestoAdminEdit {
const self = this; const self = this;
this.cargandoPresupuesto = true; this.cargandoPresupuesto = true;
self.comparador.cargando = true;
self.datosLibro.cargando = true;
$('#loader').modal('show'); $('#loader').modal('show');
let id = window.location.href.split("/").pop() let id = window.location.href.split("/").pop()
@ -347,7 +358,6 @@ class PresupuestoAdminEdit {
self.POD.val(response.data.POD); self.POD.val(response.data.POD);
self.calcularPresupuesto = false; self.calcularPresupuesto = false;
self.comparador.cargando = true;
self.datosGenerales.cargarDatos(response.data.datosGenerales); self.datosGenerales.cargarDatos(response.data.datosGenerales);
self.datosLibro.cargarDatos(response.data.datosLibro); self.datosLibro.cargarDatos(response.data.datosLibro);
@ -376,6 +386,10 @@ class PresupuestoAdminEdit {
self.calcularPresupuesto = true; self.calcularPresupuesto = true;
self.cargandoPresupuesto = false; self.cargandoPresupuesto = false;
self.datosLibro.cargando = false;
self.comparador.cargando = false;
self.comparador.updateComparador();
} }
@ -400,6 +414,8 @@ class PresupuestoAdminEdit {
$('#loader').modal('hide'); $('#loader').modal('hide');
this.calcularPresupuesto = true; this.calcularPresupuesto = true;
self.cargandoPresupuesto = false; self.cargandoPresupuesto = false;
self.datosLibro.cargando = false;
self.comparador.cargando = false;
} }
).get(); ).get();
} }
@ -424,7 +440,7 @@ class PresupuestoAdminEdit {
</span> </span>
<div class="d-flex flex-column ps-1"> <div class="d-flex flex-column ps-1">
<h5 class="alert-heading mb-2">` + <h5 class="alert-heading mb-2">` +
window.Presupuestos.errores.paginasLP + window.language.Presupuestos.errores.paginasLP +
`</h5> `</h5>
</div> </div>
</div>`; </div>`;

View File

@ -4,10 +4,12 @@ import Ajax from '../../../components/ajax.js';
class Comparador { class Comparador {
constructor(domItem, functions = {}) { constructor(domItem, cargando, functions = {}) {
this.domItem = domItem; this.domItem = domItem;
this.cargando = cargando;
this.getDimensionLibro = functions.getDimensionLibro; this.getDimensionLibro = functions.getDimensionLibro;
this.tipo_impresion_id = parseInt($('#tipo_impresion_id').val()); this.tipo_impresion_id = parseInt($('#tipo_impresion_id').val());
@ -267,8 +269,10 @@ class Comparador {
this.btnInsertarCubierta = $('#insertarCubiertaBtn'); this.btnInsertarCubierta = $('#insertarCubiertaBtn');
this.btnInsertarFaja = $('#insertarFajaBtn'); this.btnInsertarFaja = $('#insertarFajaBtn');
this.cargando = false;
this.comparadorPlanaRunning = false; this.comparadorPlanaRunning = false;
this.comparadorExterioresRunning = false;
this.comparadorGuardasRunning = false;
this.comparadorFajaRunning = false;
} }
init() { init() {
@ -339,7 +343,9 @@ class Comparador {
}); });
this.papelSobrecubierta.init(); this.papelSobrecubierta.init();
this.gramajeSobrecubierta.init(); this.gramajeSobrecubierta.init();
this.papelSobrecubierta.onChange(() => self.gramajeSobrecubierta.empty()); this.papelSobrecubierta.item.on('select2:select', function() {
self.gramajeSobrecubierta.empty()
});
this.sobrecubierta.on('change', () => { this.sobrecubierta.on('change', () => {
if (this.sobrecubierta.select2('data')[0].id == 1) { if (this.sobrecubierta.select2('data')[0].id == 1) {
if ($('#solapas_sobrecubierta').prop('checked') == false) { if ($('#solapas_sobrecubierta').prop('checked') == false) {
@ -370,8 +376,6 @@ class Comparador {
} }
$('#faja').prop('checked', true); $('#faja').prop('checked', true);
$('.faja-div').removeClass('d-none'); $('.faja-div').removeClass('d-none');
$('#faja_solapas_ancho').val(60);
$('#faja_alto').val(50);
$('#compPapelFaja').prop('disabled', false); $('#compPapelFaja').prop('disabled', false);
$('#compGramajeFaja').prop('disabled', false); $('#compGramajeFaja').prop('disabled', false);
} }
@ -387,14 +391,30 @@ class Comparador {
if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3 || this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) { if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3 || this.tipo_impresion_id == 5 || this.tipo_impresion_id == 7) {
this.papelGuardas.init(); this.papelGuardas.init();
this.gramajeGuardas.init(); this.gramajeGuardas.init();
this.papelGuardas.onChange(() => self.gramajeGuardas.empty()); this.papelGuardas.item.on('select2:select', function() {
self.gramajeGuardas.empty()
});
} }
this.papelNegro.onChange(() => self.gramajeNegro.empty()); this.papelNegro.item.on('select2:select', function() {
this.papelNegrohq.onChange(() => self.gramajeNegrohq.empty()); self.gramajeNegro.empty()
this.papelColor.onChange(() => self.gramajeColor.empty()); });
this.papelColorhq.onChange(() => self.gramajeColorhq.empty()); this.papelNegrohq.item.on('select2:select', function() {
this.papelCubierta.onChange(() => self.gramajeCubierta.empty()); self.gramajeNegrohq.empty()
});
this.papelColor.item.on('select2:select', function(){
self.gramajeColor.empty()
});
this.papelColorhq.item.on('select2:select', function() {
self.gramajeColorhq.empty()
});
this.papelCubierta.item.on('select2:select', function() {
self.gramajeCubierta.empty()
});
this.papelFaja.item.on('select2:select', function() {
self.gramajeFaja.empty()
});
this.tipo_impresion.select2({ this.tipo_impresion.select2({
@ -475,8 +495,6 @@ class Comparador {
cargarDatos(datos) { cargarDatos(datos) {
this.cargando = true;
this.tipo_impresion.val(datos.tipo_impresion).trigger('change'); this.tipo_impresion.val(datos.tipo_impresion).trigger('change');
this.updateOpcionesComparador(); this.updateOpcionesComparador();
@ -546,8 +564,9 @@ class Comparador {
this.#computarPaginasColor(datos.posPagColor); this.#computarPaginasColor(datos.posPagColor);
} }
} }
}
this.cargando = false; updateComparador(){
if (this.paginasColor.val() > 0) { if (this.paginasColor.val() > 0) {
this.paginasColor.trigger('change'); this.paginasColor.trigger('change');
@ -567,7 +586,6 @@ class Comparador {
this.carasGuardas.trigger('change'); this.carasGuardas.trigger('change');
} }
this.faja.trigger('change'); this.faja.trigger('change');
} }
@ -1011,6 +1029,9 @@ class Comparador {
getDataForComp(uso = 'interior') { getDataForComp(uso = 'interior') {
if(this.cargando)
return { error: true, data: {} };
let ancho = 0; let ancho = 0;
let alto = 0; let alto = 0;
let papel_generico = {}; let papel_generico = {};
@ -1071,7 +1092,7 @@ class Comparador {
for (let element of papeles) { for (let element of papeles) {
if (element.getVal() == 0 || element.getVal() == null) { if (element.getVal() == 0 || element.getVal() == null) {
const tipo = element.item.attr('id').split('Papel')[1]; const tipo = element.item.attr('id').split('Papel')[1];
if ($('#compPaginas' + tipo).val() > 0) { if ($('#compPaginas' + tipo).val() > 0 && !this.cargando) {
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador'); popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
return { error: true, data: {} }; return { error: true, data: {} };
} }
@ -1081,7 +1102,7 @@ class Comparador {
if (element.getVal() == 0 || element.getVal() == null) { if (element.getVal() == 0 || element.getVal() == null) {
const tipo = element.item.attr('id').split('Gramaje')[1]; const tipo = element.item.attr('id').split('Gramaje')[1];
if ($('#compPaginas' + tipo).val() > 0) { if ($('#compPaginas' + tipo).val() > 0 && !this.cargando) {
popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador'); popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador');
return { error: true, data: {} }; return { error: true, data: {} };
} }
@ -1113,11 +1134,11 @@ class Comparador {
} }
else if (uso == 'cubierta') { else if (uso == 'cubierta') {
if (this.papelCubierta.getVal() == 0 || this.papelCubierta.getVal() == null) { if ((this.papelCubierta.getVal() == 0 || this.papelCubierta.getVal() == null) && !this.cargando) {
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador'); popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
return { error: true, data: {} }; return { error: true, data: {} };
} }
if (this.gramajeCubierta.getVal() == 0 || this.gramajeCubierta.getVal() == null) { if ((this.gramajeCubierta.getVal() == 0 || this.gramajeCubierta.getVal() == null) && !this.cargando) {
popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador'); popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador');
return { error: true, data: {} }; return { error: true, data: {} };
} }
@ -1129,11 +1150,11 @@ class Comparador {
} }
else if (uso == 'sobrecubierta') { else if (uso == 'sobrecubierta') {
if (this.papelSobrecubierta.getVal() == 0 || this.papelSobrecubierta.getVal() == null) { if ((this.papelSobrecubierta.getVal() == 0 || this.papelSobrecubierta.getVal() == null) && !this.cargando) {
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador'); popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
return { error: true, data: {} }; return { error: true, data: {} };
} }
if (this.gramajeSobrecubierta.getVal() == 0 || this.gramajeSobrecubierta.getVal() == null) { if ((this.gramajeSobrecubierta.getVal() == 0 || this.gramajeSobrecubierta.getVal() == null) && !this.cargando) {
popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador'); popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador');
return { error: true, data: {} }; return { error: true, data: {} };
} }
@ -1145,11 +1166,11 @@ class Comparador {
} }
else if (uso == 'faja') { else if (uso == 'faja') {
if (this.papelFaja.getVal() == 0 || this.papelFaja.getVal() == null) { if ((this.papelFaja.getVal() == 0 || this.papelFaja.getVal() == null) && this.faja.getVal()>0 && !this.cargando) {
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador'); popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
return { error: true, data: {} }; return { error: true, data: {} };
} }
if (this.gramajeFaja.getVal() == 0 || this.gramajeFaja.getVal() == null) { if ((this.gramajeFaja.getVal() == 0 || this.gramajeFaja.getVal() == null) && this.faja.getVal()>0 && !this.cargando) {
popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador'); popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador');
return { error: true, data: {} }; return { error: true, data: {} };
} }
@ -1162,11 +1183,12 @@ class Comparador {
} }
else if (uso == 'guardas') { else if (uso == 'guardas') {
if (this.papelGuardas.getVal() == 0 || this.papelGuardas.getVal() == null) {
if ((this.papelGuardas.getVal() == 0 || this.papelGuardas.getVal() == null) && !this.cargando) {
popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador'); popErrorAlert(window.language.Presupuestos.errores.seleccionePapel, 'divAlarmasComparador');
return { error: true, data: {} }; return { error: true, data: {} };
} }
if (this.gramajeGuardas.getVal() == 0 || this.gramajeGuardas.getVal() == null) { if ((this.gramajeGuardas.getVal() == 0 || this.gramajeGuardas.getVal() == null) && !this.cargando) {
popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador'); popErrorAlert(window.language.Presupuestos.errores.seleccioneGramaje, 'divAlarmasComparador');
return { error: true, data: {} }; return { error: true, data: {} };
} }
@ -1408,7 +1430,7 @@ class Comparador {
const self = this; const self = this;
if (this.cargando) { if (this.cargando && this.comparadorExterioresRunning) {
return return
} }
@ -1439,6 +1461,7 @@ class Comparador {
if (Object.keys(datosComp.sobrecubierta).length > 0) { if (Object.keys(datosComp.sobrecubierta).length > 0) {
datosComp.sobrecubierta.data[this.csrf_token] = this.csrf_hash; datosComp.sobrecubierta.data[this.csrf_token] = this.csrf_hash;
} }
this.comparadorExterioresRunning = true;
new Ajax('/presupuestoadmin/comparadorexteriores', new Ajax('/presupuestoadmin/comparadorexteriores',
{ {
cubierta: datosComp.cubierta.data, cubierta: datosComp.cubierta.data,
@ -1481,14 +1504,17 @@ class Comparador {
$('#title_cubierta').html(window.language.Presupuestos.compCubiertaSobrecubierta); $('#title_cubierta').html(window.language.Presupuestos.compCubiertaSobrecubierta);
self.btnInsertarCubierta.addClass('d-none'); self.btnInsertarCubierta.addClass('d-none');
} }
self.comparadorExterioresRunning = false;
}, },
(error) => { (error) => {
console.log(error); console.log(error);
self.comparadorExterioresRunning = false;
} }
).post(); ).post();
} catch (e) { } catch (e) {
console.log(e) console.log(e);
self.comparadorExterioresRunning = false;
} }
} }
@ -1499,7 +1525,7 @@ class Comparador {
const self = this; const self = this;
if (this.cargando) { if (this.cargando && this.comparadorFajaRunning) {
return return
} }
@ -1509,10 +1535,13 @@ class Comparador {
let datosComp = {}; let datosComp = {};
datosComp.sobrecubierta = this.getDataForComp('faja'); datosComp.sobrecubierta = this.getDataForComp('faja');
if(datosComp.sobrecubierta.error){
return;
}
datosComp.sobrecubierta.data['faja'] = 1; // se indica que es faja para el calculo de formas datosComp.sobrecubierta.data['faja'] = 1; // se indica que es faja para el calculo de formas
datosComp.sobrecubierta.data[this.csrf_token] = this.csrf_hash; datosComp.sobrecubierta.data[this.csrf_token] = this.csrf_hash;
this.comparadorFajaRunning = true;
new Ajax('/presupuestoadmin/comparadorexteriores', new Ajax('/presupuestoadmin/comparadorexteriores',
{ {
sobrecubierta: datosComp.sobrecubierta.data sobrecubierta: datosComp.sobrecubierta.data
@ -1542,15 +1571,18 @@ class Comparador {
$('#title_faja').html(window.language.Presupuestos.faja); $('#title_faja').html(window.language.Presupuestos.faja);
self.btnInsertarFaja.addClass('d-none'); self.btnInsertarFaja.addClass('d-none');
} }
self.comparadorFajaRunning = false;
}, },
(error) => { (error) => {
console.log(error); console.log(error);
self.comparadorFajaRunning = false;
} }
).post(); ).post();
} catch (e) { } catch (e) {
console.log(e) console.log(e);
self.comparadorFajaRunning = false;
} }
} }
@ -1560,7 +1592,7 @@ class Comparador {
const self = this; const self = this;
if (this.cargando) { if (this.cargando && this.comparadorGuardasRunning) {
return return
} }
@ -1575,7 +1607,7 @@ class Comparador {
} }
datosComp.data[this.csrf_token] = this.csrf_hash; datosComp.data[this.csrf_token] = this.csrf_hash;
this.comparadorGuardasRunning = true;
new Ajax('/presupuestoadmin/comparadorguardas', new Ajax('/presupuestoadmin/comparadorguardas',
datosComp.data, datosComp.data,
{}, {},
@ -1603,14 +1635,17 @@ class Comparador {
$('#title_guardas').html(window.language.Presupuestos.Guardas); $('#title_guardas').html(window.language.Presupuestos.Guardas);
self.btnInsertarGuardas.addClass('d-none'); self.btnInsertarGuardas.addClass('d-none');
} }
self.comparadorGuardasRunning = false;
}, },
(error) => { (error) => {
console.log(error); console.log(error);
self.comparadorGuardasRunning = false;
} }
).post(); ).post();
} catch (e) { } catch (e) {
console.log(e) console.log(e);
self.comparadorGuardasRunning = false;
} }
} }

View File

@ -3,7 +3,7 @@ import { getToken } from '../../../common/common.js';
class DatosLibro { class DatosLibro {
constructor(domItem, functions = {}) { constructor(domItem, cargando, functions = {}) {
this.domItem = domItem; this.domItem = domItem;
@ -48,6 +48,15 @@ class DatosLibro {
"sobrecubierta": 1 "sobrecubierta": 1
} }
); );
this.acabadoFaja = new ClassSelect($("#acabado_faja_id"),
'/serviciosacabados/getacabados',
'',
false,
{
[this.csrf_token]: this.csrf_hash,
"sobrecubierta": 1
}
);
this.retractilado = this.domItem.find('#retractilado'); this.retractilado = this.domItem.find('#retractilado');
this.retractilado5 = this.domItem.find('#retractilado5'); this.retractilado5 = this.domItem.find('#retractilado5');
@ -61,6 +70,8 @@ class DatosLibro {
this.fajaSolapasAncho = this.domItem.find('#faja_solapas_ancho'); this.fajaSolapasAncho = this.domItem.find('#faja_solapas_ancho');
this.div_faja = this.domItem.find('.faja-div'); this.div_faja = this.domItem.find('.faja-div');
this.cargando = cargando;
} }
init() { init() {
@ -70,13 +81,43 @@ class DatosLibro {
this.tamanio.init(); this.tamanio.init();
this.acabadoCubierta.init(); this.acabadoCubierta.init();
this.acabadoSobrecubierta.init(); this.acabadoSobrecubierta.init();
this.acabadoFaja.init();
this.acabadoCubierta.item.on('select2:select', function () { this.acabadoCubierta.item.on('select2:select', function () {
if(this.cargando)
return;
if(self.acabadoCubierta.getVal() == 0){
$(document).trigger('remove-servicio-lineas', 'acabadoCubierta');
}
else{
$(document).trigger('add-servicio-lineas', 'acabadoCubierta'); $(document).trigger('add-servicio-lineas', 'acabadoCubierta');
}
}); });
this.acabadoSobrecubierta.item.on('select2:select', function () { this.acabadoSobrecubierta.item.on('select2:select', function () {
if(this.cargando)
return;
if(self.acabadoCubierta.getVal() == 0){
$(document).trigger('remove-servicio-lineas', 'acabadoSobrecubierta');
}
else{
$(document).trigger('add-servicio-lineas', 'acabadoSobrecubierta'); $(document).trigger('add-servicio-lineas', 'acabadoSobrecubierta');
}
});
this.acabadoFaja.item.on('select2:select', function () {
if(this.cargando)
return;
if(self.acabadoFaja.getVal() == 0){
$(document).trigger('remove-servicio-lineas', 'acabadoFaja');
}
else{
$(document).trigger('add-servicio-lineas', 'acabadoFaja');
}
}); });
if (window.location.href.includes("edit")) { if (window.location.href.includes("edit")) {
@ -98,6 +139,7 @@ class DatosLibro {
this.anchoSolapasCubierta.on('change', this.changeAnchoSolapasCubierta.bind(this)); this.anchoSolapasCubierta.on('change', this.changeAnchoSolapasCubierta.bind(this));
this.anchoSolapasSobrecubierta.on('change', this.changeAnchoSolapasSobrecubierta.bind(this)); this.anchoSolapasSobrecubierta.on('change', this.changeAnchoSolapasSobrecubierta.bind(this));
this.fajaSolapasAncho.on('change', this.changeAnchoSolapasFaja.bind(this));
this.paginas.on('change', this.changePaginas.bind(this)); this.paginas.on('change', this.changePaginas.bind(this));
this.tirada.on('change', this.changeTirada.bind(this)); this.tirada.on('change', this.changeTirada.bind(this));
@ -116,15 +158,33 @@ class DatosLibro {
if (this.faja.prop('checked')) { if (this.faja.prop('checked')) {
this.div_faja.removeClass('d-none'); this.div_faja.removeClass('d-none');
$('#compFaja').val(1).trigger('change'); $('#compFaja').val(1).trigger('change');
if(this.cargando)
return;
$(document).trigger('add-servicio-lineas', 'solapas_faja');
$('.acabado-faja').removeClass('d-none');
} }
else { else {
this.div_faja.addClass('d-none'); this.div_faja.addClass('d-none');
$('#compFaja').val(0).trigger('change'); $('#compFaja').val(0).trigger('change');
$('.acabado-faja').addClass('d-none');
if(this.cargando)
return;
$(document).trigger('remove-servicio-lineas', 'acabadoFaja');
$(document).trigger('remove-servicio-lineas', 'solapas_faja');
$(document).trigger('remove-servicio-lineas', 'solapas_grandes_faja');
} }
} }
checkMinMaxInput(event) { checkMinMaxInput(event) {
if(this.cargando)
return;
const el = event.target; const el = event.target;
if (el.value != "") { if (el.value != "") {
if (parseInt(el.value) < parseInt(el.min)) { if (parseInt(el.value) < parseInt(el.min)) {
@ -142,6 +202,9 @@ class DatosLibro {
changeFerro() { changeFerro() {
if(this.cargando)
return;
if (this.ferro.prop('checked')) { if (this.ferro.prop('checked')) {
$(document).trigger('add-servicio-lineas', 'ferro'); $(document).trigger('add-servicio-lineas', 'ferro');
} }
@ -152,6 +215,9 @@ class DatosLibro {
changePrototipo() { changePrototipo() {
if(this.cargando)
return;
if (this.prototipo.prop('checked')) { if (this.prototipo.prop('checked')) {
$(document).trigger('add-servicio-lineas', 'prototipo'); $(document).trigger('add-servicio-lineas', 'prototipo');
} }
@ -163,6 +229,9 @@ class DatosLibro {
checkRetractilado(event) { checkRetractilado(event) {
if(this.cargando)
return;
switch (event.currentTarget.id) { switch (event.currentTarget.id) {
case 'retractilado': case 'retractilado':
if ($('#' + event.currentTarget.id).prop('checked')) { if ($('#' + event.currentTarget.id).prop('checked')) {
@ -254,10 +323,14 @@ class DatosLibro {
setTimeout(() => { setTimeout(() => {
if (this.solapasCubierta.prop('checked')) { if (this.solapasCubierta.prop('checked')) {
$('#div_solapas_ancho').removeClass('d-none'); $('#div_solapas_ancho').removeClass('d-none');
if(this.cargando)
return;
$(document).trigger('add-servicio-lineas', 'solapas_cubierta'); $(document).trigger('add-servicio-lineas', 'solapas_cubierta');
} }
else { else {
$('#div_solapas_ancho').addClass('d-none'); $('#div_solapas_ancho').addClass('d-none');
if(this.cargando)
return;
$(document).trigger('remove-servicio-lineas', 'solapas_cubierta'); $(document).trigger('remove-servicio-lineas', 'solapas_cubierta');
$(document).trigger('remove-servicio-lineas', 'solapas_grandes_cubierta'); $(document).trigger('remove-servicio-lineas', 'solapas_grandes_cubierta');
} }
@ -269,15 +342,19 @@ class DatosLibro {
changeAnchoSolapasCubierta() { changeAnchoSolapasCubierta() {
// para que se actualice el comparador
$('#compCarasCubierta').trigger('change');
if(this.cargando)
return;
if (this.checkSolapasGrandes('cubierta')) { if (this.checkSolapasGrandes('cubierta')) {
$(document).trigger('add-servicio-lineas', 'solapas_grandes_cubierta'); $(document).trigger('add-servicio-lineas', 'solapas_grandes_cubierta');
} }
else { else {
$(document).trigger('remove-servicio-lineas', 'solapas_grandes_cubierta'); $(document).trigger('remove-servicio-lineas', 'solapas_grandes_cubierta');
} }
// para que se actualice el comparador
$('#compCarasCubierta').trigger('change');
} }
@ -285,30 +362,58 @@ class DatosLibro {
if (this.solapasSobrecubierta.prop('checked')) { if (this.solapasSobrecubierta.prop('checked')) {
this.divSolapasSobrecubierta.removeClass('d-none'); this.divSolapasSobrecubierta.removeClass('d-none');
if(this.cargando)
return;
$(document).trigger('add-servicio-lineas', 'solapas_sobrecubierta'); $(document).trigger('add-servicio-lineas', 'solapas_sobrecubierta');
} }
else { else {
this.divSolapasSobrecubierta.addClass('d-none'); this.divSolapasSobrecubierta.addClass('d-none');
$(document).trigger('remove-servicio-lineas', 'solapas_sobrecubierta');
$(document).trigger('remove-servicio-lineas', 'solapas_grandes_sobrecubierta');
if ($('#compSobrecubierta').length) { if ($('#compSobrecubierta').length) {
$('#compSobrecubierta').val(0).trigger('change'); $('#compSobrecubierta').val(0).trigger('change');
} }
if(this.cargando)
return;
$(document).trigger('remove-servicio-lineas', 'solapas_sobrecubierta');
$(document).trigger('remove-servicio-lineas', 'solapas_grandes_sobrecubierta');
} }
} }
changeAnchoSolapasSobrecubierta() { changeAnchoSolapasSobrecubierta() {
if (this.checkSolapasGrandes('cubierta')) {
// para que se actualice el comparador
if($('#compGramajeSobrecubierta').select2('data').length > 0)
$('#compGramajeSobrecubierta').trigger('change');
if(this.cargando)
return;
if (this.checkSolapasGrandes('sobrecubierta')) {
$(document).trigger('add-servicio-lineas', 'solapas_grandes_sobrecubierta'); $(document).trigger('add-servicio-lineas', 'solapas_grandes_sobrecubierta');
} }
else { else {
$(document).trigger('remove-servicio-lineas', 'solapas_grandes_sobrecubierta'); $(document).trigger('remove-servicio-lineas', 'solapas_grandes_sobrecubierta');
} }
}
changeAnchoSolapasFaja() {
// para que se actualice el comparador // para que se actualice el comparador
$('#compSobrecubierta').trigger('change'); if($('#compGramajeFaja').select2('data').length > 0){
$('#compGramajeFaja').trigger('change');
}
if(this.cargando)
return;
if (this.checkSolapasGrandes('faja')) {
$(document).trigger('add-servicio-lineas', 'solapas_grandes_faja');
}
else {
$(document).trigger('remove-servicio-lineas', 'solapas_grandes_faja');
}
} }
checkSolapasGrandes(elemento) { checkSolapasGrandes(elemento) {
@ -317,12 +422,16 @@ class DatosLibro {
let ancho_solapas = 0.0; let ancho_solapas = 0.0;
let lomo = 0.0; let lomo = 0.0;
if (elemento == 'cubierta') { if (elemento == 'cubierta') {
ancho_solapas = 2 * parseFloat($('solapas_ancho').val()); ancho_solapas = 2 * parseFloat($('#solapas_ancho').val());
lomo = parseFloat($('lomo_cubierta').val()); lomo = parseFloat($('#lomo_cubierta').val());
} }
else if (elemento == 'sobrecubierta') { else if (elemento == 'sobrecubierta') {
ancho_solapas = 2 * parseFloat($('solapas_ancho_sobrecubierta').val()); ancho_solapas = 2 * parseFloat($('#solapas_ancho_sobrecubierta').val());
lomo = parseFloat($('lomo_sobrecubierta').val()); lomo = parseFloat($('#lomo_sobrecubierta').val());
}
else if (elemento == 'faja') {
ancho_solapas = 2 * parseFloat($('#faja_solapas_ancho').val());
lomo = parseFloat($('#lomo_sobrecubierta').val());
} }
else else
return false; return false;
@ -515,6 +624,7 @@ class DatosLibro {
this.div_faja.removeClass('d-none'); this.div_faja.removeClass('d-none');
this.fajaAlto.val(datos.fajaColorAlto).trigger('change'); this.fajaAlto.val(datos.fajaColorAlto).trigger('change');
this.fajaSolapasAncho.val(datos.fajaColorSolapasAncho).trigger('change'); this.fajaSolapasAncho.val(datos.fajaColorSolapasAncho).trigger('change');
$('.acabado-faja').removeClass('d-none');
} }
@ -530,6 +640,8 @@ class DatosLibro {
this.acabadoSobrecubierta.setOption(datos.acabadoSobrecubierta.id, datos.acabadoSobrecubierta.text); this.acabadoSobrecubierta.setOption(datos.acabadoSobrecubierta.id, datos.acabadoSobrecubierta.text);
} }
this.acabadoFaja.setOption(datos.acabadoFaja.id, datos.acabadoFaja.text);
this.retractilado.prop('checked', datos.retractilado); this.retractilado.prop('checked', datos.retractilado);
this.retractilado5.prop('checked', datos.retractilado5); this.retractilado5.prop('checked', datos.retractilado5);
this.prototipo.prop('checked', datos.prototipo); this.prototipo.prop('checked', datos.prototipo);

View File

@ -1796,7 +1796,7 @@ class LineasPresupuesto {
{ {
[this.csrf_token]: this.csrf_hash, [this.csrf_token]: this.csrf_hash,
ancho: () => this.getDimensionLibro().ancho, ancho: () => this.getDimensionLibro().ancho,
alto: () => this.getDimensionLibro().alto, alto: () => {return tipoLinea == 'lp_faja' ? $('faja_alto').val() : this.getDimensionLibro().alto},
solapas: () => uso == 'cubierta' ? $('#solapas').prop('checked') : $('#solapas_sobrecubierta').prop('checked'), solapas: () => uso == 'cubierta' ? $('#solapas').prop('checked') : $('#solapas_sobrecubierta').prop('checked'),
solapas_ancho: () => uso == 'cubierta' ? $('#solapas_ancho').val() : $('#solapas_ancho_sobrecubierta').val(), solapas_ancho: () => uso == 'cubierta' ? $('#solapas_ancho').val() : $('#solapas_ancho_sobrecubierta').val(),
tirada: () => $('#tirada').val(), tirada: () => $('#tirada').val(),

View File

@ -79,6 +79,8 @@ class Resumen {
async updateTotales(event, data = {}) { async updateTotales(event, data = {}) {
const self = this;
let updateLP = data.updateLP || true; let updateLP = data.updateLP || true;
let updateServicios = data.updateServicios || true; let updateServicios = data.updateServicios || true;
let updateEnvio = data.updateEnvio || true; let updateEnvio = data.updateEnvio || true;
@ -89,8 +91,8 @@ class Resumen {
let totalImpresionforMargen = 0; let totalImpresionforMargen = 0;
let margenImpresion = 0; let margenImpresion = 0;
let totalServicios = 0; let totalServicios = parseFloat(0);
let margenServicios = 0; let margenServicios = parseFloat(0);
let totalEnvios = 0; let totalEnvios = 0;
let margenEnvios = 0; let margenEnvios = 0;
@ -116,28 +118,25 @@ class Resumen {
} }
if (rowData.check_impresion_total) { if (rowData.check_impresion_total) {
//totalImpresion += parseFloat($('#' + rowData.row_id + '_precioImpresion').val())
margenPorHoras += parseFloat($('#' + rowData.row_id + '_precioImpresion').val()) totalImpresion += parseFloat($('#' + rowData.row_id + '_precioImpresion').val())
margenPorHoras += parseFloat($('#' + rowData.row_id + '_margenImpresion').val())
totalImpresion += parseFloat($('#' + rowData.row_id + '_totalClicks').val()) totalImpresion += parseFloat($('#' + rowData.row_id + '_totalClicks').val())
margenImpresion += parseFloat($('#' + rowData.row_id + '_margenClicks').val())
sumForFactor += parseFloat($('#' + rowData.row_id + '_totalClicks').val()) sumForFactor += parseFloat($('#' + rowData.row_id + '_totalClicks').val())
if (rowData.maquinaTipo == 'inkjet') { if (rowData.maquinaTipo == 'inkjet') {
totalImpresion += parseFloat(rowData.totalTinta) totalImpresion += parseFloat(rowData.totalTinta)
totalImpresion += parseFloat(rowData.totalCorte) totalImpresion += parseFloat(rowData.totalCorte)?? 0;
sumForFactor += (parseFloat(rowData.totalTinta) + 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()) sumForFactor -= parseFloat($('#' + rowData.row_id + '_margenClicks').val())
if (!isNaN(parseFloat($('#' + rowData.row_id + 'lp_bn_totalTinta').val()))) { if (!isNaN(parseFloat($('#' + rowData.row_id + '_totalTinta').val()))) {
totalImpresion += parseFloat($('#' + rowData.row_id + 'lp_bn_totalTinta').val()) totalImpresion += parseFloat($('#' + rowData.row_id + '_totalTinta').val())
sumForFactor += parseFloat($('#' + rowData.row_id + 'lp_bn_totalTinta').val()) sumForFactor += parseFloat($('#' + rowData.row_id + '_totalTinta').val())
} }
} }
}) })
@ -177,53 +176,56 @@ class Resumen {
if (typeof $("#tableOfServiciosEncuadernacion").DataTable() !== 'undefined' && $("#tableOfServiciosEncuadernacion").DataTable().rows().count() > 0) { if (typeof $("#tableOfServiciosEncuadernacion").DataTable() !== 'undefined' && $("#tableOfServiciosEncuadernacion").DataTable().rows().count() > 0) {
$('#tableOfServiciosEncuadernacion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { $('#tableOfServiciosEncuadernacion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data(); let rowData = this.data();
let total_servicio = parseFloat(rowData.precio_total); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio_total));
let margen_servicio = parseFloat(rowData.margen); let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio totalServicios += total_servicio
let base = total_servicio / (1 + margen_servicio / 100.0); let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0));
margenServicios = total_servicio - base; base = self.roundToTwoDecimals(base / parseInt($('#tirada').val()))*parseInt($('#tirada').val());
margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
}); });
} }
if (typeof $("#tableOfServiciosAcabado").DataTable() !== 'undefined' && $("#tableOfServiciosAcabado").DataTable().rows().count() > 0) { if (typeof $("#tableOfServiciosAcabado").DataTable() !== 'undefined' && $("#tableOfServiciosAcabado").DataTable().rows().count() > 0) {
$('#tableOfServiciosAcabado').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { $('#tableOfServiciosAcabado').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data(); let rowData = this.data();
let total_servicio = parseFloat(rowData.precio_total); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio_total));
let margen_servicio = parseFloat(rowData.margen); let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio totalServicios += total_servicio
let base = total_servicio / (1 + margen_servicio / 100.0); let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0));
margenServicios = total_servicio - base; base = self.roundToTwoDecimals(base / parseInt($('#tirada').val()))*parseInt($('#tirada').val());
margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
}); });
} }
if (typeof $("#tableOfServiciosPreimpresion").DataTable() !== 'undefined' && $("#tableOfServiciosPreimpresion").DataTable().rows().count() > 0) { if (typeof $("#tableOfServiciosPreimpresion").DataTable() !== 'undefined' && $("#tableOfServiciosPreimpresion").DataTable().rows().count() > 0) {
$('#tableOfServiciosPreimpresion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { $('#tableOfServiciosPreimpresion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data(); let rowData = this.data();
let total_servicio = parseFloat(rowData.precio); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio));
let coste_servicio = parseFloat(rowData.coste); let coste_servicio = self.roundToTwoDecimals(parseFloat(rowData.coste));
totalServicios += total_servicio totalServicios += total_servicio
margenServicios = total_servicio - coste_servicio; margenServicios += total_servicio - coste_servicio;
}); });
} }
if (typeof $("#tableOfServiciosExtra").DataTable() !== 'undefined' && $("#tableOfServiciosExtra").DataTable().rows().count() > 0) { if (typeof $("#tableOfServiciosExtra").DataTable() !== 'undefined' && $("#tableOfServiciosExtra").DataTable().rows().count() > 0) {
$('#tableOfServiciosExtra').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { $('#tableOfServiciosExtra').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data(); let rowData = this.data();
let total_servicio = parseFloat(rowData.precio); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio));
let coste_servicio = parseFloat(rowData.coste); let coste_servicio = self.roundToTwoDecimals(parseFloat(rowData.coste));
totalServicios += total_servicio totalServicios += total_servicio
margenServicios = total_servicio - coste_servicio; margenServicios += total_servicio - coste_servicio;
}); });
} }
if (typeof $("#tableOfServiciosManipulado").DataTable() !== 'undefined' && $("#tableOfServiciosManipulado").DataTable().rows().count() > 0) { if (typeof $("#tableOfServiciosManipulado").DataTable() !== 'undefined' && $("#tableOfServiciosManipulado").DataTable().rows().count() > 0) {
$('#tableOfServiciosManipulado').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { $('#tableOfServiciosManipulado').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data(); let rowData = this.data();
let total_servicio = parseFloat(rowData.precio_total); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio_total));
let margen_servicio = parseFloat(rowData.margen); let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio totalServicios += total_servicio
let base = total_servicio / (1 + margen_servicio / 100.0); let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0));
margenServicios = total_servicio - base; base = self.roundToTwoDecimals(base / parseInt($('#tirada').val()))*parseInt($('#tirada').val());
margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
}); });
} }
@ -346,6 +348,10 @@ class Resumen {
return data; return data;
} }
roundToTwoDecimals(num) {
return parseFloat(num.toFixed(2));
}
} }
export default Resumen; export default Resumen;

View File

@ -105,10 +105,13 @@ class Servicios {
addServicio(event, servicio) { addServicio(event, servicio) {
if (servicio == 'acabadoCubierta') { if (servicio == 'acabadoCubierta') {
this.serviciosAcabado.updateAcabadosExteriores(1, 0); this.serviciosAcabado.updateAcabadosExteriores(1, 0, 0);
} }
else if (servicio == 'acabadoSobrecubierta') { else if (servicio == 'acabadoSobrecubierta') {
this.serviciosAcabado.updateAcabadosExteriores(0, 1); this.serviciosAcabado.updateAcabadosExteriores(0, 1, 0);
}
else if (servicio == 'acabadoFaja') {
this.serviciosAcabado.updateAcabadosExteriores(0, 0, 1);
} }
else if (servicio == 'ferro'){ else if (servicio == 'ferro'){
const id = $('#ferro').attr('service-id'); const id = $('#ferro').attr('service-id');
@ -144,6 +147,10 @@ class Servicios {
const id = $('#serv_solapas_sobrecubierta').attr('service-id'); const id = $('#serv_solapas_sobrecubierta').attr('service-id');
this.ServiciosManipulado.getPresupuestoManipulado(id); this.ServiciosManipulado.getPresupuestoManipulado(id);
} }
else if (servicio == 'solapas_faja'){
const id = $('#solapas_faja').attr('service-id');
this.ServiciosManipulado.getPresupuestoManipulado(id);
}
else if (servicio == 'solapas_grandes_cubierta'){ else if (servicio == 'solapas_grandes_cubierta'){
const id = $('#solapas_grandes_cubierta').attr('service-id'); const id = $('#solapas_grandes_cubierta').attr('service-id');
this.ServiciosManipulado.getPresupuestoManipulado(id); this.ServiciosManipulado.getPresupuestoManipulado(id);
@ -152,6 +159,10 @@ class Servicios {
const id = $('#solapas_grandes_sobrecubierta').attr('service-id'); const id = $('#solapas_grandes_sobrecubierta').attr('service-id');
this.ServiciosManipulado.getPresupuestoManipulado(id); this.ServiciosManipulado.getPresupuestoManipulado(id);
} }
else if (servicio == 'solapas_grandes_faja'){
const id = $('#solapas_grandes_faja').attr('service-id');
this.ServiciosManipulado.getPresupuestoManipulado(id);
}
} }
removeServicio(event, servicio) { removeServicio(event, servicio) {
@ -226,6 +237,16 @@ class Servicios {
}); });
this.ServiciosManipulado.table.draw(); this.ServiciosManipulado.table.draw();
} }
else if (servicio == 'solapas_faja'){
const id = $('#solapas_faja').attr('service-id');
this.ServiciosManipulado.table.rows().every(function () {
let data = this.data();
if (data && data.tarifa_id == id) {
this.remove().draw();
}
});
this.ServiciosManipulado.table.draw();
}
else if (servicio == 'solapas_grandes_cubierta'){ else if (servicio == 'solapas_grandes_cubierta'){
const id = $('#solapas_grandes_cubierta').attr('service-id'); const id = $('#solapas_grandes_cubierta').attr('service-id');
this.ServiciosManipulado.table.rows().every(function () { this.ServiciosManipulado.table.rows().every(function () {
@ -246,6 +267,43 @@ class Servicios {
}); });
this.ServiciosManipulado.table.draw(); this.ServiciosManipulado.table.draw();
} }
else if (servicio == 'solapas_grandes_faja'){
const id = $('#solapas_grandes_faja').attr('service-id');
this.ServiciosManipulado.table.rows().every(function () {
var data = this.data();
if (data && data.tarifa_id == id) {
this.remove();
}
});
this.ServiciosManipulado.table.draw();
}
else if (servicio == 'acabadoCubierta') {
for (let i = 0; i < this.serviciosAcabado.table.rows().count(); i++) {
let data = this.serviciosAcabado.table.row(i).data();
if (data.cubierta == 1) {
this.serviciosAcabado.table.row(i).remove();
}
};
this.serviciosAcabado.table.draw();
}
else if (servicio == 'acabadoSobrecubierta') {
for (let i = 0; i < this.serviciosAcabado.table.rows().count(); i++) {
let data = this.serviciosAcabado.table.row(i).data();
if (data.sobrecubierta == 1) {
this.serviciosAcabado.table.row(i).remove();
}
};
this.serviciosAcabado.table.draw();
}
else if (servicio == 'acabadoFaja') {
for (let i = 0; i < this.serviciosAcabado.table.rows().count(); i++) {
let data = this.serviciosAcabado.table.row(i).data();
if (data.faja == 1) {
this.serviciosAcabado.table.row(i).remove();
}
};
this.serviciosAcabado.table.draw();
}
} }
async updateServicios() { async updateServicios() {
@ -296,6 +354,9 @@ class ServiciosAcabado {
else if (row.sobrecubierta == 1) { else if (row.sobrecubierta == 1) {
return row.nombre + ' (' + window.language.Presupuestos.sobrecubierta + ')'; return row.nombre + ' (' + window.language.Presupuestos.sobrecubierta + ')';
} }
else if (row.faja == 1) {
return row.nombre + ' (' + window.language.Presupuestos.faja + ')';
}
else { else {
return row.nombre; return row.nombre;
} }
@ -330,6 +391,7 @@ class ServiciosAcabado {
{ data: 'margen' }, { data: 'margen' },
{ data: 'cubierta', visible: false }, { data: 'cubierta', visible: false },
{ data: 'sobrecubierta', visible: false }, { data: 'sobrecubierta', visible: false },
{ data: 'faja', visible: false },
{ {
data: function (row) { data: function (row) {
return ` return `
@ -414,10 +476,11 @@ class ServiciosAcabado {
const proveedor_ids = this.table.rows().data().toArray().map(row => row.proveedor_id); const proveedor_ids = this.table.rows().data().toArray().map(row => row.proveedor_id);
const cubiertas = this.table.rows().data().toArray().map(row => row.cubierta); const cubiertas = this.table.rows().data().toArray().map(row => row.cubierta);
const sobrecubiertas = this.table.rows().data().toArray().map(row => row.sobrecubierta); const sobrecubiertas = this.table.rows().data().toArray().map(row => row.sobrecubierta);
const fajas = this.table.rows().data().toArray().map(row => row.fajas);
// emparejar los tarifa_ids con los proveedor_ids // emparejar los tarifa_ids con los proveedor_ids
let tarifa_data = []; let tarifa_data = [];
for (let i = 0; i < tarifa_ids.length; i++) { for (let i = 0; i < tarifa_ids.length; i++) {
tarifa_data.push({ tarifa_id: tarifa_ids[i], proveedor_id: proveedor_ids[i], cubierta: cubiertas[i], sobrecubierta: sobrecubiertas[i] }); tarifa_data.push({ tarifa_id: tarifa_ids[i], proveedor_id: proveedor_ids[i], cubierta: cubiertas[i], sobrecubierta: sobrecubiertas[i], faja: fajas[i] });
} }
let tirada = 0; let tirada = 0;
@ -444,25 +507,33 @@ class ServiciosAcabado {
} }
updateAcabadosExteriores(cubierta, sobrecubierta) { updateAcabadosExteriores(cubierta, sobrecubierta, faja) {
this.table.rows().every(function () { this.table.rows().every(function () {
var data = this.data(); var data = this.data();
if (data.cubierta == cubierta && data.sobrecubierta == sobrecubierta) { if (data && (data.cubierta == cubierta && data.sobrecubierta == sobrecubierta && data.faja == faja)) {
this.remove().draw(); this.remove().draw();
} }
}); });
let tarifa_id = 0; let tarifa_id = 0;
let uso = 'cubierta';
if (cubierta == 1) { if (cubierta == 1) {
tarifa_id = $('#acabado_cubierta_id').val(); tarifa_id = $('#acabado_cubierta_id').val();
} }
else if (sobrecubierta == 1) { else if (sobrecubierta == 1) {
tarifa_id = $('#acabado_sobrecubierta_id').val(); tarifa_id = $('#acabado_sobrecubierta_id').val();
uso = 'sobrecubierta';
}
else if (faja == 1) {
tarifa_id = $('#acabado_faja_id').val();
uso = 'faja';
} }
this.getPresupuestoAcabado(tarifa_id, cubierta == 1 ? 'cubierta' : 'sobrecubierta', null);
this.getPresupuestoAcabado(tarifa_id, uso, null);
} }
getPresupuestoAcabado(tarifa_id = -1, uso = null, updateSelect = null) { getPresupuestoAcabado(tarifa_id = -1, uso = null, updateSelect = null) {
@ -491,12 +562,16 @@ class ServiciosAcabado {
if (response.values) { if (response.values) {
response.values[0].cubierta = 0; response.values[0].cubierta = 0;
response.values[0].sobrecubierta = 0; response.values[0].sobrecubierta = 0;
response.values[0].faja = 0;
if (uso == 'cubierta') { if (uso == 'cubierta') {
response.values[0].cubierta = 1; response.values[0].cubierta = 1;
} }
else if (uso == 'sobrecubierta') { else if (uso == 'sobrecubierta') {
response.values[0].sobrecubierta = 1; response.values[0].sobrecubierta = 1;
} }
else if (uso == 'faja') {
response.values[0].faja = 1;
}
if (updateSelect != null) { if (updateSelect != null) {
self.table.row(updateSelect.closest('tr')).data(response.values[0]).draw(); self.table.row(updateSelect.closest('tr')).data(response.values[0]).draw();

View File

@ -96,8 +96,9 @@ class TiradasAlernativas {
self.table.row(row).remove().draw(); self.table.row(row).remove().draw();
$(document).trigger('update-envios', { tirada_inicial: $('#tirada').val(), tirada: data.tirada }); $('#tirada').val(data.tirada).trigger('change');
$(document).trigger('update-envios', { tirada_inicial: $('#tirada').val(), tirada: data.tirada });
}); });
$(document).on('update-tiradas-alternativas', async function () { $(document).on('update-tiradas-alternativas', async function () {
@ -181,6 +182,8 @@ class TiradasAlernativas {
json_acabados: this.generate_json_servicios('acabados'), json_acabados: this.generate_json_servicios('acabados'),
json_encuadernaciones: this.generate_json_servicios('encuadernaciones'), json_encuadernaciones: this.generate_json_servicios('encuadernaciones'),
json_manipulado: this.generate_json_servicios('manipulado'), json_manipulado: this.generate_json_servicios('manipulado'),
json_presimpresion: this.generate_json_servicios('presimpresion'),
json_extra: this.generate_json_servicios('extra'),
json_envios: envios, json_envios: envios,
ancho: dimension.ancho, ancho: dimension.ancho,
alto: dimension.alto, alto: dimension.alto,
@ -190,6 +193,8 @@ class TiradasAlernativas {
solapas_sobrecubierta: $('#solapas_sobrecubierta').is(':checked') ? 1 : 0, solapas_sobrecubierta: $('#solapas_sobrecubierta').is(':checked') ? 1 : 0,
solapas_sobrecubierta_ancho: $('#solapas_sobrecubierta').is(':checked') ? parseInt($('#solapas_ancho_sobrecubierta').val()) : 0, solapas_sobrecubierta_ancho: $('#solapas_sobrecubierta').is(':checked') ? parseInt($('#solapas_ancho_sobrecubierta').val()) : 0,
lomo: $('#lomo_cubierta').val(), lomo: $('#lomo_cubierta').val(),
faja_alto: $('#faja_alto').val(),
solapas_faja: $('#faja_solapas_ancho').val(),
}; };
$.ajax({ $.ajax({

View File

@ -92,6 +92,7 @@ class DatosGenerales {
// Eventos // Eventos
this.checkFormatoPersonalizado.bind('change', this.#handleFormatoLibro.bind(this)); this.checkFormatoPersonalizado.bind('change', this.#handleFormatoLibro.bind(this));
this.formatoLibro.item.on('change', this.#handleFormatoLibro.bind(this));
this.tiposLibro.on('click', this.#handleTipolibro.bind(this)); this.tiposLibro.on('click', this.#handleTipolibro.bind(this));
this.domItem.find('.input-paginas').on('change', this.#handlePaginas.bind(this)); this.domItem.find('.input-paginas').on('change', this.#handlePaginas.bind(this));
this.anchoPersonalizado.on('blur', this.#handleCheckFormatoPersonalizado.bind(this)); this.anchoPersonalizado.on('blur', this.#handleCheckFormatoPersonalizado.bind(this));
@ -674,6 +675,8 @@ class DatosGenerales {
this.formValidation.revalidateField('papel_formato_ancho'); this.formValidation.revalidateField('papel_formato_ancho');
this.formValidation.revalidateField('papel_formato_alto'); this.formValidation.revalidateField('papel_formato_alto');
} }
const alto = this.getDimensionLibro().alto;
$('#altoFaja').closest('.config-faja').find('.form-text').text('Entre 50 y ' + alto + ' mm');
} }
#checkValue(event){ #checkValue(event){

View File

@ -77,11 +77,47 @@ class DisenioCubierta {
this.configuracionFaja = this.domItem.find(".config-faja"); this.configuracionFaja = this.domItem.find(".config-faja");
this.faja = this.domItem.find("#addFaja"); this.faja = this.domItem.find("#addFaja");
this.papelFaja = new ClassSelect($("#papelFaja"),
'/papelesgenericos/getpapelcliente',
window.translations["selectPapel"],
false,
{
[this.csrf_token]: this.csrf_hash,
tipo: 'colorhq',
sobrecubierta: 1,
ancho: () => { return this.presupuestoCliente.datosGenerales.getDimensionLibro().ancho },
alto: () => { return $('#altoFaja').val() },
solapas: () => { return $('#solapasFaja').val() },
lomo: () => { return parseFloat($('#lsc').val()) + parseFloat($('#lc').val()) },
tirada: () => { return this.presupuestoCliente.datosGenerales.getTiradas()[0] },
forSelect2: 1,
}
);
this.gramajeFaja = new ClassSelect($("#gramajeFaja"),
'/papelesgenericos/getpapelcliente',
window.translations["selectGramaje"],
false,
{
[this.csrf_token]: this.csrf_hash,
tipo: 'colorhq',
papel: () => { return this.papelFaja.getVal() },
sobrecubierta: 1,
ancho: () => { return this.presupuestoCliente.datosGenerales.getDimensionLibro().ancho },
alto: () => { return $('#altoFaja').val() },
solapas: () => { return $('#solapasFaja').val() },
lomo: () => { return parseFloat($('#lsc').val()) + parseFloat($('#lc').val()) },
tirada: () => { return this.presupuestoCliente.datosGenerales.getTiradas()[0] },
forSelect2: 1,
}
);
this.solapasSobrecubierta = this.domItem.find("#solapasSobrecubierta"); this.solapasSobrecubierta = this.domItem.find("#solapasSobrecubierta");
this.textoSolapasSobrecubierta = this.domItem.find("#textoLimitesSolapasSobrecubierta"); this.textoSolapasSobrecubierta = this.domItem.find("#textoLimitesSolapasSobrecubierta");
this.solapasFaja = this.domItem.find("#solapasFaja"); this.solapasFaja = this.domItem.find("#solapasFaja");
this.altoFaja = this.domItem.find("#altoFaja"); this.altoFaja = this.domItem.find("#altoFaja");
this.textoSolapasFaja = this.domItem.find("#textoLimitesSolapasFaja");
this.fresado = $(this.domItem.find("#fresado")[0]); this.fresado = $(this.domItem.find("#fresado")[0]);
this.cosido = $(this.domItem.find("#cosido")[0]); this.cosido = $(this.domItem.find("#cosido")[0]);
@ -117,6 +153,16 @@ class DisenioCubierta {
} }
); );
this.acabadoFaja = new ClassSelect($("#acabadoFaja"),
'/serviciosacabados/getacabados',
'',
false,
{
[this.csrf_token]: this.csrf_hash,
"sobrecubierta": 1
}
);
this.initValidation(); this.initValidation();
// Creamos un nuevo observador que detecta cambios en los atributos // Creamos un nuevo observador que detecta cambios en los atributos
@ -153,6 +199,10 @@ class DisenioCubierta {
this.papelEspecial.init(); this.papelEspecial.init();
this.acabadoCubierta.init(); this.acabadoCubierta.init();
this.acabadoSobrecubierta.init(); this.acabadoSobrecubierta.init();
this.acabadoFaja.init();
this.papelFaja.init();
this.gramajeFaja.init();
$('#papelEspecialCubiertaSel').on("change", this.#handlePapelCubiertaEspecial.bind(this)); $('#papelEspecialCubiertaSel').on("change", this.#handlePapelCubiertaEspecial.bind(this));
@ -171,10 +221,12 @@ class DisenioCubierta {
} }
); );
this.faja.on('change', () => { this.faja.on('change', () => {
this.faja.is(":checked") ? this.configuracionFaja.removeClass("d-none") : this.configuracionFaja.addClass("d-none") this.faja.is(":checked") ? this.configuracionFaja.removeClass("d-none") : this.configuracionFaja.addClass("d-none");
} const div = $('#divExtras'); // Selecciona el div
); div.find('.fv-plugins-message-container').remove();
});
this.papelFaja.item.on('change', () => { this.gramajeFaja.empty(); });
// Observadores // Observadores
this.observer.observe(this.tapaBlanda[0], { attributes: true }); this.observer.observe(this.tapaBlanda[0], { attributes: true });
@ -185,7 +237,7 @@ class DisenioCubierta {
} }
cargarDatos(datosCubierta, datosGuardas, datosSobrecubierta) { cargarDatos(datosCubierta, datosGuardas, datosSobrecubierta, datosFaja) {
this.papelCubierta = datosCubierta.papel.id; this.papelCubierta = datosCubierta.papel.id;
this.gramaje = datosCubierta.gramaje; this.gramaje = datosCubierta.gramaje;
@ -234,6 +286,15 @@ class DisenioCubierta {
this.acabadoSobrecubierta.setOption(datosSobrecubierta.acabado.id, datosSobrecubierta.acabado.text); this.acabadoSobrecubierta.setOption(datosSobrecubierta.acabado.id, datosSobrecubierta.acabado.text);
} }
if (Object.prototype.toString.call(datosFaja) === '[object Object]') {
this.faja.trigger('click');
this.papelFaja.setOption(datosFaja.papel.papel_id, datosFaja.papel.papel);
this.gramajeFaja.setOption(datosFaja.papel.gramaje, datosFaja.papel.gramaje);
this.solapasFaja.val(datosFaja.solapas_ancho);
this.altoFaja.val(datosFaja.alto);
this.acabadoFaja.setOption(datosFaja.acabado.id, datosFaja.acabado.text);
}
} }
@ -371,6 +432,36 @@ class DisenioCubierta {
} }
} }
}, },
div_extras: {
validators: {
callback: {
callback: function (input) {
const div = $('#divExtras'); // Selecciona el div
div.find('.fv-plugins-message-container').remove();
if($("#addFaja").prop("checked") == false)
return true;
const papelFaja = $('#papelFaja').select2('data').length > 0;
const gramajeFaja = $('#gramajeFaja').select2('data').length > 0;
if (papelFaja && gramajeFaja) {
return true;
}
else {
div.append(`
<div class="fv-plugins-message-container invalid-feedback">
<div data-field="div_impresion_interior" data-validator="callback" style="margin-top: 50px;">
${window.translations["validation"].extras_cubierta}
</div>
</div>
`);
return false;
}
},
}
}
},
}, },
plugins: { plugins: {
trigger: new FormValidation.plugins.Trigger(), trigger: new FormValidation.plugins.Trigger(),
@ -388,6 +479,8 @@ class DisenioCubierta {
case 'div_gramaje_cubierta': case 'div_gramaje_cubierta':
case 'div_papel_especial_cubierta': case 'div_papel_especial_cubierta':
return '.col-sm-10'; return '.col-sm-10';
case 'div_extras':
return '.col-sm-12';
default: default:
return '.col-sm-3'; return '.col-sm-3';
} }
@ -638,16 +731,15 @@ class DisenioCubierta {
try { try {
if (!this.faja.is(":checked")) { if (!this.faja.is(":checked")) {
return false; return 0;
} }
else { else {
let faja = {}; let faja = {};
faja.alto = this.domItem.find("#altoFaja").val(); faja.alto = this.domItem.find("#altoFaja").val();
let papel = this.domItem.find("#papelFaja").children("option:selected").val(); faja.papel = this.papelFaja.getVal();
faja.papel = papel.split('_')[0]; faja.gramaje = this.gramajeFaja.getVal();
faja.gramaje = papel.split('_')[1];
faja.solapas = this.domItem.find("#solapasFaja").val(); faja.solapas = this.domItem.find("#solapasFaja").val();
faja.plastificado = this.domItem.find("#plastificadoFaja").children("option:selected").val(); faja.acabado = this.acabadoFaja.getVal();
return faja; return faja;
} }

View File

@ -178,6 +178,7 @@ class PresupuestoCliente {
this.disenioCubierta.solapasSobrecubierta.attr('max', response); this.disenioCubierta.solapasSobrecubierta.attr('max', response);
this.disenioCubierta.textoSolapasCubierta.text("Entre 60 y " + response + " mm"); this.disenioCubierta.textoSolapasCubierta.text("Entre 60 y " + response + " mm");
this.disenioCubierta.textoSolapasSobrecubierta.text("Entre 60 y " + response + " mm"); this.disenioCubierta.textoSolapasSobrecubierta.text("Entre 60 y " + response + " mm");
this.disenioCubierta.textoSolapasFaja.text("Entre 60 y " + response + " mm");
}, },
() => { } () => { }
).post(); ).post();
@ -810,7 +811,7 @@ class PresupuestoCliente {
console.log("Error al cargar diseño interior: " + e); console.log("Error al cargar diseño interior: " + e);
} }
try { try {
self.disenioCubierta.cargarDatos(response.data.cubierta, response.data.guardas, response.data.sobrecubierta); self.disenioCubierta.cargarDatos(response.data.cubierta, response.data.guardas, response.data.sobrecubierta, response.data.faja);
} }
catch (e) { catch (e) {
console.log("Error al cargar diseño cubierta: " + e); console.log("Error al cargar diseño cubierta: " + e);