corregidos errores

This commit is contained in:
2024-10-24 08:50:13 +02:00
parent 3dd9f8f7e3
commit 0f00649f99
4 changed files with 371 additions and 301 deletions

View File

@ -1,4 +1,5 @@
<?php namespace App\Controllers\Configuracion; <?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseResourceController; use App\Controllers\BaseResourceController;
@ -12,8 +13,8 @@ use App\Models\Configuracion\MaquinasTarifasImpresionModel;
use App\Models\Configuracion\MaquinaModel; use App\Models\Configuracion\MaquinaModel;
use use
DataTables\Editor, DataTables\Editor,
DataTables\Editor\Field; DataTables\Editor\Field;
class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
{ {
@ -71,7 +72,7 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
if ($this->request->getPost()) : if ($this->request->getPost()):
$nullIfEmpty = true; // !(phpversion() >= '8.1'); $nullIfEmpty = true; // !(phpversion() >= '8.1');
@ -81,10 +82,10 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
$noException = true; $noException = true;
if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) : if ($successfulResult = $this->canValidate()): // if ($successfulResult = $this->validate($this->formValidationRules) ) :
if ($this->canValidate()) : if ($this->canValidate()):
try { try {
$successfulResult = $this->model->skipValidation(true)->save($sanitizedData); $successfulResult = $this->model->skipValidation(true)->save($sanitizedData);
} catch (\Exception $e) { } catch (\Exception $e) {
@ -98,14 +99,14 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
$thenRedirect = true; // Change this to false if you want your user to stay on the form after submission $thenRedirect = true; // Change this to false if you want your user to stay on the form after submission
endif; endif;
if ($noException && $successfulResult) : if ($noException && $successfulResult):
$id = $this->model->db->insertID(); $id = $this->model->db->insertID();
$message = lang('Basic.global.saveSuccess', [lang('Basic.global.record')]) . '.'; $message = lang('Basic.global.saveSuccess', [lang('Basic.global.record')]) . '.';
if ($thenRedirect) : if ($thenRedirect):
if (!empty($this->indexRoute)) : if (!empty($this->indexRoute)):
return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message); return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
else: else:
return $this->redirect2listView('sweet-success', $message); return $this->redirect2listView('sweet-success', $message);
@ -134,20 +135,20 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
public function edit($requestedId = null) public function edit($requestedId = null)
{ {
if ($requestedId == null) : if ($requestedId == null):
return $this->redirect2listView(); return $this->redirect2listView();
endif; endif;
$id = filter_var($requestedId, FILTER_SANITIZE_URL); $id = filter_var($requestedId, FILTER_SANITIZE_URL);
$maquinasTarifasImpresion = $this->model->find($id); $maquinasTarifasImpresion = $this->model->find($id);
if ($maquinasTarifasImpresion == false) : if ($maquinasTarifasImpresion == false):
$message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('MaquinasTarifasImpresions.maquinasTarifaImpresion')), $id]); $message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('MaquinasTarifasImpresions.maquinasTarifaImpresion')), $id]);
return $this->redirect2listView('sweet-error', $message); return $this->redirect2listView('sweet-error', $message);
endif; endif;
if ($this->request->getPost()) : if ($this->request->getPost()):
$nullIfEmpty = true; // !(phpversion() >= '8.1'); $nullIfEmpty = true; // !(phpversion() >= '8.1');
@ -160,10 +161,10 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
$noException = true; $noException = true;
if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) : if ($successfulResult = $this->canValidate()): // if ($successfulResult = $this->validate($this->formValidationRules) ) :
if ($this->canValidate()) : if ($this->canValidate()):
try { try {
$successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData); $successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData);
} catch (\Exception $e) { } catch (\Exception $e) {
@ -180,12 +181,12 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
$thenRedirect = false; $thenRedirect = false;
endif; endif;
if ($noException && $successfulResult) : if ($noException && $successfulResult):
$id = $maquinasTarifasImpresion->id ?? $id; $id = $maquinasTarifasImpresion->id ?? $id;
$message = lang('Basic.global.updateSuccess', [lang('Basic.global.record')]) . '.'; $message = lang('Basic.global.updateSuccess', [lang('Basic.global.record')]) . '.';
if ($thenRedirect) : if ($thenRedirect):
if (!empty($this->indexRoute)) : if (!empty($this->indexRoute)):
return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message); return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
else: else:
return $this->redirect2listView('sweet-success', $message); return $this->redirect2listView('sweet-success', $message);
@ -220,30 +221,48 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
$response = Editor::inst($db, 'lg_maquinas_tarifas_impresion') $response = Editor::inst($db, 'lg_maquinas_tarifas_impresion')
->fields( ->fields(
Field::inst('uso') Field::inst('uso')
->validator('Validate::notEmpty', array( ->validator(
'message' => lang('MaquinasTarifasImpresions.validation.uso.required')) 'Validate::notEmpty',
array(
'message' => lang('MaquinasTarifasImpresions.validation.uso.required')
)
), ),
Field::inst('tipo') Field::inst('tipo')
->validator('Validate::notEmpty', array( ->validator(
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required')) 'Validate::notEmpty',
array(
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required')
)
), ),
Field::inst('precio') Field::inst('precio')
->getFormatter( 'Format::toDecimalChar')->setFormatter( 'Format::fromDecimalChar') ->getFormatter('Format::toDecimalChar')->setFormatter('Format::fromDecimalChar')
->validator('Validate::numeric', array( ->validator(
'Validate::numeric',
array(
"decimal" => ',', "decimal" => ',',
'message' => lang('MaquinasTarifasImpresions.validation.precio.decimal')) 'message' => lang('MaquinasTarifasImpresions.validation.precio.decimal')
)
) )
->validator('Validate::notEmpty', array( ->validator(
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required')) 'Validate::notEmpty',
array(
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required')
)
), ),
Field::inst('margen') Field::inst('margen')
->getFormatter( 'Format::toDecimalChar')->setFormatter( 'Format::fromDecimalChar') ->getFormatter('Format::toDecimalChar')->setFormatter('Format::fromDecimalChar')
->validator('Validate::numeric', array( ->validator(
'Validate::numeric',
array(
"decimal" => ',', "decimal" => ',',
'message' => lang('MaquinasTarifasImpresions.validation.precio.decimal')) 'message' => lang('MaquinasTarifasImpresions.validation.precio.decimal')
)
) )
->validator('Validate::notEmpty', array( ->validator(
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required')) 'Validate::notEmpty',
array(
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required')
)
), ),
Field::inst('maquina_id'), Field::inst('maquina_id'),
Field::inst('user_created_id'), Field::inst('user_created_id'),
@ -269,16 +288,21 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
'maquina_id' => $values['maquina_id'], 'maquina_id' => $values['maquina_id'],
'tipo' => $values['tipo'], 'tipo' => $values['tipo'],
'uso' => $values['uso'], 'uso' => $values['uso'],
'is_deleted' => 0)); 'is_deleted' => 0
));
$id = $builder->get()->getFirstRow()->id; $id = $builder->get()->getFirstRow();
if ($id) {
$id = $id->id;
// No se pueden duplicar valores al crear o al editar
if ($builder->countAllResults() >= 1) {
if (
($action === Editor::ACTION_EDIT && $id != $pkey)
|| $action === Editor::ACTION_CREATE
) {
// No se pueden duplicar valores al crear o al editar return lang('MaquinasTarifasImpresions.validation.duplicated_uso_tipo');
if ($builder->countAllResults() >= 1) { }
if (($action === Editor::ACTION_EDIT && $id != $pkey)
|| $action === Editor::ACTION_CREATE) {
return lang('MaquinasTarifasImpresions.validation.duplicated_uso_tipo');
} }
} }
} }
@ -413,11 +437,11 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
protected function getMaquinaListItems($selId = null) protected function getMaquinaListItems($selId = null)
{ {
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Maquinas.maquina'))])]; $data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Maquinas.maquina'))])];
if (!empty($selId)) : if (!empty($selId)):
$maquinaModel = model('App\Models\Configuracion\MaquinaModel'); $maquinaModel = model('App\Models\Configuracion\MaquinaModel');
$selOption = $maquinaModel->where('id', $selId)->findColumn('nombre'); $selOption = $maquinaModel->where('id', $selId)->findColumn('nombre');
if (!empty($selOption)) : if (!empty($selOption)):
$data[$selId] = $selOption[0]; $data[$selId] = $selOption[0];
endif; endif;
endif; endif;

View File

