diff --git a/app/Entities/Projects/Project.php b/app/Entities/Projects/Project.php index c5563c3..7e63c5c 100755 --- a/app/Entities/Projects/Project.php +++ b/app/Entities/Projects/Project.php @@ -2,6 +2,7 @@ namespace App\Entities\Projects; +use App\Entities\Invoices\Invoice; use App\Entities\Payments\Payment; use App\Entities\Projects\ProjectPresenter; use App\Entities\Projects\Task; @@ -43,6 +44,11 @@ class Project extends Model { return $this->hasMany(Subscription::class); } + public function invoices() + { + return $this->hasMany(Invoice::class); + } + public function payments() { return $this->hasMany(Payment::class)->orderBy('date','desc'); diff --git a/app/Http/Controllers/Projects/InvoicesController.php b/app/Http/Controllers/Projects/InvoicesController.php new file mode 100644 index 0000000..97e5d1e --- /dev/null +++ b/app/Http/Controllers/Projects/InvoicesController.php @@ -0,0 +1,15 @@ + 'List Dokumen', 'features' => 'Daftar Item Pekerjaan', 'cost_proposal' => 'Pengajuan Biaya', + 'invoices' => 'List Invoice', // Actions 'features_export_html' => 'Export HTML', diff --git a/resources/views/projects/invoices.blade.php b/resources/views/projects/invoices.blade.php new file mode 100755 index 0000000..9b9288a --- /dev/null +++ b/resources/views/projects/invoices.blade.php @@ -0,0 +1,58 @@ +@extends('layouts.app') + +@section('title', trans('project.invoices') . ' | ' . $project->name) + +@section('content') +@include('projects.partials.breadcrumb', ['title' => trans('project.invoices')]) + +

+
+ {!! html_link_to_route('invoices.create', trans('invoice.create'), ['project_id' => $project->id], ['class' => 'btn btn-success','icon' => 'plus']) !!} +
+ {{ $project->name }} {{ trans('project.invoices') }} +

+ +@include('projects.partials.nav-tabs') + +
+
+
+

{{ trans('project.invoices') }}

+ + + + + + + + + + + @forelse($project->invoices as $key => $invoice) + + + + + + + + + @empty + + @endforelse + + + + + + + + +
{{ trans('app.table_no') }}{{ trans('invoice.number') }}{{ trans('app.date') }}{{ trans('invoice.customer') }}{{ trans('invoice.amount') }}{{ trans('app.action') }}
{{ 1 + $key }}{{ $invoice->number }}{{ $invoice->created_at->format('Y-m-d') }}{{ $project->customer->name }}{{ formatRp($invoice->amount) }} + {!! html_link_to_route('invoices.show', '', [$invoice->number], ['class' => 'btn btn-info btn-xs','icon' => 'search','title' => 'Lihat ' . trans('invoice.show')]) !!} + {!! html_link_to_route('invoices.pdf', '', [$invoice->number], ['class' => 'btn btn-default btn-xs','icon' => 'print','title' => trans('invoice.print'), 'target' => '_blank']) !!} +
{{ trans('invoice.empty') }}
{{ trans('app.total') }}{{ formatRp($project->invoices->sum('amount')) }}
+
+
+
+@endsection \ No newline at end of file diff --git a/resources/views/projects/partials/nav-tabs.blade.php b/resources/views/projects/partials/nav-tabs.blade.php index 3d4fd7e..863c14a 100644 --- a/resources/views/projects/partials/nav-tabs.blade.php +++ b/resources/views/projects/partials/nav-tabs.blade.php @@ -12,6 +12,9 @@
  • {!! link_to_route('projects.subscriptions', trans('project.subscriptions'), [$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]) !!}
  • diff --git a/resources/views/projects/payments.blade.php b/resources/views/projects/payments.blade.php index 76cfb4e..6ec126b 100755 --- a/resources/views/projects/payments.blade.php +++ b/resources/views/projects/payments.blade.php @@ -7,7 +7,7 @@

    - {!! html_link_to_route('payments.create', trans('payment.create'), ['project_id' => $project->id,'customer_id' => $project->customer_id], ['class' => 'btn btn-primary','icon' => 'plus']) !!} + {!! html_link_to_route('payments.create', trans('payment.create'), ['project_id' => $project->id,'customer_id' => $project->customer_id], ['class' => 'btn btn-success','icon' => 'plus']) !!}
    {{ $project->name }} {{ trans('project.payments') }}

    diff --git a/resources/views/projects/subscriptions.blade.php b/resources/views/projects/subscriptions.blade.php index 690a7df..f8c8a17 100755 --- a/resources/views/projects/subscriptions.blade.php +++ b/resources/views/projects/subscriptions.blade.php @@ -7,7 +7,9 @@ @include('projects.partials.breadcrumb',['title' => trans('project.subscriptions')])

    - {!! link_to_route('subscriptions.create', trans('subscription.create'), ['project_id' => $project->id, 'customer_id' => $project->customer_id], ['class'=>'btn btn-success pull-right']) !!} +
    + {!! link_to_route('subscriptions.create', trans('subscription.create'), ['project_id' => $project->id, 'customer_id' => $project->customer_id], ['class'=>'btn btn-success']) !!} +
    {{ $project->name }} {{ trans('project.subscriptions') }}

    diff --git a/routes/web/projects.php b/routes/web/projects.php index 130838f..8bd10aa 100644 --- a/routes/web/projects.php +++ b/routes/web/projects.php @@ -14,6 +14,11 @@ Route::group(['middleware' => ['web','role:admin'], 'namespace' => 'Projects'], Route::resource('projects','ProjectsController'); /** + * Project Invoices Routes + */ + Route::get('projects/{project}/invoices', ['as'=>'projects.invoices', 'uses'=>'InvoicesController@index']); + + /** * Features Routes */ Route::get('projects/{id}/features/create', ['as'=>'features.create', 'uses'=>'FeaturesController@create']);