falta guardar tiradas

This commit is contained in:
2024-05-16 14:52:18 +02:00
parent fdb1fe77db
commit b110fd063c
12 changed files with 21745 additions and 186 deletions

View File

@ -21,7 +21,7 @@ class PresupuestoEncuadernacionesModel extends \App\Models\BaseModel
4 => "t1.precio_total"
];
protected $allowedFields = ["presupuesto_id", "tarifa_encuadernado_id", "nombre", "precio_total", "precio_unidad", "margen"];
protected $allowedFields = ["presupuesto_id", "tarifa_encuadernado_id", "proveedor_id", "nombre", "precio_total", "precio_unidad", "tiempo", "margen"];
protected $returnType = "App\Entities\Presupuestos\PresupuestoEncuadernacionesEntity";
protected $useTimestamps = true;

View File

@ -12,7 +12,7 @@ class PresupuestoLineaModel extends \App\Models\BaseModel
* @var bool
*/
protected $useAutoIncrement = true;
protected $allowedFields = [
"presupuesto_id",
"tipo",
@ -339,18 +339,18 @@ class PresupuestoLineaModel extends \App\Models\BaseModel
public function updatePreciosLineasPresupuesto($id_linea, $new_linea)
{
$rot_total_impresion = $new_linea['fields']['precio_click_pedido']??0.0 +
$new_linea['fields']['precio_tinta']??0.0+$new_linea['fields']['total_Corte']??0.0;
$rot_total_impresion = $new_linea['fields']['precio_click_pedido'] ?? 0.0 +
$new_linea['fields']['precio_tinta'] ?? 0.0 + $new_linea['fields']['total_Corte'] ?? 0.0;
$data = [
"pliegos_precio" => $new_linea['fields']['precios_pliegos'],
"libro" => $new_linea['fields']['precio_libro'],
"total_papel_pedido" => round($new_linea['fields']['precio_pedido'], 2),
"margen_papel_pedido" => round($new_linea['fields']['margen_papel_pedido'], 2),
"mano" => $new_linea['fields']['mano'],
"precio_click" => round($new_linea['fields']['precio_click'], 6),
"precio_click_pedido" => round($new_linea['fields']['precio_click_pedido'], 2),
"margen_click_pedido" => round($new_linea['fields']['margen_click_pedido'], 2),
"precio_click" => round($new_linea['fields']['precio_click'], 6),
"precio_click_pedido" => round($new_linea['fields']['precio_click_pedido'], 2),
"margen_click_pedido" => round($new_linea['fields']['margen_click_pedido'], 2),
"tiempo_maquina" => strtotime($new_linea['fields']['tiempo_maquina']) - strtotime('TODAY'),
"tarifa_impresion_id" => $new_linea['fields']['tarifa_impresion_id'],
"rotativa_total_impresion" => $rot_total_impresion,
@ -387,16 +387,16 @@ class PresupuestoLineaModel extends \App\Models\BaseModel
"rotativa_tiempo_corte" => $new_linea['fields']['tiempo_corte'] ?? 0,
"rotativa_precio_hora_corte" => $new_linea['fields']['precio_hora_corte'] ?? 0,
"rotativa_total_corte" => $new_linea['fields']['total_corte'] ?? 0,
"horas_maquina" => round($new_linea['fields']['horas_maquina'],4),
"horas_maquina" => round($new_linea['fields']['horas_maquina'], 4),
"precio_hora" => $new_linea['fields']['precio_hora'] ?? 0,
"precio_impresion" => $new_linea['fields']['precio_impresion_horas'] ?? 0,
"total_linea" => round($new_linea['fields']['total_impresion'], 2) ?? 0,
"margen_impresion" => $new_linea['fields']['margen_impresion_horas'] ?? 0,
];
if(array_key_exists('datosTipologias', $new_linea['fields'])){
if (array_key_exists('datosTipologias', $new_linea['fields'])) {
$data += [
"rotativa_negro" => $new_linea['fields']['datosTipologias']->negro ?? 0,
"rotativa_negro" => $new_linea['fields']['datosTipologias']->negro ?? 0,
"rotativa_cyan" => $new_linea['fields']['datosTipologias']->cyan ?? 0,
"rotativa_magenta" => $new_linea['fields']['datosTipologias']->magenta ?? 0,
"rotativa_amarillo" => $new_linea['fields']['datosTipologias']->amarillo ?? 0,
@ -404,7 +404,7 @@ class PresupuestoLineaModel extends \App\Models\BaseModel
"rotativa_gota_negro" => $new_linea['fields']['datosTipologias']->gota_negro ?? 0,
"rotativa_gota_color" => $new_linea['fields']['datosTipologias']->gota_color
];
}
}
$this->db
->table($this->table . " t1")
->where('id', $id_linea)
@ -414,73 +414,115 @@ class PresupuestoLineaModel extends \App\Models\BaseModel
public function insertLPFromBackend($presupuesto_id, $new_linea)
{
$rot_total_impresion = $new_linea['fields']['precio_click_pedido']??0.0 +
$new_linea['fields']['precio_tinta']??0.0+$new_linea['fields']['total_Corte']??0.0;
$rot_total_impresion = $new_linea['precio_click_pedido'] ?? 0.0 +
$new_linea['precio_tinta'] ?? 0.0 + $new_linea['total_Corte'] ?? 0.0;
$formas = json_encode(array(
'maquina_ancho'=> $new_linea['dimensiones_maquina'][0],
'maquina_alto' => $new_linea['dimensiones_maquina'][1],
'maquina_impresion_ancho'=> $new_linea['dimensiones_maquina_impresion'][0],
'maquina_impresion_alto' => $new_linea['dimensiones_maquina_impresion'][1],
'formas' => $new_linea['num_formas']['value'],
'formas_v'=> $new_linea['num_formas']['num_formas_verticales'],
'formas_h'=> $new_linea['num_formas']['num_formas_horizontales'],
'formas_orientacion'=> $new_linea['num_formas']['posicion_formas']
));
sscanf($new_linea['tiempo_maquina'], "%d:%d:%d", $hours, $minutes, $seconds);
$tiempo = isset($seconds) ? $hours * 3600 + $minutes * 60 + $seconds : $hours * 60 + $minutes;
$data = [
'presupuesto_id' => $presupuesto_id,
"pliegos_precio" => $new_linea['fields']['precios_pliegos'],
"libro" => $new_linea['fields']['precio_libro'],
"total_papel_pedido" => round($new_linea['fields']['precio_pedido'], 2),
"margen_papel_pedido" => round($new_linea['fields']['margen_papel_pedido'], 2),
"mano" => $new_linea['fields']['mano'],
"precio_click" => round($new_linea['fields']['precio_click'], 6),
"precio_click_pedido" => round($new_linea['fields']['precio_click_pedido'], 2),
"margen_click_pedido" => round($new_linea['fields']['margen_click_pedido'], 2),
"tiempo_maquina" => strtotime($new_linea['fields']['tiempo_maquina']) - strtotime('TODAY'),
"tarifa_impresion_id" => $new_linea['fields']['tarifa_impresion_id'],
"rotativa_total_impresion" => $rot_total_impresion,
"rotativa_a_favor_fibra" => $new_linea['fields']['a_favor_fibra'] ?? 0,
"rotativa_mxm" => $new_linea['fields']['maquina_velocidad'] ?? 0,
"rotativa_resolucion" => $new_linea['fields']['resolucion'] ?? 0,
"rotativa_area_paginas" => $new_linea['fields']['superficie'] ?? 0,
"rotativa_num_gotas_negro" => $new_linea['fields']['num_gotas_negro'] ?? 0,
"rotativa_num_gotas_cyan" => $new_linea['fields']['num_gotas_cyan'] ?? 0,
"rotativa_num_gotas_magenta" => $new_linea['fields']['num_gotas_magenta'] ?? 0,
"rotativa_num_gotas_amarillo" => $new_linea['fields']['num_gotas_amarillo'] ?? 0,
"rotativa_num_gotas_cg" => $new_linea['fields']['num_gotas_cg'] ?? 0,
"rotativa_peso_gotas_negro" => $new_linea["fields"]["peso_gotas_negro"] ?? 0,
"rotativa_peso_gotas_cyan" => $new_linea['fields']['peso_gotas_cyan'] ?? 0,
"rotativa_peso_gotas_magenta" => $new_linea['fields']['peso_gotas_magenta'] ?? 0,
"rotativa_peso_gotas_amarillo" => $new_linea['fields']['peso_gotas_amarillo'] ?? 0,
"rotativa_peso_gotas_cg" => $new_linea['fields']['peso_gotas_cg'] ?? 0,
"rotativa_peso_gotas_negro_pedido" => $new_linea["fields"]["peso_gotas_negro_pedido"] ?? 0,
"rotativa_peso_gotas_cyan_pedido" => $new_linea["fields"]["peso_gotas_cyan_pedido"] ?? 0,
"rotativa_peso_gotas_magenta_pedido" => $new_linea["fields"]["peso_gotas_magenta_pedido"] ?? 0,
"rotativa_peso_gotas_amarillo_pedido" => $new_linea["fields"]["peso_gotas_amarillo_pedido"] ?? 0,
"rotativa_peso_gotas_cg_pedido" => $new_linea["fields"]["peso_gotas_cg_pedido"] ?? 0,
"rotativa_precio_pag_negro" => $new_linea['fields']['precio_pagina_negro'] ?? 0,
"rotativa_precio_pag_color" => $new_linea['fields']['precio_pagina_color'] ?? 0,
"rotativa_factor_altura" => $new_linea['fields']['factor_altura'] ?? 0,
"rotativa_factor_anchura" => $new_linea['fields']['factor_anchura'] ?? 0,
"rotativa_pag_por_pliego" => $new_linea['fields']['paginas_por_pliego'] ?? 0,
"rotativa_metros_libro" => $new_linea['fields']['metros_papel_libro'] ?? 0,
"rotativa_metros_total" => $new_linea['fields']['metros_papel_total'] ?? 0,
"rotativa_clicks_libro" => $new_linea['fields']['clicks_libro'] ?? 0,
"rotativa_clicks_total" => $new_linea['fields']['clicks_pedido'] ?? 0,
"rotativa_precio_tinta" => $new_linea['fields']['precio_tinta'] ?? 0,
"rotativa_velocidad_corte" => $new_linea['fields']['velocidad_corte'] ?? 0,
"rotativa_tiempo_corte" => $new_linea['fields']['tiempo_corte'] ?? 0,
"rotativa_precio_hora_corte" => $new_linea['fields']['precio_hora_corte'] ?? 0,
"rotativa_total_corte" => $new_linea['fields']['total_corte'] ?? 0,
"horas_maquina" => round($new_linea['fields']['horas_maquina'],4),
"precio_hora" => $new_linea['fields']['precio_hora'] ?? 0,
"precio_impresion" => $new_linea['fields']['precio_impresion_horas'] ?? 0,
"total_linea" => round($new_linea['fields']['total_impresion'], 2) ?? 0,
"margen_impresion" => $new_linea['fields']['margen_impresion_horas'] ?? 0,
'tipo' => $new_linea['tipo_linea'],
'paginas' => $new_linea['paginas'],
'papel_id' => $new_linea['papel_generico_id'],
'papel_impresion_id' => $new_linea['papel_impresion_id'],
'formas' => $formas,
'gramaje' => $new_linea['gramaje'],
'pliegos_libro' => $new_linea['pliegos_libro'],
'pliegos_pedido' => $new_linea['pliegos_pedido'],
'pliegos_precio' => $new_linea['precios_pliegos'],
'libro' => $new_linea['precio_libro'],
'total_papel_pedido' => $new_linea['precio_pedido'],
'margen_papel_pedido' => $new_linea['margen_papel_pedido'],
'mano' => $new_linea['mano'],
'peso' => $new_linea['peso'],
'check_papel_total' => 1,
'check_impresion_total' => 1,
'maquina_id' => $new_linea['maquina_id'],
'tiempo_maquina' => $tiempo,
'tarifa_impresion_id' => $new_linea['tarifa_impresion_id'],
'precio_click' => $new_linea['precio_click'],
'precio_click_pedido' => $new_linea['precio_click_pedido'],
'maquina' => $new_linea['maquina'],
'papel_impresion' => $new_linea['papel_impresion'],
'maquina_tipo' => $new_linea['tipo_maquina'],
'horas_maquina' => $new_linea['horas_maquina'],
'precio_hora' => $new_linea['precio_hora'],
'precio_impresion' => $new_linea['precio_impresion_horas'],
'total_linea' => $new_linea['total_impresion'],
'margen_impresion' => $new_linea['margen_impresion_horas'],
'margen_click_pedido' => $new_linea['margen_click_pedido'],
];
if(array_key_exists('datosTipologias', $new_linea['fields'])){
if($new_linea['tipo_maquina'] =='inkjet'){
$data += [
"rotativa_negro" => $new_linea['fields']['datosTipologias']->negro ?? 0,
"rotativa_cyan" => $new_linea['fields']['datosTipologias']->cyan ?? 0,
"rotativa_magenta" => $new_linea['fields']['datosTipologias']->magenta ?? 0,
"rotativa_amarillo" => $new_linea['fields']['datosTipologias']->amarillo ?? 0,
"rotativa_cg" => $new_linea['fields']['datosTipologias']->cg ?? 0,
"rotativa_gota_negro" => $new_linea['fields']['datosTipologias']->gota_negro ?? 0,
"rotativa_gota_color" => $new_linea['fields']['datosTipologias']->gota_color
'rotativa_total_impresion' => $rot_total_impresion,
'rotativa_negro' => $new_linea['datosTipologias']->negro ?? 0,
'rotativa_cyan' => $new_linea['datosTipologias']->cyan ?? 0,
'rotativa_magenta' => $new_linea['datosTipologias']->magenta ?? 0,
'rotativa_amarillo' => $new_linea['datosTipologias']->amarillo ?? 0,
'rotativa_cg' => $new_linea['datosTipologias']->cg ?? 0,
'rotativa_gota_negro' => $new_linea['datosTipologias']->gota_negro ?? 0,
'rotativa_gota_color' => $new_linea['datosTipologias']->gota_color ?? 0,
'rotativa_num_gotas_negro' => $new_linea['num_gotas_negro'] ?? 0,
'rotativa_num_gotas_cyan' => $new_linea['num_gotas_cyan'] ?? 0,
'rotativa_num_gotas_magenta' => $new_linea['num_gotas_magenta'] ?? 0,
'rotativa_num_gotas_amarillo' => $new_linea['num_gotas_amarillo'] ?? 0,
'rotativa_num_gotas_cg' => $new_linea['num_gotas_cg'] ?? 0,
'rotativa_peso_gotas_negro' => $new_linea['peso_gotas_negro'] ?? 0,
'rotativa_peso_gotas_cyan' => $new_linea['peso_gotas_cyan'] ?? 0,
'rotativa_peso_gotas_magenta' => $new_linea['peso_gotas_magenta'] ?? 0,
'rotativa_peso_gotas_amarillo' => $new_linea['peso_gotas_amarillo'] ?? 0,
'rotativa_peso_gotas_cg' => $new_linea['peso_gotas_cg'] ?? 0,
'rotativa_peso_gotas_negro_pedido' => $new_linea['peso_gotas_negro_pedido'] ?? 0,
'rotativa_peso_gotas_cyan_pedido' => $new_linea['peso_gotas_cyan_pedido'] ?? 0,
'rotativa_peso_gotas_magenta_pedido' => $new_linea['peso_gotas_magenta_pedido'] ?? 0,
'rotativa_peso_gotas_amarillo_pedido' => $new_linea['peso_gotas_amarillo_pedido'] ?? 0,
'rotativa_peso_gotas_cg_pedido' => $new_linea['peso_gotas_cg_pedido'] ?? 0,
'rotativa_pag_color' => $new_linea['paginas_color'],
'rotativa_resolucion' => $new_linea['resolucion'],
'rotativa_area_paginas' => $new_linea['superficie'],
'rotativa_precio_pag_negro' => $new_linea['precio_pagina_negro'],
'rotativa_precio_pag_color' => $new_linea['precio_pagina_color'],
'rotativa_factor_altura' => $new_linea['factor_altura'],
'rotativa_factor_anchura' => $new_linea['factor_anchura'],
'rotativa_pag_por_pliego' => $new_linea['paginas_por_pliego'],
'rotativa_clicks_libro' => $new_linea['clicks_libro'],
'rotativa_clicks_total' => $new_linea['clicks_pedido'],
'rotativa_precio_tinta' => $new_linea['precio_tinta'],
];
}
}
if (strpos($new_linea['tipo_linea'], 'rot') !== false) {
$data += [
'rotativa_mxm' => $new_linea['maquina_velocidad'],
'rotativa_metros_libro' => $new_linea['metros_papel_libro'],
'rotativa_metros_total' => $new_linea['metros_papel_total'],
'rotativa_velocidad_corte' => $new_linea['velocidad_corte'],
'rotativa_precio_hora_corte' => $new_linea['precio_hora_corte'],
'rotativa_tiempo_corte' => $new_linea['tiempo_corte'],
'rotativa_total_corte' => $new_linea['total_corte'],
'rotativa_a_favor_fibra' => $new_linea['a_favor_fibra']
];
}
if($new_linea['tipo_linea'] =='lp_guardas')
array_push($data, ['paginas_impresion' => $new_linea['paginas_impresion']]);
return $this->db
->table($this->table . " t1")
->set($data)
@ -507,7 +549,6 @@ class PresupuestoLineaModel extends \App\Models\BaseModel
->where("t1.presupuesto_id", $presupuesto_id)
->insert($linea);
}
}
public function getResourceByNForPdf($presupuesto_id = -1)
@ -574,9 +615,4 @@ class PresupuestoLineaModel extends \App\Models\BaseModel
->insert($linea);
}
}
}

