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;
@ -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(
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required')
) )
->validator('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(
'message' => lang('MaquinasTarifasImpresions.validation.tipo.required')
) )
->validator('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,14 +288,18 @@ 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 // No se pueden duplicar valores al crear o al editar
if ($builder->countAllResults() >= 1) { if ($builder->countAllResults() >= 1) {
if (($action === Editor::ACTION_EDIT && $id != $pkey) if (
|| $action === Editor::ACTION_CREATE) { ($action === Editor::ACTION_EDIT && $id != $pkey)
|| $action === Editor::ACTION_CREATE
) {
return lang('MaquinasTarifasImpresions.validation.duplicated_uso_tipo'); return lang('MaquinasTarifasImpresions.validation.duplicated_uso_tipo');
} }
@ -284,6 +307,7 @@ class Maquinastarifasimpresion extends \App\Controllers\BaseResourceController
} }
} }
} }
}
}) })
->on('preCreate', function ($editor, &$values) { ->on('preCreate', function ($editor, &$values) {
$session = session(); $session = session();

View File

@ -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];
@ -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;
@ -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;
} }
@ -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);
@ -904,8 +906,7 @@ class PresupuestoService extends BaseService
// 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
@ -1023,9 +1028,7 @@ class PresupuestoService extends BaseService
$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;
} }
@ -1057,7 +1060,8 @@ class PresupuestoService extends BaseService
'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' => [
(object) array(
'negro' => $linea->rotativa_negro, 'negro' => $linea->rotativa_negro,
'cyan' => $linea->rotativa_cyan, 'cyan' => $linea->rotativa_cyan,
'magenta' => $linea->rotativa_magenta, 'magenta' => $linea->rotativa_magenta,
@ -1065,7 +1069,8 @@ class PresupuestoService extends BaseService
'cg' => $linea->rotativa_cg, 'cg' => $linea->rotativa_cg,
'gota_negro' => $linea->rotativa_gota_negro, 'gota_negro' => $linea->rotativa_gota_negro,
'gota_color' => $linea->rotativa_gota_color, 'gota_color' => $linea->rotativa_gota_color,
)] )
]
]; ];
$comp_data = PresupuestoService::obtenerComparadorRotativa($datos); $comp_data = PresupuestoService::obtenerComparadorRotativa($datos);
@ -1088,7 +1093,8 @@ 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' => [
(object) array(
'negro' => $linea->rotativa_negro, 'negro' => $linea->rotativa_negro,
'cyan' => $linea->rotativa_cyan, 'cyan' => $linea->rotativa_cyan,
'magenta' => $linea->rotativa_magenta, 'magenta' => $linea->rotativa_magenta,
@ -1096,7 +1102,8 @@ class PresupuestoService extends BaseService
'cg' => $linea->rotativa_cg, 'cg' => $linea->rotativa_cg,
'gota_negro' => $linea->rotativa_gota_negro, 'gota_negro' => $linea->rotativa_gota_negro,
'gota_color' => $linea->rotativa_gota_color, '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
@ -1110,15 +1117,13 @@ class PresupuestoService extends BaseService
$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';
@ -1152,8 +1157,7 @@ class PresupuestoService extends BaseService
$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'];
@ -1216,7 +1221,8 @@ 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'] = [
(object) array(
'negro' => $linea->rotativa_negro, 'negro' => $linea->rotativa_negro,
'cyan' => $linea->rotativa_cyan, 'cyan' => $linea->rotativa_cyan,
'magenta' => $linea->rotativa_magenta, 'magenta' => $linea->rotativa_magenta,
@ -1224,7 +1230,8 @@ class PresupuestoService extends BaseService
'cg' => $linea->rotativa_cg, 'cg' => $linea->rotativa_cg,
'gota_negro' => $linea->rotativa_gota_negro, 'gota_negro' => $linea->rotativa_gota_negro,
'gota_color' => $linea->rotativa_gota_color, 'gota_color' => $linea->rotativa_gota_color,
)]; )
];
$data['gramaje'] = $linea->gramaje; $data['gramaje'] = $linea->gramaje;
switch ($linea->tipo) { switch ($linea->tipo) {
@ -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,7 +1326,8 @@ 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;
@ -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;
@ -1365,14 +1376,15 @@ class PresupuestoService extends BaseService
// 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;
@ -1402,8 +1415,10 @@ class PresupuestoService extends BaseService
$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;
@ -1444,7 +1460,8 @@ class PresupuestoService extends BaseService
$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,
@ -1453,7 +1470,8 @@ class PresupuestoService extends BaseService
$input_data['ancho'], $input_data['ancho'],
$input_data['alto'], $input_data['alto'],
-1, -1,
$input_data['POD']); $input_data['POD']
);
} }
} }
@ -1468,7 +1486,8 @@ class PresupuestoService extends BaseService
$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,
@ -1477,7 +1496,8 @@ 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']
);
} }
} }
@ -1492,17 +1512,18 @@ class PresupuestoService extends BaseService
$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);
@ -1522,7 +1543,8 @@ class PresupuestoService extends BaseService
} }
public static function checkLineasEnvios($envios){ public static function checkLineasEnvios($envios)
{
$cambio = false; $cambio = false;
@ -1551,8 +1573,10 @@ class PresupuestoService extends BaseService
} }
$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'];
@ -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';
} }
@ -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,8 +1801,10 @@ 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;
@ -1794,8 +1821,7 @@ class PresupuestoService extends BaseService
$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
@ -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>
<?php if($formAction == 'edit'): ?>
<?= view("themes/vuexy/components/chat_internal_presupuesto",data:["modelId" => $presupuestoId,"type" => "presupuesto"]) ?> <?= 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();