diff --git a/app/Entities/Subscriptions/Subscription.php b/app/Entities/Subscriptions/Subscription.php index e479378..b7e5706 100755 --- a/app/Entities/Subscriptions/Subscription.php +++ b/app/Entities/Subscriptions/Subscription.php @@ -33,6 +33,14 @@ class Subscription extends Model return $this->nearOfDueDate() ? '' : ''; } + public function dueDateDescription() + { + $dueDateDescription = trans('subscription.start_date').' : '.dateId($this->start_date)."\n"; + $dueDateDescription .= trans('subscription.due_date').' : '.dateId($this->due_date); + + return $dueDateDescription; + } + public function project() { return $this->belongsTo('App\Entities\Projects\Project'); diff --git a/app/Http/Controllers/SubscriptionsController.php b/app/Http/Controllers/SubscriptionsController.php index db1daeb..3394366 100755 --- a/app/Http/Controllers/SubscriptionsController.php +++ b/app/Http/Controllers/SubscriptionsController.php @@ -44,7 +44,9 @@ class SubscriptionsController extends Controller public function show(Subscription $subscription) { - return view('subscriptions.show', compact('subscription')); + $pageTitle = $this->getPageTitle('detail', $subscription); + + return view('subscriptions.show', compact('subscription', 'pageTitle')); } public function edit(Subscription $subscription) @@ -53,7 +55,7 @@ class SubscriptionsController extends Controller $vendors = $this->repo->getVendorsList(); $subscriptionTypes = $this->getSubscriptionTypes(); - $pageTitle = trans('subscription.edit').' - '.$subscription->name.' - '.$subscription->customer->name; + $pageTitle = $this->getPageTitle('edit', $subscription); return view('subscriptions.edit', compact('subscription', 'projects', 'vendors', 'subscriptionTypes', 'pageTitle')); } @@ -74,7 +76,7 @@ class SubscriptionsController extends Controller return redirect()->route('subscriptions.index'); } - public function getSubscriptionTypes() + private function getSubscriptionTypes() { return [ 1 => trans('subscription.types.domain'), @@ -82,4 +84,9 @@ class SubscriptionsController extends Controller ]; } + private function getPageTitle($pageType, $subscription) + { + return trans('subscription.'.$pageType).' - '.$subscription->name.' - '.$subscription->customer->name; + } + } diff --git a/app/Queries/AdminDashboardQuery.php b/app/Queries/AdminDashboardQuery.php index 0e34e29..5840d58 100644 --- a/app/Queries/AdminDashboardQuery.php +++ b/app/Queries/AdminDashboardQuery.php @@ -23,7 +23,7 @@ class AdminDashboardQuery public function totalEarnings($year) { $totalEarnings = 0; - $payments = Payment::where('date', 'like', $year.'%')->get(); + $payments = Payment::where('date', 'like', $year.'%')->get(); foreach ($payments as $payment) { if ($payment->in_out == 1) { $totalEarnings += $payment->amount; @@ -79,13 +79,13 @@ class AdminDashboardQuery */ public function upcomingSubscriptionDueDatesList() { - $subscriptions = Subscription::get(); + $subscriptions = Subscription::orderBy('due_date', 'asc')->get(); $filteredSubscriptions = $subscriptions->filter(function ($subscription) { return $subscription->status_id == 1 && Carbon::parse($subscription->due_date)->diffInDays(Carbon::now()) < 60; }); - return $filteredSubscriptions; + return $filteredSubscriptions->load('customer'); } } diff --git a/resources/lang/id/subscription.php b/resources/lang/id/subscription.php index f5763c9..53d2ee8 100644 --- a/resources/lang/id/subscription.php +++ b/resources/lang/id/subscription.php @@ -11,6 +11,7 @@ return [ 'found' => 'Langganan ditemukan', 'not_found' => 'Langganan tidak ditemukan', 'empty' => 'Belum ada Langganan', + 'back_to_show' => 'Kembali ke Detail Langganan', 'back_to_index' => 'Kembali ke daftar Langganan', // Actions diff --git a/resources/views/pages/home.blade.php b/resources/views/pages/home.blade.php index ce0b4ae..7cc886a 100755 --- a/resources/views/pages/home.blade.php +++ b/resources/views/pages/home.blade.php @@ -9,11 +9,11 @@
-
+
Project Status Stats
@foreach($projectStatuses::all() as $statusId => $status) -
+
@include('view-components.dashboard-panel', [ 'class' => $projectStatuses->getColorById($statusId), 'icon' => $projectStatuses->getIconById($statusId), @@ -25,7 +25,7 @@ @endforeach
-
+
Earnings Stats
    -
  • Yearly Earnings ({{ $queriedYear }}) {{ $totalEarnings }}
  • -
  • Finished Projects ({{ $queriedYear }}) {{ $totalFinishedProjects }} Projects
  • -
  • Receiveable Earnings {{ $currentOutstandingCustomerPayment }}
  • +
  • + Yearly Earnings ({{ $queriedYear }}) + {{ $totalEarnings }} +
  • +
  • + Finished Projects ({{ $queriedYear }}) + {{ $totalFinishedProjects }} Projects +
  • +
  • + Receiveable Earnings + {{ $currentOutstandingCustomerPayment }} +
Upcoming Subscriptions Due Dates @@ -53,19 +68,19 @@
+ @foreach(AdminDashboardQuery::upcomingSubscriptionDueDatesList() as $subscription) - - + + + @endforeach diff --git a/resources/views/projects/partials/nav-tabs.blade.php b/resources/views/projects/partials/nav-tabs.blade.php index 863c14a..0f56b43 100644 --- a/resources/views/projects/partials/nav-tabs.blade.php +++ b/resources/views/projects/partials/nav-tabs.blade.php @@ -4,19 +4,19 @@ {!! link_to_route('projects.show', trans('project.show'), [$project->id]) !!}
  • - {!! link_to_route('projects.features', trans('project.features') . ' (' . $project->features->count() . ')', [$project->id]) !!} + {!! link_to_route('projects.features', trans('project.features').' ('.$project->features->count().')', [$project->id]) !!}
  • - {!! link_to_route('projects.payments', trans('project.payments') . ' (' . $project->payments->count() . ')', [$project->id]) !!} + {!! link_to_route('projects.payments', trans('project.payments').' ('.$project->payments->count().')', [$project->id]) !!}
  • - {!! link_to_route('projects.subscriptions', trans('project.subscriptions'), [$project->id]) !!} + {!! link_to_route('projects.subscriptions', trans('project.subscriptions').' ('.$project->subscriptions->count().')', [$project->id]) !!}
  • - {!! link_to_route('projects.invoices', trans('project.invoices') . ' (' . $project->invoices->count() . ')', [$project->id]) !!} + {!! link_to_route('projects.invoices', trans('project.invoices').' ('.$project->invoices->count().')', [$project->id]) !!}
  • - {!! link_to_route('projects.files', trans('project.files') . ' (' . $project->files->count() . ')', [$project->id]) !!} + {!! link_to_route('projects.files', trans('project.files').' ('.$project->files->count().')', [$project->id]) !!}
  • -
    \ No newline at end of file +
    diff --git a/resources/views/projects/subscriptions.blade.php b/resources/views/projects/subscriptions.blade.php index f8c8a17..021411f 100755 --- a/resources/views/projects/subscriptions.blade.php +++ b/resources/views/projects/subscriptions.blade.php @@ -18,22 +18,22 @@
    @lang('subscription.subscription') @lang('customer.customer') @lang('invoice.amount') @lang('subscription.due_date')
    {{ link_to_route('subscriptions.show', $subscription->domain_name, [$subscription->id]) }}{{ formatRp($subscription->domain_price + $subscription->hosting_price) }}{{ $subscription->nameLink() }}{{ $subscription->customer->name }}{{ formatRp($subscription->price) }} {{ $subscription->due_date }} - + {!! $subscription->nearOfDueDateSign() !!}
    - - - - + + + + @foreach($project->subscriptions as $key => $subscription) - due_date)->diffInDays(Carbon::now()) < 60 ? 'class=bg-danger' : '' }}> + - - - - - + + + + + - diff --git a/resources/views/subscriptions/show.blade.php b/resources/views/subscriptions/show.blade.php index 74579f7..3d345c7 100755 --- a/resources/views/subscriptions/show.blade.php +++ b/resources/views/subscriptions/show.blade.php @@ -1,21 +1,21 @@ @extends('layouts.app') -@section('title', trans('subscription.detail')) +@section('title', $pageTitle) @section('content') @include('subscriptions.partials.breadcrumb') -

    {{ $subscription->name }} {{ trans('subscription.detail') }}

    -

    {{ trans('subscription.detail') }}

    +

    {{ $pageTitle }}

    @include('subscriptions.partials.subscription-show') -
    +
    + @lang('app.action') +

    {!! link_to_route('subscriptions.edit', trans('subscription.edit'), [$subscription->id], ['class' => 'btn btn-warning']) !!}

    +

    {!! link_to_route('subscriptions.index', trans('subscription.back_to_index'), [], ['class' => 'btn btn-default']) !!}

    +
    @endsection diff --git a/tests/Unit/Models/SubscriptionTest.php b/tests/Unit/Models/SubscriptionTest.php index 3df094c..f2e9068 100644 --- a/tests/Unit/Models/SubscriptionTest.php +++ b/tests/Unit/Models/SubscriptionTest.php @@ -60,6 +60,18 @@ class SubscriptionTest extends TestCase } /** @test */ + public function it_has_due_date_description_method() + { + $next3Months = Carbon::now()->addMonths(2)->format('Y-m-d'); + $subscription = factory(Subscription::class)->make(['due_date' => $next3Months]); + + $dueDateDescription = trans('subscription.start_date').' : '.dateId($subscription->start_date)."\n"; + $dueDateDescription .= trans('subscription.due_date').' : '.dateId($subscription->due_date); + + $this->assertEquals($dueDateDescription, $subscription->dueDateDescription()); + } + + /** @test */ public function it_has_project_relation() { $subscription = factory(Subscription::class)->create();
    {{ trans('app.table_no') }}{{ trans('subscription.domain_name') }}{{ trans('subscription.hosting_capacity') }}{{ trans('subscription.start_date') }}{{ trans('subscription.due_date') }}{{ trans('subscription.type') }}{{ trans('subscription.subscription') }}{{ trans('subscription.start_date') }}{{ trans('subscription.due_date') }} {{ trans('subscription.extension_price') }} {{ trans('app.action') }}
    {{ 1 + $key }}{{ $subscription->domain_name }}{{ $subscription->hosting_capacity }}{{ dateId($subscription->start_date) }}{{ dateId($subscription->due_date) }}{{ formatRp($subscription->domain_price + $subscription->hosting_price) }}{{ $subscription->type }}{{ $subscription->nameLink() }}{{ dateId($subscription->start_date) }}{{ dateId($subscription->due_date) }} {!! $subscription->nearOfDueDateSign() !!}{{ formatRp($subscription->price) }} {!! link_to_route('subscriptions.show',trans('app.show'),[$subscription->id],['class'=>'btn btn-info btn-xs']) !!} {!! link_to_route('subscriptions.edit',trans('app.edit'),[$subscription->id],['class'=>'btn btn-warning btn-xs']) !!} diff --git a/resources/views/subscriptions/edit.blade.php b/resources/views/subscriptions/edit.blade.php index b43b148..d9c2dcf 100755 --- a/resources/views/subscriptions/edit.blade.php +++ b/resources/views/subscriptions/edit.blade.php @@ -9,7 +9,7 @@ @if (request('action') == null)
    -
    +
    {!! Form::model($subscription, ['route'=>['subscriptions.update', $subscription->id], 'method' => 'patch']) !!}

    {{ $pageTitle }}

    @@ -47,7 +47,7 @@
    @lang('app.action') -

    {!! link_to_route('subscriptions.show', trans('subscription.show'), [$subscription->id], ['class' => 'btn btn-info']) !!}

    +

    {!! link_to_route('subscriptions.show', trans('subscription.back_to_show'), [$subscription->id], ['class' => 'btn btn-info']) !!}

    {!! link_to_route('subscriptions.index', trans('subscription.back_to_index'), [], ['class' => 'btn btn-default']) !!}

    {!! link_to_route('subscriptions.edit', trans('subscription.delete'), [$subscription->id, 'action' => 'delete'], ['class'=>'btn btn-danger']) !!}

    diff --git a/resources/views/subscriptions/index.blade.php b/resources/views/subscriptions/index.blade.php index e859030..40cfeb3 100755 --- a/resources/views/subscriptions/index.blade.php +++ b/resources/views/subscriptions/index.blade.php @@ -31,10 +31,7 @@
    {{ $subscriptions->firstItem() + $key }} {{ $subscription->nameLink() }} {{ $subscription->customer->name }} + {{ dateId($subscription->due_date) }} {!! $subscription->nearOfDueDateSign() !!} {{ formatRp($subscription->price) }}