fixed taraz for all metals

This commit is contained in:
2026-06-23 20:35:13 +03:30
parent c7638918ff
commit 147a968179
5 changed files with 266 additions and 12 deletions
@@ -10,6 +10,7 @@ use App\Models\Price;
use App\Models\Product;
use App\Models\TransactionsAdmin;
use App\Models\Withdraw;
use App\Services\BalanceReportService;
use App\Services\ConfigService;
use Carbon\Carbon;
use Hekmatinasser\Verta\Verta;
@@ -149,7 +150,7 @@ class DashboardController extends Controller
return $cnt;
}
public function getBalance(Request $request)
public function getBalance(Request $request, BalanceReportService $balanceReportService)
{
$startDate = Carbon::parse($request->startDate)->startOfDay();
$endDate = Carbon::parse($request->endDate)->endOfDay();
@@ -158,6 +159,12 @@ class DashboardController extends Controller
$response["kalhor"]=[];
$excludeCustomerId = (int) app(ConfigService::class)->getInt('balance_report_exclude_customer_id', 4);
$catalogMetalIds = $balanceReportService->catalogMetalIds();
if ($catalogMetalIds === []) {
$catalogMetalIds = [1];
}
$limanMetalBuckets = $balanceReportService->initMetalBalanceBuckets($catalogMetalIds);
$kalhorMetalBuckets = $balanceReportService->initMetalBalanceBuckets($catalogMetalIds);
$response["pay_at_update"] = Order::whereNull('pay_at')->update(['pay_at' => DB::raw('created_at')]);
//liman
@@ -171,6 +178,8 @@ class DashboardController extends Controller
$response["liman"]["balance_abs"]["gold"] = 0;
$response["liman"]["balance_abs"]["cash"] = 0;
foreach ($response["liman"]["orders"] as $OrderGoldBalanceRow) {
$balanceReportService->applyOrderToBuckets($limanMetalBuckets, $OrderGoldBalanceRow);
if ($OrderGoldBalanceRow->direction == 1){
$response["liman"]["balance"]["gold"] += $OrderGoldBalanceRow->amount;
$response["liman"]["balance"]["cash"] -= $OrderGoldBalanceRow->total_price;
@@ -212,10 +221,22 @@ class DashboardController extends Controller
$response["kalhor"]["balance"]['gold'] += $data['Count'];
$response["kalhor"]["balance"]['cash'] -= $data['TotalPrice'];
$direction =2;
$balanceReportService->applyKalhorSlice(
$kalhorMetalBuckets,
(float) $data['Count'],
(float) $data['TotalPrice'],
2
);
} elseif ($data['DealTypeStr'] == "فروش" or $data['DealTypeStr'] == "فروش _ دستی") {
$response["kalhor"]["balance"]['gold'] -= $data['Count'];
$response["kalhor"]["balance"]['cash'] += $data['TotalPrice'];
$direction =1;
$balanceReportService->applyKalhorSlice(
$kalhorMetalBuckets,
(float) $data['Count'],
(float) $data['TotalPrice'],
1
);
}
$response["kalhor"]["balance_abs"]['gold'] += $data['Count'];
$response["kalhor"]["balance_abs"]['cash'] += $data['TotalPrice'];
@@ -244,6 +265,12 @@ class DashboardController extends Controller
//main
$response['cashBalance']= -$response["liman"]["balance"]["cash"]+$response["kalhor"]["balance"]["cash"];
$response['goldBalance']= -$response["liman"]["balance"]["gold"]+$response["kalhor"]["balance"]["gold"];
$metalBalances = $balanceReportService->buildMetalBalancesResponse($limanMetalBuckets, $kalhorMetalBuckets);
$response['metalBalances'] = $metalBalances['items'];
if (!empty($metalBalances['items'])) {
$response['goldBalance'] = $metalBalances['totalGoldBalance'];
}
//mazaneh
$changeMesghal = config('change_mesghal');