ultimatepos/resources/views/account/show.blade.php

263 lines
12 KiB
PHP

@extends('layouts.app')
@section('title', __('account.account_book'))
@section('content')
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 class="tw-text-xl md:tw-text-3xl tw-font-bold tw-text-black">@lang('account.account_book')
</h1>
</section>
<!-- Main content -->
<section class="content">
<div class="row">
<div class="col-sm-4 col-xs-6">
<div class="box box-solid">
<div class="box-body">
<table class="table">
<tr>
<th>@lang('account.account_name'): </th>
<td>{{$account->name}}</td>
</tr>
<tr>
<th>@lang('lang_v1.account_type'):</th>
<td>@if(!empty($account->account_type->parent_account)) {{$account->account_type->parent_account->name}} - @endif {{$account->account_type->name ?? ''}}</td>
</tr>
<tr>
<th>@lang('account.account_number'):</th>
<td>{{$account->account_number}}</td>
</tr>
<tr>
<th>@lang('lang_v1.balance'):</th>
<td><span id="account_balance"></span></td>
</tr>
</table>
</div>
</div>
</div>
<div class="col-sm-8 col-xs-12">
<div class="box box-solid">
<div class="box-header">
<h3 class="box-title"> <i class="fa fa-filter" aria-hidden="true"></i> @lang('report.filters'):</h3>
</div>
<div class="box-body">
<div class="col-sm-6">
<div class="form-group">
{!! Form::label('transaction_date_range', __('report.date_range') . ':') !!}
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
{!! Form::text('transaction_date_range', null, ['class' => 'form-control', 'readonly', 'placeholder' => __('report.date_range')]) !!}
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
{!! Form::label('transaction_type', __('account.transaction_type') . ':') !!}
<div class="input-group">
<span class="input-group-addon"><i class="fas fa-exchange-alt"></i></span>
{!! Form::select('transaction_type', ['' => __('messages.all'),'credit' => __('account.credit'), 'debit' => __('account.debit')], '', ['class' => 'form-control']) !!}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="box">
<div class="box-body">
@can('account.access')
<div class="table-responsive">
<table class="table table-bordered table-striped" id="account_book">
<thead>
<tr>
<th>@lang( 'messages.date' )</th>
<th>@lang( 'lang_v1.description' )</th>
<th>@lang( 'lang_v1.payment_method' )</th>
<th>@lang( 'lang_v1.payment_details' )</th>
<th>@lang( 'brand.note' )</th>
<th>@lang( 'lang_v1.added_by' )</th>
<th>@lang('account.debit')</th>
<th>@lang('account.credit')</th>
<th>@lang( 'lang_v1.balance' )</th>
<th>@lang( 'messages.action' )</th>
</tr>
</thead>
<tfoot>
<tr class="bg-gray font-17 footer-total text-center">
<td colspan="6"><strong>@lang('sale.total'):</strong></td>
<td class="footer_total_debit"></td>
<td class="footer_total_credit"></td>
<td></td>
<td></td>
</tr>
</tfoot>
</table>
</div>
@endcan
</div>
</div>
</div>
</div>
<div class="modal fade account_model" tabindex="-1" role="dialog"
aria-labelledby="gridSystemModalLabel">
</div>
<div class="modal fade account_model" tabindex="-1" role="dialog"
aria-labelledby="gridSystemModalLabel" id="edit_account_transaction">
</div>
</section>
<!-- /.content -->
@endsection
@section('javascript')
<script>
$(document).ready(function(){
update_account_balance();
dateRangeSettings.startDate = moment().subtract(6, 'days');
dateRangeSettings.endDate = moment();
$('#transaction_date_range').daterangepicker(
dateRangeSettings,
function (start, end) {
$('#transaction_date_range').val(start.format(moment_date_format) + ' ~ ' + end.format(moment_date_format));
account_book.ajax.reload();
}
);
// Account Book
account_book = $('#account_book').DataTable({
processing: true,
serverSide: true,
fixedHeader:false,
ajax: {
url: '{{action([\App\Http\Controllers\AccountController::class, 'show'],[$account->id])}}',
data: function(d) {
var start = '';
var end = '';
if($('#transaction_date_range').val()){
start = $('input#transaction_date_range').data('daterangepicker').startDate.format('YYYY-MM-DD');
end = $('input#transaction_date_range').data('daterangepicker').endDate.format('YYYY-MM-DD');
}
var transaction_type = $('select#transaction_type').val();
d.start_date = start;
d.end_date = end;
d.type = transaction_type;
}
},
"ordering": false,
columns: [
{data: 'operation_date', name: 'operation_date'},
{data: 'sub_type', name: 'sub_type'},
{data: 'method', name: 'tp.method'},
{data: 'payment_details', name: 'tp.payment_ref_no'},
{data: 'note', name: 'note'},
{data: 'added_by', name: 'added_by'},
{data: 'debit', name: 'debit', searchable: false},
{data: 'credit', name: 'credit', searchable: false},
{data: 'balance', name: 'balance', searchable: false},
{data: 'action', name: 'action', searchable: false}
],
"fnDrawCallback": function (oSettings) {
__currency_convert_recursively($('#account_book'));
},
"footerCallback": function ( row, data, start, end, display ) {
var footer_total_debit = 0;
var footer_total_credit = 0;
for (var r in data){
footer_total_debit += $(data[r].debit).data('orig-value') ? parseFloat($(data[r].debit).data('orig-value')) : 0;
footer_total_credit += $(data[r].credit).data('orig-value') ? parseFloat($(data[r].credit).data('orig-value')) : 0;
}
$('.footer_total_debit').html(__currency_trans_from_en(footer_total_debit));
$('.footer_total_credit').html(__currency_trans_from_en(footer_total_credit));
}
});
$('#transaction_type').change( function(){
account_book.ajax.reload();
});
$('#transaction_date_range').on('cancel.daterangepicker', function(ev, picker) {
$('#transaction_date_range').val('');
account_book.ajax.reload();
});
$('#edit_account_transaction').on('shown.bs.modal', function(e) {
$('#edit_account_transaction_form').validate({
submitHandler: function(form) {
e.preventDefault();
var data = $(form).serialize();
$.ajax({
method: 'POST',
url: $(form).attr('action'),
dataType: 'json',
data: data,
beforeSend: function(xhr) {
__disable_submit_button($(form).find('button[type="submit"]'));
},
success: function(result) {
if (result.success == true) {
$('#edit_account_transaction').modal('hide');
toastr.success(result.msg);
if (typeof(account_book) != 'undefined') {
account_book.ajax.reload();
}
} else {
toastr.error(result.msg);
}
},
});
},
});
})
});
$(document).on('click', '.delete_account_transaction', function(e){
e.preventDefault();
swal({
title: LANG.sure,
icon: "warning",
buttons: true,
dangerMode: true,
}).then((willDelete) => {
if (willDelete) {
var href = $(this).data('href');
$.ajax({
url: href,
dataType: "json",
success: function(result){
if(result.success === true){
toastr.success(result.msg);
account_book.ajax.reload();
update_account_balance();
} else {
toastr.error(result.msg);
}
}
});
}
});
});
function update_account_balance(argument) {
$('span#account_balance').html('<i class="fas fa-sync fa-spin"></i>');
$.ajax({
url: '{{action([\App\Http\Controllers\AccountController::class, 'getAccountBalance'], [$account->id])}}',
dataType: "json",
success: function(data){
$('span#account_balance').text(__currency_trans_from_en(data.balance, true));
}
});
}
</script>
@endsection