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:
parent
1e8f5b5e7b
commit
fba3a9c3d5
@ -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);
|
||||
|
@ -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')];
|
||||
|
@ -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/> <br/>
|
||||
|
||||
@if ( ! count($versionsSelect))
|
||||
@if (count($versionsSelect) <= 1)
|
||||
<br/> <br/>
|
||||
@endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user