PATH:
home
/
rwabteecom
/
project_11
/
app
/
Datatables
/
Editing: InvoicesDatatables.php
<?php namespace App\Datatables; use App\Interfaces\DatatableInterface; use App\Models\Invoice; use Illuminate\Http\Request; use Mcamara\LaravelLocalization\Facades\LaravelLocalization; use Yajra\DataTables\Facades\DataTables; class InvoicesDatatables implements DatatableInterface { public static function columns(): array { return [ "invoice_number", "user" => ["user.name"], "planTitle" => ["userPlan.title->" . LaravelLocalization::getCurrentLocale()], "price", "payment_status", "created_at", ]; } public function datatables(Request $request) { return Datatables::of($this->query($request)) ->addColumn("user", function (Invoice $invoice) { return $invoice->user->name; }) ->addColumn("planTitle", function (Invoice $invoice) { return $invoice->userPlan?->title; }) ->addColumn("created_at", function (Invoice $invoice) { return $invoice->created_at->format("Y-m-d"); }) ->addColumn("payment_status", function (Invoice $invoice) { if ($invoice->is_paid) { return "<span class='badge badge-success'>" . __('Paid') ."</span>"; } else { return "<span class='badge badge-danger'>" . __('Not Paid') ."</span>"; } }) ->addColumn("actions", function (Invoice $invoice) { return (new DataTableActions()) ->show(route("admin.invoices.show", $invoice->id)) ->make(); }) ->rawColumns(["actions", "payment_status"]) ->make(true); } public function query(Request $request) { return Invoice::query() ->with(["user", "userPlan"]) ->when(request()->filled("status") && request()->input("status") == "paid", function ($query) { return $query->where("is_paid", 1); }) ->when(request()->filled("status") && request()->input("status") == "not-paid", function ($query) { return $query->where("is_paid", 0); }) ->latest("invoices.created_at") ->select("invoices.*"); } }
SAVE
CANCEL