get_class($query)
]);
// Gunakan query builder DB langsung untuk memastikan data diambil
$purchases = DB::table('purchases')
->select([
'purchases.id',
'purchases.date',
'purchases.reference_no',
'purchases.supplier_id',
'purchases.total',
'purchases.paid_amount',
'purchases.due_amount',
'purchases.payment_status',
'suppliers.supplier_name as supplier_name'
])
->leftJoin('suppliers', 'purchases.supplier_id', '=', 'suppliers.id')
->get();
Log::info('Direct DB Query Results', [
'count' => $purchases->count(),
'data' => $purchases->take(3)->toArray()
]);
return datatables()
->of($purchases)
->addColumn('action', function ($data) {
return view('purchase::partials.actions', [
'id' => $data->id
]);
})
->editColumn('total', function ($data) {
return format_currency($data->total / 100);
})
->editColumn('paid_amount', function ($data) {
return format_currency($data->paid_amount / 100);
})
->editColumn('due_amount', function ($data) {
return format_currency($data->due_amount / 100);
})
->editColumn('payment_status', function ($data) {
return view('purchase::partials.payment-status', [
'payment_status' => $data->payment_status
]);
})
->rawColumns(['action', 'payment_status']);
}
public function query(Purchase $model)
{
$branch_id = session('branch_id');
$query = $model->newQuery()
->when($branch_id, function($q) use ($branch_id) {
return $q->where('branch_id', $branch_id);
});
return $query;
}
public function html()
{
return $this->builder()
->setTableId('purchases-table')
->columns($this->getColumns())
->minifiedAjax()
->dom("<'row'<'col-md-3'l><'col-md-5 mb-2'B><'col-md-4'f>> .
'tr' .
<'row'<'col-md-5'i><'col-md-7 mt-2'p>>")
->orderBy(0)
->buttons(
Button::make('excel')
->text(' Excel'),
Button::make('print')
->text(' Print'),
Button::make('reset')
->text(' Reset'),
Button::make('reload')
->text(' Reload')
);
}
protected function getColumns()
{
return [
Column::make('date')
->title('Date')
->className('text-center align-middle'),
Column::make('reference_no')
->title('Reference')
->className('text-center align-middle'),
Column::make('supplier_name')
->title('Supplier')
->className('text-center align-middle'),
Column::make('payment_status')
->title('Payment Status')
->className('text-center align-middle'),
Column::make('total')
->title('Total')
->className('text-center align-middle'),
Column::make('paid_amount')
->title('Paid')
->className('text-center align-middle'),
Column::make('due_amount')
->title('Due')
->className('text-center align-middle'),
Column::computed('action')
->title('Action')
->exportable(false)
->printable(false)
->className('text-center align-middle')
->addClass('text-center'),
];
}
protected function filename(): string {
return 'Purchase_' . date('YmdHis');
}
}