View File

@ -106,6 +106,8 @@ class PresupuestoModel extends \App\Models\BaseModel
"total_precio_unidad",
"total_factor",
"total_factor_ponderado",
'total_aceptado',
'iva_reducido',
"acabado_cubierta_id",
"acabado_sobrecubierta_id",
"is_duplicado"
@ -311,7 +313,7 @@ class PresupuestoModel extends \App\Models\BaseModel
return $builder;
}
function insertarPresupuestoCliente($tirada, $data, $data_cabecera, $extra_info)
function insertarPresupuestoCliente($tirada, $data, $data_cabecera, $extra_info, $resumen_totales, $iva_reducido, $tiradas_alternativas)
{
helper('date');
@ -321,6 +323,11 @@ class PresupuestoModel extends \App\Models\BaseModel
$is_cosido = (new TipoPresupuestoModel())->get_isCosido($data['tipo_impresion_id']);
$totalCostes = $resumen_totales['totalPapel'] + $resumen_totales['totalImpresion'] +
$resumen_totales['totalServicios']+$resumen_totales['coste_envio'];
$totalMargenes = $resumen_totales['margenPapel'] + $resumen_totales['margenImpresion'] +
$resumen_totales['margenServicios'] + $resumen_totales['margen_envio'];
$fields = [
'cliente_id' => $data['clienteId'],
'tipo_impresion_id' => $data['tipo_impresion_id'],
@ -361,29 +368,33 @@ class PresupuestoModel extends \App\Models\BaseModel
'created_at' => date('Y-m-d H:i:s', now()),
'updated_at' => date('Y-m-d H:i:s', now()),
'tirada_alternativa_json_data' => null,
'tirada_alternativa_json_data' => json_encode($tiradas_alternativas),
'total_presupuesto' => 0,
'total_coste_papel' => 0,
'total_margen_papel' => 0,
'total_margenPercent_papel' => 0,
'total_coste_impresion' => 0,
'total_margen_impresion' => 0,
'total_margenPercent_impresion' => 0,
'total_coste_servicios' => 0,
'total_margen_servicios' => 0,
'total_margenPercent_servicios' => 0,
'total_coste_envios' => 0,
'total_margen_envios' => 0,
'total_costes' => 0,
'total_margenes' => 0,
'total_antes_descuento' => 0,
'total_coste_papel' => round($resumen_totales['totalPapel'], 2),
'total_margen_papel' => round($resumen_totales['margenPapel'], 2),
'total_margenPercent_papel' => round($resumen_totales['porcentajeMargenPapel'], 0),
'total_coste_impresion' => round($resumen_totales['totalImpresion'], 2),
'total_margen_impresion' => round($resumen_totales['margenImpresion'], 2),
'total_margenPercent_impresion' => round($resumen_totales['porcentajeMargenImpresion'], 0),
'total_coste_servicios' => round($resumen_totales['totalServicios'], 2),
'total_margen_servicios' => round($resumen_totales['margenServicios'], 2),
'total_margenPercent_servicios' => round($resumen_totales['porcentajeMargenServicios'], 2),
'total_coste_envios' => round($resumen_totales['coste_envio'], 2),
'total_margen_envios' => round($resumen_totales['margen_envio'], 2),
'total_costes' => round($totalCostes, 2),
'total_margenes' => round($totalMargenes, 2),
'total_antes_descuento' => round($totalCostes + $totalMargenes, 2),
'total_descuento' => 0,
'total_descuentoPercent' => 0,
'total_precio_unidad' => 0,
'total_factor' => 0,
'total_factor_ponderado' => 0,
'total_precio_unidad' => round(($totalCostes + $totalMargenes)/$tirada, 4),
'total_presupuesto' => round($totalCostes + $totalMargenes, 2),
'total_factor' => round(($totalCostes + $totalMargenes-$resumen_totales['coste_envio']-$resumen_totales['margen_envio'])/$resumen_totales['sumForFactor'], 2),
'total_factor_ponderado' => round(($totalCostes + $totalMargenes-$resumen_totales['coste_envio']-$resumen_totales['margen_envio'])/$resumen_totales['sumForFactorPonderado'], 2),
'iva_reducido' => $iva_reducido,
];

View File

@ -19,7 +19,7 @@ class PresupuestoServiciosExtraModel extends \App\Models\BaseModel
2 => "t1.precio_total"
];
protected $allowedFields = ["presupuesto_id", "tarifa_extra_id", "nombre", "precio_total", "precio_unidad", "margen"];
protected $allowedFields = ["presupuesto_id", "tarifa_extra_id", "precio_total", "precio_unidad", "margen"];
protected $returnType = "App\Entities\Presupuestos\PresupuestoServiciosExtraEntity";
protected $useTimestamps = true;