resuelto el bug. tampoco funcionaba el comparador para rotativa color y esta arreglado

This commit is contained in:
Jaime Jiménez Ortega
2024-01-16 12:26:15 +01:00
parent 9c6cf3fa19
commit 8e70ebba0b
4 changed files with 117 additions and 108 deletions

View File

@ -425,6 +425,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
'merma' => intval($reqData['merma']) ?? 0,
'ancho' => intval($reqData['ancho']) ?? 100000,
'alto' => intval($reqData['alto']) ?? 100000,
'a_favor_fibra' => $reqData['a_favor_fibra'] ?? 1,
'isCosido' => true, // JJO esto es custom por cada tipo de presupuesto
);
@ -752,15 +753,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
public function getCompIntRotData($datosPedido, $papel_generico, $gramaje, $paginas, $cliente_id, $datosTipolog = null)
{
$uso = 'interior';
$tipo = $paginas->color>0? 'color': 'negro';
$parametrosRotativa = (object)array(
'a_favor_fibra' => 0, // este parametro se cambia para comprobar
// en las dos direcciones (menos en rustica fresada que es siempre 1)
'a_favor_fibra' => $datosPedido->a_favor_fibra,
'bnPages' => $paginas->negro,
'colorPages' => $paginas->color,
'rotativa_gota_negro' => 0,
@ -773,12 +772,12 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$tipo = array();
if( $paginas->color > 0 ){
$tipo[] = 'color';
$tipo = 'color';
$opciones_papel['color'] = 1;
}
if( $paginas->negro > 0 ){
$opciones_papel['bn'] = 1;
$tipo[] = 'negro';
$tipo = 'negro';
}
// Se obtienen los papeles disponibles
@ -828,95 +827,90 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
// Se recorren las máquinas y se calcula el coste de linea por cada una
foreach ($maquinas as $maquina) {
for ($i = 1; $i <= 1; $i++) { // Para que por defecto salga sólo a favor de fibra
$parametrosRotativa->a_favor_fibra = $i;
$tarifamodel = new MaquinasTarifasImpresionModel();
[$tarifaId, $tarifa] = $tarifamodel->getTarifa($maquina->maquina_id, $uso, is_array($tipo)?'color':$tipo);
if(!is_float($tarifa)){
continue;
}
// precio del pliego de impresion
$linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosRotativa);
[$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas);
$linea['fields']['tarifa_impresion_id'] = $tarifaId;
$linea['fields']['precios_pliegos'] = $precio_pliego_impresion;
$linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $precio_pliego_impresion;
// Precio papel pedido
$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']['a_favor_fibra'] = $parametrosRotativa->a_favor_fibra;
$linea['fields']['maquina'] = $maquina->maquina;
$linea['fields']['maquina_id'] = $maquina->maquina_id;
$linea['fields']['maquina_velocidad'] = $maquina->velocidad;
$linea['fields']['tipo_maquina'] = 'inkjet';
$linea['fields']['papel_impresion'] = $papel->nombre;
$linea['fields']['papel_impresion_id'] = $papel->id;
$linea['fields']['paginas'] = $datosPedido->paginas;
$linea['fields']['paginas_color'] = $paginas->color;
$linea['fields']['gramaje'] = $gramaje;
$linea['fields']['papel_generico_id'] = $papel_generico['id'];
$linea['fields']['papel_generico'] = $papel_generico['nombre'];
$linea['fields']['posicion_formas'] = $parametrosRotativa->a_favor_fibra ? 'h' : 'v';
$linea['fields']['num_formas_horizontales'] = floor($linea['fields']['factor_anchura']);
$linea['fields']['num_formas_verticales'] = floor($linea['fields']['factor_altura']);
$linea['fields']['datosTipologias'] = $datosTipologias[0];
// impresion
$linea['fields']['precio_click'] = $tarifa;
$linea['fields']['precio_click_pedido'] = $linea['fields']['clicks_pedido'] * $linea['fields']['precio_click'];
$linea['fields']['tiempo_maquina'] = PresupuestoService::getTiempoMaquina(
$linea['fields']['precio_click_pedido'],
$linea['fields']['precio_click'],
$maquina->velocidad);
$clientePreciosModel = new ClientePreciosModel();
$config = (object)[
"tipo" => $uso,
"tipo_maquina" => 'inkjet',
"tipo_impresion" => $tipo
];
$tiempo = PresupuestoService::getHorasMaquina(
$linea['fields']['precio_click_pedido'],
$linea['fields']['precio_click'],
$maquina->velocidad);
[$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo);
if(is_null($precio_hora)){
continue;
}
$linea['fields']['precio_hora'] = $precio_hora*(1+$margen_precio_hora/100.0);
$linea['fields']['precio_hora_margen'] = $margen_precio_hora;
$linea['fields']['horas_maquina'] = $tiempo;
$linea['fields']['precio_impresion_horas'] = $precio_hora*(1+$margen_precio_hora/100.0)*$tiempo;
$linea['fields']['margen_impresion_horas'] = $precio_hora*($margen_precio_hora/100.0)*$tiempo;
// total linea rotativa
//$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + $linea['fields']['precio_click_pedido'] + $linea['fields']['precio_tinta'] +
// $linea['fields']['total_corte'];
$linea['fields']['total_impresion'] =
$linea['fields']['precio_pedido'] + // papel
$linea['fields']['precio_click_pedido'] + // precio clicks del pedido
$linea['fields']['precio_impresion_horas'] + // horas de maquina
$linea['fields']['precio_tinta'] + // tinta
$linea['fields']['total_corte']; // corte
array_push($lineas, $linea);
$tarifamodel = new MaquinasTarifasImpresionModel();
[$tarifaId, $tarifa] = $tarifamodel->getTarifa($maquina->maquina_id, $uso, is_array($tipo)?'color':$tipo);
if(!is_float($tarifa)){
continue;
}
// precio del pliego de impresion
$linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosRotativa);
[$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas);
$linea['fields']['tarifa_impresion_id'] = $tarifaId;
$linea['fields']['precios_pliegos'] = $precio_pliego_impresion;
$linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $precio_pliego_impresion;
// Precio papel pedido
$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']['a_favor_fibra'] = $parametrosRotativa->a_favor_fibra;
$linea['fields']['maquina'] = $maquina->maquina;
$linea['fields']['maquina_id'] = $maquina->maquina_id;
$linea['fields']['maquina_velocidad'] = $maquina->velocidad;
$linea['fields']['tipo_maquina'] = 'inkjet';
$linea['fields']['papel_impresion'] = $papel->nombre;
$linea['fields']['papel_impresion_id'] = $papel->id;
$linea['fields']['paginas'] = $datosPedido->paginas;
$linea['fields']['paginas_color'] = $paginas->color;
$linea['fields']['gramaje'] = $gramaje;
$linea['fields']['papel_generico_id'] = $papel_generico['id'];
$linea['fields']['papel_generico'] = $papel_generico['nombre'];
$linea['fields']['posicion_formas'] = $parametrosRotativa->a_favor_fibra ? 'h' : 'v';
$linea['fields']['num_formas_horizontales'] = floor($linea['fields']['factor_anchura']);
$linea['fields']['num_formas_verticales'] = floor($linea['fields']['factor_altura']);
$linea['fields']['datosTipologias'] = $datosTipologias[0];
// impresion
$linea['fields']['precio_click'] = $tarifa;
$linea['fields']['precio_click_pedido'] = $linea['fields']['clicks_pedido'] * $linea['fields']['precio_click'];
$linea['fields']['tiempo_maquina'] = PresupuestoService::getTiempoMaquina(
$linea['fields']['precio_click_pedido'],
$linea['fields']['precio_click'],
$maquina->velocidad);
$clientePreciosModel = new ClientePreciosModel();
$config = (object)[
"tipo" => $uso,
"tipo_maquina" => 'inkjet',
"tipo_impresion" => $tipo
];
$tiempo = PresupuestoService::getHorasMaquina(
$linea['fields']['precio_click_pedido'],
$linea['fields']['precio_click'],
$maquina->velocidad);
[$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo);
if(is_null($precio_hora)){
continue;
}
$linea['fields']['precio_hora'] = $precio_hora*(1+$margen_precio_hora/100.0);
$linea['fields']['precio_hora_margen'] = $margen_precio_hora;
$linea['fields']['horas_maquina'] = $tiempo;
$linea['fields']['precio_impresion_horas'] = $precio_hora*(1+$margen_precio_hora/100.0)*$tiempo;
$linea['fields']['margen_impresion_horas'] = $precio_hora*($margen_precio_hora/100.0)*$tiempo;
// total linea rotativa
//$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + $linea['fields']['precio_click_pedido'] + $linea['fields']['precio_tinta'] +
// $linea['fields']['total_corte'];
$linea['fields']['total_impresion'] =
$linea['fields']['precio_pedido'] + // papel
$linea['fields']['precio_click_pedido'] + // precio clicks del pedido
$linea['fields']['precio_impresion_horas'] + // horas de maquina
$linea['fields']['precio_tinta'] + // tinta
$linea['fields']['total_corte']; // corte
array_push($lineas, $linea);
}
}
return $lineas;

