feat : setelah create data bisa langsung print

This commit is contained in:
Yoga Pangestu 2024-12-23 19:03:04 +07:00
parent 65a02c7c6c
commit 41f3d0d642
3 changed files with 27 additions and 5 deletions

View File

@ -44,14 +44,18 @@ public function create(): View
]); ]);
} }
public function store(TransactionRequest $request): RedirectResponse public function store(TransactionRequest $request): View
{ {
$validatedData = $request->validated(); $validatedData = $request->validated();
$findCustomer = Customer::find($validatedData['customer']); $findCustomer = Customer::find($validatedData['customer']);
DB::transaction(function () use ($validatedData, $findCustomer) {
$newTransaction = null;
DB::transaction(function () use ($validatedData, $findCustomer, &$newTransaction) {
$customer = null; $customer = null;
$userId = Auth::id(); $userId = Auth::id();
$barbershopId = Auth::user()->barbershop_id; $barbershopId = Auth::user()->barbershop_id;
if (! $findCustomer) { if (! $findCustomer) {
$customer = Customer::create([ $customer = Customer::create([
'user_id' => $userId, 'user_id' => $userId,
@ -59,20 +63,33 @@ public function store(TransactionRequest $request): RedirectResponse
'name' => $validatedData['customer'], 'name' => $validatedData['customer'],
]); ]);
} }
$newTransaction = Transaction::create(array_merge($validatedData, [ $newTransaction = Transaction::create(array_merge($validatedData, [
'user_id' => $validatedData['barber'], 'user_id' => $validatedData['barber'],
'barbershop_id' => $barbershopId, 'barbershop_id' => $barbershopId,
'service_id' => $validatedData['service'], 'service_id' => $validatedData['service'],
'customer_id' => $customer ? $customer->id : $validatedData['customer'], 'customer_id' => $customer ? $customer->id : $validatedData['customer'],
])); ]));
if (isset($validatedData['image'])) { if (isset($validatedData['image'])) {
$this->uploadAttachment($validatedData['image'], 'transactions', Transaction::class, $newTransaction->id, 'transaction'); $this->uploadAttachment($validatedData['image'], 'transactions', Transaction::class, $newTransaction->id, 'transaction');
} }
}); });
if (! $newTransaction) {
notify()->error('Transaction could not be created', 'Error');
return redirect()->back();
}
$transactionData = $newTransaction->load(['user', 'user.biography', 'customer', 'service', 'barbershop']);
notify()->success('Data berhasil ditambahkan', 'Berhasil'); notify()->success('Data berhasil ditambahkan', 'Berhasil');
return redirect('dashboard/manage/transactions'); return view('pages.admin.manage.transaction.print', [
'transaction' => $transactionData,
'url' => route('manage.transactions'),
]);
} }
public function edit(Transaction $transaction): View public function edit(Transaction $transaction): View
@ -140,6 +157,7 @@ public function print(Transaction $transaction): View
{ {
return view('pages.admin.manage.transaction.print', [ return view('pages.admin.manage.transaction.print', [
'transaction' => $transaction->load(['user', 'user.biography', 'customer', 'service', 'barbershop']), 'transaction' => $transaction->load(['user', 'user.biography', 'customer', 'service', 'barbershop']),
'url' => route('manage.transactions'),
]); ]);
} }
} }

View File

@ -196,7 +196,12 @@
<p class="thank-you">Terima kasih atas kunjungan Anda!</p> <p class="thank-you">Terima kasih atas kunjungan Anda!</p>
</div> </div>
<script> <script>
window.print(); window.onload = function() {
window.print();
window.onafterprint = function() {
window.location.href = "{{ $url }}";
};
}
</script> </script>
</body> </body>

View File

@ -17,7 +17,6 @@
use App\Http\Controllers\Admin\Setting\AccountController; use App\Http\Controllers\Admin\Setting\AccountController;
use App\Http\Controllers\Admin\Setting\ApplicationController; use App\Http\Controllers\Admin\Setting\ApplicationController;
use App\Http\Controllers\Client\HomepageController; use App\Http\Controllers\Client\HomepageController;
use App\Models\Transaction;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::prefix('auth')->group(function () { Route::prefix('auth')->group(function () {