mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
eliminados los bugs
This commit is contained in:
@ -483,7 +483,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
array_push($datosTipolog, $data);
|
||||
}
|
||||
|
||||
$a_favor_fibra = $reqData['a_favor_fibra'] ?? null;
|
||||
$a_favor_fibra = $reqData['a_favor_fibra'] ?? false;
|
||||
|
||||
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog, $a_favor_fibra);
|
||||
|
||||
@ -642,7 +642,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
}
|
||||
|
||||
|
||||
public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null, $a_favor_fibra = null)
|
||||
public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null, $a_favor_fibra = false)
|
||||
{
|
||||
$tipo = $isColor? ($isHq?'colorhq':'color'): ($isHq?'negrohq':'negro');
|
||||
|
||||
@ -737,13 +737,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
}
|
||||
|
||||
if($maquina->is_inkjet){
|
||||
$linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosInkjet);
|
||||
[$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas);
|
||||
$linea['fields']['precios_pliegos'] = $precio_pliego_impresion;
|
||||
$linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $precio_pliego_impresion;
|
||||
$linea['fields']['a_favor_fibra'] = $parametrosInkjet->a_favor_fibra;
|
||||
$linea['fields']['paginas_color'] = $isColor?$datosPedido->paginas:0;
|
||||
$linea['fields']['datosTipologias'] = $datosTipologias[0];
|
||||
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa, $parametrosInkjet->a_favor_fibra);
|
||||
}
|
||||
else{
|
||||
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
|
||||
@ -751,6 +745,11 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
|
||||
if(array_key_exists('error', $linea))
|
||||
continue;
|
||||
|
||||
if($maquina->is_inkjet){
|
||||
// calculo de tintas
|
||||
$linea['fields'] = array_merge($linea['fields'], PresupuestoService::calculoCosteTintas($maquina, $datosPedido, $parametrosInkjet));
|
||||
}
|
||||
|
||||
$linea['fields']['tarifa_impresion_id'] = $tarifaId;
|
||||
$linea['fields']['maquina'] = $maquina->maquina;
|
||||
@ -763,10 +762,6 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$linea['fields']['papel_generico_id'] = $papel_generico['id'];
|
||||
$linea['fields']['papel_generico'] = $papel_generico['nombre'];
|
||||
|
||||
if($maquina->is_inkjet){
|
||||
$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'],
|
||||
@ -796,8 +791,16 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$linea['fields']['margen_impresion_horas'] = $precio_hora*($margen_precio_hora/100.0)*$tiempo;
|
||||
|
||||
if($maquina->is_inkjet){
|
||||
$linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma)*(1+$margen_pliego_impresion);
|
||||
$linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro']*$margen_pliego_impresion* ($datosPedido->tirada + $datosPedido->merma); ;
|
||||
$linea['fields']['a_favor_fibra'] = $parametrosInkjet->a_favor_fibra;
|
||||
$linea['fields']['paginas_color'] = $isColor?$datosPedido->paginas:0;
|
||||
$linea['fields']['totalClicksPedido'] = $linea['fields']['precio_click_pedido'];
|
||||
$linea['fields']['clicks_libro'] = round(ceil($linea['fields']['pliegos_libro']) * 2, 2);
|
||||
$linea['fields']['clicks_pedido'] = round($linea['fields']['clicks_libro'] * ($datosPedido->tirada + $datosPedido->merma), 2);
|
||||
[$ancho, $alto] = PresupuestoService::calculoDimForma($datosPedido, $parametrosInkjet);
|
||||
$linea['fields']['factor_anchura'] = round($maquina->ancho_impresion / $ancho, 2);
|
||||
$linea['fields']['factor_altura'] = round($maquina->alto_impresion / ($alto + PresupuestoService::MARGEN_PAGINAS_ROTATIVA), 2);
|
||||
$linea['fields']['paginas_por_pliego'] = ($datosPedido->isCosido)?$linea['fields']['num_formas']['value']*2:$linea['fields']['num_formas']['value'];
|
||||
$linea['fields']['datosTipologias'] = $datosTipologias[0];
|
||||
$linea['fields']['total_impresion'] =
|
||||
$linea['fields']['precio_pedido'] + // papel
|
||||
$linea['fields']['precio_impresion_horas'] + // horas de maquina
|
||||
|
||||
@ -38,14 +38,14 @@ class PresupuestoService extends BaseService
|
||||
*
|
||||
* @return [type]
|
||||
*/
|
||||
public static function getCostesLinea($uso, $datosPedido, $maquina, $papel_impresion, $opciones_papel, $tarifa)
|
||||
public static function getCostesLinea($uso, $datosPedido, $maquina, $papel_impresion, $opciones_papel, $tarifa, $forzar_a_favor_fibra = false)
|
||||
{
|
||||
$response['fields'] = [];
|
||||
|
||||
if ($uso!='rotativa') {
|
||||
|
||||
$ancho_calculo = ($uso=='cubierta' || $uso=='sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho;
|
||||
$formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido,);
|
||||
$formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido, $forzar_a_favor_fibra);
|
||||
$response['fields'] = $formas;
|
||||
}
|
||||
|
||||
@ -142,131 +142,7 @@ class PresupuestoService extends BaseService
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Devuelve los calculos para la linea de rotativa.
|
||||
*/
|
||||
public static function getCostesLineaInkjet($maquina, $papel_impresion, $datosPedido, $parametrosInkjet)
|
||||
{
|
||||
$data = [];
|
||||
|
||||
$data['resolucion'] = 600;
|
||||
$data['pulgada'] = 1 / 1000000000000.0;
|
||||
$data['superficie'] = round((($datosPedido->ancho / 2.54) / 10) * (($datosPedido->alto / 2.54) / 10), 2);
|
||||
|
||||
// posicionamos paginas en función de a favor de fibra o no
|
||||
|
||||
$anchoLibro = $datosPedido->ancho;
|
||||
$altoLibro = $datosPedido->alto;
|
||||
|
||||
$formas = PresupuestoService::getNumFormasPlana('interior', $maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido);
|
||||
$response['fields'] = $formas;
|
||||
|
||||
|
||||
if ($response['fields']['num_formas']['posicion_formas'] == 'n/a') {
|
||||
$response['error']['value'] = true;
|
||||
$response['error']['message'] = 'no_formas_disponibles';
|
||||
return $response;
|
||||
}
|
||||
|
||||
$data['ancho'] = $anchoLibro;
|
||||
$data['alto'] = $altoLibro;
|
||||
|
||||
// si es cosido ancho x 2
|
||||
|
||||
if ($datosPedido->isCosido) {
|
||||
|
||||
$data['ancho'] = $data['ancho'] * 2;
|
||||
}
|
||||
|
||||
// calculo de papel y clicks
|
||||
$factor_anchura = round($maquina->ancho_impresion / $data['ancho'], 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);
|
||||
|
||||
$multiplicador_pliego = $datosPedido->isCosido ? 4 : 2;
|
||||
$paginas_por_pliego = round(floor($factor_anchura) * $factor_altura * $multiplicador_pliego, 2);
|
||||
$pliegos_libro = round($paginas_por_pliego ? $datosPedido->paginas / $paginas_por_pliego : 0, 2);
|
||||
$metros_papel_libro = round($pliegos_libro * ($maquina->alto_impresion / 1000.0), 2);
|
||||
$metros_papel_total = round($metros_papel_libro * ($datosPedido->tirada + $datosPedido->merma), 2);
|
||||
|
||||
$paginas_por_pliego_click = round(floor($factor_anchura) * $factor_altura_click * $multiplicador_pliego, 2);
|
||||
$pliegos_libro_click = round($paginas_por_pliego_click ? $datosPedido->paginas / $paginas_por_pliego_click : 0, 2);
|
||||
$clicks_libro = round(ceil($pliegos_libro_click) * 2, 2);
|
||||
$clicks_pedido = round($clicks_libro * ($datosPedido->tirada + $datosPedido->merma), 2);
|
||||
|
||||
$data['factor_altura'] = $factor_altura;
|
||||
$data['factor_anchura'] = $factor_anchura;
|
||||
$data['paginas_por_pliego'] = $paginas_por_pliego;
|
||||
$data['pliegos_libro'] = $pliegos_libro;
|
||||
$data['pliegos_pedido'] = $pliegos_libro * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['metros_papel_libro'] = $metros_papel_libro;
|
||||
$data['metros_papel_total'] = $metros_papel_total;
|
||||
$data['clicks_libro'] = $clicks_libro;
|
||||
$data['clicks_pedido'] = $clicks_pedido;
|
||||
|
||||
// calculo de tintas
|
||||
$data['num_gotas_negro'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosInkjet->rotativa_negro / 100.0), 0);
|
||||
$data['num_gotas_cyan'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosInkjet->rotativa_cyan / 100.0), 0);
|
||||
$data['num_gotas_magenta'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosInkjet->rotativa_magenta / 100.0), 0);
|
||||
$data['num_gotas_amarillo'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosInkjet->rotativa_amarillo / 100.0), 0);
|
||||
|
||||
$pag_negro = $parametrosInkjet->bnPages;
|
||||
$pag_color = 0;
|
||||
if ($parametrosInkjet->colorPages>0) {
|
||||
$pag_color = $parametrosInkjet->colorPages;
|
||||
}
|
||||
|
||||
// peso tintas
|
||||
$data['peso_gotas_negro'] = round((($data['num_gotas_negro'] * $parametrosInkjet->rotativa_gota_negro * $data['pulgada']) / (17.91 / 20.0)) * $pag_negro * 1000, 6);
|
||||
$data['peso_gotas_cyan'] = round((($data['num_gotas_cyan'] * $parametrosInkjet->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6);
|
||||
$data['peso_gotas_magenta'] = round((($data['num_gotas_magenta'] * $parametrosInkjet->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6);
|
||||
$data['peso_gotas_amarillo'] = round((($data['num_gotas_amarillo'] * $parametrosInkjet->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6);
|
||||
|
||||
// costes de tintas
|
||||
$data['peso_gotas_negro_pedido'] = round($data['peso_gotas_negro'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['peso_gotas_cyan_pedido'] = round($data['peso_gotas_cyan'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['peso_gotas_magenta_pedido'] = round($data['peso_gotas_magenta'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['peso_gotas_amarillo_pedido'] = round($data['peso_gotas_amarillo'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
|
||||
// precio tinta
|
||||
$data['precio_tinta'] = round(
|
||||
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_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) +
|
||||
round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2)
|
||||
, 2);
|
||||
|
||||
// precio pagina
|
||||
$data['precio_pagina_negro'] = round($pag_negro ? $data['precio_tinta'] / ($pag_negro * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6);
|
||||
$data['precio_pagina_color'] = round($pag_color ? $data['precio_tinta'] / ($pag_color * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6);
|
||||
|
||||
|
||||
|
||||
$data['mano'] = PresupuestoService::computeLomoInterior($datosPedido->paginas, $papel_impresion->espesor);
|
||||
// ($paginas / 2.0) * (($gramaje / 1000.0) * $papel_compra->mano);
|
||||
|
||||
// peso
|
||||
$data['peso'] = PresupuestoService::computePeso(
|
||||
ancho: $datosPedido->isCosido ? $datosPedido->ancho / 2.0 : $datosPedido->ancho,
|
||||
alto: $datosPedido->alto,
|
||||
gramaje: $papel_impresion->gramaje,
|
||||
paginas: $datosPedido->paginas
|
||||
);
|
||||
|
||||
$data['dimensiones_maquina'] = [$maquina->ancho, $maquina->alto];
|
||||
$data['dimensiones_maquina_impresion'] = [$maquina->ancho_impresion, $maquina->alto_impresion];
|
||||
$data['dimensiones_maquina_click'] = [$maquina->ancho_impresion, $maquina->alto_click];
|
||||
$data['dimensiones_libro'] = [$datosPedido->ancho, $datosPedido->alto];
|
||||
|
||||
$data['alto_click'] = $maquina->alto_click;
|
||||
|
||||
$formas = PresupuestoService::getNumFormasRot($maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido);
|
||||
$data['num_formas'] = $formas;
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Devuelve los calculos para la linea de rotativa.
|
||||
*/
|
||||
@ -274,32 +150,7 @@ class PresupuestoService extends BaseService
|
||||
{
|
||||
$data = [];
|
||||
|
||||
$data['resolucion'] = 600;
|
||||
$data['pulgada'] = 1 / 1000000000000.0;
|
||||
$data['superficie'] = round((($datosPedido->ancho / 2.54) / 10) * (($datosPedido->alto / 2.54) / 10), 2);
|
||||
|
||||
// posicionamos paginas en función de a favor de fibra o no
|
||||
|
||||
$anchoLibro = $datosPedido->ancho;
|
||||
$altoLibro = $datosPedido->alto;
|
||||
|
||||
if (!$parametrosRotativa->a_favor_fibra) {
|
||||
$anchoLibro = $datosPedido->alto;
|
||||
$altoLibro = $datosPedido->ancho;
|
||||
}
|
||||
|
||||
$data['ancho'] = $anchoLibro;
|
||||
$data['alto'] = $altoLibro;
|
||||
|
||||
// si es cosido ancho x 2
|
||||
|
||||
if ($datosPedido->isCosido) {
|
||||
if (!$parametrosRotativa->a_favor_fibra) {
|
||||
$data['alto'] = $data['alto'] * 2;
|
||||
} else {
|
||||
$data['ancho'] = $data['ancho'] * 2;
|
||||
}
|
||||
}
|
||||
[$data['ancho'], $data['alto']] = PresupuestoService::calculoDimForma($datosPedido, $parametrosRotativa);
|
||||
|
||||
// calculo de papel y clicks
|
||||
$factor_anchura = round($maquina->ancho_impresion / $data['ancho'], 2);
|
||||
@ -328,41 +179,8 @@ class PresupuestoService extends BaseService
|
||||
$data['clicks_pedido'] = $clicks_pedido;
|
||||
|
||||
// calculo de tintas
|
||||
$data['num_gotas_negro'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_negro / 100.0), 0);
|
||||
$data['num_gotas_cyan'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_cyan / 100.0), 0);
|
||||
$data['num_gotas_magenta'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_magenta / 100.0), 0);
|
||||
$data['num_gotas_amarillo'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_amarillo / 100.0), 0);
|
||||
|
||||
$pag_negro = $parametrosRotativa->bnPages;
|
||||
$pag_color = 0;
|
||||
if ($parametrosRotativa->colorPages>0) {
|
||||
$pag_color = $parametrosRotativa->colorPages;
|
||||
}
|
||||
|
||||
// peso tintas
|
||||
$data['peso_gotas_negro'] = round((($data['num_gotas_negro'] * $parametrosRotativa->rotativa_gota_negro * $data['pulgada']) / (17.91 / 20.0)) * $pag_negro * 1000, 6);
|
||||
$data['peso_gotas_cyan'] = round((($data['num_gotas_cyan'] * $parametrosRotativa->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6);
|
||||
$data['peso_gotas_magenta'] = round((($data['num_gotas_magenta'] * $parametrosRotativa->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6);
|
||||
$data['peso_gotas_amarillo'] = round((($data['num_gotas_amarillo'] * $parametrosRotativa->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6);
|
||||
|
||||
// costes de tintas
|
||||
$data['peso_gotas_negro_pedido'] = round($data['peso_gotas_negro'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['peso_gotas_cyan_pedido'] = round($data['peso_gotas_cyan'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['peso_gotas_magenta_pedido'] = round($data['peso_gotas_magenta'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['peso_gotas_amarillo_pedido'] = round($data['peso_gotas_amarillo'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
|
||||
// precio tinta
|
||||
$data['precio_tinta'] = round(
|
||||
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_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) +
|
||||
round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2)
|
||||
, 2);
|
||||
|
||||
// precio pagina
|
||||
$data['precio_pagina_negro'] = round($pag_negro ? $data['precio_tinta'] / ($pag_negro * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6);
|
||||
$data['precio_pagina_color'] = round($pag_color ? $data['precio_tinta'] / ($pag_color * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6);
|
||||
|
||||
$data = array_merge($data, PresupuestoService::calculoCosteTintas($maquina, $datosPedido, $parametrosRotativa));
|
||||
|
||||
// calculo de corte
|
||||
$data['velocidad_corte'] = $maquina->velocidad_corte;
|
||||
$data['precio_hora_corte'] = $maquina->precio_hora_corte;
|
||||
@ -398,6 +216,84 @@ class PresupuestoService extends BaseService
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Devuelve los calculos de las dimensiones de la forma
|
||||
*/
|
||||
public static function calculoDimForma($datosPedido, $parametros){
|
||||
// posicionamos paginas en función de a favor de fibra o no
|
||||
if (!$parametros->a_favor_fibra) {
|
||||
$anchoLibro = $datosPedido->alto;
|
||||
$altoLibro = $datosPedido->ancho;
|
||||
}
|
||||
else{
|
||||
$anchoLibro = $datosPedido->ancho;
|
||||
$altoLibro = $datosPedido->alto;
|
||||
}
|
||||
|
||||
// si es cosido ancho x 2
|
||||
if ($datosPedido->isCosido) {
|
||||
if (!$parametros->a_favor_fibra) {
|
||||
$altoLibro = $altoLibro * 2;
|
||||
} else {
|
||||
$anchoLibro = $anchoLibro * 2;
|
||||
}
|
||||
}
|
||||
|
||||
return [$anchoLibro, $altoLibro];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Devuelve los calculos para el coste de tintas
|
||||
*/
|
||||
public static function calculoCosteTintas($maquina, $datosPedido, $parametros)
|
||||
{
|
||||
$data = [];
|
||||
|
||||
$data['pulgada'] = 1 / 1000000000000.0;
|
||||
$data['resolucion'] = 600;
|
||||
$data['superficie'] = round((($datosPedido->ancho / 2.54) / 10) * (($datosPedido->alto / 2.54) / 10), 2);
|
||||
|
||||
$data['num_gotas_negro'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametros->rotativa_negro / 100.0), 0);
|
||||
$data['num_gotas_cyan'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametros->rotativa_cyan / 100.0), 0);
|
||||
$data['num_gotas_magenta'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametros->rotativa_magenta / 100.0), 0);
|
||||
$data['num_gotas_amarillo'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametros->rotativa_amarillo / 100.0), 0);
|
||||
|
||||
$pag_negro = $parametros->bnPages;
|
||||
$pag_color = 0;
|
||||
if ($parametros->colorPages>0) {
|
||||
$pag_color = $parametros->colorPages;
|
||||
}
|
||||
|
||||
// peso tintas
|
||||
$data['peso_gotas_negro'] = round((($data['num_gotas_negro'] * $parametros->rotativa_gota_negro * $data['pulgada']) / (17.91 / 20.0)) * $pag_negro * 1000, 6);
|
||||
$data['peso_gotas_cyan'] = round((($data['num_gotas_cyan'] * $parametros->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6);
|
||||
$data['peso_gotas_magenta'] = round((($data['num_gotas_magenta'] * $parametros->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6);
|
||||
$data['peso_gotas_amarillo'] = round((($data['num_gotas_amarillo'] * $parametros->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6);
|
||||
|
||||
// costes de tintas
|
||||
$data['peso_gotas_negro_pedido'] = round($data['peso_gotas_negro'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['peso_gotas_cyan_pedido'] = round($data['peso_gotas_cyan'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['peso_gotas_magenta_pedido'] = round($data['peso_gotas_magenta'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$data['peso_gotas_amarillo_pedido'] = round($data['peso_gotas_amarillo'], 2) * ($datosPedido->tirada + $datosPedido->merma);
|
||||
|
||||
// precio tinta
|
||||
$data['precio_tinta'] = round(
|
||||
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_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) +
|
||||
round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2)
|
||||
, 2);
|
||||
|
||||
// precio pagina
|
||||
$data['precio_pagina_negro'] = round($pag_negro ? $data['precio_tinta'] / ($pag_negro * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6);
|
||||
$data['precio_pagina_color'] = round($pag_color ? $data['precio_tinta'] / ($pag_color * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
public static function getNumFormasRot($maquina, $ancho, $alto, $isCosido, $a_favor_fibra = true)
|
||||
{
|
||||
// El ancho si es cosido es el doble
|
||||
@ -454,7 +350,7 @@ class PresupuestoService extends BaseService
|
||||
return $response;
|
||||
}
|
||||
|
||||
public static function getNumFormasPlana($uso, $maquina, $ancho, $alto, $isCosido)
|
||||
public static function getNumFormasPlana($uso, $maquina, $ancho, $alto, $isCosido, $forzar_a_favor_fibra = false)
|
||||
{
|
||||
$h1_temp = 0;
|
||||
$h2_temp = 0;
|
||||
@ -471,7 +367,7 @@ class PresupuestoService extends BaseService
|
||||
|
||||
// Generates a message like: User 123 logged into the system from 127.0.0.1
|
||||
$info = [
|
||||
'isCosido' => $anchoForCalculo,
|
||||
'isCosido' => $forzar_a_favor_fibra,
|
||||
];
|
||||
|
||||
log_message('error', 'isCosido en formas planas: {isCosido}', $info);
|
||||
@ -527,10 +423,15 @@ class PresupuestoService extends BaseService
|
||||
|
||||
|
||||
// Se calcula el numero de formas
|
||||
if($uso != 'cubierta' && $uso != 'sobrecubierta'){
|
||||
if($uso != 'cubierta' && $uso != 'sobrecubierta' && !$forzar_a_favor_fibra){
|
||||
$num_formas = ($formas_h > $formas_v) ? $formas_h : $formas_v;
|
||||
$num_formas = $isCosido ? $num_formas * 2 : $num_formas;
|
||||
}
|
||||
else if ($forzar_a_favor_fibra){
|
||||
$num_formas = $formas_h;
|
||||
$num_formas = $isCosido ? $num_formas * 2 : $num_formas;
|
||||
|
||||
}
|
||||
else{
|
||||
$num_formas = $h1*$h2;
|
||||
}
|
||||
@ -539,7 +440,7 @@ class PresupuestoService extends BaseService
|
||||
// si no hay formas se devuelve n/a
|
||||
if ($num_formas == 0) {
|
||||
$response['num_formas']['posicion_formas'] = 'n/a'; // not available
|
||||
} else if ($formas_h > $formas_v) {
|
||||
} else if ($formas_h > $formas_v || $forzar_a_favor_fibra) {
|
||||
$response['num_formas']['posicion_formas'] = 'h';
|
||||
$response['num_formas']['num_formas_horizontales'] = $h1;
|
||||
$response['num_formas']['num_formas_verticales'] = $v1;
|
||||
|
||||
@ -1197,7 +1197,7 @@ function change_lp_bn_aFavorFibra(){
|
||||
rowData.aFavorFibra = $('#lp_bn_aFavorFibra').prop('checked')
|
||||
tableLineasPresupuesto.row('#lp_bn').data(rowData).draw(false)
|
||||
|
||||
calcularPresupuesto_rot_bn(false, true);
|
||||
calcularPresupuesto_bn(false, true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1268,8 +1268,6 @@ function calcularPresupuesto_bn(input_data={}, updatedTipologias = false){
|
||||
if(Object.keys(input_data).length == 0){
|
||||
value.fields.check_papel_total = $('#lp_bn' + '_checkPapel').is(":checked")?1:0
|
||||
value.fields.check_impresion_total = $('#lp_bn' + '_checkClicks').is(":checked")?1:0
|
||||
// Por defecto en plana: en contra de fibra
|
||||
value.fields.a_favor_fibra = false
|
||||
|
||||
}
|
||||
else{
|
||||
@ -1524,7 +1522,7 @@ function change_lp_color_tipologia(){
|
||||
}
|
||||
|
||||
|
||||
function por_defecto_lp_bn(){
|
||||
function por_defecto_lp_color(){
|
||||
|
||||
if( parseInt($('#lp_color_paginas').val())>0 &&
|
||||
parseInt($('#lp_color_papel option:selected').val())>0 &&
|
||||
@ -1536,6 +1534,24 @@ function por_defecto_lp_bn(){
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function change_lp_color_aFavorFibra(){
|
||||
|
||||
if( parseInt($('#lp_color_paginas').val())>0 &&
|
||||
parseInt($('#lp_color_papel option:selected').val())>0 &&
|
||||
$('#lp_color_gramaje option:selected').text().length>0 &&
|
||||
parseInt($('#lp_color_papelImpresion option:selected').val())>0
|
||||
){
|
||||
var rowData = tableLineasPresupuesto.row('#lp_color').data()
|
||||
rowData.aFavorFibra = $('#lp_color_aFavorFibra').prop('checked')
|
||||
tableLineasPresupuesto.row('#lp_color').data(rowData).draw(false)
|
||||
|
||||
calcularPresupuesto_color(false, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function calcularPresupuesto_color(input_data={}, updatedTipologias = false){
|
||||
|
||||
const dimension = getDimensionLibro();
|
||||
@ -1578,6 +1594,11 @@ function calcularPresupuesto_color(input_data={}, updatedTipologias = false){
|
||||
datos.amarillo= $('#lp_color_cobAmarillo').val()
|
||||
}
|
||||
|
||||
// Si es inkjet, existe este check
|
||||
if ($('#lp_color_aFavorFibra').length){
|
||||
datos.a_favor_fibra = $('#lp_color_aFavorFibra').prop('checked')
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/cosidotapablanda/datatable",
|
||||
@ -1676,6 +1697,7 @@ function eventos_lp_color(isInkjet = false){
|
||||
if(isInkjet){
|
||||
$('.lp-color-tipologia').bind("change", change_lp_color_tipologia);
|
||||
$('#lp_color_defecto').bind("click", por_defecto_lp_color);
|
||||
$('#lp_color_aFavorFibra').bind("change", change_lp_color_aFavorFibra);
|
||||
}
|
||||
|
||||
$('#lp_color_checkPapel').bind("change", {id_linea: 'lp_color'}, update_total_linea);
|
||||
@ -1834,17 +1856,17 @@ function por_defecto_lp_bnhq(){
|
||||
|
||||
function change_lp_bnhq_aFavorFibra(){
|
||||
|
||||
if( parseInt($('#lp_bnhq_paginas').val())>0 &&
|
||||
parseInt($('#lp_bnhq_papel option:selected').val())>0 &&
|
||||
$('#lp_bnhq_gramaje option:selected').text().length>0 &&
|
||||
parseInt($('#lp_bnhq_papelImpresion option:selected').val())>0
|
||||
){
|
||||
var rowData = tableLineasPresupuesto.row('#lp_bnhq').data()
|
||||
rowData.aFavorFibra = $('#lp_bnhq_aFavorFibra').prop('checked')
|
||||
tableLineasPresupuesto.row('#lp_bnhq').data(rowData).draw(false)
|
||||
|
||||
calcularPresupuesto_bnhq(false, true);
|
||||
}
|
||||
if( parseInt($('#lp_bnhq_paginas').val())>0 &&
|
||||
parseInt($('#lp_bnhq_papel option:selected').val())>0 &&
|
||||
$('#lp_bnhq_gramaje option:selected').text().length>0 &&
|
||||
parseInt($('#lp_bnhq_papelImpresion option:selected').val())>0
|
||||
){
|
||||
var rowData = tableLineasPresupuesto.row('#lp_bnhq').data()
|
||||
rowData.aFavorFibra = $('#lp_bnhq_aFavorFibra').prop('checked')
|
||||
tableLineasPresupuesto.row('#lp_bnhq').data(rowData).draw(false)
|
||||
|
||||
calcularPresupuesto_bnhq(false, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1892,7 +1914,7 @@ function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){
|
||||
|
||||
// Si es inkjet, existe este check
|
||||
if ($('#lp_bnhq_aFavorFibra').length){
|
||||
datos.a_favor_fibra = $('#lp_bnhq_aFavorFibra').prop('checked')
|
||||
datos.a_favor_fibra = $('#lp_bnhq_aFavorFibra').prop('checked')?1:0
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
@ -1911,8 +1933,6 @@ function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){
|
||||
if(Object.keys(input_data).length == 0){
|
||||
value.fields.check_papel_total = $('#lp_bnhq' + '_checkPapel').is(":checked")?1:0
|
||||
value.fields.check_impresion_total = $('#lp_bnhq' + '_checkClicks').is(":checked")?1:0
|
||||
// Por defecto en plana: en contra de fibra
|
||||
value.fields.a_favor_fibra = false
|
||||
}
|
||||
else{
|
||||
value.fields.check_papel_total = 1
|
||||
@ -2155,6 +2175,21 @@ function por_defecto_lp_colorhq(){
|
||||
}
|
||||
|
||||
|
||||
function change_lp_colorhq_aFavorFibra(){
|
||||
|
||||
if( parseInt($('#lp_colorhq_paginas').val())>0 &&
|
||||
parseInt($('#lp_colorhq_papel option:selected').val())>0 &&
|
||||
$('#lp_colorhq_gramaje option:selected').text().length>0 &&
|
||||
parseInt($('#lp_colorhq_papelImpresion option:selected').val())>0
|
||||
){
|
||||
var rowData = tableLineasPresupuesto.row('#lp_colorhq').data()
|
||||
rowData.aFavorFibra = $('#lp_colorhq_aFavorFibra').prop('checked')
|
||||
tableLineasPresupuesto.row('#lp_colorhq').data(rowData).draw(false)
|
||||
|
||||
calcularPresupuesto_colorhq(false, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function calcularPresupuesto_colorhq(input_data={}, updatedTipologias = false){
|
||||
|
||||
@ -2198,6 +2233,11 @@ function calcularPresupuesto_colorhq(input_data={}, updatedTipologias = false){
|
||||
datos.amarillo= $('#lp_colorhq_cobAmarillo').val()
|
||||
}
|
||||
|
||||
// Si es inkjet, existe este check
|
||||
if ($('#lp_colorhq_aFavorFibra').length){
|
||||
datos.a_favor_fibra = $('#lp_colorhq_aFavorFibra').prop('checked')?1:0
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/cosidotapablanda/datatable",
|
||||
@ -2295,6 +2335,7 @@ function eventos_lp_colorhq(isInkjet = false){
|
||||
if(isInkjet){
|
||||
$('.lp-colorhq-tipologia').bind("change", change_lp_colorhq_tipologia);
|
||||
$('#lp_colorhq_defecto').bind("click", por_defecto_lp_colorhq);
|
||||
$('#lp_colorhq_aFavorFibra').bind("change", change_lp_colorhq_aFavorFibra);
|
||||
}
|
||||
|
||||
$('#lp_colorhq_checkPapel').bind("change", {id_linea: 'lp_colorhq'}, update_total_linea);
|
||||
|
||||
Reference in New Issue
Block a user