View File

@ -280,6 +280,7 @@ class PresupuestoService extends BaseService
$anchoLibro = $datosPedido->ancho;
$altoLibro = $datosPedido->alto;
if (!$parametrosRotativa->a_favor_fibra) {
$anchoLibro = $datosPedido->alto;
$altoLibro = $datosPedido->ancho;

View File

@ -1130,7 +1130,7 @@
if ($(''+ elementos.papel).select2('data').length > 0 &&
$(''+ elementos.gramaje).select2('data').length > 0 &&
parseInt($(''+ elementos.paginas).val()) > 0 &&
parseInt($(''+ elementos.paginas).val()) >= 0 &&
checkDatosPedidoForComp()) {
@ -1143,8 +1143,8 @@
else
{
if(!is_hq){
if ($('#compPapelNegro').select2('data')>0 && $('#compPapelColor').select2('data')>0 &&
$('#compGramajeNegro').select2('data')>0 && $('#compGramajeColor').select2('data')>0)
if ($('#compPapelNegro').select2('data').length>0 && $('#compPapelColor').select2('data').length>0 &&
$('#compGramajeNegro').select2('data').length>0 && $('#compGramajeColor').select2('data').length>0)
{
if(($('#compPapelNegro').select2('data')[0].id == $('#compPapelColor').select2('data')[0].id &&
$('#compGramajeNegro').select2('data')[0].text.trim() == $('#compGramajeColor').select2('data')[0].text.trim()))

View File

@ -158,7 +158,7 @@ function format(d) {
'</div>'+
'<div class="col-md-12 col-lg-1">' +
'<?= lang('Presupuestos.numPagColor') ?>' +
'<input type="text" id="' + d.row_id +'_numPagColor" name="' + d.row_id +'_numPagColor" class="lp-cell lp-input lp-cell-disabled" readonly value="' + d.numPagColor +'">' +
'<input type="text" id="' + d.row_id +'_numPagColor" name="' + d.row_id +'_numPagColor" class="lp-cell lp-input' + (d.row_id.includes('color')?'" ':' lp-cell-disabled" readonly ') + ' value="' + d.numPagColor +'">' +
'</div>' +
'<div class="col-md-12 col-lg-1">' +
'<?= lang('Presupuestos.saturacion') ?>' +
@ -2268,7 +2268,7 @@ function clear_lp_rot_bn(clear_selectors){
function change_lp_rot_bn_maquina(){
if(parseInt($('#lp_rot_bn_paginas').val())>0){
calcularPresupuesto_rot_bn();
calcularPresupuesto_rot_bn(true,false);
}
}
@ -2294,6 +2294,10 @@ function change_lp_rot_bn_aFavorFibra(){
$('#lp_rot_bn_gramaje option:selected').text().length>0 &&
parseInt($('#lp_rot_bn_papelImpresion option:selected').val())>0
){
var rowData = tableLineasPresupuesto.row('#lp_rot_bn').data()
rowData.aFavorFibra = $('#lp_rot_bn_aFavorFibra').prop('checked')
tableLineasPresupuesto.row('#lp_rot_bn').data(rowData).draw(false)
calcularPresupuesto_rot_bn(false, true);
}
@ -2313,7 +2317,7 @@ function calcularPresupuesto_rot_bn(fromComparador=false, updatedTipologias=fals
gramaje: $('#lp_rot_bn_gramaje option:selected').text().trim(),
maquina_id: $('#lp_rot_bn_maquina option:selected').val(),
papel_impresion_id: $('#lp_rot_bn_papelImpresion option:selected').val(),
fibra: $('#lp_rot_bn_aFavorFibra').prop('checked')
fibra: fromComparador==false? ($('#lp_rot_bn_aFavorFibra').prop('checked')?1:0):1
}
}
@ -2332,6 +2336,7 @@ function calcularPresupuesto_rot_bn(fromComparador=false, updatedTipologias=fals
papel_generico: input_data.papel_generico,
gramaje: input_data.gramaje,
cliente_id: $('#clienteId').find(":selected").val(),
a_favor_fibra: fromComparador==false? ($('#lp_rot_bn_aFavorFibra').prop('checked')?1:0):1,
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
@ -2429,7 +2434,7 @@ function fill_lp_rot_bn(row, fromComparador=false){
gramaje: row.gramaje,
papel_impresion_id: row.papelImpresionId,
maquina_id: row.maquinaId,
fibra: row.aFavorFibra=='no'?false:true
fibra: row.aFavorFibra=='no'?0:1
}
calcularPresupuesto_rot_bn(true, false, input_data);
@ -2592,7 +2597,8 @@ function clear_lp_rot_color(clear_selectors){
function change_lp_rot_color_maquina(){
if(parseInt($('#lp_rot_color_paginas').val())>0){
calcularPresupuesto_rot_color();
calcularPresupuesto_rot_color(true,false);
}
}
@ -2617,7 +2623,10 @@ function change_lp_rot_color_aFavorFibra(){
$('#lp_rot_color_gramaje option:selected').text().length>0 &&
parseInt($('#lp_rot_color_papelImpresion option:selected').val())>0
){
var rowData = tableLineasPresupuesto.row('#lp_rot_color').data()
rowData.aFavorFibra = $('#lp_rot_color_aFavorFibra').prop('checked')
tableLineasPresupuesto.row('#lp_rot_color').data(rowData).draw(false)
calcularPresupuesto_rot_color(false, true);
}
}
@ -2636,17 +2645,19 @@ function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=f
gramaje: $('#lp_rot_color_gramaje option:selected').text().trim(),
maquina_id: $('#lp_rot_color_maquina option:selected').val(),
papel_impresion_id: $('#lp_rot_color_papelImpresion option:selected').val(),
fibra: $('#lp_rot_bn_aFavorFibra').prop('checked')
fibra: fromComparador==false? ($('#lp_rot_color_aFavorFibra').prop('checked')?1:0):1
}
}
paginas_color = isNaN(parseInt($('#lp_rot_color_numPagColor').val()))?input_data.paginas:parseInt($('#lp_rot_color_numPagColor').val())
let datos = {
type: 'interior_rot',
color: 1,
hq: 0,
hq: 0,
paginas: input_data.paginas,
paginas_negro: input_data.paginas-parseInt($('#lp_rot_color_numPagColor').val()),
paginas_color: parseInt($('#lp_rot_color_numPagColor').val()),
paginas_negro: input_data.paginas-paginas_color,
paginas_color: paginas_color,
tirada: parseInt($('#tirada').val()),
merma: parseInt($('#merma').val()),
ancho: dimension.ancho,
@ -2655,6 +2666,7 @@ function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=f
papel_generico: input_data.papel_generico,
gramaje: input_data.gramaje,
cliente_id: $('#clienteId').find(":selected").val(),
a_favor_fibra: fromComparador==false? ($('#lp_rot_color_aFavorFibra').prop('checked')?1:0):1,
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
};
@ -2699,7 +2711,7 @@ function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=f
value.fields.a_favor_fibra == input_data.fibra) {
value.fields.check_papel_total = $('#lp_rot_color' + '_checkPapel').is(":checked")?1:0
value.fields.check_impresion_total = $('#lp_rot_bn' + '_checkClicks').is(":checked")?1:0
value.fields.check_impresion_total = $('#lp_rot_color' + '_checkClicks').is(":checked")?1:0
fill_lp_rot_color(value.fields);
return false;
@ -2756,7 +2768,7 @@ function fill_lp_rot_color(row, fromComparador=false){
gramaje: row.gramaje,
papel_impresion_id: row.papelImpresionId,
maquina_id: row.maquinaId,
fibra: row.aFavorFibra=='no'?false:true
fibra: row.aFavorFibra=='no'?0:1
}
calcularPresupuesto_rot_color(true, false, input_data);
@ -2795,6 +2807,7 @@ function eventos_lp_rot_color(){
$('#lp_rot_color_maquina').bind("focus", set_lp_rot_color_maquina);
$('#lp_rot_color_maquina').bind("change", change_lp_rot_color_maquina);
$('#lp_rot_color_paginas').bind("change", change_lp_rot_color_paginas);
$('#lp_rot_color_numPagColor').bind("change", change_lp_rot_color_paginas);
$('#lp_rot_color_vercalculos').bind("click", {rowId: 'lp_rot_color'}, verCalculosInkjet);
$('#lp_rot_color_aFavorFibra').bind("change", change_lp_rot_color_aFavorFibra);
$('.lp-rot-color-tipologia').bind("change", change_lp_rot_color_tipologia);
@ -3314,6 +3327,7 @@ async function fill_bbdd_from_lp(presupuesto_id){
linea_data.rotativa_precio_hora_corte = rowData.precioHoraCorte
linea_data.rotativa_tiempo_corte = rowData.tiempoCorte
linea_data.rotativa_total_corte = rowData.totalCorte
linea_data.rotativa_a_favor_fibra = rowData.aFavorFibra==true?1:0
}
data.push(linea_data)