Skip to content

Commit

Permalink
Revisi 2
Browse files Browse the repository at this point in the history
  • Loading branch information
fahrigunadi committed Apr 11, 2022
1 parent de4a79b commit 985f5d6
Show file tree
Hide file tree
Showing 4 changed files with 187 additions and 13 deletions.
51 changes: 38 additions & 13 deletions app/Http/Controllers/GuestReservasiController.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
use Illuminate\Http\Request;
use Barryvdh\DomPDF\Facade\Pdf;
use App\Helper\Lamanya;
use App\Mail\PaymentSuccess;
use Illuminate\Support\Facades\Mail;

class GuestReservasiController extends Controller
{
Expand Down Expand Up @@ -76,6 +78,24 @@ public function store(Request $request)

public function show(Pemesanan $pemesanan)
{
$pemesanan->nama_pemesan = ucwords($pemesanan->nama_pemesan);
$pemesanan->nama_tamu = ucwords($pemesanan->nama_tamu);
$pemesanan->total_malam = Lamanya::get($pemesanan->tgl_checkin, $pemesanan->tgl_checkout);
$pemesanan->tgl_checkin = date('l, d M Y', strtotime($pemesanan->tgl_checkin) );
$pemesanan->tgl_checkout = date('l, d M Y', strtotime($pemesanan->tgl_checkout) );

$kamar = Kamar::find($pemesanan->kamar_id);

$total = $kamar->harga_kamar * $pemesanan->jum_kamar_dipesan * $pemesanan->total_malam;
$pemesanan->total = number_format($total, 0,'.',',');

$kamar->nama_kamar = ucwords($kamar->nama_kamar);
$kamar->harga_kamar = number_format($kamar->harga_kamar,0,'.',',');

Mail::to($pemesanan->email_pemesan)->send(
new PaymentSuccess($pemesanan, $kamar)
);

return view('reservasi-show', ['row'=>$pemesanan]);
}

Expand Down Expand Up @@ -103,28 +123,33 @@ public function getKamar(Request $request)
{
if ($request->checkout && $request->checkin) {

$pemesanan = Pemesanan::select('id', 'kamar_id')
->where('tgl_checkin', $request->checkin)
->where('tgl_checkout', $request->checkout)
$pemesanan = Pemesanan::select('id', 'kamar_id', 'jum_kamar_dipesan')
->whereBetween('tgl_checkin', [$request->checkin, $request->checkout])
->where('status', 'pesan')
->orWhere('tgl_checkin', $request->checkin)
->where('tgl_checkout', $request->checkout)
->orWhereBetween('tgl_checkin', [$request->checkin, $request->checkout])
->where('status', 'checkin')
->orWhereBetween('tgl_checkout', [$request->checkin, $request->checkout])
->where('status', 'pesan')
->orWhereBetween('tgl_checkout', [$request->checkin, $request->checkout])
->where('status', 'checkin')
->get();

$kamar_id = [];
foreach ($pemesanan as $key => $value) {
$kamar_id[] = $value->kamar_id;
$kama = [];

foreach ($pemesanan as $item) {
if (empty($kama[$item->kamar_id])) {
$kama[$item->kamar_id] = $item->jum_kamar_dipesan;
} else {
$kama[$item->kamar_id] = $kama[$item->kamar_id] + $item->jum_kamar_dipesan;
}
}
$kamar_id = array_count_values($kamar_id);

$kamar = Kamar::all();

$kamar->map(function ($item) use ($kamar_id){
$kamar->map(function ($item) use ($kama){
$item->nama_kamar = ucwords($item->nama_kamar);
$item->name_tersedia = trim(ucwords($item->nama_kamar), "");
if (!empty($kamar_id[$item->id])) {
$item->jum_kamar = $item->jum_kamar - $kamar_id[$item->id];
if (!empty($kama[$item->id])) {
$item->jum_kamar = $item->jum_kamar - $kama[$item->id];
}
});
} else {
Expand Down
7 changes: 7 additions & 0 deletions app/Http/Controllers/PemesananController.php
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,13 @@ public function update(Request $request, Pemesanan $pemesanan)
]);
}

if ($request->status == 'checkin' && $pemesanan->status == 'checkout'){
$kamar->update([
'jum_kamar_kosong' => $kamar->jum_kamar_kosong - $pemesanan->jum_kamar_dipesan,
'jum_kamar_terisi' => $kamar->jum_kamar_terisi + $pemesanan->jum_kamar_dipesan
]);
}

if ($request->status == 'checkout' && $pemesanan->status == 'checkin'){
$kamar->update([
'jum_kamar_kosong' => $kamar->jum_kamar_kosong + $pemesanan->jum_kamar_dipesan,
Expand Down
39 changes: 39 additions & 0 deletions app/Mail/PaymentSuccess.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class PaymentSuccess extends Mailable
{
use Queueable, SerializesModels;


public $row;
public $kamar;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($row, $kamar)
{
$this->row = $row;
$this->kamar = $kamar;
}

/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this
->subject('Booking Invoice')
->markdown('mail.payment-success');
}
}
103 changes: 103 additions & 0 deletions resources/views/mail/payment-success.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Booking Invoice</title>
<style>
body {
font-family: Arial, Helvetica, sans-serif;
line-height: 24px;
}
table {
width: 100%;
border-collapse: collapse;
}
table td {
vertical-align: top;
}
.header h1 {
font-size: xx-large;
}
.nota {
margin-top: 20px;
}
.nota th,
.nota td {
padding: 10px;
border-bottom: 1px solid #cccccc;
text-align: center;
}
.nota thead tr {
background-color: #dddddd;
}
</style>
</head>
<body>
<table class="header">
<tr>
<td>
<h1>Booking Invoice</h1>
</td>
<td style="text-align: right">
<img src="{{ public_path('images/logoa.png') }}" width="120">
<h2 style="margin:0;">{{ config('app.name') }}</h2>
<p>
Jl. Raya Pangandaran, Kabupaten Pangandaran<br />
Tlp. (0265) 666 777
</p>
</td>
</tr>
</table>
<!-- ./header -->
<table>
<tr>
<td>
<h3>Nomor Reg. {{ $row->id }}</h3>
<p>
Dibuat Tanggal : {{ date('d/m/Y H:i:s', strtotime($row->created_at) ) }} <br />
Check IN : {{ $row->tgl_checkin }} <br />
Check OUT : {{ $row->tgl_checkout }} <br />
Nama Tamu : <strong> {{ $row->nama_tamu }} </strong>
</p>
</td>
<td style="text-align: right">
<h4>Pemesan</h4>
Nama : {{ $row->nama_pemesan }} <br />
Email : {{ $row->email_pemesan }} <br />
No. HP : {{ $row->no_hp }} <br />
</td>
</tr>
</table>
<!-- ./Regeister -->

<table class="nota">
<thead>
<tr>
<th>No.</th>
<th>Tipe Kamar</th>
<th>Jumlah</th>
<th>Total Malam</th>
<th>Harga Satuan</th>
<th>Total Harga</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>{{ $kamar->nama_kamar }}</td>
<td>{{ $row->jum_kamar_dipesan }}</td>
<td>{{ $row->total_malam }}</td>
<td>Rp. {{ $kamar->harga_kamar }}</td>
<td>Rp. {{ $row->total }}</td>
</tr>
</tbody>
</table>
<!-- ./Nota -->
<p>
<small><i>Terimakasih telah melakukan reservasi dihotel kami.</i></small>
</p>
</body>
</html>

0 comments on commit 985f5d6

Please sign in to comment.