Browse Source

Fix some scripts on report pages

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
ff2166e1c9
  1. 11
      database/factories/PaymentFactory.php
  2. 27
      resources/views/reports/payments/daily.blade.php
  3. 48
      resources/views/reports/payments/monthly.blade.php
  4. 58
      resources/views/reports/payments/yearly.blade.php
  5. 18
      tests/Unit/Models/PaymentTest.php

11
database/factories/PaymentFactory.php

@ -15,7 +15,7 @@ $factory->define(Payment::class, function (Faker $faker) {
},
'amount' => 10000,
'in_out' => 1,
'type_id' => rand(1, 3),
'type_id' => 1,
'date' => $faker->dateTimeBetween('-1 year', '-1 month')->format('Y-m-d'),
'description' => $faker->paragraph,
'partner_type' => Customer::class,
@ -25,10 +25,15 @@ $factory->define(Payment::class, function (Faker $faker) {
];
});
$factory->state(Payment::class, 'customer', function (Faker $faker) {
return [];
});
$factory->state(Payment::class, 'vendor', function (Faker $faker) {
return [
'in_out' => 1,
'in_out' => 0,
'type_id' => 1,
'partner_type' => Vendor::class,
'partner_id' => function () {
@ -40,7 +45,7 @@ $factory->state(Payment::class, 'vendor', function (Faker $faker) {
$factory->state(Payment::class, 'fee', function (Faker $faker) {
return [
'in_out' => 1,
'in_out' => 0,
'type_id' => 1,
'partner_type' => User::class,
'partner_id' => function () {

27
resources/views/reports/payments/daily.blade.php

@ -3,7 +3,7 @@
@section('title', 'Laporan Harian : ' . dateId($date))
@section('content')
<?php $dt = Carbon::parse($date)?>
<?php $dt = Carbon::parse($date); ?>
<ul class="breadcrumb hidden-print">
<li>{{ link_to_route('reports.payments.yearly', 'Laporan Tahun ' . $dt->year, ['year' => $dt->year]) }}</li>
@ -11,14 +11,13 @@
<li class="active">{{ $dt->format('d') }}</li>
</ul>
<h1 class="page-header">Laporan Harian : {{ dateId($date) }}</h1>
{!! Form::open(['method'=>'get','class'=>'form-inline well well-sm']) !!}
{!! Form::text('date', $date, ['class'=>'form-control','required','id'=>'date']) !!}
{!! Form::submit('Lihat Laporan', ['class'=>'btn btn-primary']) !!}
{!! link_to_route('reports.payments.daily', 'Hari Ini', [], ['class'=>'btn btn-default']) !!}
{!! link_to_route('reports.payments.monthly', 'Lihat Bulanan', ['month' => monthNumber($dt->month), 'year' => $dt->year], ['class'=>'btn btn-default']) !!}
{!! Form::close() !!}
{{ Form::open(['method' => 'get','class' => 'form-inline well well-sm']) }}
{{ Form::label('date', 'Laporan Harian per', ['class' => 'control-label']) }}
{{ Form::text('date', $date, ['class' => 'form-control','required','style' => 'width:100px']) }}
{{ Form::submit('Lihat Laporan', ['class' => 'btn btn-info btn-sm']) }}
{{ link_to_route('reports.payments.daily', 'Hari Ini', [], ['class' => 'btn btn-default btn-sm']) }}
{{ link_to_route('reports.payments.monthly', 'Lihat Bulanan', ['month' => monthNumber($dt->month), 'year' => $dt->year], ['class' => 'btn btn-default btn-sm']) }}
{{ Form::close() }}
<table class="table table-condensed table-hover">
<thead>
@ -41,12 +40,12 @@
<td class="text-center">{{ $payment->partner->name }}</td>
<td>{{ $payment->description }} [{{ $payment->type() }}]</td>
<td>
{!! link_to_route('payments.show','Lihat',[$payment->id],['title' => 'Lihat Detail Pembayaran','target' => '_blank','class'=>'btn btn-info btn-xs']) !!}
{{ link_to_route('payments.show','Lihat',[$payment->id],['title' => 'Lihat Detail Pembayaran','target' => '_blank','class' => 'btn btn-info btn-xs']) }}
</td>
</tr>
<?php $total = $payment->in_out == 0 ? $total - $payment->amount : $total + $payment->amount?>
<?php $total = $payment->in_out == 0 ? $total - $payment->amount : $total + $payment->amount; ?>
@empty
<tr><td colspan="5">{{ trans('payment.not_found') }}</td></tr>
<tr><td colspan="7">{{ trans('payment.not_found') }}</td></tr>
@endforelse
</tbody>
<tfoot>
@ -60,11 +59,11 @@
@endsection
@section('ext_css')
{!! Html::style(url('assets/css/plugins/jquery.datetimepicker.css')) !!}
{{ Html::style(url('assets/css/plugins/jquery.datetimepicker.css')) }}
@endsection
@section('ext_js')
{!! Html::script(url('assets/js/plugins/jquery.datetimepicker.js')) !!}
{{ Html::script(url('assets/js/plugins/jquery.datetimepicker.js')) }}
@endsection
@section('script')

48
resources/views/reports/payments/monthly.blade.php

@ -8,14 +8,14 @@
<li class="active">{{ $months[$month] }}</li>
</ul>
{!! Form::open(['method' => 'get', 'class' => 'form-inline well well-sm']) !!}
{!! Form::label('month', 'Laporan Bulanan', ['class' => 'control-label']) !!}
{!! Form::select('month', $months, $month, ['class' => 'form-control']) !!}
{!! Form::select('year', $years, $year, ['class' => 'form-control']) !!}
{!! Form::submit('Lihat Laporan', ['class' => 'btn btn-info btn-sm']) !!}
{!! link_to_route('reports.payments.monthly', 'Bulan ini', [], ['class' => 'btn btn-default btn-sm']) !!}
{!! link_to_route('reports.payments.yearly', 'Lihat Tahunan', ['year' => $year], ['class' => 'btn btn-default btn-sm']) !!}
{!! Form::close() !!}
{{ Form::open(['method' => 'get', 'class' => 'form-inline well well-sm']) }}
{{ Form::label('month', 'Laporan Bulanan per', ['class' => 'control-label']) }}
{{ Form::select('month', $months, $month, ['class' => 'form-control']) }}
{{ Form::select('year', $years, $year, ['class' => 'form-control']) }}
{{ Form::submit('Lihat Laporan', ['class' => 'btn btn-info btn-sm']) }}
{{ link_to_route('reports.payments.monthly', 'Bulan ini', [], ['class' => 'btn btn-default btn-sm']) }}
{{ link_to_route('reports.payments.yearly', 'Lihat Tahunan', ['year' => $year], ['class' => 'btn btn-default btn-sm']) }}
{{ Form::close() }}
<div class="panel panel-primary">
<div class="panel-heading"><h3 class="panel-title">Grafik Profit {{ $months[$month] }} {{ $year }}</h3></div>
@ -38,29 +38,21 @@
<th class="text-center">Pilihan</th>
</thead>
<tbody>
<?php
$invoicesCount = 0;
$sumTotal = 0;
$sumCapital = 0;
$sumProfit = 0;
$cartData = [];
?>
<?php $cartData = [];?>
@foreach(monthDateArray($year, $month) as $dateNumber)
<?php
$any = isset($reports[$dateNumber]);
$count = $any ? $reports[$dateNumber]->count : 0;
$cashin = $any ? $reports[$dateNumber]->cashin : 0;
$cashout = $any ? $reports[$dateNumber]->cashout : 0;
$profit = $any ? $reports[$dateNumber]->profit : 0;
if ($any):
?>
<tr>
<td class="text-center">{{ dateId($date = $year . '-' . $month . '-' . $dateNumber) }}</td>
<td class="text-center">{{ $count }}</td>
<td class="text-right">{{ formatRp($cashin) }}</td>
<td class="text-right">{{ formatRp($cashout) }}</td>
<td class="text-center">{{ $any ? $reports[$dateNumber]->count : 0 }}</td>
<td class="text-right">{{ formatRp($any ? $reports[$dateNumber]->cashin : 0) }}</td>
<td class="text-right">{{ formatRp($any ? $reports[$dateNumber]->cashout : 0) }}</td>
<td class="text-right">{{ formatRp($profit) }}</td>
<td class="text-center">
{!! link_to_route(
{{ link_to_route(
'reports.payments.daily',
'Lihat Harian',
['date' => $date],
@ -68,10 +60,11 @@
'class' => 'btn btn-info btn-xs',
'title' => 'Lihat laporan harian ' . $date
]
) !!}
) }}
</td>
</tr>
<?php
endif;
$cartData[] = ['date' => $dateNumber, 'value' => ($profit)];
?>
@endforeach
@ -92,12 +85,12 @@
@endsection
@section('ext_css')
{!! Html::style(url('assets/css/plugins/morris.css')) !!}
{{ Html::style(url('assets/css/plugins/morris.css')) }}
@endsection
@section('ext_js')
{!! Html::script(url('assets/js/plugins/morris/raphael.min.js')) !!}
{!! Html::script(url('assets/js/plugins/morris/morris.min.js')) !!}
{{ Html::script(url('assets/js/plugins/morris/raphael.min.js')) }}
{{ Html::script(url('assets/js/plugins/morris/morris.min.js')) }}
@endsection
@section('script')
@ -111,6 +104,9 @@
labels: ['Profit Rp'],
parseTime:false,
xLabelAngle: 30,
goals: [0],
goalLineColors : ['red'],
smooth: false,
});
})();
</script>

58
resources/views/reports/payments/yearly.blade.php

@ -8,13 +8,12 @@
<li class="active">Laporan Tahunan</li>
</ul>
<h1 class="page-header">Laporan Tahunan : {{ $year }}</h1>
{!! Form::open(['method'=>'get','class'=>'form-inline well well-sm']) !!}
{!! Form::select('year', $years, $year, ['class'=>'form-control']) !!}
{!! Form::submit('Lihat Laporan', ['class'=>'btn btn-info']) !!}
{!! link_to_route('reports.payments.yearly','Tahun ini',[],['class'=>'btn btn-default']) !!}
{!! Form::close() !!}
{{ Form::open(['method' => 'get', 'class' => 'form-inline well well-sm']) }}
{{ Form::label('year', 'Laporan Tahunan per', ['class' => 'control-label']) }}
{{ Form::select('year', $years, $year, ['class' => 'form-control']) }}
{{ Form::submit('Lihat Laporan', ['class' => 'btn btn-info btn-sm']) }}
{{ link_to_route('reports.payments.yearly', 'Tahun ini', [], ['class' => 'btn btn-default btn-sm']) }}
{{ Form::close() }}
<div class="panel panel-primary">
<div class="panel-heading"><h3 class="panel-title">Grafik Profit {{ $year }}</h3></div>
@ -37,43 +36,33 @@
<th class="text-center">Pilihan</th>
</thead>
<tbody>
<?php
$cartData = [];
?>
<?php $chartData = [];?>
@foreach(getMonths() as $monthNumber => $monthName)
<?php
$any = isset($reports[$monthNumber]);
$count = $any ? $reports[$monthNumber]->count : 0;
$cashin = $any ? $reports[$monthNumber]->cashin : 0;
$cashout = $any ? $reports[$monthNumber]->cashout : 0;
$profit = $any ? $reports[$monthNumber]->profit : 0;
?>
<?php $any = isset($reports[$monthNumber]);?>
<tr>
<td class="text-center">{{ monthId($monthNumber) }}</td>
<td class="text-center">{{ $count }}</td>
<td class="text-right">{{ formatRp($cashin) }}</td>
<td class="text-right">{{ formatRp($cashout) }}</td>
<td class="text-right">{{ formatRp($profit) }}</td>
<td class="text-center">{{ $any ? $reports[$monthNumber]->count : 0 }}</td>
<td class="text-right">{{ formatRp($any ? $reports[$monthNumber]->cashin : 0) }}</td>
<td class="text-right">{{ formatRp($any ? $reports[$monthNumber]->cashout : 0) }}</td>
<td class="text-right">{{ formatRp($profit = $any ? $reports[$monthNumber]->profit : 0) }}</td>
<td class="text-center">
{!! link_to_route(
{{ link_to_route(
'reports.payments.monthly',
'Lihat Bulanan',
['month' => $monthNumber, 'year' => $year],
[
'class'=>'btn btn-info btn-xs',
'title'=>'Lihat laporan bulanan ' . monthId($monthNumber)
'class' => 'btn btn-info btn-xs',
'title' => 'Lihat laporan bulanan ' . monthId($monthNumber)
]
) !!}
) }}
</td>
</tr>
<?php
$cartData[] = ['month' => monthId($monthNumber), 'value' => $profit];
?>
<?php $chartData[] = ['month' => monthId($monthNumber), 'value' => $profit];?>
@endforeach
</tbody>
<tfoot>
<tr>
<th class="text-center">Jumlah</th>
<th class="text-center">{{ trans('app.total') }}</th>
<th class="text-center">{{ $reports->sum('count') }}</th>
<th class="text-right">{{ formatRp($reports->sum('cashin')) }}</th>
<th class="text-right">{{ formatRp($reports->sum('cashout')) }}</th>
@ -87,12 +76,12 @@
@endsection
@section('ext_css')
{!! Html::style(url('assets/css/plugins/morris.css')) !!}
{{ Html::style(url('assets/css/plugins/morris.css')) }}
@endsection
@section('ext_js')
{!! Html::script(url('assets/js/plugins/morris/raphael.min.js')) !!}
{!! Html::script(url('assets/js/plugins/morris/morris.min.js')) !!}
{{ Html::script(url('assets/js/plugins/morris/raphael.min.js')) }}
{{ Html::script(url('assets/js/plugins/morris/morris.min.js')) }}
@endsection
@section('script')
@ -100,13 +89,14 @@
(function() {
new Morris.Line({
element: 'yearly-chart',
data: {!! json_encode($cartData) !!},
data: {!! collect($chartData)->toJson() !!},
xkey: 'month',
ykeys: ['value'],
labels: ['Profit'],
labels: ['Profit Rp'],
parseTime:false,
goals: [0],
goalLineColors : ['red'],
smooth: false,
});
})();
</script>

18
tests/Unit/Models/PaymentTest.php

@ -14,29 +14,23 @@ class PaymentTest extends TestCase
public function it_can_have_partner_relation_on_customer_model_for_income_payment()
{
$payment = factory(Payment::class)->create();
$this->assertTrue(
$payment->partner instanceof Customer,
'An income payment should have a App\Entities\Partners\Customer model as partner relation'
);
$this->assertInstanceOf(Customer::class, $payment->partner);
$payment = factory(Payment::class)->states('customer')->create();
$this->assertInstanceOf(Customer::class, $payment->partner);
}
/** @test */
public function it_can_have_partner_relation_on_vendor_model_for_expanse_payment()
{
$payment = factory(Payment::class)->states('vendor')->create();
$this->assertTrue(
$payment->partner instanceof Vendor,
'An expanse payment can have a App\Entities\Partners\Vendor model as partner relation'
);
$this->assertInstanceOf(Vendor::class, $payment->partner);
}
/** @test */
public function it_can_have_partner_relation_on_user_model_for_fee_payment()
{
$payment = factory(Payment::class)->states('fee')->create();
$this->assertTrue(
$payment->partner instanceof User,
'An expanse payment can have a App\Entities\Users\User model as partner relation'
);
$this->assertInstanceOf(User::class, $payment->partner);
}
}
Loading…
Cancel
Save