bug fixed

This commit is contained in:
2026-06-17 14:05:44 +03:30
parent c3b868c6b5
commit 34298d3bc5
2 changed files with 33 additions and 5 deletions
+31 -3
View File
@@ -430,16 +430,44 @@ class Controller extends BaseController
return 'گرم';
}
/** مطابق ادمین: وزن «دارد» => amount != 1 ؛ «ندارد» => amount = 1 */
/** مطابق ادمین: وزن «دارد» => amount > 0 ؛ «ندارد» => amount = 0 */
public static function isMeltedTradeGroup(?string $groupType): bool
{
$group = trim((string) $groupType);
return in_array($group, ['آبشده', 'کاتد مس'], true);
}
public static function hasProductUnitWeight(?array $product): bool
{
if (!$product || !isset($product['amount'])) {
return false;
}
$amount = (float) $product['amount'];
if (self::isMeltedTradeGroup($product['group_type'] ?? null)) {
return false;
}
return $amount > 0 && $amount !== 1.0;
return (float) $product['amount'] > 0;
}
/** ضریب قیمت محصول — بدون وزن قطعه همیشه ۱ */
public static function productPriceMultiplier($product): float
{
$payload = is_array($product) ? $product : [
'amount' => is_object($product) ? ($product->amount ?? null) : null,
'unit' => is_object($product) ? ($product->unit ?? null) : null,
'direct_price' => is_object($product) ? ($product->direct_price ?? null) : null,
'group_type' => is_object($product) ? ($product->group_type ?? null) : null,
];
if (!self::hasProductUnitWeight($payload)) {
return 1.0;
}
$amount = (float) ($payload['amount'] ?? 0);
return $amount > 0 ? $amount : 1.0;
}
public function jibitNcode($nationalCode, $mobile)