refactor: standardize material usage and remaining material precision to two decimal places across CuttingService and related components for improved consistency
This commit is contained in:
parent
0ad8c919ad
commit
13f2c6d745
@ -284,12 +284,12 @@ public function syncDraftMaterial(array $validated, User $user): array
|
||||
->findOrFail($validated['raw_material_price_id']);
|
||||
|
||||
$unit = $price->rawMaterial?->unit;
|
||||
$usageInput = round((float) $validated['material_usage'], 4);
|
||||
$remainingInput = round((float) $validated['remaining_material'], 4);
|
||||
$usageInput = round((float) $validated['material_usage'], 2);
|
||||
$remainingInput = round((float) $validated['remaining_material'], 2);
|
||||
|
||||
if ($unit !== null && $unit->usesLengthUnit()) {
|
||||
$materialUsage = round($unit->fromCm($usageInput), 4);
|
||||
$remainingMaterial = round($unit->fromCm($remainingInput), 4);
|
||||
$materialUsage = round($unit->fromCm($usageInput), 2);
|
||||
$remainingMaterial = round($unit->fromCm($remainingInput), 2);
|
||||
} else {
|
||||
$materialUsage = $usageInput;
|
||||
$remainingMaterial = $remainingInput;
|
||||
@ -655,12 +655,12 @@ private function buildMaterials(array $materials): array
|
||||
}
|
||||
|
||||
$unit = $price->rawMaterial?->unit;
|
||||
$usageInput = round((float) $itemData['material_usage'], 4);
|
||||
$remainingInput = round((float) $itemData['remaining_material'], 4);
|
||||
$usageInput = round((float) $itemData['material_usage'], 2);
|
||||
$remainingInput = round((float) $itemData['remaining_material'], 2);
|
||||
|
||||
if ($unit !== null && $unit->usesLengthUnit()) {
|
||||
$materialUsage = round($unit->fromCm($usageInput), 4);
|
||||
$remainingMaterial = round($unit->fromCm($remainingInput), 4);
|
||||
$materialUsage = round($unit->fromCm($usageInput), 2);
|
||||
$remainingMaterial = round($unit->fromCm($remainingInput), 2);
|
||||
} else {
|
||||
$materialUsage = $usageInput;
|
||||
$remainingMaterial = $remainingInput;
|
||||
@ -898,10 +898,10 @@ private function presentDraftMaterial(CuttingMaterial $item): array
|
||||
|
||||
// Convert stored native unit back to cm for display
|
||||
if ($usesLengthUnit && $unit !== null) {
|
||||
$materialUsageCm = round($unit->toCm((float) $item->material_usage), 4);
|
||||
$remainingMaterialCm = round($unit->toCm((float) $item->remaining_material), 4);
|
||||
$materialUsageDisplay = rtrim(rtrim(number_format($materialUsageCm, 4, '.', ''), '0'), '.');
|
||||
$remainingMaterialDisplay = rtrim(rtrim(number_format($remainingMaterialCm, 4, '.', ''), '0'), '.');
|
||||
$materialUsageCm = round($unit->toCm((float) $item->material_usage), 2);
|
||||
$remainingMaterialCm = round($unit->toCm((float) $item->remaining_material), 2);
|
||||
$materialUsageDisplay = rtrim(rtrim(number_format($materialUsageCm, 2, '.', ''), '0'), '.');
|
||||
$remainingMaterialDisplay = rtrim(rtrim(number_format($remainingMaterialCm, 2, '.', ''), '0'), '.');
|
||||
} else {
|
||||
$materialUsageDisplay = $this->formatQuantityInput((float) $item->material_usage);
|
||||
$remainingMaterialDisplay = $this->formatQuantityInput((float) $item->remaining_material);
|
||||
@ -942,7 +942,7 @@ private function presentDraftResult(CuttingResult $item): array
|
||||
|
||||
private function formatQuantityInput(float $value): string
|
||||
{
|
||||
return rtrim(rtrim(number_format($value, 4, '.', ''), '0'), '.');
|
||||
return rtrim(rtrim(number_format($value, 2, '.', ''), '0'), '.');
|
||||
}
|
||||
|
||||
private function appendCostPreview(Cutting $cutting): void
|
||||
|
||||
@ -9,8 +9,8 @@
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('cutting_materials', function (Blueprint $table): void {
|
||||
$table->decimal('material_usage', 18, 4)->change();
|
||||
$table->decimal('remaining_material', 18, 4)->change();
|
||||
$table->decimal('material_usage', 18, 2)->change();
|
||||
$table->decimal('remaining_material', 18, 2)->change();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -313,7 +313,7 @@ async function decreaseMaterialQty(priceId: number) {
|
||||
return;
|
||||
}
|
||||
|
||||
const decrement = item.uses_length_unit ? 100 : 1;
|
||||
const decrement = 1;
|
||||
const nextQty = (Number(item.material_usage) || 0) - decrement;
|
||||
|
||||
if (nextQty <= 0) {
|
||||
@ -354,8 +354,8 @@ async function addMaterial(
|
||||
(item) => item.raw_material_price_id === price.id,
|
||||
);
|
||||
|
||||
const defaultUsage = usesLengthUnit(rawMaterial.unit) ? '100' : '1';
|
||||
const increment = usesLengthUnit(rawMaterial.unit) ? 100 : 1;
|
||||
const defaultUsage = '100';
|
||||
const increment = 1;
|
||||
const nextUsage = existing
|
||||
? String((Number(existing.material_usage) || 0) + increment)
|
||||
: defaultUsage;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user