From fba3a9c3d5e89d5b5850259959ffd80d5b2d5939 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Mon, 9 Jan 2017 10:17:22 +0200 Subject: [PATCH] Show paid invoice backup separately --- app/Http/Controllers/InvoiceController.php | 28 ++++++++++++---------- app/Http/Controllers/PaymentController.php | 3 ++- resources/views/invoices/history.blade.php | 19 ++++++++------- 3 files changed, 28 insertions(+), 22 deletions(-) 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