mirror of
https://github.com/Bigherollc/wticreatorstudio.git
synced 2026-08-04 00:16:08 -04:00
54 lines
1.5 KiB
PHP
54 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Modules\StaffPayroll\Http\Controllers\API;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Routing\Controller;
|
|
use Modules\StaffPayroll\Entities\Payout;
|
|
use Modules\StaffPayroll\Entities\Invoice;
|
|
use Illuminate\Contracts\Support\Renderable;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Modules\JobPortal\Entities\VendorPayout;
|
|
use Modules\StaffPayroll\Services\InvoiceAmountResponseService;
|
|
use Modules\StaffPayroll\Services\InvoiceService;
|
|
|
|
class InvoicePayoutController extends Controller
|
|
{
|
|
public function store(Request $request, Invoice $invoice)
|
|
{
|
|
try {
|
|
DB::beginTransaction();
|
|
$invoice = $invoice->load('items.incentive');
|
|
$amount = InvoiceAmountResponseService::amountFloat((new InvoiceService)->getInvoiceAmount($invoice));
|
|
|
|
$data = [
|
|
'vendor_id' => $invoice->user_id,
|
|
'invoice_id' => $invoice->id,
|
|
'total' => $amount,
|
|
'status' => VendorPayout::PENDING,
|
|
'create_user' => auth()->id()
|
|
];
|
|
|
|
VendorPayout::updateOrCreate(
|
|
[
|
|
'invoice_id' => $invoice->id
|
|
],
|
|
$data
|
|
);
|
|
|
|
DB::commit();
|
|
return response()->noContent();
|
|
} catch (\Exception $ex) {
|
|
DB::rollBack();
|
|
throw new \Exception($ex->getMessage());
|
|
}
|
|
}
|
|
|
|
public function destroy(Invoice $invoice)
|
|
{
|
|
$invoice->payout()->delete();
|
|
|
|
return response()->noContent();
|
|
}
|
|
}
|