Files
wticreatorstudio/Modules/StaffPayroll/Http/Controllers/API/InvoiceSettingController.php
T
2024-02-12 22:54:20 -05:00

49 lines
1.3 KiB
PHP

<?php
namespace Modules\StaffPayroll\Http\Controllers\API;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Storage;
use Modules\StaffPayroll\Entities\InvoiceSetting;
use Modules\StaffPayroll\Transformers\InvoiceSettingResource;
class InvoiceSettingController extends Controller
{
public function index()
{
$invoiceSettings = InvoiceSetting::all();
return InvoiceSettingResource::collection($invoiceSettings);
}
public function updateOrCreate(Request $request)
{
$validated = $request->validate([
'logo' => ['sometimes', 'image'],
'start_invoice_number' => ['required', 'integer'],
'roles' => ['required']
]);
if ($request->hasFile('logo')) {
$validated['logo'] = Storage::disk('public')->put("Logo", $request->file('logo'));
}
$validated['roles'] = explode(',', $validated['roles']);
foreach ($validated as $key => $value) {
InvoiceSetting::updateOrCreate(
[
'name' => $key
],
[
'value' => is_array($value) ? json_encode($value) : $value
]
);
}
return response()->noContent();
}
}