469 lines
23 KiB
PHP
469 lines
23 KiB
PHP
@extends('layouts.app')
|
|
@section('title', __('lang_v1.payment_accounts'))
|
|
|
|
@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('lang_v1.payment_accounts')
|
|
<small class="tw-text-sm md:tw-text-base tw-text-gray-700 tw-font-semibold">@lang('account.manage_your_account')</small>
|
|
</h1>
|
|
</section>
|
|
|
|
<!-- Main content -->
|
|
<section class="content">
|
|
@if (!empty($not_linked_payments))
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<div class="alert alert-danger">
|
|
<ul>
|
|
@if (!empty($not_linked_payments))
|
|
<li>{!! __('account.payments_not_linked_with_account', ['payments' => $not_linked_payments]) !!} <a
|
|
href="{{ action([\App\Http\Controllers\AccountReportsController::class, 'paymentAccountReport']) }}">@lang('account.view_details')</a>
|
|
</li>
|
|
@endif
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
@can('account.access')
|
|
<div class="row">
|
|
@component('components.widget')
|
|
<div class="col-sm-12">
|
|
<div class="nav-tabs-custom">
|
|
<ul class="nav nav-tabs">
|
|
<li class="active">
|
|
<a href="#other_accounts" data-toggle="tab">
|
|
<i class="fa fa-book"></i> <strong>@lang('account.accounts')</strong>
|
|
</a>
|
|
</li>
|
|
{{--
|
|
<li>
|
|
<a href="#capital_accounts" data-toggle="tab">
|
|
<i class="fa fa-book"></i> <strong>
|
|
@lang('account.capital_accounts') </strong>
|
|
</a>
|
|
</li>
|
|
--}}
|
|
<li>
|
|
<a href="#account_types" data-toggle="tab">
|
|
<i class="fa fa-list"></i> <strong>
|
|
@lang('lang_v1.account_types') </strong>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content">
|
|
<div class="tab-pane active" id="other_accounts">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
{{-- @component('components.widget') --}}
|
|
<div class="col-md-4">
|
|
{!! Form::select(
|
|
'account_status',
|
|
['active' => __('business.is_active'), 'closed' => __('account.closed')],
|
|
null,
|
|
['class' => 'form-control select2', 'style' => 'width:100%', 'id' => 'account_status'],
|
|
) !!}
|
|
</div>
|
|
<div class="col-md-8">
|
|
<button type="button" class="tw-dw-btn tw-bg-gradient-to-r tw-from-indigo-600 tw-to-blue-500 tw-font-bold tw-text-white tw-border-none tw-rounded-full btn-modal pull-right"
|
|
data-container=".account_model"
|
|
data-href="{{ action([\App\Http\Controllers\AccountController::class, 'create']) }}">
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
|
|
class="icon icon-tabler icons-tabler-outline icon-tabler-plus">
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
|
<path d="M12 5l0 14" />
|
|
<path d="M5 12l14 0" />
|
|
</svg> @lang('messages.add')
|
|
</button>
|
|
</div>
|
|
{{-- @endcomponent --}}
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<br>
|
|
<div class="table-responsive">
|
|
<table class="table table-bordered table-striped" id="other_account_table">
|
|
<thead>
|
|
<tr>
|
|
<th>@lang('lang_v1.name')</th>
|
|
<th>@lang('lang_v1.account_type')</th>
|
|
<th>@lang('lang_v1.account_sub_type')</th>
|
|
<th>@lang('account.account_number')</th>
|
|
<th>@lang('brand.note')</th>
|
|
<th>@lang('lang_v1.balance')</th>
|
|
<th>@lang('lang_v1.account_details')</th>
|
|
<th>@lang('lang_v1.added_by')</th>
|
|
<th>@lang('messages.action')</th>
|
|
</tr>
|
|
</thead>
|
|
<tfoot>
|
|
<tr class="bg-gray font-17 footer-total text-center">
|
|
<td colspan="5"><strong>@lang('sale.total'):</strong></td>
|
|
<td class="footer_total_balance"></td>
|
|
<td colspan="3"></td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{--
|
|
<div class="tab-pane" id="capital_accounts">
|
|
<table class="table table-bordered table-striped" id="capital_account_table" style="width: 100%;">
|
|
<thead>
|
|
<tr>
|
|
<th>@lang( 'lang_v1.name' )</th>
|
|
<th>@lang('account.account_number')</th>
|
|
<th>@lang( 'brand.note' )</th>
|
|
<th>@lang('lang_v1.balance')</th>
|
|
<th>@lang( 'messages.action' )</th>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
--}}
|
|
<div class="tab-pane" id="account_types">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<button type="button" class="tw-dw-btn tw-dw-btn-primary tw-text-white tw-dw-btn-sm btn-modal pull-right"
|
|
data-href="{{ action([\App\Http\Controllers\AccountTypeController::class, 'create']) }}"
|
|
data-container="#account_type_modal">
|
|
<i class="fa fa-plus"></i> @lang('messages.add')</button>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<table class="table table-striped table-bordered" id="account_types_table"
|
|
style="width: 100%;">
|
|
<thead>
|
|
<tr>
|
|
<th>@lang('lang_v1.name')</th>
|
|
<th>@lang('messages.action')</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach ($account_types as $account_type)
|
|
<tr class="account_type_{{ $account_type->id }}">
|
|
<th>{{ $account_type->name }}</th>
|
|
<td>
|
|
|
|
{!! Form::open([
|
|
'url' => action([\App\Http\Controllers\AccountTypeController::class, 'destroy'], $account_type->id),
|
|
'method' => 'delete',
|
|
]) !!}
|
|
<button type="button" class="tw-dw-btn tw-dw-btn-primary tw-dw-btn-outline tw-dw-btn-xs btn-modal"
|
|
data-href="{{ action([\App\Http\Controllers\AccountTypeController::class, 'edit'], $account_type->id) }}"
|
|
data-container="#account_type_modal">
|
|
<i class="fa fa-edit"></i> @lang('messages.edit')</button>
|
|
|
|
<button type="button"
|
|
class="tw-dw-btn tw-dw-btn-xs tw-dw-btn-outline tw-dw-btn-error delete_account_type">
|
|
<i class="fa fa-trash"></i> @lang('messages.delete')</button>
|
|
{!! Form::close() !!}
|
|
</td>
|
|
</tr>
|
|
@foreach ($account_type->sub_types as $sub_type)
|
|
<tr>
|
|
<td> -- {{ $sub_type->name }}</td>
|
|
<td>
|
|
|
|
|
|
{!! Form::open([
|
|
'url' => action([\App\Http\Controllers\AccountTypeController::class, 'destroy'], $sub_type->id),
|
|
'method' => 'delete',
|
|
]) !!}
|
|
<button type="button" class="tw-dw-btn tw-dw-btn-xs tw-dw-btn-outline tw-dw-btn-primary btn-modal"
|
|
data-href="{{ action([\App\Http\Controllers\AccountTypeController::class, 'edit'], $sub_type->id) }}"
|
|
data-container="#account_type_modal">
|
|
<i class="fa fa-edit"></i> @lang('messages.edit')</button>
|
|
<button type="button"
|
|
class="tw-dw-btn tw-dw-btn-xs tw-dw-btn-outline tw-dw-btn-error delete_account_type">
|
|
<i class="fa fa-trash"></i> @lang('messages.delete')</button>
|
|
{!! Form::close() !!}
|
|
</td>
|
|
</tr>
|
|
@endforeach
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endcomponent
|
|
</div>
|
|
@endcan
|
|
|
|
<div class="modal fade account_model" tabindex="-1" role="dialog" aria-labelledby="gridSystemModalLabel">
|
|
</div>
|
|
|
|
<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="gridSystemModalLabel"
|
|
id="account_type_modal">
|
|
</div>
|
|
</section>
|
|
<!-- /.content -->
|
|
|
|
@endsection
|
|
|
|
@section('javascript')
|
|
<script>
|
|
$(document).ready(function() {
|
|
|
|
$(document).on('click', 'button.close_account', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
icon: "warning",
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then((willDelete) => {
|
|
if (willDelete) {
|
|
var url = $(this).data('url');
|
|
|
|
$.ajax({
|
|
method: "get",
|
|
url: url,
|
|
dataType: "json",
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
capital_account_table.ajax.reload();
|
|
other_account_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
|
|
}
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
$(document).on('submit', 'form#edit_payment_account_form', function(e) {
|
|
e.preventDefault();
|
|
var data = $(this).serialize();
|
|
$.ajax({
|
|
method: "POST",
|
|
url: $(this).attr("action"),
|
|
dataType: "json",
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.account_model').modal('hide');
|
|
toastr.success(result.msg);
|
|
capital_account_table.ajax.reload();
|
|
other_account_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
$(document).on('submit', 'form#payment_account_form', function(e) {
|
|
e.preventDefault();
|
|
var data = $(this).serialize();
|
|
$.ajax({
|
|
method: "post",
|
|
url: $(this).attr("action"),
|
|
dataType: "json",
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.account_model').modal('hide');
|
|
toastr.success(result.msg);
|
|
capital_account_table.ajax.reload();
|
|
other_account_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
// capital_account_table
|
|
capital_account_table = $('#capital_account_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
ajax: '/account/account?account_type=capital',
|
|
columnDefs: [{
|
|
"targets": 5,
|
|
"orderable": false,
|
|
"searchable": false
|
|
}],
|
|
columns: [{
|
|
data: 'name',
|
|
name: 'name'
|
|
},
|
|
{
|
|
data: 'account_number',
|
|
name: 'account_number'
|
|
},
|
|
{
|
|
data: 'note',
|
|
name: 'note'
|
|
},
|
|
{
|
|
data: 'balance',
|
|
name: 'balance',
|
|
searchable: false
|
|
},
|
|
{
|
|
data: 'action',
|
|
name: 'action'
|
|
}
|
|
],
|
|
"fnDrawCallback": function(oSettings) {
|
|
__currency_convert_recursively($('#capital_account_table'));
|
|
}
|
|
});
|
|
// capital_account_table
|
|
other_account_table = $('#other_account_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
ajax: {
|
|
url: '/account/account?account_type=other',
|
|
data: function(d) {
|
|
d.account_status = $('#account_status').val();
|
|
}
|
|
},
|
|
columnDefs: [{
|
|
"targets": [6, 8],
|
|
"orderable": false,
|
|
"searchable": false
|
|
}],
|
|
columns: [{
|
|
data: 'name',
|
|
name: 'accounts.name'
|
|
},
|
|
{
|
|
data: 'parent_account_type_name',
|
|
name: 'pat.name'
|
|
},
|
|
{
|
|
data: 'account_type_name',
|
|
name: 'ats.name'
|
|
},
|
|
{
|
|
data: 'account_number',
|
|
name: 'accounts.account_number'
|
|
},
|
|
{
|
|
data: 'note',
|
|
name: 'accounts.note'
|
|
},
|
|
{
|
|
data: 'balance',
|
|
name: 'balance',
|
|
searchable: false
|
|
},
|
|
{
|
|
data: 'account_details',
|
|
name: 'account_details'
|
|
},
|
|
{
|
|
data: 'added_by',
|
|
name: 'u.first_name'
|
|
},
|
|
{
|
|
data: 'action',
|
|
name: 'action'
|
|
}
|
|
],
|
|
"fnDrawCallback": function(oSettings) {
|
|
__currency_convert_recursively($('#other_account_table'));
|
|
},
|
|
"footerCallback": function(row, data, start, end, display) {
|
|
var footer_total_balance = 0;
|
|
for (var r in data) {
|
|
footer_total_balance += $(data[r].balance).data('orig-value') ? parseFloat($(
|
|
data[r].balance).data('orig-value')) : 0;
|
|
}
|
|
|
|
$('.footer_total_balance').html(__currency_trans_from_en(footer_total_balance));
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
$('#account_status').change(function() {
|
|
other_account_table.ajax.reload();
|
|
});
|
|
|
|
$(document).on('submit', 'form#deposit_form', function(e) {
|
|
e.preventDefault();
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: "POST",
|
|
url: $(this).attr("action"),
|
|
dataType: "json",
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.view_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
capital_account_table.ajax.reload();
|
|
other_account_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
$('.account_model').on('shown.bs.modal', function(e) {
|
|
$('.account_model .select2').select2({
|
|
dropdownParent: $(this)
|
|
})
|
|
});
|
|
|
|
$(document).on('click', 'button.delete_account_type', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
icon: "warning",
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then((willDelete) => {
|
|
if (willDelete) {
|
|
$(this).closest('form').submit();
|
|
}
|
|
});
|
|
})
|
|
|
|
$(document).on('click', 'button.activate_account', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
icon: "warning",
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then((willActivate) => {
|
|
if (willActivate) {
|
|
var url = $(this).data('url');
|
|
$.ajax({
|
|
method: "get",
|
|
url: url,
|
|
dataType: "json",
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
capital_account_table.ajax.reload();
|
|
other_account_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
|
|
}
|
|
});
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
@endsection
|