feat(webstatement): tambah fitur pengiriman statement ke email
- Menambahkan kolom `email` dan `email_sent_at` pada tabel `print_statement_logs`. - Menambah endpoint baru untuk mengirim statement via email (`/send-email`). - Mengupdate form request untuk validasi email pada `PrintStatementRequest`. - Menambah logika pengiriman email dengan menggunakan `Mailable` (`StatementEmail`). - Memvalidasi ketersediaan file statement sebelum dikirimkan via email. - Menambahkan tombol baru pada tampilan frontend untuk opsi `Send to Email`. - Mengupdate file zip untuk pengiriman email ketika ada statement dalam rentang waktu. - Refaktor dan perbaikan minor pada kode terkait check statement availability. - Menyesuaikan title menu pada `module.json` dari "Periode Statement" ke "Create Periode" dan "Print Statement" ke "Statement". Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
0
resources/views/emails/statement.blade.php
Normal file
0
resources/views/emails/statement.blade.php
Normal file
143
resources/views/statements/email.blade.php
Normal file
143
resources/views/statements/email.blade.php
Normal file
@@ -0,0 +1,143 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Arial', sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 90%;
|
||||
margin: 20px auto;
|
||||
background-color: #ffffff;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: #35c1d080;
|
||||
color: #ffffff;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.header h1 {
|
||||
margin: 0;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 30px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color: #35c1d080;
|
||||
padding: 15px;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 10px 20px;
|
||||
background-color: #0056b3;
|
||||
color: #ffffff;
|
||||
text-decoration: none;
|
||||
border-radius: 5px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
ul.dashed-list {
|
||||
list-style-type: none; /* Remove default bullet */
|
||||
padding-left: 1em; /* Add some left padding for spacing */
|
||||
}
|
||||
|
||||
ul.dashed-list li::before {
|
||||
content: "– "; /* Use an en dash (U+2013) or a hyphen "-" */
|
||||
display: inline-block; /* Ensure proper spacing */
|
||||
width: 1em; /* Adjust width as needed */
|
||||
margin-left: 0.5em; /* Align the dash properly */
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="content">
|
||||
<div>
|
||||
Yang Terhormat <strong>Bapak/Ibu Daeng Deni Mardaeni</strong>,<br><br>
|
||||
|
||||
Terlampir adalah Electronic Statement Rekening Anda.<br>
|
||||
Silahkan gunakan password Electronic Statement Anda untuk membukanya.<br><br>
|
||||
Password standar Elektronic Statement ini adalah <strong>ddMonyyyyxx</strong> (contoh: 01Aug1970xx) dimana :
|
||||
<ul class="dashed-list">
|
||||
<li>dd : <strong>2 digit</strong> tanggal lahir anda, contoh: 01</li>
|
||||
<li>Mon :
|
||||
<strong>3 huruf pertama</strong> bulan lahir anda dalam bahasa Ingris. Huruf pertama adalah huruf besar dan selanjutnya huruf kecil, contoh : Aug
|
||||
</li>
|
||||
<li>yyyy : <strong>4 digit</strong> tahun kelahiran anda, contoh : 1970</li>
|
||||
<li>xx : <strong>2 digit terakhir</strong> dari nomer rekening anda, contoh : 12</li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
Terima Kasih,<br><br>
|
||||
|
||||
<strong>Bank Artha Graha Internasional</strong><br>
|
||||
------------------------------
|
||||
<wbr>
|
||||
------------------------------
|
||||
<wbr>
|
||||
--------<br>
|
||||
Kami sangat menghargai masukan dan saran Anda untuk meningkatkan layanan dan produk kami.<br>
|
||||
Untuk memberikan masukan, silakan hubungi <strong>GrahaCall 24 Jam</strong> kami di
|
||||
<strong>0-800-191-8880</strong>.<br><br><br>
|
||||
|
||||
Dear <strong>Mr/Mrs/Ms Daeng Deni Mardaeni</strong>,<br><br>
|
||||
|
||||
Attached is your Electronic Account Statement.<br>
|
||||
Please use your Electronic Statement password to open it.<br><br>
|
||||
|
||||
The Electronic Statement standard password is <strong>ddMonyyyyxx</strong> (example: 01Aug1970xx) where:
|
||||
<ul class="dashed-list">
|
||||
<li>dd : <strong>The first 2 digits</strong> of your birthdate, example: 01</li>
|
||||
<li>Mon :
|
||||
<strong>The first 3 letters</strong> of your birth month in English. The first letter is uppercase and the rest are lowercase, example: Aug
|
||||
</li>
|
||||
<li>yyyy : <strong>4 digit</strong> of your birth year, example: 1970</li>
|
||||
<li>xx : <strong>The last 2 digits</strong> of your account number, example: 12.</li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
Regards,<br><br>
|
||||
|
||||
<strong>Bank Artha Graha Internasional</strong><br>
|
||||
------------------------------
|
||||
<wbr>
|
||||
------------------------------
|
||||
<wbr>
|
||||
--------<br>
|
||||
We welcome any feedback or suggestions to improve our product and services.<br>
|
||||
If you have any feedback, please contact our <strong>GrahaCall 24 Hours</strong> at
|
||||
<strong>0-800-191-8880</strong>.
|
||||
<div class="yj6qo"></div>
|
||||
<div class="adL"><br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<p>© 2023 Bank Artha Graha Internasional. All rights reserved.</p>
|
||||
<p>Jika Anda memiliki pertanyaan, silakan hubungi customer service kami.</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -41,6 +41,14 @@
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="email">Email</label>
|
||||
<input type="email" class="input form-control @error('email') is-invalid @enderror" id="email" name="email" value="{{ old('email', $statement->email ?? '') }}" placeholder="Optional email for send statement">
|
||||
@error('email')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label required" for="start_date">Start Date</label>
|
||||
|
||||
@@ -284,6 +292,13 @@
|
||||
</a>`;
|
||||
}
|
||||
|
||||
// Show send email button if email is not empty and statement is available
|
||||
if (data.is_available) {
|
||||
buttons += `<a class="btn btn-sm btn-icon btn-clear btn-primary" href="statements/${data.id}/send-email" title="Send to Email">
|
||||
<i class="ki-outline ki-paper-plane"></i>
|
||||
</a>`;
|
||||
}
|
||||
|
||||
// Only show delete button if status is pending
|
||||
if (data.authorization_status === 'pending') {
|
||||
buttons += `<a onclick="deleteData(${data.id})" class="delete btn btn-sm btn-icon btn-clear btn-danger">
|
||||
|
||||
Reference in New Issue
Block a user