@ -52,10 +52,10 @@ class PresupuestoService extends BaseService
if ($maquina->is_inkjet) { if ($maquina->is_inkjet) {
$parametrosInkjet = (object)array( $parametrosInkjet = (object) array(
'a_favor_fibra' => $a_favor_fibra, // este parametro se cambia para comprobar 'a_favor_fibra' => $a_favor_fibra, // este parametro se cambia para comprobar
// en las dos direcciones (menos en rustica fresada que es siempre 1) // en las dos direcciones (menos en rustica fresada que es siempre 1)
'bnPages' => $isColor ? 0 : $datosPedido->paginas, 'bnPages' => $isColor ? 0 : $datosPedido->paginas,
'colorPages' => ($uso == 'guardas') ? $datosPedido->paginas_impresion : ($isColor ? $datosPedido->paginas : 0), 'colorPages' => ($uso == 'guardas') ? $datosPedido->paginas_impresion : ($isColor ? $datosPedido->paginas : 0),
'rotativa_gota_negro' => 0, 'rotativa_gota_negro' => 0,
'rotativa_gota_color' => 0, 'rotativa_gota_color' => 0,
@ -74,13 +74,13 @@ class PresupuestoService extends BaseService
} else { } else {
$datosTipologias = $datosTipolog; $datosTipologias = $datosTipolog;
} }
$parametrosInkjet->rotativa_gota_negro = $datosTipologias[0]->gota_negro; $parametrosInkjet->rotativa_gota_negro = $datosTipologias[0]->gota_negro;
$parametrosInkjet->rotativa_gota_color = $datosTipologias[0]->gota_color; $parametrosInkjet->rotativa_gota_color = $datosTipologias[0]->gota_color;
$parametrosInkjet->rotativa_negro = $datosTipologias[0]->negro; $parametrosInkjet->rotativa_negro = $datosTipologias[0]->negro;
$parametrosInkjet->rotativa_cyan = $datosTipologias[0]->cyan; $parametrosInkjet->rotativa_cyan = $datosTipologias[0]->cyan;
$parametrosInkjet->rotativa_magenta = $datosTipologias[0]->magenta; $parametrosInkjet->rotativa_magenta = $datosTipologias[0]->magenta;
$parametrosInkjet->rotativa_amarillo = $datosTipologias[0]->amarillo; $parametrosInkjet->rotativa_amarillo = $datosTipologias[0]->amarillo;
$parametrosInkjet->rotativa_cg = $datosTipologias[0]->cg; $parametrosInkjet->rotativa_cg = $datosTipologias[0]->cg;
} }
$tarifamodel = new \App\Models\Configuracion\MaquinasTarifasImpresionModel(); $tarifamodel = new \App\Models\Configuracion\MaquinasTarifasImpresionModel();
@ -127,7 +127,7 @@ class PresupuestoService extends BaseService
); );
$clientePreciosModel = new \App\Models\Clientes\ClientePreciosModel(); $clientePreciosModel = new \App\Models\Clientes\ClientePreciosModel();
$config = (object)[ $config = (object) [
"tipo" => ($uso == 'guardas') ? 'interior' : $uso, "tipo" => ($uso == 'guardas') ? 'interior' : $uso,
"tipo_maquina" => $maquina->is_inkjet ? 'inkjet' : 'toner', "tipo_maquina" => $maquina->is_inkjet ? 'inkjet' : 'toner',
"tipo_impresion" => $tipo "tipo_impresion" => $tipo
@ -137,7 +137,7 @@ class PresupuestoService extends BaseService
$linea['fields']['precio_click'], $linea['fields']['precio_click'],
$maquina->velocidad $maquina->velocidad
); );
[$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);
if (is_null($precio_hora)) { if (is_null($precio_hora)) {
@ -209,7 +209,7 @@ class PresupuestoService extends BaseService
$tarifamodel = new MaquinasTarifasImpresionModel(); $tarifamodel = new MaquinasTarifasImpresionModel();
$resultado_tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso, is_array($tipo) ? 'color' : $tipo); $resultado_tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso, is_array($tipo) ? 'color' : $tipo);
if($resultado_tarifa == null){ if ($resultado_tarifa == null) {
/* /*
$info = [ $info = [
'maquina_id' => $maquina->maquina_id, 'maquina_id' => $maquina->maquina_id,
@ -219,8 +219,7 @@ class PresupuestoService extends BaseService
log_message("error","No se ha encontrado tarifa para la maquina {maquina_id} y el uso {uso} y el tipo {tipo}", $info); log_message("error","No se ha encontrado tarifa para la maquina {maquina_id} y el uso {uso} y el tipo {tipo}", $info);
*/ */
return []; return [];
} } else {
else{
$tarifaId = $resultado_tarifa[0]; $tarifaId = $resultado_tarifa[0];
$tarifa = $resultado_tarifa[1]; $tarifa = $resultado_tarifa[1];
$tarifa_margen = $resultado_tarifa[2]; $tarifa_margen = $resultado_tarifa[2];
@ -231,8 +230,8 @@ class PresupuestoService extends BaseService
} }
// precio del pliego de impresion // precio del pliego de impresion
$linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosRotativa); $linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosRotativa);
if(count($linea['fields']) == 0){ if (count($linea['fields']) == 0) {
return []; return [];
} }
@ -245,7 +244,8 @@ 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;
@ -267,7 +267,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,
@ -290,7 +290,7 @@ class PresupuestoService extends BaseService
$clientePreciosModel = new ClientePreciosModel(); $clientePreciosModel = new ClientePreciosModel();
$config = (object)[ $config = (object) [
"tipo" => $uso, "tipo" => $uso,
"tipo_maquina" => 'inkjet', "tipo_maquina" => 'inkjet',
"tipo_impresion" => $tipo "tipo_impresion" => $tipo
@ -300,7 +300,7 @@ class PresupuestoService extends BaseService
$linea['fields']['precio_click'], $linea['fields']['precio_click'],
$maquina->velocidad $maquina->velocidad
); );
[$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);
if (is_null($precio_hora)) { if (is_null($precio_hora)) {
return []; return [];
@ -335,7 +335,7 @@ class PresupuestoService extends BaseService
$ancho_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho; $ancho_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho;
$alto_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->altoExteriores : $datosPedido->alto; $alto_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->altoExteriores : $datosPedido->alto;
$formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $alto_calculo, $datosPedido->isCosido, $forzar_a_favor_fibra); $formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $alto_calculo, $datosPedido->isCosido, $forzar_a_favor_fibra);
$response['fields'] = $formas; $response['fields'] = $formas;
} }
@ -358,8 +358,8 @@ class PresupuestoService extends BaseService
$rotativa = array_key_exists('rotativa', $opciones_papel) ? $opciones_papel['rotativa'] : 0; $rotativa = array_key_exists('rotativa', $opciones_papel) ? $opciones_papel['rotativa'] : 0;
$precio_click = $tarifa * (1 + $tarifa_margen / 100.0); $precio_click = $tarifa * (1 + $tarifa_margen / 100.0);
$margen_click = $tarifa * ($tarifa_margen / 100.0); $margen_click = $tarifa * ($tarifa_margen / 100.0);
//interior (bn o color) //interior (bn o color)
if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0) { if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0) {
@ -466,7 +466,7 @@ class PresupuestoService extends BaseService
$factor_altura = round($maquina->alto_impresion / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2); $factor_altura = round($maquina->alto_impresion / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2);
$factor_altura_click = round($maquina->alto_click / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2); $factor_altura_click = round($maquina->alto_click / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2);
if(floor($factor_anchura) == 0){ if (floor($factor_anchura) == 0) {
return []; return [];
} }
@ -566,7 +566,7 @@ class PresupuestoService extends BaseService
$data = []; $data = [];
$data['pulgada'] = 1 / 1000000000000.0; $data['pulgada'] = 1 / 1000000000000.0;
if($maquina->maquina_id == 91 || $maquina->maquina_id == 99 || $maquina->maquina_id == 114 || $maquina->maquina_id == 98) if ($maquina->maquina_id == 91 || $maquina->maquina_id == 99 || $maquina->maquina_id == 114 || $maquina->maquina_id == 98)
$data['resolucion'] = 1200; $data['resolucion'] = 1200;
else else
$data['resolucion'] = 600; $data['resolucion'] = 600;
@ -599,9 +599,9 @@ class PresupuestoService extends BaseService
// precio tinta // precio tinta
$data['precio_tinta'] = round( $data['precio_tinta'] = round(
round(($data['peso_gotas_negro_pedido'] / 1000.0) * $maquina->precio_tinta_negro, 2) + round(($data['peso_gotas_negro_pedido'] / 1000.0) * $maquina->precio_tinta_negro, 2) +
round(($data['peso_gotas_cyan_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + round(($data['peso_gotas_cyan_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) +
round(($data['peso_gotas_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + round(($data['peso_gotas_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) +
round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2), round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2),
2 2
); );
@ -842,7 +842,7 @@ class PresupuestoService extends BaseService
{ {
$ancho_total = 0; $ancho_total = 0;
$sangre_cubierta = self::SANGRE_FORMAS_CUBIERTA; $sangre_cubierta = self::SANGRE_FORMAS_CUBIERTA;
if($datosPedido->ancho > 210 || $datosPedido->alto > 297){ if ($datosPedido->ancho >= 210) {
$sangre_cubierta = 15; $sangre_cubierta = 15;
} }
@ -865,9 +865,9 @@ class PresupuestoService extends BaseService
// si es cubierta // si es cubierta
// se añade 7mm del ancho del cartón (2*3.5mm) por cada lado del lomo // se añade 7mm del ancho del cartón (2*3.5mm) por cada lado del lomo
// más 7mm de vuelo+cajo por cada lado. Por último, 20mm de sangre por cada lado // más 7mm de vuelo+cajo por cada lado. Por último, 20mm de sangre por cada lado
if ($uso == "cubierta"){ if ($uso == "cubierta") {
$ancho_total += (2 * 7 + 2 * $sangre_cubierta + 6); $ancho_total += (2 * 7 + 2 * $sangre_cubierta + 6);
if($lomoRedondo){ if ($lomoRedondo) {
$ancho_total += 6; $ancho_total += 6;
} }
} }
@ -878,8 +878,10 @@ class PresupuestoService extends BaseService
$ancho_total += (2 * 7 + 2 * self::SANGRE_FORMAS) + 7; $ancho_total += (2 * 7 + 2 * self::SANGRE_FORMAS) + 7;
} }
// Wire-o y espiral (tapa blanda y tapa dura) // Wire-o y espiral (tapa blanda y tapa dura)
else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 6 || else if (
$tipo_impresion_id == 7 || $tipo_impresion_id == 8) { $tipo_impresion_id == 5 || $tipo_impresion_id == 6 ||
$tipo_impresion_id == 7 || $tipo_impresion_id == 8
) {
// En este caso, la cubierta se imprime como dos formas separadas, pero hay que dejar un // En este caso, la cubierta se imprime como dos formas separadas, pero hay que dejar un
// espacio entre ellas para poder cortarlas // espacio entre ellas para poder cortarlas
$calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina_id, 2); $calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina_id, 2);
@ -889,7 +891,7 @@ class PresupuestoService extends BaseService
$ancho_total += $calles[0]->internas; $ancho_total += $calles[0]->internas;
// Tapa blanda // Tapa blanda
if($tipo_impresion_id == 7 || $tipo_impresion_id == 8){ if ($tipo_impresion_id == 7 || $tipo_impresion_id == 8) {
// añadimos ancho de las solapas // añadimos ancho de las solapas
// si se añaden solapas hay que sumar 3mm de los dobleces // si se añaden solapas hay que sumar 3mm de los dobleces
if ($datosPedido->solapas) { if ($datosPedido->solapas) {
@ -900,12 +902,11 @@ class PresupuestoService extends BaseService
$ancho_total += (4 * self::SANGRE_FORMAS); $ancho_total += (4 * self::SANGRE_FORMAS);
} }
// Tapa dura // Tapa dura
else{ else {
// Se le suma 20mm de sangre por cada lado. Como son 2 hojas independientes, se multiplica por 4 // Se le suma 20mm de sangre por cada lado. Como son 2 hojas independientes, se multiplica por 4
$ancho_total += (4 * $sangre_cubierta); $ancho_total += (4 * $sangre_cubierta);
} }
} } else {
else {
// En cualquier otro caso se le suma 5mm de sangre por cada lado // En cualquier otro caso se le suma 5mm de sangre por cada lado
$ancho_total += (2 * self::SANGRE_FORMAS); $ancho_total += (2 * self::SANGRE_FORMAS);
} }
@ -922,11 +923,15 @@ class PresupuestoService extends BaseService
if ($datosPedido) { if ($datosPedido) {
$alto_total = floatval($datosPedido->alto); $alto_total = floatval($datosPedido->alto);
$sangre_cubierta = self::SANGRE_FORMAS_CUBIERTA;
if ($datosPedido->alto >= 297) {
$sangre_cubierta = 15;
}
// Tapa dura (cosido y fresado) // Tapa dura (cosido y fresado)
if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) { if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) {
// Se añaden 20mm de sangre por cada lado + 3.5mm extra por cada lado de vuelo // Se añaden 20mm de sangre por cada lado + 3.5mm extra por cada lado de vuelo
if ($uso == "cubierta") if ($uso == "cubierta")
$alto_total += (2*3.5 + 2 * self::SANGRE_FORMAS_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 + 7mm de vuelo
else else
@ -1019,13 +1024,11 @@ class PresupuestoService extends BaseService
// Si el papel o la máquina no existen, se utiliza la más barata del comparador // Si el papel o la máquina no existen, se utiliza la más barata del comparador
if (!PresupuestoService::checkMaquina($linea->maquina_id) || !PresupuestoService::checkPapelImpresion($linea->papel_impresion_id)) { if (!PresupuestoService::checkMaquina($linea->maquina_id) || !PresupuestoService::checkPapelImpresion($linea->papel_impresion_id)) {
if(($input_data['presupuesto'])->papel_formato_personalizado == 0){ if (($input_data['presupuesto'])->papel_formato_personalizado == 0) {
$papel_formato = (new PapelFormatoModel())->find(($input_data['presupuesto'])->papel_formato_id); $papel_formato = (new PapelFormatoModel())->find(($input_data['presupuesto'])->papel_formato_id);
$ancho = $papel_formato->ancho; $ancho = $papel_formato->ancho;
$alto = $papel_formato->alto; $alto = $papel_formato->alto;
} } else {
else
{
$ancho = ($input_data['presupuesto'])->papel_formato_ancho; $ancho = ($input_data['presupuesto'])->papel_formato_ancho;
$alto = ($input_data['presupuesto'])->papel_formato_alto; $alto = ($input_data['presupuesto'])->papel_formato_alto;
} }
@ -1038,10 +1041,10 @@ class PresupuestoService extends BaseService
// Hay que ver si es rotativa o plana // Hay que ver si es rotativa o plana
// Si es rotativa // Si es rotativa
if(str_contains($linea->tipo, '_rot_')){ if (str_contains($linea->tipo, '_rot_')) {
$datos = [ $datos = [
'datosPedido' => (object)array( 'datosPedido' => (object) array(
'paginas' => ($input_data['presupuesto'])->paginas, 'paginas' => ($input_data['presupuesto'])->paginas,
'tirada' => ($input_data['presupuesto'])->tirada, 'tirada' => ($input_data['presupuesto'])->tirada,
'merma' => ($input_data['presupuesto'])->merma, 'merma' => ($input_data['presupuesto'])->merma,
@ -1052,30 +1055,32 @@ class PresupuestoService extends BaseService
), ),
'papel_generico' => $papel_generico, 'papel_generico' => $papel_generico,
'gramaje' => $linea->gramaje, 'gramaje' => $linea->gramaje,
'paginas' => (object)array( 'paginas' => (object) array(
'negro' => ($input_data['presupuesto'])->paginas - $linea->rotativa_pag_color, 'negro' => ($input_data['presupuesto'])->paginas - $linea->rotativa_pag_color,
'color' => $linea->rotativa_pag_color, 'color' => $linea->rotativa_pag_color,
), ),
'cliente_id' => ($input_data['presupuesto'])->cliente_id, 'cliente_id' => ($input_data['presupuesto'])->cliente_id,
'datosTipolog' => [(object)array( 'datosTipolog' => [
'negro' => $linea->rotativa_negro, (object) array(
'cyan' => $linea->rotativa_cyan, 'negro' => $linea->rotativa_negro,
'magenta' => $linea->rotativa_magenta, 'cyan' => $linea->rotativa_cyan,
'amarillo' => $linea->rotativa_amarillo, 'magenta' => $linea->rotativa_magenta,
'cg' => $linea->rotativa_cg, 'amarillo' => $linea->rotativa_amarillo,
'gota_negro' => $linea->rotativa_gota_negro, 'cg' => $linea->rotativa_cg,
'gota_color' => $linea->rotativa_gota_color, 'gota_negro' => $linea->rotativa_gota_negro,
)] 'gota_color' => $linea->rotativa_gota_color,
)
]
]; ];
$comp_data = PresupuestoService::obtenerComparadorRotativa($datos); $comp_data = PresupuestoService::obtenerComparadorRotativa($datos);
} }
// Si es plana // Si es plana
else{ else {
$datos = [ $datos = [
'tipo_impresion_id' => $data['tipo_impresion_id'], 'tipo_impresion_id' => $data['tipo_impresion_id'],
'datosPedido' => (object)array( 'datosPedido' => (object) array(
'paginas' => ($input_data['presupuesto'])->paginas, 'paginas' => ($input_data['presupuesto'])->paginas,
'tirada' => ($input_data['presupuesto'])->tirada, 'tirada' => ($input_data['presupuesto'])->tirada,
'merma' => ($input_data['presupuesto'])->merma, 'merma' => ($input_data['presupuesto'])->merma,
@ -1088,43 +1093,43 @@ class PresupuestoService extends BaseService
'papel_generico' => $papel_generico, 'papel_generico' => $papel_generico,
'gramaje' => $linea->gramaje, 'gramaje' => $linea->gramaje,
'cliente_id' => ($input_data['presupuesto'])->cliente_id, 'cliente_id' => ($input_data['presupuesto'])->cliente_id,
'datosTipolog' => [(object)array( 'datosTipolog' => [
'negro' => $linea->rotativa_negro, (object) array(
'cyan' => $linea->rotativa_cyan, 'negro' => $linea->rotativa_negro,
'magenta' => $linea->rotativa_magenta, 'cyan' => $linea->rotativa_cyan,
'amarillo' => $linea->rotativa_amarillo, 'magenta' => $linea->rotativa_magenta,
'cg' => $linea->rotativa_cg, 'amarillo' => $linea->rotativa_amarillo,
'gota_negro' => $linea->rotativa_gota_negro, 'cg' => $linea->rotativa_cg,
'gota_color' => $linea->rotativa_gota_color, 'gota_negro' => $linea->rotativa_gota_negro,
)] 'gota_color' => $linea->rotativa_gota_color,
)
]
]; ];
// si la línea es cubierta o sobrecubierta, es HQ y color // si la línea es cubierta o sobrecubierta, es HQ y color
if( str_contains($linea->tipo, 'cubierta') ){ if (str_contains($linea->tipo, 'cubierta')) {
$datos['isColor'] = true; $datos['isColor'] = true;
$datos['isHq'] = true; $datos['isHq'] = true;
// además se añade los campos de lomo y solapas y el uso // además se añade los campos de lomo y solapas y el uso
if( str_contains($linea->tipo, 'sobrecubierta') ){ if (str_contains($linea->tipo, 'sobrecubierta')) {
$datos['datosPedido']->solapas = ($input_data['presupuesto'])->solapas_sobrecubierta; $datos['datosPedido']->solapas = ($input_data['presupuesto'])->solapas_sobrecubierta;
$datos['datosPedido']->solapas_ancho = ($input_data['presupuesto'])->solapas_ancho_sobrecubierta; $datos['datosPedido']->solapas_ancho = ($input_data['presupuesto'])->solapas_ancho_sobrecubierta;
$datos['datosPedido']->lomo = ($input_data['presupuesto'])->lomo_sobrecubierta; $datos['datosPedido']->lomo = ($input_data['presupuesto'])->lomo_sobrecubierta;
$datos['uso'] = 'sobrecubierta'; $datos['uso'] = 'sobrecubierta';
} } else {
else{
$datos['datosPedido']->solapas = ($input_data['presupuesto'])->solapas; $datos['datosPedido']->solapas = ($input_data['presupuesto'])->solapas;
$datos['datosPedido']->solapas_ancho = ($input_data['presupuesto'])->solapas_ancho; $datos['datosPedido']->solapas_ancho = ($input_data['presupuesto'])->solapas_ancho;
$datos['datosPedido']->lomo = ($input_data['presupuesto'])->lomo_cubierta; $datos['datosPedido']->lomo = ($input_data['presupuesto'])->lomo_cubierta;
$datos['uso'] = 'cubierta'; $datos['uso'] = 'cubierta';
} }
} } else {
else{
$datos['isColor'] = str_contains($linea->tipo, '_color') ? true : false; $datos['isColor'] = str_contains($linea->tipo, '_color') ? true : false;
$datos['isHq'] = str_contains($linea->tipo, 'hq') ? true : false; $datos['isHq'] = str_contains($linea->tipo, 'hq') ? true : false;
$datos['uso'] = 'interior'; $datos['uso'] = 'interior';
} }
if( str_contains($linea->tipo, 'guardas') ){ if (str_contains($linea->tipo, 'guardas')) {
$datos['uso'] = 'guardas'; $datos['uso'] = 'guardas';
$datos['datosPedido']->paginas_impresion = $linea->paginas_impresion; $datos['datosPedido']->paginas_impresion = $linea->paginas_impresion;
} }
@ -1133,8 +1138,8 @@ class PresupuestoService extends BaseService
} }
// se ordena $comp_data usando el campo ['fields]['total_impresion'] // se ordena $comp_data usando el campo ['fields]['total_impresion']
usort($comp_data, function($a, $b) { usort($comp_data, function ($a, $b) {
return $a['fields']['total_impresion'] <=> $b['fields']['total_impresion']; return $a['fields']['total_impresion'] <=> $b['fields']['total_impresion'];
}); });
(new PresupuestoLineaModel())->updatePreciosLineasPresupuesto($linea->id, $comp_data[0]); (new PresupuestoLineaModel())->updatePreciosLineasPresupuesto($linea->id, $comp_data[0]);
@ -1144,16 +1149,15 @@ class PresupuestoService extends BaseService
} }
// Si existe el papel y la máquina, se recalcula el precio con los mismos // Si existe el papel y la máquina, se recalcula el precio con los mismos
// parámetros y se comprueba // parámetros y se comprueba
else{ else {
$nueva_linea = PresupuestoService::obtenerValorLineaPresupuesto($data, $linea); $nueva_linea = PresupuestoService::obtenerValorLineaPresupuesto($data, $linea);
if(count($nueva_linea) >0){ if (count($nueva_linea) > 0) {
if(round($nueva_linea['fields']['total_impresion'],2) != round($linea->total_linea, 2)){ if (round($nueva_linea['fields']['total_impresion'], 2) != round($linea->total_linea, 2)) {
(new PresupuestoLineaModel())->updatePreciosLineasPresupuesto($linea->id, $nueva_linea); (new PresupuestoLineaModel())->updatePreciosLineasPresupuesto($linea->id, $nueva_linea);
$linea_to_save = (new PresupuestoLineaModel())->find($linea->id); $linea_to_save = (new PresupuestoLineaModel())->find($linea->id);
$cambios = true; $cambios = true;
array_push($lineas, $linea_to_save); array_push($lineas, $linea_to_save);
} } else {
else{
array_push($lineas, $linea); array_push($lineas, $linea);
} }
} }
@ -1166,7 +1170,8 @@ class PresupuestoService extends BaseService
private static function obtenerValorLineaPresupuesto($input_data, $linea){ private static function obtenerValorLineaPresupuesto($input_data, $linea)
{
$tipo_impresion_id = $input_data['tipo_impresion_id']; $tipo_impresion_id = $input_data['tipo_impresion_id'];
$tirada = $input_data['tirada']; $tirada = $input_data['tirada'];
@ -1183,7 +1188,7 @@ class PresupuestoService extends BaseService
$lomo_cubierta = $input_data['lomo_cubierta']; $lomo_cubierta = $input_data['lomo_cubierta'];
$lomo_sobrecubierta = $input_data['lomo_sobrecubierta']; $lomo_sobrecubierta = $input_data['lomo_sobrecubierta'];
if($papel_formato_personalizado == 0){ if ($papel_formato_personalizado == 0) {
$papel_formato = (new PapelFormatoModel())->find($papel_formato_id); $papel_formato = (new PapelFormatoModel())->find($papel_formato_id);
$ancho = $papel_formato->ancho; $ancho = $papel_formato->ancho;
$alto = $papel_formato->alto; $alto = $papel_formato->alto;
@ -1202,7 +1207,7 @@ class PresupuestoService extends BaseService
'nombre' => $papel_generico->nombre, 'nombre' => $papel_generico->nombre,
); );
$data['datosPedido'] = (object)array( $data['datosPedido'] = (object) array(
'paginas' => $linea->paginas, 'paginas' => $linea->paginas,
'tirada' => $tirada, 'tirada' => $tirada,
'merma' => $merma, 'merma' => $merma,
@ -1216,18 +1221,20 @@ class PresupuestoService extends BaseService
$data['maquina'] = $maquina; $data['maquina'] = $maquina;
$data['papel_generico'] = $papel_generico; $data['papel_generico'] = $papel_generico;
$data['a_favor_fibra'] = $linea->rotativa_a_favor_fibra; $data['a_favor_fibra'] = $linea->rotativa_a_favor_fibra;
$data['datosTipolog'] = [(object)array( $data['datosTipolog'] = [
'negro' => $linea->rotativa_negro, (object) array(
'cyan' => $linea->rotativa_cyan, 'negro' => $linea->rotativa_negro,
'magenta' => $linea->rotativa_magenta, 'cyan' => $linea->rotativa_cyan,
'amarillo' => $linea->rotativa_amarillo, 'magenta' => $linea->rotativa_magenta,
'cg' => $linea->rotativa_cg, 'amarillo' => $linea->rotativa_amarillo,
'gota_negro' => $linea->rotativa_gota_negro, 'cg' => $linea->rotativa_cg,
'gota_color' => $linea->rotativa_gota_color, 'gota_negro' => $linea->rotativa_gota_negro,
)]; 'gota_color' => $linea->rotativa_gota_color,
)
];
$data['gramaje'] = $linea->gramaje; $data['gramaje'] = $linea->gramaje;
switch($linea->tipo){ switch ($linea->tipo) {
case 'lp_bn': case 'lp_bn':
case 'lp_bnhq': case 'lp_bnhq':
@ -1240,7 +1247,7 @@ class PresupuestoService extends BaseService
$tipo = $isColor ? ($isHq ? 'colorhq' : 'color') : ($isHq ? 'negrohq' : 'negro'); $tipo = $isColor ? ($isHq ? 'colorhq' : 'color') : ($isHq ? 'negrohq' : 'negro');
$opciones_papel = PresupuestoService::get_opciones_papel('interior', $isColor); $opciones_papel = PresupuestoService::get_opciones_papel('interior', $isColor);
if($linea->tipo == 'lp_guardas'){ if ($linea->tipo == 'lp_guardas') {
$data['uso'] = 'guardas'; $data['uso'] = 'guardas';
$tipo = 'colorhq'; $tipo = 'colorhq';
$data['datosPedido']->paginas_impresion = $linea->paginas_impresion; $data['datosPedido']->paginas_impresion = $linea->paginas_impresion;
@ -1265,17 +1272,17 @@ class PresupuestoService extends BaseService
case 'lp_rot_color': case 'lp_rot_color':
case 'lp_rot_bn': case 'lp_rot_bn':
$data['uso'] = 'interior'; $data['uso'] = 'interior';
$tipo = $linea->rotativa_pag_color>0 ? 'color' : 'negro'; $tipo = $linea->rotativa_pag_color > 0 ? 'color' : 'negro';
$data['paginas'] = (object)array( $data['paginas'] = (object) array(
'negro' => $linea->paginas-$linea->rotativa_pag_color, 'negro' => $linea->paginas - $linea->rotativa_pag_color,
'color' => $linea->rotativa_pag_color, 'color' => $linea->rotativa_pag_color,
); );
$data['tipo'] = $tipo; $data['tipo'] = $tipo;
$data['parametrosRotativa'] = (object)array( $data['parametrosRotativa'] = (object) array(
'a_favor_fibra' => $linea->rotativa_a_favor_fibra, 'a_favor_fibra' => $linea->rotativa_a_favor_fibra,
'bnPages' => $data['paginas']->negro, 'bnPages' => $data['paginas']->negro,
'colorPages' => $data['paginas']->color, 'colorPages' => $data['paginas']->color,
'rotativa_negro' => $linea->rotativa_negro, 'rotativa_negro' => $linea->rotativa_negro,
'rotativa_cyan' => $linea->rotativa_cyan, 'rotativa_cyan' => $linea->rotativa_cyan,
'rotativa_magenta' => $linea->rotativa_magenta, 'rotativa_magenta' => $linea->rotativa_magenta,
@ -1290,12 +1297,12 @@ class PresupuestoService extends BaseService
case 'lp_cubierta': case 'lp_cubierta':
case 'lp_sobrecubierta': case 'lp_sobrecubierta':
$data['uso'] = ($linea->tipo == 'lp_cubierta')? 'cubierta':'sobrecubierta'; $data['uso'] = ($linea->tipo == 'lp_cubierta') ? 'cubierta' : 'sobrecubierta';
$data['tipo'] = 'colorhq'; $data['tipo'] = 'colorhq';
$data['isColor'] = true; $data['isColor'] = true;
$data['datosPedido']->solapas = ($linea->tipo == 'lp cubierta')? $solapas : $solapas_sobrecubierta; $data['datosPedido']->solapas = ($linea->tipo == 'lp cubierta') ? $solapas : $solapas_sobrecubierta;
$data['datosPedido']->solapas_ancho = ($linea->tipo == 'lp cubierta')? $solapas_ancho_cubierta : $solapas_ancho_sobrecubierta; $data['datosPedido']->solapas_ancho = ($linea->tipo == 'lp cubierta') ? $solapas_ancho_cubierta : $solapas_ancho_sobrecubierta;
$data['datosPedido']->lomo = ($linea->tipo == 'lp cubierta')? $lomo_cubierta : $lomo_sobrecubierta; $data['datosPedido']->lomo = ($linea->tipo == 'lp cubierta') ? $lomo_cubierta : $lomo_sobrecubierta;
$opciones_papel = PresupuestoService::get_opciones_papel($data['uso'], true); $opciones_papel = PresupuestoService::get_opciones_papel($data['uso'], true);
$data['opciones_papel'] = $opciones_papel; $data['opciones_papel'] = $opciones_papel;
@ -1305,8 +1312,10 @@ class PresupuestoService extends BaseService
$output_data = PresupuestoService::getLineaPresupuestoPlana($data); $output_data = PresupuestoService::getLineaPresupuestoPlana($data);
if ($tipo_impresion_id == 5 || $tipo_impresion_id == 6 || if (
$tipo_impresion_id == 7 || $tipo_impresion_id == 8) { $tipo_impresion_id == 5 || $tipo_impresion_id == 6 ||
$tipo_impresion_id == 7 || $tipo_impresion_id == 8
) {
$output_data['fields']['num_formas']['num_formas_horizontales'] *= 2; $output_data['fields']['num_formas']['num_formas_horizontales'] *= 2;
$output_data['fields']['num_formas']['value'] *= 2; $output_data['fields']['num_formas']['value'] *= 2;
@ -1317,33 +1326,34 @@ class PresupuestoService extends BaseService
} }
// Funcion que procesa los servicios y actualiza los precios en caso de cambio // Funcion que procesa los servicios y actualiza los precios en caso de cambio
public static function checkLineasServicios($input_data, $servicios){ public static function checkLineasServicios($input_data, $servicios)
{
$cambio_en_servicios = false; $cambio_en_servicios = false;
$cambio = false; $cambio = false;
if(count($servicios->serviciosAcabado)>0){ if (count($servicios->serviciosAcabado) > 0) {
[$cambio, $servicios->serviciosAcabado] = [$cambio, $servicios->serviciosAcabado] =
PresupuestoService::procesarServiciosAcabado($input_data, $servicios->serviciosAcabado); PresupuestoService::procesarServiciosAcabado($input_data, $servicios->serviciosAcabado);
$cambio_en_servicios = $cambio_en_servicios? $cambio_en_servicios: $cambio; $cambio_en_servicios = $cambio_en_servicios ? $cambio_en_servicios : $cambio;
} }
if(count($servicios->serviciosManipulado)>0){ if (count($servicios->serviciosManipulado) > 0) {
[$cambio, $servicios->serviciosManipulado] = [$cambio, $servicios->serviciosManipulado] =
PresupuestoService::procesarServiciosManipulado($input_data, $servicios->serviciosManipulado); PresupuestoService::procesarServiciosManipulado($input_data, $servicios->serviciosManipulado);
$cambio_en_servicios = $cambio_en_servicios? $cambio_en_servicios: $cambio; $cambio_en_servicios = $cambio_en_servicios ? $cambio_en_servicios : $cambio;
} }
if(count($servicios->serviciosEncuadernacion)>0){ if (count($servicios->serviciosEncuadernacion) > 0) {
[$cambio, $servicios->serviciosEncuadernacion] = [$cambio, $servicios->serviciosEncuadernacion] =
PresupuestoService::procesarServiciosEncuadernacion($input_data, $servicios->serviciosEncuadernacion); PresupuestoService::procesarServiciosEncuadernacion($input_data, $servicios->serviciosEncuadernacion);
$cambio_en_servicios = $cambio_en_servicios? $cambio_en_servicios: $cambio; $cambio_en_servicios = $cambio_en_servicios ? $cambio_en_servicios : $cambio;
} }
// Los servicios de preimpresion y los extra se dejan tal y como esten // Los servicios de preimpresion y los extra se dejan tal y como esten
@ -1354,7 +1364,8 @@ class PresupuestoService extends BaseService
// Funcion que procesa los servicios de acabado del presupuesto // Funcion que procesa los servicios de acabado del presupuesto
// y actualiza los precios en caso de cambio de valor en precio_unidad // y actualiza los precios en caso de cambio de valor en precio_unidad
private static function procesarServiciosAcabado($input_data, $servicios){ private static function procesarServiciosAcabado($input_data, $servicios)
{
$serviciosUpdated = []; $serviciosUpdated = [];
$cambio = false; $cambio = false;
@ -1363,16 +1374,17 @@ class PresupuestoService extends BaseService
foreach ($servicios as $servicio) { foreach ($servicios as $servicio) {
// Si es un presupuesto duplicado hay que buscar el proveedor más barato // Si es un presupuesto duplicado hay que buscar el proveedor más barato
if($input_data['is_duplicado']){ if ($input_data['is_duplicado']) {
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_acabado_id, $input_data['tirada'], -1, $input_data['POD']); $nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_acabado_id, $input_data['tirada'], -1, $input_data['POD']);
} } else {
else{
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_acabado_id, $input_data['tirada'], $servicio->proveedor_id, $input_data['POD']); $nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_acabado_id, $input_data['tirada'], $servicio->proveedor_id, $input_data['POD']);
} }
if($nueva_tarifa && count($nueva_tarifa)>0){ if ($nueva_tarifa && count($nueva_tarifa) > 0) {
if(round($nueva_tarifa[0]->precio_unidad, 2) != round($servicio->precio_unidad,2) || if (
$nueva_tarifa[0]->margen != $servicio->margen){ round($nueva_tarifa[0]->precio_unidad, 2) != round($servicio->precio_unidad, 2) ||
$nueva_tarifa[0]->margen != $servicio->margen
) {
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2); $servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
$servicio->precio_total = round($nueva_tarifa[0]->total, 2); $servicio->precio_total = round($nueva_tarifa[0]->total, 2);
@ -1392,7 +1404,8 @@ class PresupuestoService extends BaseService
// Funcion que procesa los servicios de manipulado del presupuesto // Funcion que procesa los servicios de manipulado del presupuesto
// y actualiza los precios en caso de cambio de valor en precio_unidad // y actualiza los precios en caso de cambio de valor en precio_unidad
private static function procesarServiciosManipulado($input_data, $servicios){ private static function procesarServiciosManipulado($input_data, $servicios)
{
$serviciosUpdated = []; $serviciosUpdated = [];
$cambio = false; $cambio = false;
@ -1401,9 +1414,11 @@ class PresupuestoService extends BaseService
foreach ($servicios as $servicio) { foreach ($servicios as $servicio) {
$count = 0; $count = 0;
$nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_manipulado_id, $input_data['tirada'], $input_data['POD']); $nueva_tarifa = $model->getPrecioTarifa($servicio->tarifa_manipulado_id, $input_data['tirada'], $input_data['POD']);
if($nueva_tarifa && count($nueva_tarifa)>0){ if ($nueva_tarifa && count($nueva_tarifa) > 0) {
if(round($nueva_tarifa[0]->precio_unidad, 2) != round($servicio->precio_unidad,2) || if (
$nueva_tarifa[0]->margen != $servicio->margen){ round($nueva_tarifa[0]->precio_unidad, 2) != round($servicio->precio_unidad, 2) ||
$nueva_tarifa[0]->margen != $servicio->margen
) {
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2); $servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
$servicio->precio_total = round($nueva_tarifa[0]->total, 2); $servicio->precio_total = round($nueva_tarifa[0]->total, 2);
@ -1424,7 +1439,8 @@ class PresupuestoService extends BaseService
// Funcion que procesa los servicios de encuadernacion del presupuesto // Funcion que procesa los servicios de encuadernacion del presupuesto
// y actualiza los precios en caso de cambio de valor en precio_unidad // y actualiza los precios en caso de cambio de valor en precio_unidad
private static function procesarServiciosEncuadernacion($input_data, $servicios){ private static function procesarServiciosEncuadernacion($input_data, $servicios)
{
$serviciosUpdated = []; $serviciosUpdated = [];
$cambio = false; $cambio = false;
@ -1435,17 +1451,18 @@ class PresupuestoService extends BaseService
foreach ($servicios as $servicio) { foreach ($servicios as $servicio) {
// Si es un presupuesto duplicado hay que buscar el proveedor más barato // Si es un presupuesto duplicado hay que buscar el proveedor más barato
if($input_data['is_duplicado']){ if ($input_data['is_duplicado']) {
if($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)){ if ($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)) {
$paginas_cuadernillo = $servicio->paginas_por_cuadernillo??null; $paginas_cuadernillo = $servicio->paginas_por_cuadernillo ?? null;
$nueva_tarifa = $model->getPrecioTarifaHoras( $nueva_tarifa = $model->getPrecioTarifaHoras(
$servicio->tarifa_encuadernado_id, $servicio->tarifa_encuadernado_id,
$input_data['paginas'], $input_data['paginas'],
$input_data['tirada'], $input_data['tirada'],
-1, -1,
$input_data['POD'], $input_data['POD'],
$paginas_cuadernillo); $paginas_cuadernillo
}else{ );
} else {
$nueva_tarifa = $model->getPrecioTarifa( $nueva_tarifa = $model->getPrecioTarifa(
$servicio->tarifa_encuadernado_id, $servicio->tarifa_encuadernado_id,
$input_data['paginas'], $input_data['paginas'],
@ -1453,23 +1470,25 @@ class PresupuestoService extends BaseService
$input_data['ancho'], $input_data['ancho'],
$input_data['alto'], $input_data['alto'],
-1, -1,
$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
else{ else {
if($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)){ if ($tarifaModel->isTarifaPorHoras($servicio->tarifa_encuadernado_id)) {
$paginas_cuadernillo = $servicio->paginas_por_cuadernillo??null; $paginas_cuadernillo = $servicio->paginas_por_cuadernillo ?? null;
$nueva_tarifa = $model->getPrecioTarifaHoras( $nueva_tarifa = $model->getPrecioTarifaHoras(
$servicio->tarifa_encuadernado_id, $servicio->tarifa_encuadernado_id,
$input_data['paginas'], $input_data['paginas'],
$input_data['tirada'], $input_data['tirada'],
$servicio->proveedor_id, $servicio->proveedor_id,
$input_data['POD'], $input_data['POD'],
$paginas_cuadernillo); $paginas_cuadernillo
}else{ );
} else {
$nueva_tarifa = $model->getPrecioTarifa( $nueva_tarifa = $model->getPrecioTarifa(
$servicio->tarifa_encuadernado_id, $servicio->tarifa_encuadernado_id,
$input_data['paginas'], $input_data['paginas'],
@ -1477,34 +1496,36 @@ class PresupuestoService extends BaseService
$input_data['ancho'], $input_data['ancho'],
$input_data['alto'], $input_data['alto'],
$servicio->proveedor_id, $servicio->proveedor_id,
$input_data['POD']); $input_data['POD']
);
} }
} }
if($nueva_tarifa && count($nueva_tarifa)>0){ if ($nueva_tarifa && count($nueva_tarifa) > 0) {
if(!isset($nueva_tarifa[0]->proveedor_id)){ if (!isset($nueva_tarifa[0]->proveedor_id)) {
$nueva_tarifa[0]->proveedor_id = null; $nueva_tarifa[0]->proveedor_id = null;
} }
// Si el presupuesto no es duplicado, se comprueba que // Si el presupuesto no es duplicado, se comprueba que
// no ha cambiado el precio unidad // no ha cambiado el precio unidad
if($nueva_tarifa[0]->tiempo==null) if ($nueva_tarifa[0]->tiempo == null)
$nueva_tarifa[0]->tiempo = 0; $nueva_tarifa[0]->tiempo = 0;
if($servicio->tiempo == null) if ($servicio->tiempo == null)
$servicio->tiempo = 0; $servicio->tiempo = 0;
if(round($nueva_tarifa[0]->precio_unidad, 2) != round(floatval($servicio->precio_unidad),2) || if (
round($nueva_tarifa[0]->precio_unidad, 2) != round(floatval($servicio->precio_unidad), 2) ||
$nueva_tarifa[0]->margen != floatval($servicio->margen) || $nueva_tarifa[0]->margen != floatval($servicio->margen) ||
$nueva_tarifa[0]->tiempo != floatval($servicio->tiempo)){ $nueva_tarifa[0]->tiempo != floatval($servicio->tiempo)
) {
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2); $servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
$servicio->tiempo = $nueva_tarifa[0]->tiempo==null?0: round($nueva_tarifa[0]->tiempo, 2); $servicio->tiempo = $nueva_tarifa[0]->tiempo == null ? 0 : round($nueva_tarifa[0]->tiempo, 2);
$servicio->precio_total = round($nueva_tarifa[0]->total, 2); $servicio->precio_total = round($nueva_tarifa[0]->total, 2);
$servicio->margen = round($nueva_tarifa[0]->margen); $servicio->margen = round($nueva_tarifa[0]->margen);
$cambio = true; $cambio = true;
} } else if ($input_data['is_duplicado'] && $nueva_tarifa[0]->proveedor_id != $servicio->proveedor_id) {
else if($input_data['is_duplicado'] && $nueva_tarifa[0]->proveedor_id != $servicio->proveedor_id){
$servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2); $servicio->precio_unidad = round($nueva_tarifa[0]->precio_unidad, 2);
$servicio->tiempo = $nueva_tarifa[0]->tiempo==null?"": round($nueva_tarifa[0]->tiempo, 2); $servicio->tiempo = $nueva_tarifa[0]->tiempo == null ? "" : round($nueva_tarifa[0]->tiempo, 2);
$servicio->precio_total = round($nueva_tarifa[0]->total, 2); $servicio->precio_total = round($nueva_tarifa[0]->total, 2);
$servicio->margen = round($nueva_tarifa[0]->margen); $servicio->margen = round($nueva_tarifa[0]->margen);
$servicio->proveedor = $nueva_tarifa[0]->proveedor; $servicio->proveedor = $nueva_tarifa[0]->proveedor;
@ -1522,37 +1543,40 @@ class PresupuestoService extends BaseService
} }
public static function checkLineasEnvios($envios){ public static function checkLineasEnvios($envios)
{
$cambio = false; $cambio = false;
if(count($envios)>0){ if (count($envios) > 0) {
$model = new TarifaEnvioModel(); $model = new TarifaEnvioModel();
foreach ($envios as $envio) { foreach ($envios as $envio) {
$paisId = $envio->pais_id; $paisId = $envio->pais_id;
$cp= $envio->cp; $cp = $envio->cp;
$peso= $envio->peso; $peso = $envio->peso;
$tipo_envio= $envio->entregaPieCalle==1?'palets':'cajas'; $tipo_envio = $envio->entregaPieCalle == 1 ? 'palets' : 'cajas';
$nueva_tarifa = $model->getTarifaEnvio($paisId, $cp, $peso, $tipo_envio); $nueva_tarifa = $model->getTarifaEnvio($paisId, $cp, $peso, $tipo_envio);
if($nueva_tarifa && count($nueva_tarifa)>0){ if ($nueva_tarifa && count($nueva_tarifa) > 0) {
$coste = 0; $coste = 0;
$margen = 0; $margen = 0;
if($peso>$nueva_tarifa[0]->peso_max){ if ($peso > $nueva_tarifa[0]->peso_max) {
$coste += floatval($nueva_tarifa[0]->peso_min) + ($peso-floatval($nueva_tarifa[0]->peso_min))*floatval($nueva_tarifa[0]->precio_adicional); $coste += floatval($nueva_tarifa[0]->peso_min) + ($peso - floatval($nueva_tarifa[0]->peso_min)) * floatval($nueva_tarifa[0]->precio_adicional);
} }
// si no se calcula linealmente // si no se calcula linealmente
else{ else {
$m=(floatval($nueva_tarifa[0]->precio_max)-floatval($nueva_tarifa[0]->precio_min)) / ((floatval($nueva_tarifa[0]->peso_max)-floatval($nueva_tarifa[0]->peso_min))); $m = (floatval($nueva_tarifa[0]->precio_max) - floatval($nueva_tarifa[0]->precio_min)) / ((floatval($nueva_tarifa[0]->peso_max) - floatval($nueva_tarifa[0]->peso_min)));
$b=floatval($nueva_tarifa[0]->precio_max)-$m*floatval($nueva_tarifa[0]->peso_max); $b = floatval($nueva_tarifa[0]->precio_max) - $m * floatval($nueva_tarifa[0]->peso_max);
$coste += floatval($m*$peso+$b); $coste += floatval($m * $peso + $b);
} }
$margen += $coste*floatval($nueva_tarifa[0]->margen)/100.0; $margen += $coste * floatval($nueva_tarifa[0]->margen) / 100.0;
if(round($coste, 2) != $envio->precio || if (
$margen != $envio->margen || $nueva_tarifa[0]->id != $envio->tarifa_id){ round($coste, 2) != $envio->precio ||
$margen != $envio->margen || $nueva_tarifa[0]->id != $envio->tarifa_id
) {
$envio->precio = round($coste, 2); $envio->precio = round($coste, 2);
$envio->margen = $margen; $envio->margen = $margen;
@ -1588,7 +1612,8 @@ class PresupuestoService extends BaseService
// - gramaje: gramaje del papel seleccionado // - gramaje: gramaje del papel seleccionado
// - cliente_id: id del cliente al que va destinado el presupuesto // - cliente_id: id del cliente al que va destinado el presupuesto
// - datosTipolog: datos referentes a las tintas // - datosTipolog: datos referentes a las tintas
public static function obtenerComparadorRotativa($input_data){ public static function obtenerComparadorRotativa($input_data)
{
$paginas = $input_data['paginas']; $paginas = $input_data['paginas'];
$datosPedido = $input_data['datosPedido']; $datosPedido = $input_data['datosPedido'];
@ -1600,10 +1625,10 @@ class PresupuestoService extends BaseService
$tipo = $paginas->color > 0 ? 'color' : 'negro'; $tipo = $paginas->color > 0 ? 'color' : 'negro';
$uso = 'interior'; $uso = 'interior';
$parametrosRotativa = (object)array( $parametrosRotativa = (object) array(
'a_favor_fibra' => $datosPedido->a_favor_fibra, 'a_favor_fibra' => $datosPedido->a_favor_fibra,
'bnPages' => $paginas->negro, 'bnPages' => $paginas->negro,
'colorPages' => $paginas->color, 'colorPages' => $paginas->color,
'rotativa_gota_negro' => 0, 'rotativa_gota_negro' => 0,
'rotativa_gota_color' => 0, 'rotativa_gota_color' => 0,
); );
@ -1616,8 +1641,7 @@ class PresupuestoService extends BaseService
if ($paginas->color > 0) { if ($paginas->color > 0) {
$tipo = 'color'; $tipo = 'color';
$opciones_papel['color'] = 1; $opciones_papel['color'] = 1;
} } else {
else {
$opciones_papel['bn'] = 1; $opciones_papel['bn'] = 1;
$tipo = 'negro'; $tipo = 'negro';
} }
@ -1648,12 +1672,12 @@ class PresupuestoService extends BaseService
$datosTipologias = $datosTipolog; $datosTipologias = $datosTipolog;
} }
$parametrosRotativa->rotativa_gota_negro = $datosTipologias[0]->gota_negro; $parametrosRotativa->rotativa_gota_negro = $datosTipologias[0]->gota_negro;
$parametrosRotativa->rotativa_gota_color = $datosTipologias[0]->gota_color; $parametrosRotativa->rotativa_gota_color = $datosTipologias[0]->gota_color;
$parametrosRotativa->rotativa_negro = $datosTipologias[0]->negro; $parametrosRotativa->rotativa_negro = $datosTipologias[0]->negro;
$parametrosRotativa->rotativa_cyan = $datosTipologias[0]->cyan; $parametrosRotativa->rotativa_cyan = $datosTipologias[0]->cyan;
$parametrosRotativa->rotativa_magenta = $datosTipologias[0]->magenta; $parametrosRotativa->rotativa_magenta = $datosTipologias[0]->magenta;
$parametrosRotativa->rotativa_amarillo = $datosTipologias[0]->amarillo; $parametrosRotativa->rotativa_amarillo = $datosTipologias[0]->amarillo;
$maquinamodel = new MaquinaModel(); $maquinamodel = new MaquinaModel();
@ -1682,7 +1706,7 @@ class PresupuestoService extends BaseService
$linea = PresupuestoService::getLineaPresupuestoRotativa($data); $linea = PresupuestoService::getLineaPresupuestoRotativa($data);
if(empty($linea)) if (empty($linea))
continue; continue;
array_push($lineas, $linea); array_push($lineas, $linea);
@ -1713,7 +1737,8 @@ class PresupuestoService extends BaseService
// - cliente_id: id del cliente al que va destinado el presupuesto // - cliente_id: id del cliente al que va destinado el presupuesto
// - datosTipolog: datos referentes a las tintas (opcional) // - datosTipolog: datos referentes a las tintas (opcional)
// - a_favor_fibra: dirección de la impresión // - a_favor_fibra: dirección de la impresión
public static function obtenerComparadorPlana($input_data){ public static function obtenerComparadorPlana($input_data)
{
$uso = $input_data['uso']; $uso = $input_data['uso'];
$tipo_impresion_id = $input_data['tipo_impresion_id']; $tipo_impresion_id = $input_data['tipo_impresion_id'];
@ -1776,27 +1801,28 @@ class PresupuestoService extends BaseService
$linea = PresupuestoService::getLineaPresupuestoPlana($data); $linea = PresupuestoService::getLineaPresupuestoPlana($data);
if ($tipo_impresion_id == 5 || $tipo_impresion_id == 6 || if (
$tipo_impresion_id == 7 || $tipo_impresion_id == 8) { $tipo_impresion_id == 5 || $tipo_impresion_id == 6 ||
$tipo_impresion_id == 7 || $tipo_impresion_id == 8
) {
if ($uso == 'cubierta'){ if ($uso == 'cubierta') {
$linea['fields']['num_formas']['num_formas_horizontales'] *= 2; $linea['fields']['num_formas']['num_formas_horizontales'] *= 2;
$linea['fields']['num_formas']['value'] *= 2; $linea['fields']['num_formas']['value'] *= 2;
} }
} }
if(empty($linea)) if (empty($linea))
continue; continue;
if(!array_key_exists('tipo_linea', $linea['fields'])){ if (!array_key_exists('tipo_linea', $linea['fields'])) {
if($isColor){ if ($isColor) {
if($isHq) if ($isHq)
$linea['fields']['tipo_linea'] = 'lp_colorhq'; $linea['fields']['tipo_linea'] = 'lp_colorhq';
else else
$linea['fields']['tipo_linea'] = 'lp_color'; $linea['fields']['tipo_linea'] = 'lp_color';
} } else {
else{ if ($isHq)
if($isHq)
$linea['fields']['tipo_linea'] = 'lp_bnhq'; $linea['fields']['tipo_linea'] = 'lp_bnhq';
else else
$linea['fields']['tipo_linea'] = 'lp_bn'; $linea['fields']['tipo_linea'] = 'lp_bn';
@ -1830,7 +1856,7 @@ class PresupuestoService extends BaseService
]; ];
$pedido_id = $model_pedido->insert($data_pedido); $pedido_id = $model_pedido->insert($data_pedido);
if($pedido_id){ if ($pedido_id) {
$data_pedido_linea = [ $data_pedido_linea = [
"pedido_id" => $pedido_id, "pedido_id" => $pedido_id,
"presupuesto_id" => $presupuesto_id, "presupuesto_id" => $presupuesto_id,
@ -1842,7 +1868,7 @@ class PresupuestoService extends BaseService
PedidoXMLService::generate_xml($pedido_id); PedidoXMLService::generate_xml($pedido_id);
} }
if($id_linea != 0 && $pedido_id != 0){ if ($id_linea != 0 && $pedido_id != 0) {
return true; return true;
} }
return false; return false;
@ -1853,7 +1879,8 @@ class PresupuestoService extends BaseService
*******************************/ *******************************/
// Funcion que comprueba si existe una maquina // Funcion que comprueba si existe una maquina
private static function checkMaquina($maquina_id){ private static function checkMaquina($maquina_id)
{
$maquina = (new MaquinaModel())->find($maquina_id); $maquina = (new MaquinaModel())->find($maquina_id);
if (!$maquina) { if (!$maquina) {
@ -1864,7 +1891,8 @@ class PresupuestoService extends BaseService
// Funcion que comprueba si existe un papel de impresion // Funcion que comprueba si existe un papel de impresion
private static function checkPapelImpresion($papel_impresion_id){ private static function checkPapelImpresion($papel_impresion_id)
{
$papel = (new PapelImpresionModel())->find($papel_impresion_id); $papel = (new PapelImpresionModel())->find($papel_impresion_id);
if (!$papel) { if (!$papel) {

View File

@ -132,7 +132,9 @@
<div id="form_buttons" class="row col-sm-12 justify-content-center" style="display: none;"> <div id="form_buttons" class="row col-sm-12 justify-content-center" style="display: none;">
</div> </div>
<?= view("themes/vuexy/components/chat_internal_presupuesto",data:["modelId" => $presupuestoId,"type" => "presupuesto"]) ?> <?php if($formAction == 'edit'): ?>
<?= view("themes/vuexy/components/chat_internal_presupuesto",data:["modelId" => $presupuestoId,"type" => "presupuesto"]) ?>
<?php endif; ?>
</div><!--//.row --> </div><!--//.row -->
<?= view("themes/_commonPartialsBs/_modalConfirmDialog") ?> <?= view("themes/_commonPartialsBs/_modalConfirmDialog") ?>
<?= view("themes/_commonPartialsBs/_modalMessageDialog") ?> <?= view("themes/_commonPartialsBs/_modalMessageDialog") ?>

View File

@ -79,6 +79,7 @@ class PresupuestoCliente {
} }
$(".calcular-presupuesto").on('change', this.checkForm.bind(this)); $(".calcular-presupuesto").on('change', this.checkForm.bind(this));
} }
@ -145,9 +146,21 @@ class PresupuestoCliente {
if (datos_to_check.direcciones) { if (datos_to_check.direcciones) {
delete datos_to_check.direcciones; delete datos_to_check.direcciones;
} }
if (datos_to_check.posPaginasColor) { if (datos_to_check.posPaginasColor == "" || datos_to_check.posPaginasColor == null) {
delete datos_to_check.posPaginasColor; delete datos_to_check.posPaginasColor;
} }
if(datos_to_check.cubierta.acabados.barniz == undefined){
delete datos_to_check.cubierta.acabados.barniz;
}
if(datos_to_check.cubierta.acabados.plastificado == undefined){
delete datos_to_check.cubierta.acabados.plastificado;
}
if(datos_to_check.cubierta.acabados.estampado == undefined){
delete datos_to_check.cubierta.acabados.estampado;
}
if(datos_to_check.sobrecubierta.plastificado == undefined){
delete datos_to_check.sobrecubierta.plastificado;
}
if (Object.values(datos_to_check).every(this.#isValidDataForm)) { if (Object.values(datos_to_check).every(this.#isValidDataForm)) {
try { try {
@ -352,7 +365,7 @@ class PresupuestoCliente {
$(`#containerTiradasEnvios .tirada-envio input[tirada="${response.tiradas[0]}"]`).trigger('click'); $(`#containerTiradasEnvios .tirada-envio input[tirada="${response.tiradas[0]}"]`).trigger('click');
}, 0); }, 0);
} }
$('#loader').modal('hide');
// DEBUG // DEBUG
//console.log(response); //console.log(response);
} }
@ -420,7 +433,6 @@ class PresupuestoCliente {
cubierta: { cubierta: {
tipoCubierta: this.disenioCubierta.disenioCubierta.filter('.selected').attr('id'), tipoCubierta: this.disenioCubierta.disenioCubierta.filter('.selected').attr('id'),
lomoRedondo: this.disenioCubierta.disenioCubierta.filter('.selected').attr('id').includes('Redondo') ? 1 : 0,
papelCubierta: this.disenioCubierta.getPapel(), papelCubierta: this.disenioCubierta.getPapel(),
gramajeCubierta: this.disenioCubierta.getGramaje(), gramajeCubierta: this.disenioCubierta.getGramaje(),
cabezada: this.disenioCubierta.getCabezada(), cabezada: this.disenioCubierta.getCabezada(),
@ -438,6 +450,10 @@ class PresupuestoCliente {
'prototipo': this.datosGenerales.prototipo.is(':checked') ? 1 : 0, 'prototipo': this.datosGenerales.prototipo.is(':checked') ? 1 : 0,
}, },
}; };
let lomoRedondo = 0;
if(this.disenioCubierta.disenioCubierta.filter('.selected').length > 0)
lomoRedondo = this.disenioCubierta.disenioCubierta.filter('.selected').attr('id').includes('Redondo') ? 1 : 0;
this.datos.cubierta.lomoRedondo = lomoRedondo;
if (this.datos.tipo == "cosido") { if (this.datos.tipo == "cosido") {
this.datos.paginasCuadernillo = this.datosGenerales.paginasCuadernillo.val(); this.datos.paginasCuadernillo = this.datosGenerales.paginasCuadernillo.val();