diff --git a/app/Http/Controllers/UserServicesController.php b/app/Http/Controllers/UserServicesController.php
index 870fc52..c422096 100644
--- a/app/Http/Controllers/UserServicesController.php
+++ b/app/Http/Controllers/UserServicesController.php
@@ -7,16 +7,6 @@ use App\User;
class UserServicesController extends Controller
{
- public function invoices(User $o)
- {
- return ['data'=>$o->invoices_due->values()];
- }
-
- public function payments(User $o)
- {
- return ['data'=>$o->payment_history->values()];
- }
-
public function services(User $o)
{
return ['data'=>$o->services_active->values()];
diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php
index bc6e4b0..5277ec4 100644
--- a/app/Models/Invoice.php
+++ b/app/Models/Invoice.php
@@ -27,21 +27,6 @@ class Invoice extends Model
// Array of items that can be updated with PushNew
protected $pushable = ['items'];
- protected $appends = [
- 'date_due',
- 'due',
- 'invoice_id_url',
- 'total',
- ];
-
- protected $visible = [
- 'date_due',
- 'due',
- 'id',
- 'invoice_id_url',
- 'total',
- ];
-
protected $with = [
'account.country.currency',
'items.taxes',
@@ -97,21 +82,11 @@ class Invoice extends Model
return $this->date_orig->format('Y-m-d');
}
- public function getInvoiceIdAttribute()
- {
- return sprintf('%06s',$this->id);
- }
-
public function getInvoiceAccountIdAttribute()
{
return sprintf('%02s-%04s-%06s',$this->site_id,$this->account_id,$this->invoice_id);
}
- public function getInvoiceIdUrlAttribute()
- {
- return sprintf('%s',$this->id,$this->invoice_account_id);
- }
-
public function getInvoiceTextAttribute()
{
return sprintf('Thank you for using %s for your Internet Services.',config('SITE_SETUP')->site_name);
diff --git a/app/Models/Payment.php b/app/Models/Payment.php
index d3e5ec5..108070f 100644
--- a/app/Models/Payment.php
+++ b/app/Models/Payment.php
@@ -20,19 +20,6 @@ class Payment extends Model
protected $dateFormat = 'U';
protected $with = ['account.country.currency','items'];
- protected $appends = [
- 'date_paid',
- 'payment_id_url',
- 'total',
- ];
-
- protected $visible = [
- 'date_paid',
- 'id',
- 'payment_id_url',
- 'total',
- ];
-
public function account()
{
return $this->belongsTo(Account::class);
@@ -48,16 +35,6 @@ class Payment extends Model
return $this->date_payment->format('Y-m-d');
}
- public function getPaymentIdAttribute()
- {
- return sprintf('%02s-%04s+%05s',$this->site_id,$this->account_id,$this->id);
- }
-
- public function getPaymentIdUrlAttribute()
- {
- return sprintf('%s',$this->id,$this->payment_id);
- }
-
public function getTotalAttribute()
{
return sprintf('%3.'.$this->currency()->rounding.'f',$this->total_amt);
diff --git a/app/User.php b/app/User.php
index caa80bf..90c6efb 100644
--- a/app/User.php
+++ b/app/User.php
@@ -614,6 +614,32 @@ class User extends Authenticatable
->from($summary,'summary');
}
+ public function query_payment_summary()
+ {
+ $payment = (new Payment)
+ ->select([
+ 'payment_id',
+ DB::raw('SUM(allocate) AS allocate'),
+
+ ])
+ ->from($this->query_payment_items(),'PI')
+ //->where('ab_payment.active',TRUE) // @todo To implement
+ ->groupBy(['payment_id']);
+
+ return (new Payment)
+ ->select([
+ DB::raw('payment_id AS id'),
+ 'date_orig',
+ 'date_payment',
+ 'total_amt',
+ //'fees_amt',
+ DB::raw('total_amt-allocate AS balance'),
+ ])
+ ->join('ab_payment',['ab_payment.id'=>'payment_id'])
+ ->whereIN('account_id',$this->all_accounts()->pluck('id')->unique()->toArray())
+ ->from($payment,'summary');
+ }
+
public function role()
{
// If I have agents and no parent, I am the wholesaler
diff --git a/resources/views/theme/backend/adminlte/common/invoice/widget/history.blade.php b/resources/views/theme/backend/adminlte/common/invoice/widget/history.blade.php
deleted file mode 100644
index 7e26cca..0000000
--- a/resources/views/theme/backend/adminlte/common/invoice/widget/history.blade.php
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
- @if ($o->invoices->count())
-
-
-
- ID |
- Date |
- Amount |
-
-
-
-
- @foreach ($o->invoices as $io)
-
- {{ $io->id }} |
- {{ $io->due_date ? $io->due_date->format('Y-m-d') : ' ' }} |
- {{ number_format($io->total,2) }} |
-
- @endforeach
-
-
-
- @else
-
No payments recorded
- @endif
-
-
-
-@section('page-scripts')
- @css('//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css','jq-dt-css','jquery')
- @js('//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js','jq-dt-js','jquery')
- @css('//cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css','dt-responsive-css','jq-dt-css')
- @js('//cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js','dt-responsive-js','jq-dt-js')
- @css('/plugin/dataTables/dataTables.bootstrap4.css','dt-bootstrap4-css','jq-dt-css')
- @js('/plugin/dataTables/dataTables.bootstrap4.js','dt-bootstrap4-js','jq-dt-js')
-
-
-@append
\ No newline at end of file
diff --git a/resources/views/theme/backend/adminlte/common/payment/widget/history.blade.php b/resources/views/theme/backend/adminlte/common/payment/widget/history.blade.php
deleted file mode 100644
index 37c601a..0000000
--- a/resources/views/theme/backend/adminlte/common/payment/widget/history.blade.php
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
- @if ($o->payment_history->count())
-
-
-
- ID |
- Date |
- Amount |
-
-
-
- @else
-
No payments recorded
- @endif
-
-
-
-@section('page-scripts')
- @css('//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css','jq-dt-css','jquery')
- @js('//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js','jq-dt-js','jquery')
- @css('//cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css','dt-responsive-css','jq-dt-css')
- @js('//cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js','dt-responsive-js','jq-dt-js')
- @css('/plugin/dataTables/dataTables.bootstrap4.css','dt-bootstrap4-css','jq-dt-css')
- @js('/plugin/dataTables/dataTables.bootstrap4.js','dt-bootstrap4-js','jq-dt-js')
-
-
-@append
\ No newline at end of file
diff --git a/resources/views/theme/backend/adminlte/r/home.blade.php b/resources/views/theme/backend/adminlte/r/home.blade.php
index 7df1785..6dc9ddc 100644
--- a/resources/views/theme/backend/adminlte/r/home.blade.php
+++ b/resources/views/theme/backend/adminlte/r/home.blade.php
@@ -56,7 +56,41 @@
- @include('common.payment.widget.history')
+
+
+
+
+
+ @include('widgets.invoice',[
+ 'o'=>$o->query_invoice_summary()->whereIN('account_id',$o->accounts()->pluck('id')->toArray())->where('due_date','>',now()->subYear()->timestamp)->having('balance','=',0),
+ 'widget_invoice_name'=>'widget-invoice-last'
+ ])
+
+
+
+
+
+
+
+
+ @include('widgets.payment',[
+ 'o'=>$o->query_payment_summary()->whereIN('account_id',$o->accounts()->pluck('id')->toArray())->where('date_payment','>',now()->subYear()->timestamp)->with(['items']),
+ 'widget_payment_name'=>'widget-payment-last'
+ ])
+
+
diff --git a/resources/views/theme/backend/adminlte/u/home.blade.php b/resources/views/theme/backend/adminlte/u/home.blade.php
index c0bdd8b..1098b2f 100644
--- a/resources/views/theme/backend/adminlte/u/home.blade.php
+++ b/resources/views/theme/backend/adminlte/u/home.blade.php
@@ -69,13 +69,29 @@
@include('widgets.invoice',[
- 'o'=>$o->query_invoice_summary()->whereIN('account_id',$o->accounts()->pluck('id')->toArray())->where('due_date','>',now()->subYear()->timestamp),
+ 'o'=>$o->query_invoice_summary()->whereIN('account_id',$o->accounts()->pluck('id')->toArray())->where('due_date','>',now()->subYear()->timestamp)->having('balance','=',0),
'widget_invoice_name'=>'widget-invoice-last'
])
- @include('common.payment.widget.history')
+
+
+
+
+
+ @include('widgets.payment',[
+ 'o'=>$o->query_payment_summary()->where('date_payment','>',now()->subYear()->timestamp)->with(['items']),
+ 'widget_payment_name'=>'widget-payment-last'
+ ])
+
+
diff --git a/resources/views/theme/backend/adminlte/widgets/payment.blade.php b/resources/views/theme/backend/adminlte/widgets/payment.blade.php
new file mode 100644
index 0000000..60729f2
--- /dev/null
+++ b/resources/views/theme/backend/adminlte/widgets/payment.blade.php
@@ -0,0 +1,53 @@
+@if(($x=$o->get())->count())
+
+
+@section('page-scripts')
+ @css('//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css','jq-dt-css','jquery')
+ @js('//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js','jq-dt-js','jquery')
+ @css('//cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css','jq-dt-r-css','jq-dt-css')
+ @js('//cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js','jq-dt-r-js','jq-dt-js')
+ @css('/plugin/dataTables/dataTables.bootstrap4.css','dt-bootstrap4-css','jq-dt-css')
+ @js('/plugin/dataTables/dataTables.bootstrap4.js','dt-bootstrap4-js','jq-dt-js')
+
+
+@append
+
+@else
+ No data to display
+@endif
\ No newline at end of file
diff --git a/routes/api.php b/routes/api.php
index 306b823..1e7a7af 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -27,12 +27,6 @@ Route::group(['middleware'=>['auth:api','role:reseller']], function() {
});
Route::group(['middleware'=>'auth:api'], function() {
- Route::get('/u/invoices/{o}','UserServicesController@invoices')
- ->where('o','[0-9]+')
- ->middleware('can:view,o');;
- Route::get('/u/payments/{o}','UserServicesController@payments')
- ->where('o','[0-9]+')
- ->middleware('can:view,o');;
Route::get('/u/services/{o}','UserServicesController@services')
->where('o','[0-9]+')
->middleware('can:view,o');;