mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
falta actualizar resumen presupuesto
This commit is contained in:
@ -971,6 +971,12 @@ class PresupuestoService extends BaseService
|
||||
}
|
||||
|
||||
|
||||
public static function actualizarResumenPresupuesto($presupuesto_id)
|
||||
{
|
||||
$presupuesto = (new PresupuestoModel())->find($presupuesto_id);
|
||||
$lineas = (new LineaPresupuestoModel())->where('presupuesto_id', $presupuesto_id)->findAll();
|
||||
|
||||
}
|
||||
|
||||
public static function checkLineasPresupuesto($input_data, $array_lineas)
|
||||
{
|
||||
@ -996,28 +1002,30 @@ class PresupuestoService extends BaseService
|
||||
|
||||
foreach ($array_lineas as $linea) {
|
||||
|
||||
if (PresupuestoService::checkMaquina($linea->maquina_id) || !PresupuestoService::checkPapelImpresion($linea->papel_impresion_id)) {
|
||||
// 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(($input_data['presupuesto'])->papel_formato_personalizado == 0){
|
||||
$papel_formato = (new PapelFormatoModel())->find(($input_data['presupuesto'])->papel_formato_id);
|
||||
$ancho = $papel_formato->ancho;
|
||||
$alto = $papel_formato->alto;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ancho = ($input_data['presupuesto'])->papel_formato_ancho;
|
||||
$alto = ($input_data['presupuesto'])->papel_formato_alto;
|
||||
}
|
||||
|
||||
$papel_generico = (new PapelGenericoModel)->find($linea->papel_id);
|
||||
$papel_generico = [
|
||||
'id' => $papel_generico->id,
|
||||
'nombre' => $papel_generico->nombre,
|
||||
];
|
||||
|
||||
// Hay que ver si es rotativa o plana
|
||||
// Si es rotativa
|
||||
if(str_contains($linea->tipo, '_rot_')){
|
||||
|
||||
if(($input_data['presupuesto'])->papel_formato_personalizado == 0){
|
||||
$papel_formato = (new PapelFormatoModel())->find(($input_data['presupuesto'])->papel_formato_id);
|
||||
$ancho = $papel_formato->ancho;
|
||||
$alto = $papel_formato->alto;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ancho = ($input_data['presupuesto'])->papel_formato_ancho;
|
||||
$alto = ($input_data['presupuesto'])->papel_formato_alto;
|
||||
}
|
||||
|
||||
$papel_generico = (new PapelGenericoModel)->find($linea->papel_id);
|
||||
$papel_generico = [
|
||||
'id' => $papel_generico->id,
|
||||
'nombre' => $papel_generico->nombre,
|
||||
];
|
||||
|
||||
$datos = [
|
||||
'datosPedido' => (object)array(
|
||||
'paginas' => ($input_data['presupuesto'])->paginas,
|
||||
@ -1046,17 +1054,82 @@ class PresupuestoService extends BaseService
|
||||
)]
|
||||
];
|
||||
|
||||
$comp_data = PresupuestoService::obtenerComparadorRotativa($datos);
|
||||
// se ordena $comp_data usando el campo ['fields]['total_impresion']
|
||||
usort($comp_data, function($a, $b) {
|
||||
return $a['fields']['total_impresion'] <=> $b['fields']['total_impresion'];
|
||||
});
|
||||
|
||||
$comp_data = PresupuestoService::obtenerComparadorRotativa($datos);
|
||||
}
|
||||
// Si es plana
|
||||
else{
|
||||
|
||||
$datos = [
|
||||
'tipo_impresion_id' => $data['tipo_impresion_id'],
|
||||
'datosPedido' => (object)array(
|
||||
'paginas' => ($input_data['presupuesto'])->paginas,
|
||||
'tirada' => ($input_data['presupuesto'])->tirada,
|
||||
'merma' => ($input_data['presupuesto'])->merma,
|
||||
'ancho' => $ancho,
|
||||
'alto' => $alto,
|
||||
'a_favor_fibra' => $linea->rotativa_a_favor_fibra,
|
||||
'isCosido' => (new TipoPresupuestoModel())->get_isCosido(($input_data['presupuesto'])->tipo_impresion_id),
|
||||
),
|
||||
'a_favor_fibra' => $linea->rotativa_a_favor_fibra,
|
||||
'papel_generico' => $papel_generico,
|
||||
'gramaje' => $linea->gramaje,
|
||||
'cliente_id' => ($input_data['presupuesto'])->cliente_id,
|
||||
'datosTipolog' => [(object)array(
|
||||
'negro' => $linea->rotativa_negro,
|
||||
'cyan' => $linea->rotativa_cyan,
|
||||
'magenta' => $linea->rotativa_magenta,
|
||||
'amarillo' => $linea->rotativa_amarillo,
|
||||
'cg' => $linea->rotativa_cg,
|
||||
'gota_negro' => $linea->rotativa_gota_negro,
|
||||
'gota_color' => $linea->rotativa_gota_color,
|
||||
)]
|
||||
];
|
||||
|
||||
// si la línea es cubierta o sobrecubierta, es HQ y color
|
||||
if( str_contains($linea->tipo, 'cubierta') ){
|
||||
$datos['isColor'] = true;
|
||||
$datos['isHq'] = true;
|
||||
|
||||
// además se añade los campos de lomo y solapas y el uso
|
||||
if( str_contains($linea->tipo, 'sobrecubierta') ){
|
||||
$datos['datosPedido']->solapas = ($input_data['presupuesto'])->solapas_sobrecubierta;
|
||||
$datos['datosPedido']->solapas_ancho = ($input_data['presupuesto'])->solapas_ancho_sobrecubierta;
|
||||
$datos['datosPedido']->lomo = ($input_data['presupuesto'])->lomo_sobrecubierta;
|
||||
$datos['uso'] = 'sobrecubierta';
|
||||
}
|
||||
else{
|
||||
$datos['datosPedido']->solapas = ($input_data['presupuesto'])->solapas;
|
||||
$datos['datosPedido']->solapas_ancho = ($input_data['presupuesto'])->solapas_ancho;
|
||||
$datos['datosPedido']->lomo = ($input_data['presupuesto'])->lomo_cubierta;
|
||||
$datos['uso'] = 'cubierta';
|
||||
}
|
||||
}
|
||||
else{
|
||||
$datos['isColor'] = str_contains($linea->tipo, '_color') ? true : false;
|
||||
$datos['isHq'] = str_contains($linea->tipo, 'hq') ? true : false;
|
||||
$datos['uso'] = 'interior';
|
||||
}
|
||||
|
||||
if( str_contains($linea->tipo, 'guardas') ){
|
||||
$datos['uso'] = 'guardas';
|
||||
$datos['datosPedido']->paginas_impresion = linea->paginas_impresion;
|
||||
}
|
||||
|
||||
$comp_data = PresupuestoService::obtenerComparadorPlana($datos);
|
||||
|
||||
}
|
||||
|
||||
// se ordena $comp_data usando el campo ['fields]['total_impresion']
|
||||
usort($comp_data, function($a, $b) {
|
||||
return $a['fields']['total_impresion'] <=> $b['fields']['total_impresion'];
|
||||
});
|
||||
(new PresupuestoLineaModel())->updatePreciosLineasPresupuesto($linea->id, $comp_data[0]);
|
||||
$linea_to_save = (new PresupuestoLineaModel())->find($linea->id);
|
||||
$cambios = true;
|
||||
array_push($lineas, $linea_to_save);
|
||||
}
|
||||
// Si existe el papel y la máquina, se recalcula el precio con los mismos
|
||||
// parámetros y se comprueba
|
||||
else{
|
||||
$nueva_linea = PresupuestoService::obtenerValorLineaPresupuesto($data, $linea);
|
||||
if(count($nueva_linea) >0){
|
||||
|
||||
7707
xdebug.log
7707
xdebug.log
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user