You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
4.3 KiB
90 lines
4.3 KiB
<?php |
|
|
|
namespace App\Http\Controllers; |
|
|
|
use App\Exports\StokOpNameExport; |
|
use App\Models\Peti; |
|
use App\Models\asset_status; |
|
use Illuminate\Http\Request; |
|
use Illuminate\Support\Facades\DB; |
|
use Maatwebsite\Excel\Facades\Excel; |
|
|
|
class StokOpNameController extends Controller |
|
{ |
|
public function index() |
|
{ |
|
// Total Peti Berdasarkan Gudang |
|
$gudangStokOpnames = Peti::with('customer', 'tipe_peti', 'warehouse') |
|
->where('status', 'AKTIF') // Menambahkan kondisi untuk status Aktif |
|
->select('customer_id', 'tipe_peti_id', 'warehouse_id', DB::raw('COUNT(*) as total_petis')) |
|
->groupBy('customer_id', 'tipe_peti_id', 'warehouse_id') |
|
->get(); |
|
|
|
// Total Peti Berdasarkan Tanggal Sekarang |
|
$todayStokOpnames = Peti::with('customer', 'tipe_peti') |
|
->where('status', 'AKTIF') // Menambahkan kondisi untuk status Aktif |
|
->select('customer_id', 'tipe_peti_id', DB::raw('COUNT(*) as total_petis')) |
|
->whereDate('created_at', today()) |
|
->groupBy('customer_id', 'tipe_peti_id') |
|
->get(); |
|
|
|
// Total Peti Berdasarkan Tanggal Sebelum Tanggal Sekarang |
|
$yesterdayStokOpnames = Peti::with('customer', 'tipe_peti') |
|
->where('status', 'AKTIF') // Menambahkan kondisi untuk status Aktif |
|
->select('customer_id', 'tipe_peti_id', DB::raw('COUNT(*) as total_petis')) |
|
->whereDate('created_at', '<', today()) // Mendapatkan data sebelum tanggal hari ini |
|
->groupBy('customer_id', 'tipe_peti_id') |
|
->get(); |
|
|
|
// Total Peti |
|
$stokOpnames = Peti::with('customer', 'tipe_peti') |
|
->where('status', 'AKTIF') // Menambahkan kondisi untuk status Aktif |
|
->select('customer_id', 'tipe_peti_id', DB::raw('COUNT(*) as total_petis')) |
|
->groupBy('customer_id', 'tipe_peti_id') |
|
->get(); |
|
|
|
$data = [ |
|
'stokOpnames' => $stokOpnames, |
|
'todayStokOpnames' => $todayStokOpnames, // tambahin ini di array data 'todayStokOpnames' => $todayStokOpnames, |
|
'yesterdayStokOpnames' => $yesterdayStokOpnames, // tambahin ini di array data 'yesterdayStokOpnames' => $yesterdayStokOpnames, |
|
'gudangStokOpnames' => $gudangStokOpnames, // tambahin ini di array data 'gudangStokOpnames' => $gudangStokOpnames, |
|
'active' => 'menu-Stok_Opname' |
|
]; |
|
return view('dashboard.Master_Data.Report.Stok_opname.index', $data); |
|
} |
|
|
|
public function export() |
|
{ |
|
//total peti |
|
$stokOpnames = Peti::withTrashed()->with('customer', 'tipe_peti') |
|
->where('status', 'AKTIF') // Menambahkan kondisi untuk status Aktif |
|
->select('customer_id', 'tipe_peti_id', DB::raw('COUNT(*) as total_petis')) |
|
->groupBy('customer_id', 'tipe_peti_id') |
|
->get(); |
|
|
|
// Total Peti Berdasarkan Tanggal Sekarang |
|
$todayStokOpnames = Peti::withTrashed()->with('customer', 'tipe_peti') |
|
->where('status', 'AKTIF') // Menambahkan kondisi untuk status Aktif |
|
->select('customer_id', 'tipe_peti_id', DB::raw('COUNT(*) as total_petis')) |
|
->whereDate('created_at', today()) |
|
->groupBy('customer_id', 'tipe_peti_id') |
|
->get(); |
|
|
|
// Total Peti Berdasarkan Tanggal Sebelum Tanggal Sekarang |
|
$yesterdayStokOpnames = Peti::withTrashed()->with('customer', 'tipe_peti') |
|
->where('status', 'AKTIF') // Menambahkan kondisi untuk status Aktif |
|
->select('customer_id', 'tipe_peti_id', DB::raw('COUNT(*) as total_petis')) |
|
->whereDate('created_at', '<', today()) // Mendapatkan data sebelum tanggal hari ini |
|
->groupBy('customer_id', 'tipe_peti_id') |
|
->get(); |
|
|
|
// Total Peti Berdasarkan Gudang |
|
$gudangStokOpnames = Peti::withTrashed()->with('customer', 'tipe_peti', 'warehouse') |
|
->where('status', 'AKTIF') // Menambahkan kondisi untuk status Aktif |
|
->select('customer_id', 'tipe_peti_id', 'warehouse_id', DB::raw('COUNT(*) as total_petis')) |
|
->groupBy('customer_id', 'tipe_peti_id', 'warehouse_id') |
|
->get(); |
|
|
|
return Excel::download(new StokOpNameExport($stokOpnames, $todayStokOpnames, $yesterdayStokOpnames, $gudangStokOpnames), 'stok_opname.xlsx'); |
|
} |
|
}
|
|
|