diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php
index 37bbe7d190f3..b063c97e1eb0 100644
--- a/app/Http/Controllers/InvoiceController.php
+++ b/app/Http/Controllers/InvoiceController.php
@@ -562,17 +562,21 @@ class InvoiceController extends BaseController
];
$invoice->invoice_type_id = intval($invoice->invoice_type_id);
- $activities = Activity::scope(false, $invoice->account_id)
- ->whereIn('activity_type_id', [ACTIVITY_TYPE_UPDATE_INVOICE, ACTIVITY_TYPE_UPDATE_QUOTE, ACTIVITY_TYPE_CREATE_PAYMENT])
- ->where('invoice_id', '=', $invoice->id)
- ->orderBy('id', 'desc')
- ->get(['id', 'created_at', 'user_id', 'json_backup', 'activity_type_id', 'payment_id']);
+ $activities = Activity::scope(false, $invoice->account_id);
+ if ($paymentId) {
+ $activities->whereIn('activity_type_id', [ACTIVITY_TYPE_CREATE_PAYMENT])
+ ->where('payment_id', '=', $paymentId);
+ } else {
+ $activities->whereIn('activity_type_id', [ACTIVITY_TYPE_UPDATE_INVOICE, ACTIVITY_TYPE_UPDATE_QUOTE])
+ ->where('invoice_id', '=', $invoice->id);
+ }
+ $activities = $activities->orderBy('id', 'desc')
+ ->get(['id', 'created_at', 'user_id', 'json_backup', 'activity_type_id', 'payment_id']);
$versionsJson = [];
$versionsSelect = [];
$lastId = false;
- $selectedId = false;
-
+ //dd($activities->toArray());
foreach ($activities as $activity) {
if ($backup = json_decode($activity->json_backup)) {
$backup->invoice_date = Utils::fromSqlDate($backup->invoice_date);
@@ -585,19 +589,17 @@ class InvoiceController extends BaseController
$backup->invoice_type_id = isset($backup->invoice_type_id) && intval($backup->invoice_type_id) == INVOICE_TYPE_QUOTE;
$backup->account = $invoice->account->toArray();
- $versionsJson[$activity->id] = $backup;
+ $versionsJson[$paymentId ? 0 : $activity->id] = $backup;
$key = Utils::timestampToDateTimeString(strtotime($activity->created_at)) . ' - ' . $activity->user->getDisplayName();
$versionsSelect[$lastId ?: 0] = $key;
$lastId = $activity->id;
- if ($activity->payment_id == $paymentId && $activity->activity_type_id == ACTIVITY_TYPE_CREATE_PAYMENT) {
- $selectedId = $lastId;
- }
} else {
Utils::logError('Failed to parse invoice backup');
}
}
- if ($lastId) {
+ // Show the current version as the last in the history
+ if ( ! $paymentId) {
$versionsSelect[$lastId] = Utils::timestampToDateTimeString(strtotime($invoice->created_at)) . ' - ' . $invoice->user->getDisplayName();
}
@@ -607,7 +609,7 @@ class InvoiceController extends BaseController
'versionsSelect' => $versionsSelect,
'invoiceDesigns' => InvoiceDesign::getDesigns(),
'invoiceFonts' => Cache::get('fonts'),
- 'selectedId' => $selectedId,
+ 'paymentId' => $paymentId,
];
return View::make('invoices.history', $data);
diff --git a/app/Http/Controllers/PaymentController.php b/app/Http/Controllers/PaymentController.php
index a970a601b161..8985f9e04205 100644
--- a/app/Http/Controllers/PaymentController.php
+++ b/app/Http/Controllers/PaymentController.php
@@ -128,8 +128,9 @@ class PaymentController extends BaseController
$actions = [];
if ($payment->invoiceJsonBackup()) {
$actions[] = ['url' => url("/invoices/invoice_history/{$payment->invoice->public_id}?payment_id={$payment->public_id}"), 'label' => trans('texts.view_invoice')];
- $actions[] = DropdownButton::DIVIDER;
}
+ $actions[] = ['url' => url("/invoices/{$payment->invoice->public_id}/edit"), 'label' => trans('texts.edit_invoice')];
+ $actions[] = DropdownButton::DIVIDER;
if ( ! $payment->trashed()) {
$actions[] = ['url' => 'javascript:submitAction("archive")', 'label' => trans('texts.archive_payment')];
$actions[] = ['url' => 'javascript:onDeleteClick()', 'label' => trans('texts.delete_payment')];
diff --git a/resources/views/invoices/history.blade.php b/resources/views/invoices/history.blade.php
index 794806f23c2b..cece6b62ea87 100644
--- a/resources/views/invoices/history.blade.php
+++ b/resources/views/invoices/history.blade.php
@@ -21,11 +21,15 @@
var version = $('#version').val();
var invoice;
- if (parseInt(version)) {
- invoice = versionsJson[version];
- } else {
- invoice = currentInvoice;
- }
+ @if ($paymentId)
+ invoice = versionsJson[0];
+ @else
+ if (parseInt(version)) {
+ invoice = versionsJson[version];
+ } else {
+ invoice = currentInvoice;
+ }
+ @endif
invoice.image = window.accountLogo;
@@ -49,9 +53,8 @@
@section('content')
{!! Former::open()->addClass('form-inline')->onchange('refreshPDF()') !!}
- {!! Former::populateField('version', $selectedId) !!}
- @if (count($versionsSelect))
+ @if (count($versionsSelect) > 1)
{!! Former::select('version')
->options($versionsSelect)
->label(trans('select_version'))
@@ -63,7 +66,7 @@
- @if ( ! count($versionsSelect))
+ @if (count($versionsSelect) <= 1)
@endif