fix: poids et temps sont ceux du plateau entier, divisés par pièces/plateau
Deploy via Portainer / deploy (push) Successful in 0s

This commit is contained in:
Jo
2026-07-06 20:12:21 +02:00
parent 614ea23a7c
commit 0c9e04b6e7
+10 -7
View File
@@ -244,17 +244,20 @@ def calc(weight_g, print_time_s, design_mult, gross_margin_pct, discount_pct,
if pieces_per_plate < 1:
pieces_per_plate = 1
price_kg = price_per_kg_override if price_per_kg_override is not None else s['filament_price_per_kg']
mat = (price_kg / 1000) * weight_g
# weight_g et print_time_s = valeurs PLATEAU complet (Bambu Studio)
# Tous les coûts sont ramenés à la pièce en divisant par pieces_per_plate
price_kg = price_per_kg_override if price_per_kg_override is not None else s['filament_price_per_kg']
weight_per_piece = weight_g / pieces_per_plate
mat = (price_kg / 1000) * weight_per_piece
mat_margin = mat * (s['material_margin_pct'] / 100)
design = mat * design_mult
# Manutention divisée par le nombre de pièces sur le plateau
# Manutention, usure et élec divisées par pièces/plateau
handling = (s['handling_rate_per_hour'] / 60) * s['handling_minutes_per_plate'] / pieces_per_plate
printer_w = (s['printer_price'] / (s['printer_lifespan_hours'] * 3600)) * print_time_s
nozzle_w = (s['nozzle_price'] / (s['nozzle_lifespan_hours'] * 3600)) * print_time_s
plate_w = (s['plate_price'] / (s['plate_lifespan_hours'] * 3600)) * print_time_s
printer_w = (s['printer_price'] / (s['printer_lifespan_hours'] * 3600)) * print_time_s / pieces_per_plate
nozzle_w = (s['nozzle_price'] / (s['nozzle_lifespan_hours'] * 3600)) * print_time_s / pieces_per_plate
plate_w = (s['plate_price'] / (s['plate_lifespan_hours'] * 3600)) * print_time_s / pieces_per_plate
wear = printer_w + nozzle_w + plate_w
elec = s['printer_power_kw'] * (print_time_s / 3600) * s['electricity_price_kwh']
elec = s['printer_power_kw'] * (print_time_s / 3600) * s['electricity_price_kwh'] / pieces_per_plate
cout_fixe = mat + mat_margin + wear + elec
sous_total = cout_fixe + handling + design