Duplicate Invoice Ability Added
This commit is contained in:
parent
91ae24664a
commit
4e62451d49
|
|
@ -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.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Admin\Mail;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class DuplicateInvoiceNotification extends Mailable
|
||||
{
|
||||
use Queueable, SerializesModels;
|
||||
|
||||
/**
|
||||
* The invoice instance.
|
||||
*
|
||||
* @var \Webkul\Customer\Contracts\Invoice
|
||||
*/
|
||||
public $invoice;
|
||||
|
||||
/**
|
||||
* Customer email.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $customerEmail;
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*
|
||||
* @param \Webkul\Customer\Contracts\Invoice $invoice
|
||||
* @param string $customerEmail
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($invoice, $customerEmail)
|
||||
{
|
||||
$this->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');
|
||||
}
|
||||
}
|
||||
|
|
@ -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' => [
|
||||
|
|
|
|||
|
|
@ -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' =>
|
||||
[
|
||||
|
|
|
|||
|
|
@ -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' => [
|
||||
|
|
|
|||
|
|
@ -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' => [
|
||||
|
|
|
|||
|
|
@ -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' => [
|
||||
|
|
|
|||
|
|
@ -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' => [
|
||||
|
|
|
|||
|
|
@ -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' => [
|
||||
|
|
|
|||
|
|
@ -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' => [
|
||||
|
|
|
|||
|
|
@ -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' => [
|
||||
|
|
|
|||
|
|
@ -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' => [
|
||||
|
|
|
|||
|
|
@ -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' => [
|
||||
|
|
|
|||
|
|
@ -5,8 +5,9 @@
|
|||
@stop
|
||||
|
||||
@section('content-wrapper')
|
||||
|
||||
<?php $order = $invoice->order; ?>
|
||||
@php
|
||||
$order = $invoice->order;
|
||||
@endphp
|
||||
|
||||
<div class="content full-page">
|
||||
<div class="page-header">
|
||||
|
|
@ -25,6 +26,13 @@
|
|||
<div class="page-action">
|
||||
{!! view_render_event('sales.invoice.page_action.before', ['order' => $order]) !!}
|
||||
|
||||
<a
|
||||
href="javascript:void(0);"
|
||||
class="btn btn-lg btn-primary"
|
||||
@click="showModal('duplicateInvoiceFormModal')">
|
||||
{{ __('admin::app.sales.invoices.send-duplicate-invoice') }}
|
||||
</a>
|
||||
|
||||
<a href="{{ route('admin.sales.invoices.print', $invoice->id) }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.sales.invoices.print') }}
|
||||
</a>
|
||||
|
|
@ -35,7 +43,6 @@
|
|||
|
||||
<div class="page-content">
|
||||
<tabs>
|
||||
|
||||
<tab name="{{ __('admin::app.sales.orders.info') }}" :selected="true">
|
||||
<div class="sale-container">
|
||||
<accordian :title="'{{ __('admin::app.sales.orders.order-and-account') }}'" :active="true">
|
||||
|
|
@ -132,46 +139,44 @@
|
|||
</div>
|
||||
</accordian>
|
||||
|
||||
@if ($order->billing_address || $order->shipping_address)
|
||||
<accordian :title="'{{ __('admin::app.sales.orders.address') }}'" :active="true">
|
||||
<div slot="body">
|
||||
<div class="sale">
|
||||
@if ($order->billing_address)
|
||||
<div class="sale-section">
|
||||
<div class="secton-title" >
|
||||
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
|
||||
</div>
|
||||
|
||||
@if ($order->billing_address || $order->shipping_address)
|
||||
<accordian :title="'{{ __('admin::app.sales.orders.address') }}'" :active="true">
|
||||
<div slot="body">
|
||||
<div class="sale">
|
||||
@if ($order->billing_address)
|
||||
<div class="sale-section">
|
||||
<div class="secton-title" >
|
||||
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
|
||||
<div class="section-content">
|
||||
@include ('admin::sales.address', ['address' => $order->billing_address])
|
||||
|
||||
{!! view_render_event('sales.invoice.billing_address.after', ['order' => $order]) !!}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="section-content">
|
||||
@include ('admin::sales.address', ['address' => $order->billing_address])
|
||||
@if ($order->shipping_address)
|
||||
<div class="sale-section">
|
||||
<div class="secton-title">
|
||||
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('sales.invoice.billing_address.after', ['order' => $order]) !!}
|
||||
<div class="section-content">
|
||||
@include ('admin::sales.address', ['address' => $order->shipping_address])
|
||||
|
||||
{!! view_render_event('sales.invoice.shipping_address.after', ['order' => $order]) !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($order->shipping_address)
|
||||
<div class="sale-section">
|
||||
<div class="secton-title">
|
||||
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="section-content">
|
||||
@include ('admin::sales.address', ['address' => $order->shipping_address])
|
||||
|
||||
{!! view_render_event('sales.invoice.shipping_address.after', ['order' => $order]) !!}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</accordian>
|
||||
@endif
|
||||
</accordian>
|
||||
@endif
|
||||
|
||||
<accordian :title="'{{ __('admin::app.sales.orders.products-ordered') }}'" :active="true">
|
||||
<div slot="body">
|
||||
|
||||
<div class="table">
|
||||
<div class="table-responsive">
|
||||
<table>
|
||||
|
|
@ -191,7 +196,6 @@
|
|||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
@foreach ($invoice->items as $item)
|
||||
<tr>
|
||||
<td>{{ $item->getTypeInstance()->getOrderedItem($item)->sku }}</td>
|
||||
|
|
@ -225,7 +229,6 @@
|
|||
<td>{{ core()->formatBasePrice($item->base_total + $item->base_tax_amount - $item->base_discount_amount) }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -264,13 +267,12 @@
|
|||
<td>{{ core()->formatBasePrice($invoice->base_grand_total) }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</accordian>
|
||||
</div>
|
||||
</tab>
|
||||
|
||||
<tab name="Transactions" :selected="false">
|
||||
<tab name="{{ __('admin::app.sales.transactions.title') }}" :selected="false">
|
||||
<div class="sale-container">
|
||||
@inject('InvoicesTransactionsDatagrid', 'Webkul\Admin\DataGrids\InvoicesTransactionsDatagrid')
|
||||
{!! $InvoicesTransactionsDatagrid->render() !!}
|
||||
|
|
@ -278,6 +280,41 @@
|
|||
</tab>
|
||||
</tabs>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<modal id="duplicateInvoiceFormModal" :is-open="modalIds.duplicateInvoiceFormModal">
|
||||
<h3 slot="header">{{ __('admin::app.sales.invoices.send-duplicate-invoice') }}</h3>
|
||||
|
||||
<div slot="body">
|
||||
<form
|
||||
method="POST"
|
||||
action="{{ route('admin.sales.invoices.send-duplicate-invoice', $invoice->id) }}"
|
||||
@submit.prevent="onSubmit">
|
||||
@csrf()
|
||||
|
||||
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
|
||||
<label for="email" class="required">{{ __('admin::app.admin.emails.email') }}</label>
|
||||
|
||||
<input
|
||||
class="control"
|
||||
id="email"
|
||||
v-validate="'required|email'"
|
||||
type="email"
|
||||
name="email"
|
||||
data-vv-as=""{{ __('admin::app.admin.emails.email') }}""
|
||||
value="{{ $invoice->order->customer_email }}">
|
||||
|
||||
<span
|
||||
class="control-error"
|
||||
v-text="errors.first('email')"
|
||||
v-if="errors.has('email')">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-lg btn-primary float-right">
|
||||
{{ __('admin::app.sales.invoices.send') }}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</modal>
|
||||
@stop
|
||||
|
|
@ -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');
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue