diff --git a/app/Http/Controllers/Expenses/Bills.php b/app/Http/Controllers/Expenses/Bills.php
index 18d535fcb..429c92fc4 100644
--- a/app/Http/Controllers/Expenses/Bills.php
+++ b/app/Http/Controllers/Expenses/Bills.php
@@ -594,13 +594,22 @@ class Bills extends Controller
} elseif ($bill->payments()->count() > 1) {
$bill->bill_status_code = 'partial';
} else {
- $bill->bill_status_code = 'draft';
+ $bill->bill_status_code = 'received';
}
$bill->save();
$payment->delete();
+ // Add invoice history
+ BillHistory::create([
+ 'company_id' => $bill->company_id,
+ 'invoice_id' => $bill->id,
+ 'status_code' => 'delete',
+ 'notify' => 0,
+ 'description' => trans('general.delete') . ' ' . $payment->description,
+ ]);
+
$message = trans('messages.success.deleted', ['type' => trans_choice('general.bills', 1)]);
flash($message)->success();
diff --git a/app/Http/Controllers/Incomes/Invoices.php b/app/Http/Controllers/Incomes/Invoices.php
index c8012764a..7dcc8db31 100644
--- a/app/Http/Controllers/Incomes/Invoices.php
+++ b/app/Http/Controllers/Incomes/Invoices.php
@@ -474,8 +474,20 @@ class Invoices extends Controller
*/
public function markSent(Invoice $invoice)
{
- $invoice->invoice_status_code = 'sent';
- $invoice->save();
+ if ($invoice->invoice_status_code != 'partial') {
+ $invoice->invoice_status_code = 'sent';
+
+ $invoice->save();
+ }
+
+ // Add invoice history
+ InvoiceHistory::create([
+ 'company_id' => $invoice->company_id,
+ 'invoice_id' => $invoice->id,
+ 'status_code' => 'sent',
+ 'notify' => 0,
+ 'description' => trans('invoices.mark_sent'),
+ ]);
flash(trans('invoices.messages.marked_sent'))->success();
@@ -522,8 +534,20 @@ class Invoices extends Controller
unset($invoice->pdf_path);
// Mark invoice as sent
- $invoice->invoice_status_code = 'sent';
- $invoice->save();
+ if ($invoice->invoice_status_code != 'partial') {
+ $invoice->invoice_status_code = 'sent';
+
+ $invoice->save();
+ }
+
+ // Add invoice history
+ InvoiceHistory::create([
+ 'company_id' => $invoice->company_id,
+ 'invoice_id' => $invoice->id,
+ 'status_code' => 'sent',
+ 'notify' => 1,
+ 'description' => trans('invoices.send_mail'),
+ ]);
flash(trans('invoices.messages.email_sent'))->success();
@@ -705,13 +729,22 @@ class Invoices extends Controller
} elseif ($invoice->payments()->count() > 1) {
$invoice->invoice_status_code = 'partial';
} else {
- $invoice->invoice_status_code = 'draft';
+ $invoice->invoice_status_code = 'sent';
}
$invoice->save();
$payment->delete();
+ // Add invoice history
+ InvoiceHistory::create([
+ 'company_id' => $invoice->company_id,
+ 'invoice_id' => $invoice->id,
+ 'status_code' => 'delete',
+ 'notify' => 0,
+ 'description' => trans('general.delete') . ' ' . $payment->description,
+ ]);
+
$message = trans('messages.success.deleted', ['type' => trans_choice('general.invoices', 1)]);
flash($message)->success();
diff --git a/app/Listeners/Updates/Version1115.php b/app/Listeners/Updates/Version1115.php
new file mode 100644
index 000000000..e1e834cc8
--- /dev/null
+++ b/app/Listeners/Updates/Version1115.php
@@ -0,0 +1,51 @@
+check($event)) {
+ return;
+ }
+
+ // Create new bill statuses
+ $companies = Company::all();
+
+ foreach ($companies as $company) {
+ $invoice = [
+ 'company_id' => $company->id,
+ 'name' => trans('invoices.status.delete'),
+ 'code' => 'delete',
+ ];
+
+ InvoiceStatus::create($invoice);
+
+ $bill = [
+ 'company_id' => $company->id,
+ 'name' => trans('bills.status.delete'),
+ 'code' => 'delete',
+ ];
+
+ BillStatus::create($bill);
+ }
+ }
+}
diff --git a/app/Models/Expense/BillStatus.php b/app/Models/Expense/BillStatus.php
index b758c78f3..f138d1ff8 100644
--- a/app/Models/Expense/BillStatus.php
+++ b/app/Models/Expense/BillStatus.php
@@ -34,6 +34,9 @@ class BillStatus extends Model
case 'paid':
$label = 'label-success';
break;
+ case 'delete':
+ $label = 'label-danger';
+ break;
case 'partial':
case 'received':
$label = 'label-warning';
diff --git a/app/Models/Income/InvoiceStatus.php b/app/Models/Income/InvoiceStatus.php
index bbcbf3c0d..10a7bd1ac 100644
--- a/app/Models/Income/InvoiceStatus.php
+++ b/app/Models/Income/InvoiceStatus.php
@@ -34,6 +34,9 @@ class InvoiceStatus extends Model
case 'paid':
$label = 'label-success';
break;
+ case 'delete':
+ $label = 'label-danger';
+ break;
case 'partial':
case 'sent':
$label = 'label-warning';
diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php
index 002ecd50c..8a88b29cc 100644
--- a/app/Providers/EventServiceProvider.php
+++ b/app/Providers/EventServiceProvider.php
@@ -22,6 +22,7 @@ class EventServiceProvider extends ServiceProvider
'App\Listeners\Updates\Version112',
'App\Listeners\Updates\Version113',
'App\Listeners\Updates\Version119',
+ 'App\Listeners\Updates\Version1115',
],
'Illuminate\Auth\Events\Login' => [
'App\Listeners\Auth\Login',
diff --git a/database/seeds/BillStatuses.php b/database/seeds/BillStatuses.php
index bbd92950b..16d298214 100644
--- a/database/seeds/BillStatuses.php
+++ b/database/seeds/BillStatuses.php
@@ -43,6 +43,11 @@ class BillStatuses extends Seeder
'name' => trans('bills.status.partial'),
'code' => 'partial',
],
+ [
+ 'company_id' => $company_id,
+ 'name' => trans('bills.status.delete'),
+ 'code' => 'delete',
+ ],
[
'company_id' => $company_id,
'name' => trans('bills.status.paid'),
diff --git a/database/seeds/InvoiceStatuses.php b/database/seeds/InvoiceStatuses.php
index 67c175b8d..27580bba6 100644
--- a/database/seeds/InvoiceStatuses.php
+++ b/database/seeds/InvoiceStatuses.php
@@ -53,6 +53,11 @@ class InvoiceStatuses extends Seeder
'name' => trans('invoices.status.partial'),
'code' => 'partial',
],
+ [
+ 'company_id' => $company_id,
+ 'name' => trans('invoices.status.delete'),
+ 'code' => 'delete',
+ ],
[
'company_id' => $company_id,
'name' => trans('invoices.status.paid'),
diff --git a/resources/views/expenses/bills/bill.blade.php b/resources/views/expenses/bills/bill.blade.php
index c35c2142d..8fa3bc9cb 100644
--- a/resources/views/expenses/bills/bill.blade.php
+++ b/resources/views/expenses/bills/bill.blade.php
@@ -113,10 +113,23 @@
@foreach($bill->totals as $total)
-
- {{ trans($total['name']) }}: |
- @money($total->amount, $bill->currency_code, true) |
-
+ @if ($total->code != 'total')
+
+ {{ trans($total['name']) }}: |
+ @money($total->amount, $bill->currency_code, true) |
+
+ @else
+ @if ($bill->paid)
+
+ {{ trans('invoices.paid') }}: |
+ - @money($bill->paid, $bill->currency_code, true) |
+
+ @endif
+
+ {{ trans($total['name']) }}: |
+ @money($total->amount - $bill->paid, $bill->currency_code, true) |
+
+ @endif
@endforeach
diff --git a/resources/views/incomes/invoices/invoice.blade.php b/resources/views/incomes/invoices/invoice.blade.php
index 897bc0c36..e80137f2d 100644
--- a/resources/views/incomes/invoices/invoice.blade.php
+++ b/resources/views/incomes/invoices/invoice.blade.php
@@ -113,10 +113,23 @@
@foreach($invoice->totals as $total)
-
- {{ trans($total['name']) }}: |
- @money($total->amount, $invoice->currency_code, true) |
-
+ @if($total->code != 'total')
+
+ {{ trans($total['name']) }}: |
+ @money($total->amount, $invoice->currency_code, true) |
+
+ @else
+ @if ($invoice->paid)
+
+ {{ trans('invoices.paid') }}: |
+ - @money($invoice->paid, $invoice->currency_code, true) |
+
+ @endif
+
+ {{ trans($total['name']) }}: |
+ @money($total->amount - $invoice->paid, $invoice->currency_code, true) |
+
+ @endif
@endforeach
diff --git a/resources/views/incomes/invoices/show.blade.php b/resources/views/incomes/invoices/show.blade.php
index 7630ffdef..6520023c5 100644
--- a/resources/views/incomes/invoices/show.blade.php
+++ b/resources/views/incomes/invoices/show.blade.php
@@ -165,7 +165,9 @@
@endif
@permission('update-incomes-invoices')
+ @if($invoice->invoice_status_code != 'partial')
{{ trans('invoices.mark_sent') }}
+ @endif
@endpermission
@if($invoice->customer_email)
{{ trans('invoices.send_mail') }}