modificacion hecha

This commit is contained in:
Jaime Jiménez
2024-01-07 20:19:54 +01:00
parent 2f5c205902
commit 55f26c85b8
21 changed files with 537 additions and 107 deletions

View File

@ -444,7 +444,21 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
if ($type=='interior') {
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id);
$datosTipolog = $reqData['negro'] ?? null;
if(!is_null($datosTipolog)){
$datosTipolog = [];
$data = (object)array(
'negro' => intval($reqData['negro']) ?? 0,
'cyan' => intval($reqData['cyan']) ?? 0,
'magenta' => intval($reqData['magenta']) ?? 0,
'amarillo' => intval($reqData['amarillo']) ?? 0,
'gota_negro' => intval($reqData['gota_negro']) ?? 0,
'gota_color' => intval($reqData['gota_color']) ?? 0,
);
array_push($datosTipolog, $data);
}
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog);
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
@ -560,7 +574,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
}
public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id)
public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null)
{
$tipo = $isColor? ($isHq?'colorhq':'color'): ($isHq?'negrohq':'negro');
@ -615,15 +629,61 @@ 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) {
if($maquina->is_inkjet){
$parametrosInkjet = (object)array(
'a_favor_fibra' => 1, // este parametro se cambia para comprobar
// en las dos direcciones (menos en rustica fresada que es siempre 1)
'bnPages' => $isColor?0:$datosPedido->paginas,
'colorPages' => $isColor?$datosPedido->paginas:0,
'rotativa_gota_negro' => 0,
'rotativa_gota_color' => 0,
);
$papelImpresionTipologiaModel = new \App\Models\Configuracion\PapelImpresionTipologiaModel();
if(is_null($datosTipolog)){
$datosTipologias = $papelImpresionTipologiaModel
->findTipologiasForPapelImpresion($papel->id, $parametrosInkjet->colorPages>0?'color':'negro')
->get()->getResultObject();
if(count($datosTipologias)==0){
continue;
}
}
else{
$datosTipologias = $datosTipolog;
}
$parametrosInkjet->rotativa_gota_negro = $datosTipologias[0]->gota_negro;
$parametrosInkjet->rotativa_gota_color = $datosTipologias[0]->gota_color;
$parametrosInkjet->rotativa_negro = $datosTipologias[0]->negro;
$parametrosInkjet->rotativa_cyan = $datosTipologias[0]->cyan;
$parametrosInkjet->rotativa_magenta = $datosTipologias[0]->magenta;
$parametrosInkjet->rotativa_amarillo = $datosTipologias[0]->amarillo;
}
$tarifamodel = new MaquinasTarifasImpresionModel();
[$tarifaId, $tarifa] = $tarifamodel->getTarifa($maquina->maquina_id, $uso, $tipo);
if(!is_float($tarifa)){
continue;
}
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
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];
}
else{
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
}
if(array_key_exists('error', $linea))
continue;
$linea['fields']['tarifa_impresion_id'] = $tarifaId;
$linea['fields']['maquina'] = $maquina->maquina;
$linea['fields']['maquina_id'] = $maquina->maquina_id;
@ -634,6 +694,11 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$linea['fields']['gramaje'] = $gramaje;
$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'],
@ -642,7 +707,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$clientePreciosModel = new ClientePreciosModel();
$config = (object)[
"tipo" => $uso,
"tipo_maquina" => $maquina->is_tinta?'inkjet':'toner',
"tipo_maquina" => $maquina->is_inkjet?'inkjet':'toner',
"tipo_impresion" => $tipo
];
$tiempo = PresupuestoService::getHorasMaquina(
@ -655,15 +720,27 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
continue;
}
$linea['fields']['tipo_maquina'] = $maquina->is_tinta?'inkjet':'toner';
$linea['fields']['tipo_maquina'] = $maquina->is_inkjet?'inkjet':'toner';
$linea['fields']['precio_hora'] = $precio_hora*$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*$tiempo*1.0;
$linea['fields']['margen_impresion_horas'] = $precio_hora*$tiempo*1.0*$margen_precio_hora/100.0;
$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + // papel
$linea['fields']['precio_impresion_horas']; // impresion
if($maquina->is_inkjet){
$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']['total_impresion'] =
$linea['fields']['precio_pedido'] + // papel
$linea['fields']['precio_impresion_horas'] + $linea['fields']['margen_impresion_horas'] + // horas de maquina
$linea['fields']['precio_tinta']; // tinta
}
else{
$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + // papel
$linea['fields']['precio_impresion_horas']; // impresion
}
array_push($lineas, $linea);
}