diff --git a/packages/Webkul/Admin/src/Http/Controllers/Sales/InvoiceController.php b/packages/Webkul/Admin/src/Http/Controllers/Sales/InvoiceController.php
index 363cfcabd..25acab56c 100755
--- a/packages/Webkul/Admin/src/Http/Controllers/Sales/InvoiceController.php
+++ b/packages/Webkul/Admin/src/Http/Controllers/Sales/InvoiceController.php
@@ -2,14 +2,16 @@
namespace Webkul\Admin\Http\Controllers\Sales;
+use Illuminate\Http\Request;
use Webkul\Admin\Http\Controllers\Controller;
+use Webkul\Admin\Traits\Mails;
use Webkul\Core\Traits\PDFHandler;
use Webkul\Sales\Repositories\InvoiceRepository;
use Webkul\Sales\Repositories\OrderRepository;
class InvoiceController extends Controller
{
- use PDFHandler;
+ use Mails, PDFHandler;
/**
* Display a listing of the resource.
@@ -133,6 +135,34 @@ class InvoiceController extends Controller
return view($this->_config['view'], compact('invoice'));
}
+ /**
+ * Send duplicate invoice.
+ *
+ * @param \Illuminate\Http\Request $request
+ * @param int $id
+ * @return \Illuminate\Http\Response
+ */
+ public function sendDuplicateInvoice(Request $request, $id)
+ {
+ $request->validate([
+ 'email' => 'required|email',
+ ]);
+
+ $invoice = $this->invoiceRepository->findOrFail($id);
+
+ if ($invoice) {
+ $this->sendDuplicateInvoiceMail($invoice, $request->email);
+
+ session()->flash('success', __('admin::app.sales.invoices.invoice-sent'));
+
+ return redirect()->back();
+ }
+
+ session()->flash('error', __('admin::app.response.something-went-wrong'));
+
+ return redirect()->back();
+ }
+
/**
* Print and download the for the specified resource.
*
diff --git a/packages/Webkul/Admin/src/Mail/DuplicateInvoiceNotification.php b/packages/Webkul/Admin/src/Mail/DuplicateInvoiceNotification.php
new file mode 100755
index 000000000..da2473c29
--- /dev/null
+++ b/packages/Webkul/Admin/src/Mail/DuplicateInvoiceNotification.php
@@ -0,0 +1,57 @@
+invoice = $invoice;
+
+ $this->customerEmail = $customerEmail;
+ }
+
+ /**
+ * Build the message.
+ *
+ * @return $this
+ */
+ public function build()
+ {
+ $order = $this->invoice->order;
+
+ $email = $this->customerEmail ?? $order->customer_email;
+
+ return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
+ ->to($email, $order->customer_full_name)
+ ->subject(trans('shop::app.mail.invoice.subject', ['order_id' => $order->increment_id]))
+ ->view('shop::emails.sales.new-invoice');
+ }
+}
diff --git a/packages/Webkul/Admin/src/Resources/lang/ar/app.php b/packages/Webkul/Admin/src/Resources/lang/ar/app.php
index 16bb94f10..4c2fd8726 100644
--- a/packages/Webkul/Admin/src/Resources/lang/ar/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/ar/app.php
@@ -401,32 +401,35 @@ return [
],
'invoices' => [
- 'title' => 'الفواتير',
- 'id' => 'Id',
- 'invoice-id' => 'هوية صوتية',
- 'invoice' => 'فاتورة',
- 'date' => 'تاريخ الفاتورة',
- 'order-id' => 'Id طلب',
- 'customer-name' => 'اسم الزبون',
- 'status' => 'الحالة',
- 'amount' => 'المبلغ',
- 'action' => 'الإجراء',
- 'add-title' => 'أنشئ الفاتورة',
- 'save-btn-title' => 'احفظ الفاتورة',
- 'qty' => 'Qty',
- 'qty-ordered' => 'تعداد سفارشات',
- 'qty-to-invoice' => 'qty إلى فاتورة',
- 'view-title' => '#:invoice_id فاتورة',
- 'bill-to' => 'بيل إلى',
- 'ship-to' => 'السفينة إلى',
- 'print' => 'اطبع',
- 'order-date' => 'تاريخ الطلب',
- 'invalid-qty' => 'We found an invalid quantity to invoice items.',
- 'creation-error' => 'لا يسمح بإنشاء الفواتير.',
- 'product-error' => 'ولا يمكن إعداد الفاتورة بدون منتجات.',
- 'status-overdue' => 'Overdue',
- 'status-pending' => 'Pending Payment',
- 'status-paid' => 'Paid',
+ 'title' => 'الفواتير',
+ 'id' => 'Id',
+ 'invoice-id' => 'هوية صوتية',
+ 'invoice' => 'فاتورة',
+ 'date' => 'تاريخ الفاتورة',
+ 'order-id' => 'Id طلب',
+ 'customer-name' => 'اسم الزبون',
+ 'status' => 'الحالة',
+ 'amount' => 'المبلغ',
+ 'action' => 'الإجراء',
+ 'add-title' => 'أنشئ الفاتورة',
+ 'save-btn-title' => 'احفظ الفاتورة',
+ 'send-duplicate-invoice' => 'Send Duplicate Invoice',
+ 'send' => 'Send',
+ 'invoice-sent' => 'Invoice sent successfully!',
+ 'qty' => 'Qty',
+ 'qty-ordered' => 'تعداد سفارشات',
+ 'qty-to-invoice' => 'qty إلى فاتورة',
+ 'view-title' => '#:invoice_id فاتورة',
+ 'bill-to' => 'بيل إلى',
+ 'ship-to' => 'السفينة إلى',
+ 'print' => 'اطبع',
+ 'order-date' => 'تاريخ الطلب',
+ 'invalid-qty' => 'We found an invalid quantity to invoice items.',
+ 'creation-error' => 'لا يسمح بإنشاء الفواتير.',
+ 'product-error' => 'ولا يمكن إعداد الفاتورة بدون منتجات.',
+ 'status-overdue' => 'Overdue',
+ 'status-pending' => 'Pending Payment',
+ 'status-paid' => 'Paid',
],
'shipments' => [
diff --git a/packages/Webkul/Admin/src/Resources/lang/de/app.php b/packages/Webkul/Admin/src/Resources/lang/de/app.php
index c9d4a0ab7..b37ac6f05 100755
--- a/packages/Webkul/Admin/src/Resources/lang/de/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/de/app.php
@@ -397,31 +397,34 @@ return [
],
'invoices' =>
[
- 'title' => 'Rechnungen',
- 'id' => 'Id',
- 'invoice-id' => 'Rechnungsnummer',
- 'date' => 'Rechnungsdatum',
- 'order-id' => 'Auftragsnummer',
- 'customer-name' => 'Name des Kunden',
- 'status' => 'Status',
- 'amount' => 'Betrag',
- 'action' => 'Aktion',
- 'add-title' => 'Rechnung erstellen',
- 'save-btn-title' => 'Rechnung speichern',
- 'qty' => 'Menge',
- 'qty-ordered' => 'Bestellte Menge',
- 'qty-to-invoice' => 'Menge in Rechnung zu stellen',
- 'view-title' => 'Rechnung #:invoice_id',
- 'bill-to' => 'Rechnung an',
- 'ship-to' => 'Versenden an',
- 'print' => 'Drucken',
- 'order-date' => 'Bestell-Datum',
- 'invalid-qty' => 'We found an invalid quantity to invoice items.',
- 'creation-error' => 'Die Erstellung einer Bestellrechnung ist nicht zulässig.',
- 'product-error' => 'Eine Rechnung kann nicht ohne Produkte erstellt werden.',
- 'status-overdue' => 'Overdue',
- 'status-pending' => 'Pending Payment',
- 'status-paid' => 'Paid',
+ 'title' => 'Rechnungen',
+ 'id' => 'Id',
+ 'invoice-id' => 'Rechnungsnummer',
+ 'date' => 'Rechnungsdatum',
+ 'order-id' => 'Auftragsnummer',
+ 'customer-name' => 'Name des Kunden',
+ 'status' => 'Status',
+ 'amount' => 'Betrag',
+ 'action' => 'Aktion',
+ 'add-title' => 'Rechnung erstellen',
+ 'save-btn-title' => 'Rechnung speichern',
+ 'send-duplicate-invoice' => 'Send Duplicate Invoice',
+ 'send' => 'Send',
+ 'invoice-sent' => 'Invoice sent successfully!',
+ 'qty' => 'Menge',
+ 'qty-ordered' => 'Bestellte Menge',
+ 'qty-to-invoice' => 'Menge in Rechnung zu stellen',
+ 'view-title' => 'Rechnung #:invoice_id',
+ 'bill-to' => 'Rechnung an',
+ 'ship-to' => 'Versenden an',
+ 'print' => 'Drucken',
+ 'order-date' => 'Bestell-Datum',
+ 'invalid-qty' => 'We found an invalid quantity to invoice items.',
+ 'creation-error' => 'Die Erstellung einer Bestellrechnung ist nicht zulässig.',
+ 'product-error' => 'Eine Rechnung kann nicht ohne Produkte erstellt werden.',
+ 'status-overdue' => 'Overdue',
+ 'status-pending' => 'Pending Payment',
+ 'status-paid' => 'Paid',
],
'shipments' =>
[
diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php
index 4a7b9d088..0fb0f2756 100755
--- a/packages/Webkul/Admin/src/Resources/lang/en/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php
@@ -413,32 +413,35 @@ return [
],
'invoices' => [
- 'title' => 'Invoices',
- 'id' => 'ID',
- 'invoice' => 'Invoice',
- 'invoice-id' => 'Invoice ID',
- 'date' => 'Invoice Date',
- 'order-id' => 'Order ID',
- 'customer-name' => 'Customer Name',
- 'status' => 'Status',
- 'amount' => 'Amount',
- 'action' => 'Action',
- 'add-title' => 'Create Invoice',
- 'save-btn-title' => 'Save Invoice',
- 'qty' => 'Qty',
- 'qty-ordered' => 'Qty Ordered',
- 'qty-to-invoice' => 'Qty to Invoice',
- 'view-title' => 'Invoice #:invoice_id',
- 'bill-to' => 'Bill to',
- 'ship-to' => 'Ship to',
- 'print' => 'Print',
- 'order-date' => 'Order Date',
- 'invalid-qty' => 'We found an invalid quantity to invoice items.',
- 'creation-error' => 'Order invoice creation is not allowed.',
- 'product-error' => 'Invoice can not be created without products.',
- 'status-overdue' => 'Overdue',
- 'status-pending' => 'Pending Payment',
- 'status-paid' => 'Paid',
+ 'title' => 'Invoices',
+ 'id' => 'ID',
+ 'invoice' => 'Invoice',
+ 'invoice-id' => 'Invoice ID',
+ 'date' => 'Invoice Date',
+ 'order-id' => 'Order ID',
+ 'customer-name' => 'Customer Name',
+ 'status' => 'Status',
+ 'amount' => 'Amount',
+ 'action' => 'Action',
+ 'add-title' => 'Create Invoice',
+ 'save-btn-title' => 'Save Invoice',
+ 'send-duplicate-invoice' => 'Send Duplicate Invoice',
+ 'send' => 'Send',
+ 'invoice-sent' => 'Invoice sent successfully!',
+ 'qty' => 'Qty',
+ 'qty-ordered' => 'Qty Ordered',
+ 'qty-to-invoice' => 'Qty to Invoice',
+ 'view-title' => 'Invoice #:invoice_id',
+ 'bill-to' => 'Bill to',
+ 'ship-to' => 'Ship to',
+ 'print' => 'Print',
+ 'order-date' => 'Order Date',
+ 'invalid-qty' => 'We found an invalid quantity to invoice items.',
+ 'creation-error' => 'Order invoice creation is not allowed.',
+ 'product-error' => 'Invoice can not be created without products.',
+ 'status-overdue' => 'Overdue',
+ 'status-pending' => 'Pending Payment',
+ 'status-paid' => 'Paid',
],
'shipments' => [
diff --git a/packages/Webkul/Admin/src/Resources/lang/es/app.php b/packages/Webkul/Admin/src/Resources/lang/es/app.php
index b6284418b..7cf504364 100644
--- a/packages/Webkul/Admin/src/Resources/lang/es/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/es/app.php
@@ -411,32 +411,35 @@ return [
],
'invoices' => [
- 'title' => 'Facturas',
- 'id' => 'Id',
- 'invoice-id' => 'Factura #',
- 'invoice' => 'Factura',
- 'date' => 'Fecha de factura',
- 'order-id' => 'Pedido #',
- 'customer-name' => 'Nombre del cliente',
- 'status' => 'Estado',
- 'amount' => 'Monto',
- 'action' => 'Acción',
- 'add-title' => 'Crear factura',
- 'save-btn-title' => 'Guardar factura',
- 'qty' => 'Cant',
- 'qty-ordered' => 'Cant pedido',
- 'qty-to-invoice' => 'Cant a facturar',
- 'view-title' => 'Factura #:invoice_id',
- 'bill-to' => 'Facturar a',
- 'ship-to' => 'Enviar a',
- 'print' => 'Imprimir',
- 'order-date' => 'Fecha del pedido',
- 'invalid-qty' => 'We found an invalid quantity to invoice items.',
- 'creation-error' => 'La creación de facturas al pedido no está permitida.',
- 'product-error' => 'La factura no puede ser creada sin productos.',
- 'status-overdue' => 'Overdue',
- 'status-pending' => 'Pending Payment',
- 'status-paid' => 'Paid',
+ 'title' => 'Facturas',
+ 'id' => 'Id',
+ 'invoice-id' => 'Factura #',
+ 'invoice' => 'Factura',
+ 'date' => 'Fecha de factura',
+ 'order-id' => 'Pedido #',
+ 'customer-name' => 'Nombre del cliente',
+ 'status' => 'Estado',
+ 'amount' => 'Monto',
+ 'action' => 'Acción',
+ 'add-title' => 'Crear factura',
+ 'save-btn-title' => 'Guardar factura',
+ 'send-duplicate-invoice' => 'Send Duplicate Invoice',
+ 'send' => 'Send',
+ 'invoice-sent' => 'Invoice sent successfully!',
+ 'qty' => 'Cant',
+ 'qty-ordered' => 'Cant pedido',
+ 'qty-to-invoice' => 'Cant a facturar',
+ 'view-title' => 'Factura #:invoice_id',
+ 'bill-to' => 'Facturar a',
+ 'ship-to' => 'Enviar a',
+ 'print' => 'Imprimir',
+ 'order-date' => 'Fecha del pedido',
+ 'invalid-qty' => 'We found an invalid quantity to invoice items.',
+ 'creation-error' => 'La creación de facturas al pedido no está permitida.',
+ 'product-error' => 'La factura no puede ser creada sin productos.',
+ 'status-overdue' => 'Overdue',
+ 'status-pending' => 'Pending Payment',
+ 'status-paid' => 'Paid',
],
'shipments' => [
diff --git a/packages/Webkul/Admin/src/Resources/lang/fa/app.php b/packages/Webkul/Admin/src/Resources/lang/fa/app.php
index 7df608a8e..d299ae91a 100644
--- a/packages/Webkul/Admin/src/Resources/lang/fa/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/fa/app.php
@@ -404,32 +404,35 @@ return [
],
'invoices' => [
- 'title' => 'صورت حساب',
- 'id' => 'شناسه',
- 'invoice-id' => 'شناسه صورت حساب',
- 'invoice' => 'صورتحساب',
- 'date' => 'تاریخ صورت حساب',
- 'order-id' => 'سفارش',
- 'customer-name' => 'نام مشتری',
- 'status' => 'وضعیت',
- 'amount' => 'میزان',
- 'action' => 'عملیات',
- 'add-title' => 'ایجاد فاکتور',
- 'save-btn-title' => 'ایجاد فاکتور',
- 'qty' => 'مقدار',
- 'qty-ordered' => 'سفارش داده شده',
- 'qty-to-invoice' => 'مقدار به فاکتور',
- 'view-title' => '#:invoice_id صورت حساب',
- 'bill-to' => 'صورت حساب به',
- 'ship-to' => 'حمل به',
- 'print' => 'چاپ',
- 'order-date' => 'تاریخ سفارش',
- 'invalid-qty' => 'We found an invalid quantity to invoice items.',
- 'creation-error' => 'ایجاد فاکتور سفارش مجاز نیست.',
- 'product-error' => 'بدون محصولات نمی توان فاکتور ایجاد کرد.',
- 'status-overdue' => 'Overdue',
- 'status-pending' => 'Pending Payment',
- 'status-paid' => 'Paid',
+ 'title' => 'صورت حساب',
+ 'id' => 'شناسه',
+ 'invoice-id' => 'شناسه صورت حساب',
+ 'invoice' => 'صورتحساب',
+ 'date' => 'تاریخ صورت حساب',
+ 'order-id' => 'سفارش',
+ 'customer-name' => 'نام مشتری',
+ 'status' => 'وضعیت',
+ 'amount' => 'میزان',
+ 'action' => 'عملیات',
+ 'add-title' => 'ایجاد فاکتور',
+ 'save-btn-title' => 'ایجاد فاکتور',
+ 'send-duplicate-invoice' => 'Send Duplicate Invoice',
+ 'send' => 'Send',
+ 'invoice-sent' => 'Invoice sent successfully!',
+ 'qty' => 'مقدار',
+ 'qty-ordered' => 'سفارش داده شده',
+ 'qty-to-invoice' => 'مقدار به فاکتور',
+ 'view-title' => '#:invoice_id صورت حساب',
+ 'bill-to' => 'صورت حساب به',
+ 'ship-to' => 'حمل به',
+ 'print' => 'چاپ',
+ 'order-date' => 'تاریخ سفارش',
+ 'invalid-qty' => 'We found an invalid quantity to invoice items.',
+ 'creation-error' => 'ایجاد فاکتور سفارش مجاز نیست.',
+ 'product-error' => 'بدون محصولات نمی توان فاکتور ایجاد کرد.',
+ 'status-overdue' => 'Overdue',
+ 'status-pending' => 'Pending Payment',
+ 'status-paid' => 'Paid',
],
'shipments' => [
diff --git a/packages/Webkul/Admin/src/Resources/lang/fr/app.php b/packages/Webkul/Admin/src/Resources/lang/fr/app.php
index 3d0d558b6..edcaf1037 100644
--- a/packages/Webkul/Admin/src/Resources/lang/fr/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/fr/app.php
@@ -411,32 +411,35 @@ return [
],
'invoices' => [
- 'title' => 'Factures',
- 'id' => 'identifiant',
- 'invoice' => 'Facturer',
- 'invoice-id' => 'Identifiant de la facture',
- 'date' => 'Date de la facture',
- 'order-id' => 'numéro de commande',
- 'customer-name' => 'Nom du client',
- 'status' => 'Statut',
- 'amount' => 'Montant',
- 'action' => 'action',
- 'add-title' => 'Créer une facture',
- 'save-btn-title' => 'Enregistrer la facture',
- 'qty' => 'Qté',
- 'qty-ordered' => 'Qté commandée',
- 'qty-to-invoice' => 'Quantité à facturer',
- 'view-title' => 'Facture # :invoice_id',
- 'bill-to' => 'facturer',
- 'ship-to' => 'Envoyez à',
- 'print' => 'Imprimer',
- 'order-date' => 'Date de commande',
- 'invalid-qty' => 'We found an invalid quantity to invoice items.',
- 'creation-error' => 'La création de facture de commande n\'est pas autorisée.',
- 'product-error' => 'La facture ne peut pas être créée sans produits.',
- 'status-overdue' => 'En retard',
- 'status-pending' => 'En attente de paiement',
- 'status-paid' => 'Payé',
+ 'title' => 'Factures',
+ 'id' => 'identifiant',
+ 'invoice' => 'Facturer',
+ 'invoice-id' => 'Identifiant de la facture',
+ 'date' => 'Date de la facture',
+ 'order-id' => 'numéro de commande',
+ 'customer-name' => 'Nom du client',
+ 'status' => 'Statut',
+ 'amount' => 'Montant',
+ 'action' => 'action',
+ 'add-title' => 'Créer une facture',
+ 'save-btn-title' => 'Enregistrer la facture',
+ 'send-duplicate-invoice' => 'Send Duplicate Invoice',
+ 'send' => 'Send',
+ 'invoice-sent' => 'Invoice sent successfully!',
+ 'qty' => 'Qté',
+ 'qty-ordered' => 'Qté commandée',
+ 'qty-to-invoice' => 'Quantité à facturer',
+ 'view-title' => 'Facture # :invoice_id',
+ 'bill-to' => 'facturer',
+ 'ship-to' => 'Envoyez à',
+ 'print' => 'Imprimer',
+ 'order-date' => 'Date de commande',
+ 'invalid-qty' => 'We found an invalid quantity to invoice items.',
+ 'creation-error' => 'La création de facture de commande n\'est pas autorisée.',
+ 'product-error' => 'La facture ne peut pas être créée sans produits.',
+ 'status-overdue' => 'En retard',
+ 'status-pending' => 'En attente de paiement',
+ 'status-paid' => 'Payé',
],
'shipments' => [
diff --git a/packages/Webkul/Admin/src/Resources/lang/it/app.php b/packages/Webkul/Admin/src/Resources/lang/it/app.php
index b1b60cd75..cf705bce6 100644
--- a/packages/Webkul/Admin/src/Resources/lang/it/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/it/app.php
@@ -402,32 +402,35 @@ return [
],
'invoices' => [
- 'title' => 'Fatture',
- 'id' => 'Id',
- 'invoice-id' => 'Id Fattura',
- 'invoice' => 'Fattura',
- 'date' => 'Data Fattura',
- 'order-id' => 'Id Ordine',
- 'customer-name' => 'Nome Cliente',
- 'status' => 'Stato',
- 'amount' => 'Ammontare',
- 'action' => 'Azione',
- 'add-title' => 'Crea Fattura',
- 'save-btn-title' => 'Salva Fattura',
- 'qty' => 'Qtà',
- 'qty-ordered' => 'Qtà ordinata',
- 'qty-to-invoice' => 'Qtà da fatturare',
- 'view-title' => 'Fattura #:invoice_id',
- 'bill-to' => 'Fatturato a',
- 'ship-to' => 'Spedito a',
- 'print' => 'Stampa',
- 'order-date' => 'Data Ordine',
- 'invalid-qty' => 'We found an invalid quantity to invoice items.',
- 'creation-error' => 'La creazione della fattura dell\'Ordine non è consentita.',
- 'product-error' => 'La fattura non può essere creata senza prodotti.',
- 'status-overdue' => 'Pending',
- 'status-pending' => 'Pending Payment',
- 'status-paid' => 'Paid',
+ 'title' => 'Fatture',
+ 'id' => 'Id',
+ 'invoice-id' => 'Id Fattura',
+ 'invoice' => 'Fattura',
+ 'date' => 'Data Fattura',
+ 'order-id' => 'Id Ordine',
+ 'customer-name' => 'Nome Cliente',
+ 'status' => 'Stato',
+ 'amount' => 'Ammontare',
+ 'action' => 'Azione',
+ 'add-title' => 'Crea Fattura',
+ 'save-btn-title' => 'Salva Fattura',
+ 'send-duplicate-invoice' => 'Send Duplicate Invoice',
+ 'send' => 'Send',
+ 'invoice-sent' => 'Invoice sent successfully!',
+ 'qty' => 'Qtà',
+ 'qty-ordered' => 'Qtà ordinata',
+ 'qty-to-invoice' => 'Qtà da fatturare',
+ 'view-title' => 'Fattura #:invoice_id',
+ 'bill-to' => 'Fatturato a',
+ 'ship-to' => 'Spedito a',
+ 'print' => 'Stampa',
+ 'order-date' => 'Data Ordine',
+ 'invalid-qty' => 'We found an invalid quantity to invoice items.',
+ 'creation-error' => 'La creazione della fattura dell\'Ordine non è consentita.',
+ 'product-error' => 'La fattura non può essere creata senza prodotti.',
+ 'status-overdue' => 'Pending',
+ 'status-pending' => 'Pending Payment',
+ 'status-paid' => 'Paid',
],
'shipments' => [
diff --git a/packages/Webkul/Admin/src/Resources/lang/nl/app.php b/packages/Webkul/Admin/src/Resources/lang/nl/app.php
index e64674532..2fc0efc6b 100644
--- a/packages/Webkul/Admin/src/Resources/lang/nl/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/nl/app.php
@@ -398,32 +398,35 @@ return [
],
'invoices' => [
- 'title' => 'Facturen',
- 'id' => 'Id',
- 'invoice-id' => 'Factuurnummer',
- 'invoice' => 'Factuur',
- 'date' => 'Factuur datum',
- 'order-id' => 'Bestelnummer',
- 'customer-name' => 'Klantnaam',
- 'status' => 'Status',
- 'amount' => 'Bedrag',
- 'action' => 'Actie',
- 'add-title' => 'Factuur aanmaken',
- 'save-btn-title' => 'Bewaar factuur',
- 'qty' => 'Aantal',
- 'qty-ordered' => 'Besteld aantal',
- 'qty-to-invoice' => 'Aantal te factureren',
- 'view-title' => 'Factuur #:invoice_id',
- 'bill-to' => 'Bill to',
- 'ship-to' => 'Verzenden naar',
- 'print' => 'Print',
- 'order-date' => 'Besteldatum',
- 'invalid-qty' => 'We found an invalid quantity to invoice items.',
- 'creation-error' => 'De bestelling staat niet toe dat er een factuur wordt aangemaakt.',
- 'product-error' => 'Zonder producten kan er geen factuur worden aangemaakt.',
- 'status-overdue' => 'Verlopen',
- 'status-pending' => 'Wachten op betaling',
- 'status-paid' => 'Betaald',
+ 'title' => 'Facturen',
+ 'id' => 'Id',
+ 'invoice-id' => 'Factuurnummer',
+ 'invoice' => 'Factuur',
+ 'date' => 'Factuur datum',
+ 'order-id' => 'Bestelnummer',
+ 'customer-name' => 'Klantnaam',
+ 'status' => 'Status',
+ 'amount' => 'Bedrag',
+ 'action' => 'Actie',
+ 'add-title' => 'Factuur aanmaken',
+ 'save-btn-title' => 'Bewaar factuur',
+ 'send-duplicate-invoice' => 'Send Duplicate Invoice',
+ 'send' => 'Send',
+ 'invoice-sent' => 'Invoice sent successfully!',
+ 'qty' => 'Aantal',
+ 'qty-ordered' => 'Besteld aantal',
+ 'qty-to-invoice' => 'Aantal te factureren',
+ 'view-title' => 'Factuur #:invoice_id',
+ 'bill-to' => 'Bill to',
+ 'ship-to' => 'Verzenden naar',
+ 'print' => 'Print',
+ 'order-date' => 'Besteldatum',
+ 'invalid-qty' => 'We found an invalid quantity to invoice items.',
+ 'creation-error' => 'De bestelling staat niet toe dat er een factuur wordt aangemaakt.',
+ 'product-error' => 'Zonder producten kan er geen factuur worden aangemaakt.',
+ 'status-overdue' => 'Verlopen',
+ 'status-pending' => 'Wachten op betaling',
+ 'status-paid' => 'Betaald',
],
'shipments' => [
diff --git a/packages/Webkul/Admin/src/Resources/lang/pl/app.php b/packages/Webkul/Admin/src/Resources/lang/pl/app.php
index 7534c5220..a144cd4e7 100644
--- a/packages/Webkul/Admin/src/Resources/lang/pl/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/pl/app.php
@@ -400,32 +400,35 @@ return [
],
'invoices' => [
- 'title' => 'Faktury',
- 'id' => 'Id',
- 'invoice-id' => 'Identyfikator faktury',
- 'invoice' => 'Faktura',
- 'date' => 'Data faktury',
- 'order-id' => 'Identyfikator zamówienia',
- 'customer-name' => 'Nazwa klienta',
- 'status' => 'Status',
- 'amount' => 'Kwota',
- 'action' => 'Akcja',
- 'add-title' => 'Utwórz fakturę',
- 'save-btn-title' => 'Zapisz fakturę',
- 'qty' => 'Ilość',
- 'qty-ordered' => 'Zamówiona ilość',
- 'qty-to-invoice' => 'ilość do faktury',
- 'view-title' => 'Faktura nr #:invoice_id',
- 'bill-to' => 'Rachunek do',
- 'ship-to' => 'Wysłano do',
- 'print' => 'Drukuj',
- 'order-date' => 'Data zamówienia',
- 'invalid-qty' => 'We found an invalid quantity to invoice items.',
- 'creation-error' => 'Tworzenie faktury za zamówienie jest niedozwolone.',
- 'product-error' => 'Faktury nie można utworzyć bez produktów.',
- 'status-overdue' => 'Overdue',
- 'status-pending' => 'Pending Payment',
- 'status-paid' => 'Paid',
+ 'title' => 'Faktury',
+ 'id' => 'Id',
+ 'invoice-id' => 'Identyfikator faktury',
+ 'invoice' => 'Faktura',
+ 'date' => 'Data faktury',
+ 'order-id' => 'Identyfikator zamówienia',
+ 'customer-name' => 'Nazwa klienta',
+ 'status' => 'Status',
+ 'amount' => 'Kwota',
+ 'action' => 'Akcja',
+ 'add-title' => 'Utwórz fakturę',
+ 'save-btn-title' => 'Zapisz fakturę',
+ 'send-duplicate-invoice' => 'Send Duplicate Invoice',
+ 'send' => 'Send',
+ 'invoice-sent' => 'Invoice sent successfully!',
+ 'qty' => 'Ilość',
+ 'qty-ordered' => 'Zamówiona ilość',
+ 'qty-to-invoice' => 'ilość do faktury',
+ 'view-title' => 'Faktura nr #:invoice_id',
+ 'bill-to' => 'Rachunek do',
+ 'ship-to' => 'Wysłano do',
+ 'print' => 'Drukuj',
+ 'order-date' => 'Data zamówienia',
+ 'invalid-qty' => 'We found an invalid quantity to invoice items.',
+ 'creation-error' => 'Tworzenie faktury za zamówienie jest niedozwolone.',
+ 'product-error' => 'Faktury nie można utworzyć bez produktów.',
+ 'status-overdue' => 'Overdue',
+ 'status-pending' => 'Pending Payment',
+ 'status-paid' => 'Paid',
],
'shipments' => [
diff --git a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php
index cd4cbfb85..dc937db3e 100755
--- a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php
@@ -399,32 +399,35 @@ return [
],
'invoices' => [
- 'title' => 'Faturas',
- 'id' => 'Id',
- 'invoice-id' => 'Fatura Id',
- 'invoice' => 'Fatura',
- 'date' => 'Data da Fatura',
- 'order-id' => 'Pedido Id',
- 'customer-name' => 'Nome do Cliente',
- 'status' => 'Status',
- 'amount' => 'Valor',
- 'action' => 'Ação',
- 'add-title' => 'Criar Fatura',
- 'save-btn-title' => 'Salvar Fatura',
- 'qty' => 'Qtd',
- 'qty-ordered' => 'Qtd Pedido',
- 'qty-to-invoice' => 'Qtd Faturado',
- 'view-title' => 'Fatura #:invoice_id',
- 'bill-to' => 'Cobrar de',
- 'ship-to' => 'Enviar para',
- 'print' => 'Imprimir',
- 'order-date' => 'Data do Pedido',
- 'invalid-qty' => 'We found an invalid quantity to invoice items.',
- 'creation-error' => 'A criação de fatura de pedido não é permitida.',
- 'product-error' => 'A fatura não pode ser criada sem produtos.',
- 'status-overdue' => 'Overdue',
- 'status-pending' => 'Pagamento pendente',
- 'status-paid' => 'Pago',
+ 'title' => 'Faturas',
+ 'id' => 'Id',
+ 'invoice-id' => 'Fatura Id',
+ 'invoice' => 'Fatura',
+ 'date' => 'Data da Fatura',
+ 'order-id' => 'Pedido Id',
+ 'customer-name' => 'Nome do Cliente',
+ 'status' => 'Status',
+ 'amount' => 'Valor',
+ 'action' => 'Ação',
+ 'add-title' => 'Criar Fatura',
+ 'save-btn-title' => 'Salvar Fatura',
+ 'send-duplicate-invoice' => 'Send Duplicate Invoice',
+ 'send' => 'Send',
+ 'invoice-sent' => 'Invoice sent successfully!',
+ 'qty' => 'Qtd',
+ 'qty-ordered' => 'Qtd Pedido',
+ 'qty-to-invoice' => 'Qtd Faturado',
+ 'view-title' => 'Fatura #:invoice_id',
+ 'bill-to' => 'Cobrar de',
+ 'ship-to' => 'Enviar para',
+ 'print' => 'Imprimir',
+ 'order-date' => 'Data do Pedido',
+ 'invalid-qty' => 'We found an invalid quantity to invoice items.',
+ 'creation-error' => 'A criação de fatura de pedido não é permitida.',
+ 'product-error' => 'A fatura não pode ser criada sem produtos.',
+ 'status-overdue' => 'Overdue',
+ 'status-pending' => 'Pagamento pendente',
+ 'status-paid' => 'Pago',
],
'shipments' => [
diff --git a/packages/Webkul/Admin/src/Resources/lang/tr/app.php b/packages/Webkul/Admin/src/Resources/lang/tr/app.php
index 758a9d3e3..2ade34860 100644
--- a/packages/Webkul/Admin/src/Resources/lang/tr/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/tr/app.php
@@ -398,32 +398,35 @@ return [
],
'invoices' => [
- 'title' => 'Faturalar',
- 'id' => 'ID',
- 'invoice-id' => 'Fatura No',
- 'invoice' => 'Fatura',
- 'date' => 'Fatura Tarihi',
- 'order-id' => 'Sipariş No',
- 'customer-name' => 'Müşteri Adı',
- 'status' => 'Durum',
- 'amount' => 'Miktar',
- 'action' => 'Eylem',
- 'add-title' => 'Fatura Oluştur',
- 'save-btn-title' => 'Fatura Kaydet',
- 'qty' => 'Miktar',
- 'qty-ordered' => 'Sipariş Miktarı',
- 'qty-to-invoice' => 'Fatura Edilen Miktar',
- 'view-title' => 'Fatura #:invoice_id',
- 'bill-to' => 'Fatura Edilen',
- 'ship-to' => 'Teslim Edilen',
- 'print' => 'Yazdır',
- 'order-date' => 'Sipariş Tarihi',
- 'invalid-qty' => 'We found an invalid quantity to invoice items.',
- 'creation-error' => 'Fatura oluşturulmasına izin verilmedi.',
- 'product-error' => 'Fatura oluşturulması için ürün ekleyiniz.',
- 'status-overdue' => 'Overdue',
- 'status-pending' => 'Pending Payment',
- 'status-paid' => 'Paid',
+ 'title' => 'Faturalar',
+ 'id' => 'ID',
+ 'invoice-id' => 'Fatura No',
+ 'invoice' => 'Fatura',
+ 'date' => 'Fatura Tarihi',
+ 'order-id' => 'Sipariş No',
+ 'customer-name' => 'Müşteri Adı',
+ 'status' => 'Durum',
+ 'amount' => 'Miktar',
+ 'action' => 'Eylem',
+ 'add-title' => 'Fatura Oluştur',
+ 'save-btn-title' => 'Fatura Kaydet',
+ 'send-duplicate-invoice' => 'Send Duplicate Invoice',
+ 'send' => 'Send',
+ 'invoice-sent' => 'Invoice sent successfully!',
+ 'qty' => 'Miktar',
+ 'qty-ordered' => 'Sipariş Miktarı',
+ 'qty-to-invoice' => 'Fatura Edilen Miktar',
+ 'view-title' => 'Fatura #:invoice_id',
+ 'bill-to' => 'Fatura Edilen',
+ 'ship-to' => 'Teslim Edilen',
+ 'print' => 'Yazdır',
+ 'order-date' => 'Sipariş Tarihi',
+ 'invalid-qty' => 'We found an invalid quantity to invoice items.',
+ 'creation-error' => 'Fatura oluşturulmasına izin verilmedi.',
+ 'product-error' => 'Fatura oluşturulması için ürün ekleyiniz.',
+ 'status-overdue' => 'Overdue',
+ 'status-pending' => 'Pending Payment',
+ 'status-paid' => 'Paid',
],
'shipments' => [
diff --git a/packages/Webkul/Admin/src/Resources/views/sales/invoices/view.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/invoices/view.blade.php
index cfc54f8ef..bfbae6196 100755
--- a/packages/Webkul/Admin/src/Resources/views/sales/invoices/view.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/sales/invoices/view.blade.php
@@ -5,8 +5,9 @@
@stop
@section('content-wrapper')
-
- order; ?>
+ @php
+ $order = $invoice->order;
+ @endphp
-
-
-
- @if ($order->billing_address || $order->shipping_address)
-
-
-
- @if ($order->billing_address)
-
-
- {{ __('admin::app.sales.orders.billing-address') }}
-
-
-
- @include ('admin::sales.address', ['address' => $order->billing_address])
-
- {!! view_render_event('sales.invoice.billing_address.after', ['order' => $order]) !!}
-
-
- @endif
-
- @if ($order->shipping_address)
-
-
- {{ __('admin::app.sales.orders.shipping-address') }}
-
-
-
- @include ('admin::sales.address', ['address' => $order->shipping_address])
-
- {!! view_render_event('sales.invoice.shipping_address.after', ['order' => $order]) !!}
-
-
- @endif
- @endif
+
+ @if ($order->billing_address || $order->shipping_address)
+
+
+
+ @if ($order->billing_address)
+
+
+ {{ __('admin::app.sales.orders.billing-address') }}
+
+
+
+ @include ('admin::sales.address', ['address' => $order->billing_address])
+
+ {!! view_render_event('sales.invoice.billing_address.after', ['order' => $order]) !!}
+
+
+ @endif
+
+ @if ($order->shipping_address)
+
+
+ {{ __('admin::app.sales.orders.shipping-address') }}
+
+
+
+ @include ('admin::sales.address', ['address' => $order->shipping_address])
+
+ {!! view_render_event('sales.invoice.shipping_address.after', ['order' => $order]) !!}
+
+
+ @endif
+
+
+
+ @endif
-
@@ -191,7 +196,6 @@
-
@foreach ($invoice->items as $item)
| {{ $item->getTypeInstance()->getOrderedItem($item)->sku }} |
@@ -225,10 +229,9 @@
{{ core()->formatBasePrice($item->base_total + $item->base_tax_amount - $item->base_discount_amount) }} |
@endforeach
-
-
+
@@ -264,13 +267,12 @@
| {{ core()->formatBasePrice($invoice->base_grand_total) }} |
-
-
+
@inject('InvoicesTransactionsDatagrid', 'Webkul\Admin\DataGrids\InvoicesTransactionsDatagrid')
{!! $InvoicesTransactionsDatagrid->render() !!}
@@ -278,6 +280,41 @@
-
-@stop
\ No newline at end of file
+
+
+ {{ __('admin::app.sales.invoices.send-duplicate-invoice') }}
+
+
+
+@stop
diff --git a/packages/Webkul/Admin/src/Routes/sales-routes.php b/packages/Webkul/Admin/src/Routes/sales-routes.php
index 997ea69b7..2e17b868c 100644
--- a/packages/Webkul/Admin/src/Routes/sales-routes.php
+++ b/packages/Webkul/Admin/src/Routes/sales-routes.php
@@ -48,6 +48,9 @@ Route::group(['middleware' => ['web', 'admin', 'admin_locale'], 'prefix' => conf
'view' => 'admin::sales.invoices.view',
])->name('admin.sales.invoices.view');
+ Route::post('/invoices/send-duplicate/{id}', [InvoiceController::class, 'sendDuplicateInvoice'])
+ ->name('admin.sales.invoices.send-duplicate-invoice');
+
Route::get('/invoices/print/{id}', [InvoiceController::class, 'printInvoice'])->defaults('_config', [
'view' => 'admin::sales.invoices.print',
])->name('admin.sales.invoices.print');
diff --git a/packages/Webkul/Admin/src/Traits/Mails.php b/packages/Webkul/Admin/src/Traits/Mails.php
index 10b56a8a6..061136463 100644
--- a/packages/Webkul/Admin/src/Traits/Mails.php
+++ b/packages/Webkul/Admin/src/Traits/Mails.php
@@ -3,15 +3,16 @@
namespace Webkul\Admin\Traits;
use Illuminate\Support\Facades\Mail;
+use Webkul\Admin\Mail\CancelOrderAdminNotification;
+use Webkul\Admin\Mail\CancelOrderNotification;
+use Webkul\Admin\Mail\DuplicateInvoiceNotification;
use Webkul\Admin\Mail\NewAdminNotification;
+use Webkul\Admin\Mail\NewInventorySourceNotification;
+use Webkul\Admin\Mail\NewInvoiceNotification;
use Webkul\Admin\Mail\NewOrderNotification;
use Webkul\Admin\Mail\NewRefundNotification;
-use Webkul\Admin\Mail\NewInvoiceNotification;
-use Webkul\Admin\Mail\CancelOrderNotification;
use Webkul\Admin\Mail\NewShipmentNotification;
use Webkul\Admin\Mail\OrderCommentNotification;
-use Webkul\Admin\Mail\CancelOrderAdminNotification;
-use Webkul\Admin\Mail\NewInventorySourceNotification;
trait Mails
{
@@ -26,14 +27,20 @@ trait Mails
$customerLocale = $this->getLocale($order);
try {
- /* email to customer */
+ /**
+ * Email to customer.
+ */
$configKey = 'emails.general.notifications.emails.general.notifications.new-order';
+
if (core()->getConfigData($configKey)) {
$this->prepareMail($customerLocale, new NewOrderNotification($order));
}
- /* email to admin */
+ /**
+ * Email to admin.
+ */
$configKey = 'emails.general.notifications.emails.general.notifications.new-admin';
+
if (core()->getConfigData($configKey)) {
$this->prepareMail(config('app.locale'), new NewAdminNotification($order));
}
@@ -57,8 +64,11 @@ trait Mails
return;
}
- /* email to customer */
+ /**
+ * Email to customer.
+ */
$configKey = 'emails.general.notifications.emails.general.notifications.new-invoice';
+
if (core()->getConfigData($configKey)) {
$this->prepareMail($customerLocale, new NewInvoiceNotification($invoice));
}
@@ -67,6 +77,31 @@ trait Mails
}
}
+ /**
+ * Send duplicate invoice mail to the customer.
+ *
+ * @param \Webkul\Sales\Contracts\Invoice $invoice
+ * @param string $customerEmail
+ * @return void
+ */
+ public function sendDuplicateInvoiceMail($invoice, $customerEmail)
+ {
+ $customerLocale = $this->getLocale($invoice);
+
+ try {
+ /**
+ * Email to customer.
+ */
+ $configKey = 'emails.general.notifications.emails.general.notifications.new-invoice';
+
+ if (core()->getConfigData($configKey)) {
+ $this->prepareMail($customerLocale, new DuplicateInvoiceNotification($invoice, $customerEmail));
+ }
+ } catch (\Exception $e) {
+ report($e);
+ }
+ }
+
/**
* Send new refund mail to the customer.
*
@@ -78,8 +113,11 @@ trait Mails
$customerLocale = $this->getLocale($refund);
try {
- /* email to customer */
+ /**
+ * Email to customer.
+ */
$configKey = 'emails.general.notifications.emails.general.notifications.new-refund';
+
if (core()->getConfigData($configKey)) {
$this->prepareMail($customerLocale, new NewRefundNotification($refund));
}
@@ -103,14 +141,20 @@ trait Mails
return;
}
- /* email to customer */
+ /**
+ * Email to customer.
+ */
$configKey = 'emails.general.notifications.emails.general.notifications.new-shipment';
+
if (core()->getConfigData($configKey)) {
$this->prepareMail($customerLocale, new NewShipmentNotification($shipment));
}
- /* email to admin */
+ /**
+ * Email to admin.
+ */
$configKey = 'emails.general.notifications.emails.general.notifications.new-inventory-source';
+
if (core()->getConfigData($configKey)) {
$this->prepareMail(config('app.locale'), new NewInventorySourceNotification($shipment));
}
@@ -130,14 +174,20 @@ trait Mails
$customerLocale = $this->getLocale($order);
try {
- /* email to customer */
+ /**
+ * Email to customer.
+ */
$configKey = 'emails.general.notifications.emails.general.notifications.cancel-order';
+
if (core()->getConfigData($configKey)) {
$this->prepareMail($customerLocale, new CancelOrderNotification($order));
}
- /* email to admin */
+ /**
+ * Email to admin.
+ */
$configKey = 'emails.general.notifications.emails.general.notifications.new-admin';
+
if (core()->getConfigData($configKey)) {
$this->prepareMail(config('app.locale'), new CancelOrderAdminNotification($order));
}
@@ -161,7 +211,9 @@ trait Mails
}
try {
- /* email to customer */
+ /**
+ * Email to customer.
+ */
$this->prepareMail($customerLocale, new OrderCommentNotification($comment));
} catch (\Exception $e) {
report($e);
@@ -181,6 +233,7 @@ trait Mails
}
$objectFirstItem = $object->items->first();
+
return isset($objectFirstItem->additional['locale']) ? $objectFirstItem->additional['locale'] : 'en';
}
@@ -192,6 +245,7 @@ trait Mails
private function prepareMail($locale, $notification)
{
app()->setLocale($locale);
+
Mail::queue($notification);
}
-}
\ No newline at end of file
+}