added crud for form meeting & seminar

This commit is contained in:
Jagad R R
2024-12-19 10:51:27 +07:00
parent 24b9a82856
commit cd28280fb6
10 changed files with 622 additions and 7 deletions
@@ -42,7 +42,7 @@ class FormEntertainmentPresentationController extends Controller
'tanggal' => 'required',
'jenis' => 'required|in:entertainment,presentation,sponsorship',
'keterangan' => 'required',
'total' => 'required|integer',
'total' => 'required',
'name' => 'required',
'alamat' => 'required',
'nik_or_npwp' => 'required',
@@ -141,7 +141,7 @@ class FormEntertainmentPresentationController extends Controller
'tanggal' => 'required',
'jenis' => 'required|in:entertainment,presentation,sponsorship',
'keterangan' => 'required',
'total' => 'required|integer',
'total' => 'required',
'name' => 'required',
'alamat' => 'required',
'nik_or_npwp' => 'required',
@@ -155,7 +155,7 @@ class FormEntertainmentPresentationController extends Controller
$kategori = Kategori::where('name', 'Entertainment & Presentation')->first();
$filePaths = [];
$folderPath = '/expense/' . $region->code . '/' . $cabang->code . '/entertainment/';
$folderPath = '/expense/' . $region->code . '/' . $cabang->code . '/entertainment';
if ($request->hasFile('bukti1')) {
$bukti1 = $request->file('bukti1');
@@ -0,0 +1,217 @@
<?php
namespace App\Http\Controllers\Forms;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\FormMeetingSeminar;
use App\Models\Rayon;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
use App\Models\Region;
use App\Models\Cabang;
use App\Models\UserHasCabang;
use App\Models\Kategori;
use App\Helpers\NextCloudHelper;
use Illuminate\Support\Str;
class FormMeetingSeminarController extends Controller
{
public function index()
{
$this->checkAuthorization(auth()->user(), ['forms.meeting.view']);
$forms = FormMeetingSeminar::where('user_id', auth()->user()->id)->get();
return view('backend.pages.forms.meeting.index', [
'forms' => $forms
]);
}
public function create()
{
$this->checkAuthorization(auth()->user(), ['forms.meeting.create']);
return view('backend.pages.forms.meeting.create');
}
public function store(Request $request)
{
$this->checkAuthorization(auth()->user(), ['forms.meeting.create']);
$request->validate([
'allowance' => 'required',
'transport_ankot' => 'required',
'hotel' => 'required',
'total' => 'required',
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
'bukti2' => 'nullable|file|mimes:xlsx,xls,csv',
'bukti3' => 'nullable|file|mimes:pdf',
]);
$cabang = UserHasCabang::with('cabang')->where('user_id', auth()->user()->id)->first()->cabang;
$region = Region::where('id', $cabang->region_id)->first();
$kategori = Kategori::where('name', 'Meeting & Seminar')->first();
$filePaths = [];
$folderPath = '/expense/' . $region->code . '/' . $cabang->code . '/meeting';
if ($request->hasFile('bukti1')) {
$bukti1 = $request->file('bukti1');
$filename = Str::uuid() . '.' . $bukti1->extension();
$filePaths['bukti1'] = $folderPath . '/' . $filename;
NextCloudHelper::uploadFile(
$folderPath,
$bukti1->getContent(),
$filename
);
}
if ($request->hasFile('bukti2')) {
$bukti2 = $request->file('bukti2');
$filename = Str::uuid() . '.' . $bukti2->extension();
$filePaths['bukti2'] = $folderPath . '/' . $filename;
NextCloudHelper::uploadFile(
$folderPath,
$bukti2->getContent(),
$filename
);
}
if ($request->hasFile('bukti3')) {
$bukti3 = $request->file('bukti3');
$filename = Str::uuid() . '.' . $bukti3->extension();
$filePaths['bukti3'] = $folderPath . '/' . $filename;
NextCloudHelper::uploadFile(
$folderPath,
$bukti3->getContent(),
$filename
);
}
// Generate sequence number and expense number
$sequence_number = FormMeetingSeminar::withTrashed()->where('expense_number', 'like', $region->code . '-' . $cabang->code . '-MTG-' . date('ym') . '%')->count() + 1;
$formatted_sequence_number = str_pad($sequence_number, 4, '0', STR_PAD_LEFT);
$expense_number = $region->code . '-' . $cabang->code . '-MTG-' . date('ym') . $formatted_sequence_number;
// Save the form data
FormMeetingSeminar::create([
'expense_number' => $expense_number,
'user_id' => auth()->user()->id,
'allowance' => $request->allowance,
'transport_ankot' => $request->transport_ankot,
'hotel' => $request->hotel,
'total' => $request->total,
'bukti1' => $filePaths['bukti1'] ?? null,
'bukti2' => $filePaths['bukti2'] ?? null,
'bukti3' => $filePaths['bukti3'] ?? null,
'account_number' => $kategori->account_number,
'status' => 'On Progress',
]);
session()->flash('success', 'Form has been created.');
return redirect()->route('forms.meeting');
}
public function edit($id)
{
$this->checkAuthorization(auth()->user(), ['forms.meeting.edit']);
$form = FormMeetingSeminar::findOrfail($id);
return view('backend.pages.forms.meeting.edit', [
'form' => $form
]);
}
public function update(Request $request, $id)
{
$this->checkAuthorization(auth()->user(), ['forms.meeting.edit']);
$request->validate([
'allowance' => 'required',
'transport_ankot' => 'required',
'hotel' => 'required',
'total' => 'required',
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
'bukti2' => 'nullable|file|mimes:xlsx,xls,csv',
'bukti3' => 'nullable|file|mimes:pdf',
]);
$cabang = UserHasCabang::with('cabang')->where('user_id', auth()->user()->id)->first()->cabang;
$region = Region::where('id', $cabang->region_id)->first();
$kategori = Kategori::where('name', 'Meeting & Seminar')->first();
$filePaths = [];
$folderPath = '/expense/' . $region->code . '/' . $cabang->code . '/meeting';
if ($request->hasFile('bukti1')) {
$bukti1 = $request->file('bukti1');
$filename = Str::uuid() . '.' . $bukti1->extension();
$filePaths['bukti1'] = $folderPath . '/' . $filename;
NextCloudHelper::uploadFile(
$folderPath,
$bukti1->getContent(),
$filename
);
}
if ($request->hasFile('bukti2')) {
$bukti2 = $request->file('bukti2');
$filename = Str::uuid() . '.' . $bukti2->extension();
$filePaths['bukti2'] = $folderPath . '/' . $filename;
NextCloudHelper::uploadFile(
$folderPath,
$bukti2->getContent(),
$filename
);
}
if ($request->hasFile('bukti3')) {
$bukti3 = $request->file('bukti3');
$filename = Str::uuid() . '.' . $bukti3->extension();
$filePaths['bukti3'] = $folderPath . '/' . $filename;
NextCloudHelper::uploadFile(
$folderPath,
$bukti3->getContent(),
$filename
);
}
// Save the form data
$form = FormMeetingSeminar::findOrfail($id);
$form->update([
'allowance' => $request->allowance,
'transport_ankot' => $request->transport_ankot,
'hotel' => $request->hotel,
'total' => $request->total,
'bukti1' => $filePaths['bukti1'] ?? $form->bukti1,
'bukti2' => $filePaths['bukti2'] ?? $form->bukti2,
'bukti3' => $filePaths['bukti3'] ?? $form->bukti3,
'account_number' => $kategori->account_number,
'status' => 'On Progress',
]);
session()->flash('success', 'Form has been updated.');
return redirect()->route('forms.meeting');
}
public function destroy($id)
{
$this->checkAuthorization(auth()->user(), ['forms.meeting.delete']);
$form = FormMeetingSeminar::findOrfail($id);
$form->delete();
session()->flash('success', 'Form has been deleted.');
return redirect()->route('forms.meeting');
}
}
@@ -60,7 +60,7 @@ class FormUpCountryController extends Controller
$kategori = Kategori::where('name', 'Up Country')->first();
$filePaths = [];
$folderPath = '/expense/' . $region->code . '/' . $cabang->code . '/upcountry/';
$folderPath = '/expense/' . $region->code . '/' . $cabang->code . '/upcountry';
if ($request->hasFile('bukti1')) {
$bukti1 = $request->file('bukti1');
@@ -164,7 +164,7 @@ class FormUpCountryController extends Controller
$kategori = Kategori::where('name', 'Up Country')->first();
$filePaths = [];
$folderPath = '/expense/' . $region->code . '/' . $cabang->code . '/upcountry/';
$folderPath = '/expense/' . $region->code . '/' . $cabang->code . '/upcountry';
if ($request->hasFile('bukti1')) {
$bukti1 = $request->file('bukti1');
@@ -56,7 +56,7 @@ class FormVehicleController extends Controller
$kategori = Kategori::where('name', 'Vehicle Running Cost')->first();
$filePaths = [];
$folderPath = '/expense/' . $region->code . '/' . $cabang->code . '/vehicle/';
$folderPath = '/expense/' . $region->code . '/' . $cabang->code . '/vehicle';
if ($request->hasFile('bukti1')) {
$bukti1 = $request->file('bukti1');
@@ -155,7 +155,7 @@ class FormVehicleController extends Controller
$kategori = Kategori::where('name', 'Vehicle Running Cost')->first();
$filePaths = [];
$folderPath = '/expense/' . $region->code . '/' . $cabang->code . '/vehicle/';
$folderPath = '/expense/' . $region->code . '/' . $cabang->code . '/vehicle';
if ($request->hasFile('bukti1')) {
$bukti1 = $request->file('bukti1');