1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-19 16:01:34 +02:00

Show paid invoice backup separately

This commit is contained in:
Hillel Coren 2017-01-09 10:17:22 +02:00
parent 1e8f5b5e7b
commit fba3a9c3d5
3 changed files with 28 additions and 22 deletions

View File

@ -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);

View File

@ -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')];

View File

@ -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 @@
<br/>&nbsp;<br/>
@if ( ! count($versionsSelect))
@if (count($versionsSelect) <= 1)
<br/>&nbsp;<br/>
@endif