One Hat Cyber Team
Your IP :
3.139.103.152
Server IP :
104.21.80.1
Server :
Linux agrigation-prod 5.15.0-67-generic #74-Ubuntu SMP Wed Feb 22 14:14:39 UTC 2023 x86_64
Server Software :
nginx/1.24.0
PHP Version :
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
forge
/
app.gftag.com
/
app
/
Http
/
Controllers
/
Edit File:
StockController.php
<?php namespace App\Http\Controllers; use App\Models\Item; use Illuminate\Http\Request; use App\Models\DailyTransaction; use Illuminate\Support\Facades\DB; use App\Services\OrganisationService; class StockController extends Controller { public function stockReport(Request $request) { $organisationService = new OrganisationService(); $org_id = $organisationService->getOrganisationByUser(); $items = Item::where('organisation_id', $org_id)->where('type', 'product')->get(); $stockItems = []; if($request->has('item') && $request->has('start_date') && $request->has('end_date')) { $stockItems = []; if($request->item != "All") { $sitems = Item::where('organisation_id', $org_id)->where('id', $request->item)->get(); }else{ $sitems = $items; } foreach($sitems as $item) { $stockItems[$item->id]['name'] = $item->name; $stockItems[$item->id]['opening'] = 0; $stockItems[$item->id]['increase'] = 0; $stockItems[$item->id]['decrease'] = 0; $stockItems[$item->id]['transit'] = 0; $stockItems[$item->id]['sale'] = 0; $stockItems[$item->id]['closing'] = 0; } $stockItems = $this->getOpeningStock($org_id , $request->start_date, $stockItems); $sql = "SELECT item_id, transaction_type, quantity FROM transactions WHERE organisation_id = $org_id"; if($request->item != "All") { $sql.=" AND item_id = '".$request->item."'"; } if($request->start_date != "" && $request->end_date != ""){ $sql.=" AND transaction_date BETWEEN '".$request->start_date."' AND '".$request->end_date."' "; } $result = DB::select($sql); foreach($result as $transaction) { if($transaction->transaction_type == 'increase') { $stockItems[$transaction->item_id]['increase'] = $stockItems[$transaction->item_id]['increase'] + $transaction->quantity; } if($transaction->transaction_type == 'decrease') { $stockItems[$transaction->item_id]['decrease'] = $stockItems[$transaction->item_id]['decrease'] + $transaction->quantity; } if($transaction->transaction_type == 'transit') { $stockItems[$transaction->item_id]['transit'] = $stockItems[$transaction->item_id]['transit'] + $transaction->quantity; } if($transaction->transaction_type == 'sale') { $stockItems[$transaction->item_id]['sale'] = $stockItems[$transaction->item_id]['sale'] + $transaction->quantity; } } } return view('stock.report', [ 'items' => $items, 'stockItems' => $stockItems, 'request' => $request->all() ]); } public function getOpeningStock($org_id , $date, $stockItems) { $date = date('Y-m-d', strtotime('-1 day', strtotime($date))); $sql = "SELECT item_id,sum(balance) AS balance FROM daily_transactions WHERE organisation_id = $org_id AND transaction_date <= '".$date."' GROUP BY item_id"; $result = DB::select($sql); $items = []; foreach($result as $item) { if(isset($stockItems[$item->item_id])) { $stockItems[$item->item_id]['opening'] = $item->balance; } } return $stockItems; } }
Simpan