migrate to gtea from bistbucket
This commit is contained in:
@@ -0,0 +1,253 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Invoice #{{ $invoice->invoice_no }}</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
background-color: #f4f6f8;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
width: 100%;
|
||||
padding: 30px 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 700px;
|
||||
margin: 0 auto;
|
||||
background-color: #ffffff;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: #1E3A8A;
|
||||
color: #ffffff;
|
||||
padding: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.header h1 {
|
||||
margin: 0;
|
||||
font-size: 26px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.header p {
|
||||
margin: 6px 0 0;
|
||||
font-size: 15px;
|
||||
color: #d1d5db;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 30px;
|
||||
}
|
||||
|
||||
.content h2 {
|
||||
font-size: 20px;
|
||||
margin: 0 0 10px;
|
||||
}
|
||||
|
||||
.content p {
|
||||
font-size: 15px;
|
||||
line-height: 1.6;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.invoice-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 25px 0;
|
||||
}
|
||||
|
||||
.invoice-table th,
|
||||
.invoice-table td {
|
||||
border: 1px solid #e5e7eb;
|
||||
padding: 12px 14px;
|
||||
text-align: left;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.invoice-table th {
|
||||
background-color: #f9fafb;
|
||||
font-weight: 600;
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
.invoice-table td {
|
||||
width: 60%;
|
||||
}
|
||||
|
||||
.total-row td {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #1E3A8A;
|
||||
}
|
||||
|
||||
.notice {
|
||||
background-color: #f9fafb;
|
||||
border-left: 4px solid #1E3A8A;
|
||||
padding: 15px;
|
||||
margin-top: 20px;
|
||||
font-size: 14px;
|
||||
color: #555555;
|
||||
}
|
||||
|
||||
.button-wrapper {
|
||||
text-align: center;
|
||||
margin: 30px 0 10px;
|
||||
}
|
||||
|
||||
.pay-button {
|
||||
background-color: #1E3A8A;
|
||||
color: #ffffff;
|
||||
padding: 14px 30px;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
border-radius: 6px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.pay-button:hover {
|
||||
background-color: #162d6b;
|
||||
}
|
||||
|
||||
.footer {
|
||||
padding: 25px;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
color: #9ca3af;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: #1E3A8A;
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 600px) {
|
||||
.content {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.header h1 {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.invoice-table th,
|
||||
.invoice-table td {
|
||||
padding: 10px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="container">
|
||||
|
||||
{{-- Header --}}
|
||||
<div class="header">
|
||||
<h1>
|
||||
{{ \Carbon\Carbon::parse($invoice->month . '-01')->format('F Y') }} Invoice
|
||||
</h1>
|
||||
<p>MolyEcom SaaS Billing</p>
|
||||
</div>
|
||||
|
||||
{{-- Content --}}
|
||||
<div class="content">
|
||||
<h2>Hello {{ $shop->name }},</h2>
|
||||
|
||||
<p>
|
||||
This invoice has been generated automatically for your
|
||||
<strong>{{ $invoice->package_name }}</strong> subscription.
|
||||
</p>
|
||||
|
||||
<table class="invoice-table">
|
||||
<tr>
|
||||
<th>Invoice Number</th>
|
||||
<td>{{ $invoice->invoice_no }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Subscription Package</th>
|
||||
<td>{{ $invoice->package_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Billing Period</th>
|
||||
<td>
|
||||
{{ \Carbon\Carbon::parse($invoice->start_date)->format('d M Y') }}
|
||||
–
|
||||
{{ \Carbon\Carbon::parse($invoice->end_date)->format('d M Y') }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Subscription Expiry</th>
|
||||
<td>
|
||||
{{ \Carbon\Carbon::parse($invoice->end_date)->format('d M Y') }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@if (!empty($domainInfo['domain']))
|
||||
<tr>
|
||||
<th>Domain</th>
|
||||
<td>{{ $domainInfo['domain'] }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Domain Expiry</th>
|
||||
<td>
|
||||
{{ \Carbon\Carbon::parse($domainInfo['domain_expiry'])->format('d M Y') }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
<tr class="total-row">
|
||||
<th>Total Amount</th>
|
||||
<td>৳ {{ number_format($invoice->amount, 2) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Payment Status</th>
|
||||
<td>{{ $invoice->status }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="notice">
|
||||
<strong>Important:</strong>
|
||||
Please complete your payment before the subscription expiry date to avoid service interruption.
|
||||
</div>
|
||||
|
||||
@if (!empty($paymentUrl))
|
||||
<div class="button-wrapper">
|
||||
<a href="{{ $paymentUrl }}" class="pay-button">
|
||||
Pay / Upgrade Subscription
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<p>
|
||||
If you have any questions regarding this invoice, feel free to contact our support team.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{{-- Footer --}}
|
||||
<div class="footer">
|
||||
© {{ date('Y') }} <strong>CodeMoly</strong>. All rights reserved.<br>
|
||||
MolyEcom SaaS Application |
|
||||
<a href="{{ config('app.frontend_url') }}">Visit Dashboard</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
124
public/restaurant/resources/views/emails/onboarding.blade.php
Normal file
124
public/restaurant/resources/views/emails/onboarding.blade.php
Normal file
@@ -0,0 +1,124 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Welcome to {{ config('app.name') }}</title>
|
||||
</head>
|
||||
|
||||
<body style="margin:0; padding:0; font-family:Arial, sans-serif; background-color:#f4f4f4;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" bgcolor="#f4f4f4">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table width="600" cellpadding="0" cellspacing="0" bgcolor="#ffffff"
|
||||
style="margin:40px 0; border-radius:8px; overflow:hidden; box-shadow:0 0 10px rgba(0,0,0,0.1);">
|
||||
|
||||
<!-- Header -->
|
||||
<tr>
|
||||
<td style="background-color:#FF5722; padding:20px; text-align:center; color:#ffffff;">
|
||||
<h1 style="margin:0; font-size:28px;">🎉 Welcome to {{ config('app.name') }}!</h1>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Greeting -->
|
||||
<tr>
|
||||
<td style="padding:30px;">
|
||||
<p style="font-size:16px; color:#333;">Hi <strong>{{ $restaurantName }}</strong>,</p>
|
||||
<p style="font-size:16px; color:#333;">
|
||||
Your restaurant has been successfully onboarded to
|
||||
<strong>{{ config('app.name') }}</strong>.<br>
|
||||
Below are your login details and trial package information:
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Account Details -->
|
||||
<tr>
|
||||
<td style="padding:0 30px 20px;">
|
||||
<h2
|
||||
style="font-size:18px; color:#FF5722; border-bottom:2px solid #FF5722; padding-bottom:5px;">
|
||||
🆔 Account Details
|
||||
</h2>
|
||||
|
||||
<ul style="list-style:none; padding:0; margin:10px 0; color:#333;">
|
||||
<li><strong>Restaurant ID:</strong> {{ $restaurantId }}</li>
|
||||
<li><strong>Email:</strong> {{ $email }}</li>
|
||||
<li><strong>Password:</strong> {{ $password }}</li>
|
||||
</ul>
|
||||
|
||||
<p style="font-size:14px; color:#FF5722;">
|
||||
⚠️ Please change your password after first login.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Trial Package -->
|
||||
<tr>
|
||||
<td style="padding:0 30px 20px;">
|
||||
<h2
|
||||
style="font-size:18px; color:#FF5722; border-bottom:2px solid #FF5722; padding-bottom:5px;">
|
||||
📦 Trial Package Details
|
||||
</h2>
|
||||
|
||||
<ul style="list-style:none; padding:0; margin:10px 0; color:#333;">
|
||||
<li><strong>Package Name:</strong> {{ $packageName }}</li>
|
||||
<li><strong>Trial Duration:</strong> {{ $trialDays }} days</li>
|
||||
<li><strong>Valid Until:</strong> {{ $trialEndDate }}</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Dashboard CTA -->
|
||||
<tr>
|
||||
<td style="padding:30px; text-align:center;">
|
||||
<a href="{{ $loginUrl }}"
|
||||
style="display:inline-block; padding:15px 30px; background-color:#FF5722;
|
||||
color:#ffffff; text-decoration:none; font-size:16px; border-radius:5px;">
|
||||
Login to Dashboard
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- NameServer Info -->
|
||||
<tr>
|
||||
<td style="padding:20px 30px;">
|
||||
<h2
|
||||
style="font-size:18px; color:#FF5722; border-bottom:2px solid #FF5722; padding-bottom:5px;">
|
||||
🌐 DNS / NameServer Configuration
|
||||
</h2>
|
||||
|
||||
<p style="font-size:15px; color:#333; margin:10px 0;">
|
||||
Please update your domain’s NameServers to point your subdomain automatically:
|
||||
</p>
|
||||
|
||||
<ul style="list-style:none; padding:0; margin:0; color:#333;">
|
||||
<li><strong>NS1:</strong> ns1.vercel-dns.com</li>
|
||||
<li><strong>NS2:</strong> ns2.vercel-dns.com</li>
|
||||
</ul>
|
||||
|
||||
<p style="font-size:13px; color:#555; margin-top:10px;">
|
||||
After updating NameServers, propagation may take up to 30 minutes.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td
|
||||
style="padding:20px 30px; font-size:14px; color:#777; text-align:center; background-color:#f4f4f4;">
|
||||
For any support, contact us:<br>
|
||||
<a href="mailto:support@yourdomain.com" style="color:#FF5722; text-decoration:none;">
|
||||
support@yourdomain.com
|
||||
</a>
|
||||
<br><br>
|
||||
— The {{ config('app.name') }} Team
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,383 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Invoice - Order #{{ $order->order_number }}</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<style>
|
||||
/* Reset */
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
color: #333
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 900px;
|
||||
margin: 24px auto;
|
||||
padding: 20px;
|
||||
border: 1px solid #e6e6e6;
|
||||
border-radius: 8px;
|
||||
background: #fff
|
||||
}
|
||||
|
||||
header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 16px;
|
||||
margin-bottom: 18px
|
||||
}
|
||||
|
||||
.brand {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px
|
||||
}
|
||||
|
||||
.brand img {
|
||||
height: 60px;
|
||||
width: auto;
|
||||
border-radius: 6px;
|
||||
object-fit: contain
|
||||
}
|
||||
|
||||
.brand h2 {
|
||||
margin: 0;
|
||||
font-size: 20px;
|
||||
color: #111
|
||||
}
|
||||
|
||||
.meta {
|
||||
text-align: right;
|
||||
font-size: 13px;
|
||||
color: #666
|
||||
}
|
||||
|
||||
.meta .title {
|
||||
font-weight: 600;
|
||||
color: #222
|
||||
}
|
||||
|
||||
.section {
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
margin-bottom: 18px;
|
||||
flex-wrap: wrap
|
||||
}
|
||||
|
||||
.card {
|
||||
flex: 1;
|
||||
min-width: 220px;
|
||||
padding: 14px;
|
||||
border: 1px dashed #eee;
|
||||
border-radius: 6px;
|
||||
background: #fafafa
|
||||
}
|
||||
|
||||
.card h4 {
|
||||
margin: 0 0 8px 0;
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
.small {
|
||||
font-size: 13px;
|
||||
color: #555
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 12px
|
||||
}
|
||||
|
||||
th,
|
||||
td {
|
||||
padding: 10px 8px;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
th {
|
||||
background: #fafafa;
|
||||
font-weight: 600;
|
||||
color: #333
|
||||
}
|
||||
|
||||
td.right {
|
||||
text-align: right
|
||||
}
|
||||
|
||||
.muted {
|
||||
color: #777;
|
||||
font-size: 13px
|
||||
}
|
||||
|
||||
.totals {
|
||||
margin-top: 12px;
|
||||
max-width: 360px;
|
||||
margin-left: auto
|
||||
}
|
||||
|
||||
.totals table {
|
||||
border: none
|
||||
}
|
||||
|
||||
.totals td {
|
||||
border: none;
|
||||
padding: 8px 6px
|
||||
}
|
||||
|
||||
.grand {
|
||||
font-weight: 700;
|
||||
font-size: 18px
|
||||
}
|
||||
|
||||
.status {
|
||||
display: inline-block;
|
||||
padding: 6px 10px;
|
||||
border-radius: 20px;
|
||||
font-size: 13px
|
||||
}
|
||||
|
||||
.status.paid {
|
||||
background: #e6ffef;
|
||||
color: #046a2f;
|
||||
border: 1px solid #c9f5d4
|
||||
}
|
||||
|
||||
.status.unpaid {
|
||||
background: #fff4e6;
|
||||
color: #a65d00;
|
||||
border: 1px solid #ffe7c7
|
||||
}
|
||||
|
||||
.notes {
|
||||
margin-top: 18px;
|
||||
padding: 12px;
|
||||
border-left: 4px solid #eee;
|
||||
background: #fafafa;
|
||||
border-radius: 4px;
|
||||
color: #555
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 24px;
|
||||
padding-top: 12px;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
color: #777;
|
||||
font-size: 13px;
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.print-btn {
|
||||
display: inline-block;
|
||||
padding: 10px 14px;
|
||||
border-radius: 6px;
|
||||
background: #0b5ed7;
|
||||
color: #fff;
|
||||
font-weight: 600;
|
||||
border: none;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
/* Responsive */
|
||||
@media (max-width:600px) {
|
||||
header {
|
||||
flex-direction: column;
|
||||
align-items: flex-start
|
||||
}
|
||||
|
||||
.meta {
|
||||
text-align: left
|
||||
}
|
||||
|
||||
.totals {
|
||||
width: 100%;
|
||||
margin: 12px 0 0 0
|
||||
}
|
||||
}
|
||||
|
||||
/* Print */
|
||||
@media print {
|
||||
body {
|
||||
background: #fff
|
||||
}
|
||||
|
||||
.container {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
margin: 0;
|
||||
padding: 0
|
||||
}
|
||||
|
||||
.print-btn {
|
||||
display: none
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<header>
|
||||
<div class="brand">
|
||||
@if (!empty($order->restaurant->logo))
|
||||
<img src="{{ $order->restaurant->logo }}" alt="{{ $order->restaurant->name }}">
|
||||
@endif
|
||||
<div>
|
||||
<h2>{{ $order->restaurant->name ?? 'Restaurant Name' }}</h2>
|
||||
<div class="muted" style="margin-top:4px">{{ $order->restaurant->address ?? '' }}</div>
|
||||
<div class="muted" style="margin-top:2px">Phone: {{ $order->restaurant->phone ?? 'N/A' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="meta">
|
||||
<div class="title">Invoice</div>
|
||||
<div style="margin-top:6px">Order #: <strong>{{ $order->order_number }}</strong></div>
|
||||
<div style="margin-top:4px">Date:
|
||||
<strong>{{ \Carbon\Carbon::parse($order->created_at)->format('d M, Y H:i') }}</strong>
|
||||
</div>
|
||||
<div style="margin-top:4px">
|
||||
Status:
|
||||
@if ($order->payment_status || ($order->payment_status === true || $order->payment_status == 1))
|
||||
<span class="status paid">Paid</span>
|
||||
@else
|
||||
<span class="status unpaid">Unpaid</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="section">
|
||||
<div class="card">
|
||||
<h4>Bill To</h4>
|
||||
<div class="small"><strong>{{ $order->customer->name ?? 'Customer' }}</strong></div>
|
||||
<div class="muted" style="margin-top:6px">
|
||||
{{ $order->customer->email ?? '' }}<br>
|
||||
{{ $order->customer->phone ?? '' }}<br>
|
||||
{{ $order->shipping_address ?? '' }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h4>Order Details</h4>
|
||||
<div class="small"><strong>Type:</strong>
|
||||
{{ ucfirst(str_replace('_', ' ', $order->order_type ?? 'N/A')) }}</div>
|
||||
<div class="small" style="margin-top:6px"><strong>Waiter:</strong> {{ $order->waiter?->name ?? '-' }}
|
||||
</div>
|
||||
<div class="small" style="margin-top:6px"><strong>Table:</strong> {{ $order->table?->name ?? '-' }}
|
||||
</div>
|
||||
<div class="small" style="margin-top:6px"><strong>Payment:</strong>
|
||||
{{ $order->payment_method?->name ?? ($order->payment_method_id ? 'Method' : 'N/A') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:48%">Item</th>
|
||||
<th style="width:12%">Qty</th>
|
||||
<th style="width:15%">Price</th>
|
||||
<th style="width:25%" class="right">Total</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($order->items as $item)
|
||||
<tr>
|
||||
<td>
|
||||
<div style="font-weight:600">{{ $item->foodItem?->name ?? 'Item' }}</div>
|
||||
@if (!empty($item->foodVariant))
|
||||
<div class="muted" style="margin-top:4px;font-size:13px">Variant:
|
||||
{{ $item->foodVariant->name }}</div>
|
||||
@endif
|
||||
|
||||
@if (!empty($item->addons))
|
||||
@php
|
||||
$addons = is_string($item->addons)
|
||||
? json_decode($item->addons, true)
|
||||
: $item->addons;
|
||||
@endphp
|
||||
@if (!empty($addons) && is_array($addons))
|
||||
<div class="muted" style="margin-top:6px;font-size:13px">
|
||||
Addons:
|
||||
@foreach ($addons as $a)
|
||||
<span
|
||||
style="display:inline-block;margin-right:6px">{{ $a['name'] ?? $a }}</span>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
</td>
|
||||
<td>{{ $item->quantity }}</td>
|
||||
<td>{{ number_format($item->price, 2) }}</td>
|
||||
<td class="right">{{ number_format($item->total, 2) }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="totals">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="muted">Subtotal</td>
|
||||
<td class="right">{{ number_format($order->subtotal ?? 0, 2) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="muted">Discount</td>
|
||||
<td class="right">- {{ number_format($order->discount ?? 0, 2) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="muted">Tax</td>
|
||||
<td class="right">{{ number_format($order->tax ?? 0, 2) }}</td>
|
||||
</tr>
|
||||
@if (!empty($order->delivery_fee))
|
||||
<tr>
|
||||
<td class="muted">Delivery Fee</td>
|
||||
<td class="right">{{ number_format($order->delivery_fee, 2) }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr class="grand">
|
||||
<td style="padding-top:8px">Grand Total</td>
|
||||
<td class="right grand">
|
||||
{{ number_format($order->grand_total ?? $order->subtotal - ($order->discount ?? 0) + ($order->tax ?? 0), 2) }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@if (!empty($order->note))
|
||||
<div class="notes">
|
||||
<strong>Note:</strong>
|
||||
<div style="margin-top:6px">{{ $order->note }}</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div
|
||||
style="margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap">
|
||||
<div class="muted" style="font-size:13px">This is a computer generated invoice and does not require a
|
||||
signature.</div>
|
||||
<div style="text-align:right">
|
||||
<button class="print-btn" onclick="window.print()">Print Invoice</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
{{ $order->restaurant->name ?? 'Restaurant Name' }} — {{ $order->restaurant->website ?? '' }} •
|
||||
{{ $order->restaurant->email ?? '' }}
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,96 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>New Support Ticket Created</title>
|
||||
</head>
|
||||
|
||||
<body style="margin:0; padding:0; font-family:Arial, sans-serif; background-color:#f4f4f4;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" bgcolor="#f4f4f4">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table width="600" cellpadding="0" cellspacing="0" bgcolor="#ffffff"
|
||||
style="margin:40px 0; border-radius:8px; overflow:hidden; box-shadow:0 0 10px rgba(0,0,0,0.1);">
|
||||
|
||||
<!-- Header -->
|
||||
<tr>
|
||||
<td style="background-color:#FF5722; padding:20px; text-align:center; color:#ffffff;">
|
||||
<h1 style="margin:0; font-size:24px;">🛠 New Support Ticket Created</h1>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Greeting -->
|
||||
<tr>
|
||||
<td style="padding:30px;">
|
||||
<p style="font-size:16px; color:#333333;">
|
||||
Hi <strong>{{ $ticket->name ?? 'User' }}</strong>,
|
||||
</p>
|
||||
<p style="font-size:16px; color:#333333;">
|
||||
Your support ticket has been successfully created. Here are the details:
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Ticket Details -->
|
||||
<tr>
|
||||
<td style="padding:0 30px 30px 30px;">
|
||||
<h2
|
||||
style="font-size:18px; color:#FF5722; border-bottom:2px solid #FF5722; padding-bottom:5px;">
|
||||
📌 Ticket Details</h2>
|
||||
<table width="100%" cellpadding="5" cellspacing="0"
|
||||
style="font-size:14px; color:#333333; border-collapse:collapse;">
|
||||
<tr>
|
||||
<td style="width:150px; font-weight:bold;">Title:</td>
|
||||
<td>{{ $ticket->title }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px; font-weight:bold;">Description:</td>
|
||||
<td>{{ $ticket->description }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px; font-weight:bold;">Category:</td>
|
||||
<td>{{ $ticket->category->name ?? 'N/A' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px; font-weight:bold;">Purchase Code:</td>
|
||||
<td>{{ $ticket->purchase_code ?? 'N/A' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px; font-weight:bold;">Related URL:</td>
|
||||
<td>{{ $ticket->related_url ?? 'N/A' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:150px; font-weight:bold;">Support Plan:</td>
|
||||
<td>{{ $ticket->support_plan ?? 'N/A' }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- CTA Button -->
|
||||
<tr>
|
||||
<td style="padding:20px 30px; text-align:center;">
|
||||
<a href="{{ url('/support-tickets/' . $ticket->id) }}"
|
||||
style="display:inline-block; padding:15px 30px; background-color:#FF5722; color:#ffffff; text-decoration:none; font-size:16px; border-radius:5px;">
|
||||
View Ticket
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td
|
||||
style="padding:20px 30px; font-size:14px; color:#777777; text-align:center; background-color:#f4f4f4;">
|
||||
Thanks,<br>
|
||||
<strong>{{ config('app.name') }} Team</strong>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user