Browse Source
Update 2016-07-11.15.10
Update 2016-07-11.15.10
Use autoNumeric thousand separator for payment and feature prices entry Reformat Project Payments View to count payment status are closed or not Add current credit report Add projects count summary based on status on dashboard page Fix Features, Payments, Projects, and subscriptions test fielpull/1/head
46 changed files with 506 additions and 197 deletions
-
20app/Entities/Payments/PaymentsRepository.php
-
13app/Entities/Projects/FeaturesRepository.php
-
14app/Entities/Projects/Project.php
-
9app/Entities/Reports/ReportsRepository.php
-
5app/Http/Controllers/PagesController.php
-
10app/Http/Controllers/PaymentsController.php
-
3app/Http/Controllers/Projects/ProjectsController.php
-
6app/Http/Controllers/ReportsController.php
-
2app/Http/Requests/Features/CreateRequest.php
-
2app/Http/Requests/Features/UpdateRequest.php
-
2app/Http/Requests/Payments/CreateRequest.php
-
2app/Http/Requests/Payments/UpdateRequest.php
-
1app/Http/routes/reports.php
-
4app/Providers/AppServiceProvider.php
-
2app/Services/FormField.php
-
22public/assets/css/app.css
-
2public/assets/css/app.css.map
-
32public/assets/js/sb-admin-2.js
-
6resources/assets/sass/_sb-admin-2.scss
-
25resources/assets/sass/app.scss
-
2resources/lang/id/payment.php
-
3resources/lang/id/project.php
-
2resources/views/auth/login.blade.php
-
16resources/views/features/create.blade.php
-
16resources/views/features/edit.blade.php
-
22resources/views/features/partials/feature-show.blade.php
-
2resources/views/layouts/app.blade.php
-
15resources/views/layouts/partials/sidebar.blade.php
-
122resources/views/pages/home.blade.php
-
38resources/views/payments/create.blade.php
-
28resources/views/payments/edit.blade.php
-
2resources/views/payments/index.blade.php
-
3resources/views/payments/partials/payment-show.blade.php
-
7resources/views/payments/show.blade.php
-
2resources/views/projects/edit.blade.php
-
4resources/views/projects/partials/nav-tabs.blade.php
-
1resources/views/projects/partials/project-show.blade.php
-
101resources/views/projects/payments.blade.php
-
43resources/views/reports/current-credits.blade.php
-
1resources/views/reports/payments/daily.blade.php
-
14resources/views/subscriptions/index.blade.php
-
2resources/views/subscriptions/show.blade.php
-
4tests/ManageFeaturesTest.php
-
51tests/ManagePaymentsTest.php
-
2tests/ManageProjectsTest.php
-
18tests/ManageSubscriptionsTest.php
2
public/assets/css/app.css.map
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,17 +1,15 @@ |
|||||
<div class="panel panel-default"> |
<div class="panel panel-default"> |
||||
<div class="panel-heading"><h3 class="panel-title">{{ trans('feature.show') }}</h3></div> |
<div class="panel-heading"><h3 class="panel-title">{{ trans('feature.show') }}</h3></div> |
||||
<div class="panel-body"> |
|
||||
<table class="table table-condensed"> |
|
||||
<tbody> |
|
||||
<tr><th>{{ trans('feature.name') }}</th><td>{{ $feature->name }}</td></tr> |
|
||||
<tr><th>{{ trans('feature.price') }}</th><td>{{ formatRp($feature->price) }}</td></tr> |
|
||||
<tr><th>{{ trans('feature.tasks_count') }}</th><td>{{ $feature->tasks->count() }}</td></tr> |
|
||||
<tr><th>{{ trans('feature.progress') }}</th><td>{{ formatDecimal($feature->tasks->avg('progress')) }}%</td></tr> |
|
||||
<tr><th>{{ trans('feature.worker') }}</th><td>{{ $feature->worker->name }}</td></tr> |
|
||||
<tr><th>{{ trans('feature.description') }}</th><td>{!! nl2br($feature->description) !!}</td></tr> |
|
||||
</tbody> |
|
||||
</table> |
|
||||
</div> |
|
||||
|
<table class="table table-condensed"> |
||||
|
<tbody> |
||||
|
<tr><th>{{ trans('feature.name') }}</th><td>{{ $feature->name }}</td></tr> |
||||
|
<tr><th>{{ trans('feature.price') }}</th><td>{{ formatRp($feature->price) }}</td></tr> |
||||
|
<tr><th>{{ trans('feature.tasks_count') }}</th><td>{{ $feature->tasks->count() }}</td></tr> |
||||
|
<tr><th>{{ trans('feature.progress') }}</th><td>{{ formatDecimal($feature->tasks->avg('progress')) }}%</td></tr> |
||||
|
<tr><th>{{ trans('feature.worker') }}</th><td>{{ $feature->worker->name }}</td></tr> |
||||
|
<tr><th>{{ trans('feature.description') }}</th><td>{!! nl2br($feature->description) !!}</td></tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
<div class="panel-footer"> |
<div class="panel-footer"> |
||||
{!! link_to_route('features.edit', trans('feature.edit'), [$feature->id], ['class' => 'btn btn-warning']) !!} |
{!! link_to_route('features.edit', trans('feature.edit'), [$feature->id], ['class' => 'btn btn-warning']) !!} |
||||
{!! link_to_route('projects.features', trans('feature.back_to_index'), [$feature->project_id], ['class' => 'btn btn-default']) !!} |
{!! link_to_route('projects.features', trans('feature.back_to_index'), [$feature->project_id], ['class' => 'btn btn-default']) !!} |
||||
|
|||||
@ -1,66 +1,116 @@ |
|||||
@extends('layouts.app') |
@extends('layouts.app') |
||||
|
|
||||
@section('content') |
@section('content') |
||||
<br> |
|
||||
<div class="alert alert-info"> |
|
||||
{{ trans('app.welcome') }} |
|
||||
<strong>{{ auth()->user()->name }}</strong> | {{ auth()->user()->present()->usernameRoles }} |
|
||||
</div> |
|
||||
|
<h1 class="page-header">Dashboard</h1> |
||||
|
|
||||
<div class="row"> |
<div class="row"> |
||||
<div class="col-md-4"> |
|
||||
<div class="panel panel-primary"> |
|
||||
|
<div class="col-lg-3 col-md-6"> |
||||
|
<a href="{{ route('projects.index',['status' => 1]) }}"> |
||||
|
<div class="panel panel-default"> |
||||
<div class="panel-heading"> |
<div class="panel-heading"> |
||||
<div class="row"> |
<div class="row"> |
||||
<div class="col-xs-12 text-right"> |
|
||||
<div class="huge">{{ formatRp($totalIncome) }}</div> |
|
||||
|
<div class="col-xs-3"><i class="fa fa-thumb-tack fa-5x"></i></div> |
||||
|
<div class="col-xs-9 text-right"> |
||||
|
<div class="huge">{{ array_key_exists(1, $projectsCount) ? $projectsCount[1] : 0 }}</div> |
||||
|
<div class="lead">{{ getProjectStatusesList(1) }}</div> |
||||
</div> |
</div> |
||||
</div> |
</div> |
||||
</div> |
</div> |
||||
<a href="#"> |
|
||||
<div class="panel-footer"> |
|
||||
<span class="pull-left">Income Total</span> |
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span> |
|
||||
<div class="clearfix"></div> |
|
||||
|
<div class="panel-footer"> |
||||
|
View Details <span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</a> |
||||
|
</div> |
||||
|
<div class="col-lg-3 col-md-6"> |
||||
|
<a href="{{ route('projects.index',['status' => 2]) }}"> |
||||
|
<div class="panel panel-yellow"> |
||||
|
<div class="panel-heading"> |
||||
|
<div class="row"> |
||||
|
<div class="col-xs-3"><i class="fa fa-tasks fa-5x"></i></div> |
||||
|
<div class="col-xs-9 text-right"> |
||||
|
<div class="huge">{{ array_key_exists(2, $projectsCount) ? $projectsCount[2] : 0 }}</div> |
||||
|
<div class="lead">{{ getProjectStatusesList(2) }}</div> |
||||
|
</div> |
||||
</div> |
</div> |
||||
</a> |
|
||||
|
</div> |
||||
|
<div class="panel-footer"> |
||||
|
View Details <span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span> |
||||
|
</div> |
||||
</div> |
</div> |
||||
|
</a> |
||||
</div> |
</div> |
||||
<div class="col-md-4"> |
|
||||
<div class="panel panel-info"> |
|
||||
|
<div class="col-lg-3 col-md-6"> |
||||
|
<a href="{{ route('projects.index',['status' => 3]) }}"> |
||||
|
<div class="panel panel-primary"> |
||||
<div class="panel-heading"> |
<div class="panel-heading"> |
||||
<div class="row"> |
<div class="row"> |
||||
<div class="col-xs-12 text-right"> |
|
||||
<div class="huge">{{ formatRp($totalExpenditure) }}</div> |
|
||||
|
<div class="col-xs-3"><i class="fa fa-thumbs-o-up fa-5x"></i></div> |
||||
|
<div class="col-xs-9 text-right"> |
||||
|
<div class="huge">{{ array_key_exists(3, $projectsCount) ? $projectsCount[3] : 0 }}</div> |
||||
|
<div class="lead">{{ getProjectStatusesList(3) }}</div> |
||||
</div> |
</div> |
||||
</div> |
</div> |
||||
</div> |
</div> |
||||
<a href="#"> |
|
||||
<div class="panel-footer"> |
|
||||
<span class="pull-left">Expenditure Total</span> |
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span> |
|
||||
<div class="clearfix"></div> |
|
||||
|
<div class="panel-footer"> |
||||
|
View Details <span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</a> |
||||
|
</div> |
||||
|
<div class="col-lg-3 col-md-6"> |
||||
|
<a href="{{ route('projects.index',['status' => 4]) }}"> |
||||
|
<div class="panel panel-green"> |
||||
|
<div class="panel-heading"> |
||||
|
<div class="row"> |
||||
|
<div class="col-xs-3"><i class="fa fa-money fa-5x"></i></div> |
||||
|
<div class="col-xs-9 text-right"> |
||||
|
<div class="huge">{{ array_key_exists(4, $projectsCount) ? $projectsCount[4] : 0 }}</div> |
||||
|
<div class="lead">{{ getProjectStatusesList(4) }}</div> |
||||
|
</div> |
||||
</div> |
</div> |
||||
</a> |
|
||||
|
</div> |
||||
|
<div class="panel-footer"> |
||||
|
View Details <span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span> |
||||
|
</div> |
||||
</div> |
</div> |
||||
|
</a> |
||||
</div> |
</div> |
||||
<div class="col-md-4"> |
|
||||
<div class="panel panel-success"> |
|
||||
|
<div class="col-lg-3 col-md-6 col-lg-offset-3"> |
||||
|
<a href="{{ route('projects.index',['status' => 5]) }}"> |
||||
|
<div class="panel panel-danger"> |
||||
<div class="panel-heading"> |
<div class="panel-heading"> |
||||
<div class="row"> |
<div class="row"> |
||||
<div class="col-xs-12 text-right"> |
|
||||
<div class="huge">{{ formatRp($totalIncome - $totalExpenditure) }}</div> |
|
||||
|
<div class="col-xs-3"><i class="fa fa-thumbs-o-down fa-5x"></i></div> |
||||
|
<div class="col-xs-9 text-right"> |
||||
|
<div class="huge">{{ array_key_exists(5, $projectsCount) ? $projectsCount[5] : 0 }}</div> |
||||
|
<div class="lead">{{ getProjectStatusesList(5) }}</div> |
||||
</div> |
</div> |
||||
</div> |
</div> |
||||
</div> |
</div> |
||||
<a href="#"> |
|
||||
<div class="panel-footer"> |
|
||||
<span class="pull-left">Profit Total</span> |
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span> |
|
||||
<div class="clearfix"></div> |
|
||||
|
<div class="panel-footer"> |
||||
|
View Details <span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</a> |
||||
|
</div> |
||||
|
<div class="col-lg-3 col-md-6"> |
||||
|
<a href="{{ route('projects.index',['status' => 6]) }}"> |
||||
|
<div class="panel panel-warning"> |
||||
|
<div class="panel-heading"> |
||||
|
<div class="row"> |
||||
|
<div class="col-xs-3"><i class="fa fa-hand-stop-o fa-5x"></i></div> |
||||
|
<div class="col-xs-9 text-right"> |
||||
|
<div class="huge">{{ array_key_exists(6, $projectsCount) ? $projectsCount[6] : 0 }}</div> |
||||
|
<div class="lead">{{ getProjectStatusesList(6) }}</div> |
||||
|
</div> |
||||
</div> |
</div> |
||||
</a> |
|
||||
|
</div> |
||||
|
<div class="panel-footer"> |
||||
|
View Details <span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span> |
||||
|
</div> |
||||
</div> |
</div> |
||||
|
</a> |
||||
</div> |
</div> |
||||
</div> |
</div> |
||||
</div> |
|
||||
@endsection |
@endsection |
||||
@ -0,0 +1,43 @@ |
|||||
|
@extends('layouts.app') |
||||
|
|
||||
|
@section('title', 'Piutang Saat Ini') |
||||
|
|
||||
|
@section('content') |
||||
|
|
||||
|
<h1 class="page-header">Piutang Saat Ini</h1> |
||||
|
|
||||
|
<table class="table table-condensed table-hover"> |
||||
|
<thead> |
||||
|
<th>{{ trans('app.table_no') }}</th> |
||||
|
<th class="col-md-2">{{ trans('project.project') }}</th> |
||||
|
<th class="col-md-2 text-right">{{ trans('project.project_value') }}</th> |
||||
|
<th class="col-md-2 text-right">{{ trans('project.cash_in_total') }}</th> |
||||
|
<th class="col-md-2 text-right">Sisa</th> |
||||
|
<th class="col-md-2">{{ trans('project.customer') }}</th> |
||||
|
<th class="col-md-2 text-center">{{ trans('project.status') }}</th> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
<?php $total = 0 ?>
|
||||
|
@forelse($projects as $key => $project) |
||||
|
<tr> |
||||
|
<td>{{ 1 + $key }}</td> |
||||
|
<td>{!! link_to_route('projects.payments',$project->name,[$project->id],['title' => 'Lihat Detail Pembayaran','target' => '_blank']) !!}</td> |
||||
|
<td class="text-right">{{ formatRp($project->project_value) }}</td> |
||||
|
<td class="text-right">{{ formatRp($project->cashInTotal()) }}</td> |
||||
|
<td class="text-right">{{ formatRp($project->balance = $project->project_value - $project->cashInTotal()) }}</td> |
||||
|
<td>{{ $project->customer->name }}</td> |
||||
|
<td class="text-center">{{ $project->present()->status }}</td> |
||||
|
</tr> |
||||
|
@empty |
||||
|
<tr><td colspan="8">{{ trans('project.not_found') }}</td></tr> |
||||
|
@endforelse |
||||
|
</tbody> |
||||
|
<tfoot> |
||||
|
<tr> |
||||
|
<th class="text-right" colspan="4">Jumlah</th> |
||||
|
<th class="text-right">{{ formatRp($projects->sum('balance')) }}</th> |
||||
|
<th colspan="3"></th> |
||||
|
</tr> |
||||
|
</tfoot> |
||||
|
</table> |
||||
|
@endsection |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue