379 lines
17 KiB
PHP
379 lines
17 KiB
PHP
@extends('layouts.app')
|
|
@section('title', __('lang_v1.all_sales'))
|
|
|
|
@section('content')
|
|
|
|
<!-- Content Header (Page header) -->
|
|
<section class="content-header no-print">
|
|
<h1 class="tw-text-xl md:tw-text-3xl tw-font-bold tw-text-black">@lang('sale.sells')
|
|
</h1>
|
|
</section>
|
|
|
|
<!-- Main content -->
|
|
<section class="content no-print">
|
|
@component('components.filters', ['title' => __('report.filters')])
|
|
@include('sell.partials.sell_list_filters')
|
|
@if ($payment_types)
|
|
<div class="col-md-3">
|
|
<div class="form-group">
|
|
{!! Form::label('payment_method', __('lang_v1.payment_method') . ':') !!}
|
|
{!! Form::select('payment_method', $payment_types, null, [
|
|
'class' => 'form-control select2',
|
|
'style' => 'width:100%',
|
|
'placeholder' => __('lang_v1.all'),
|
|
]) !!}
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
@if (!empty($sources))
|
|
<div class="col-md-3">
|
|
<div class="form-group">
|
|
{!! Form::label('sell_list_filter_source', __('lang_v1.sources') . ':') !!}
|
|
|
|
{!! Form::select('sell_list_filter_source', $sources, null, [
|
|
'class' => 'form-control select2',
|
|
'style' => 'width:100%',
|
|
'placeholder' => __('lang_v1.all'),
|
|
]) !!}
|
|
</div>
|
|
</div>
|
|
@endif
|
|
@endcomponent
|
|
@component('components.widget', ['class' => 'box-primary', 'title' => __('lang_v1.all_sales')])
|
|
@can('direct_sell.access')
|
|
@slot('tool')
|
|
<div class="box-tools">
|
|
<a 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 pull-right"
|
|
href="{{ action([\App\Http\Controllers\SellController::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')
|
|
</a>
|
|
</div>
|
|
@endslot
|
|
@endcan
|
|
@if (auth()->user()->can('direct_sell.view') ||
|
|
auth()->user()->can('view_own_sell_only') ||
|
|
auth()->user()->can('view_commission_agent_sell'))
|
|
@php
|
|
$custom_labels = json_decode(session('business.custom_labels'), true);
|
|
@endphp
|
|
<table class="table table-bordered table-striped ajax_view" id="sell_table">
|
|
<thead>
|
|
<tr>
|
|
<th>@lang('messages.action')</th>
|
|
<th>@lang('messages.date')</th>
|
|
<th>@lang('sale.invoice_no')</th>
|
|
<th>@lang('sale.customer_name')</th>
|
|
<th>@lang('lang_v1.contact_no')</th>
|
|
<th>@lang('sale.location')</th>
|
|
<th>@lang('sale.payment_status')</th>
|
|
<th>@lang('lang_v1.payment_method')</th>
|
|
<th>@lang('sale.total_amount')</th>
|
|
<th>@lang('sale.total_paid')</th>
|
|
<th>@lang('lang_v1.sell_due')</th>
|
|
<th>@lang('lang_v1.sell_return_due')</th>
|
|
<th>@lang('lang_v1.shipping_status')</th>
|
|
<th>@lang('lang_v1.total_items')</th>
|
|
<th>@lang('lang_v1.types_of_service')</th>
|
|
<th>{{ $custom_labels['types_of_service']['custom_field_1'] ?? __('lang_v1.service_custom_field_1') }}
|
|
</th>
|
|
<th>{{ $custom_labels['sell']['custom_field_1'] ?? '' }}</th>
|
|
<th>{{ $custom_labels['sell']['custom_field_2'] ?? '' }}</th>
|
|
<th>{{ $custom_labels['sell']['custom_field_3'] ?? '' }}</th>
|
|
<th>{{ $custom_labels['sell']['custom_field_4'] ?? '' }}</th>
|
|
<th>@lang('lang_v1.added_by')</th>
|
|
<th>@lang('sale.sell_note')</th>
|
|
<th>@lang('sale.staff_note')</th>
|
|
<th>@lang('sale.shipping_details')</th>
|
|
<th>@lang('restaurant.table')</th>
|
|
<th>@lang('restaurant.service_staff')</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody></tbody>
|
|
<tfoot>
|
|
<tr class="bg-gray font-17 footer-total text-center">
|
|
<td colspan="6"><strong>@lang('sale.total'):</strong></td>
|
|
<td class="footer_payment_status_count"></td>
|
|
<td class="payment_method_count"></td>
|
|
<td class="footer_sale_total"></td>
|
|
<td class="footer_total_paid"></td>
|
|
<td class="footer_total_remaining"></td>
|
|
<td class="footer_total_sell_return_due"></td>
|
|
<td colspan="2"></td>
|
|
<td class="service_type_count"></td>
|
|
<td colspan="7"></td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
@endif
|
|
@endcomponent
|
|
</section>
|
|
<!-- /.content -->
|
|
<div class="modal fade payment_modal" tabindex="-1" role="dialog" aria-labelledby="gridSystemModalLabel">
|
|
</div>
|
|
|
|
<div class="modal fade edit_payment_modal" tabindex="-1" role="dialog" aria-labelledby="gridSystemModalLabel">
|
|
</div>
|
|
|
|
<!-- This will be printed -->
|
|
<section class="invoice print_section" id="receipt_section">
|
|
</section>
|
|
|
|
@stop
|
|
|
|
@section('javascript')
|
|
<script type="text/javascript">
|
|
$(document).ready(function() {
|
|
//Date range as a button
|
|
$('#sell_list_filter_date_range').daterangepicker(
|
|
dateRangeSettings,
|
|
function(start, end) {
|
|
$('#sell_list_filter_date_range').val(start.format(moment_date_format) + ' ~ ' + end.format(
|
|
moment_date_format));
|
|
sell_table.ajax.reload();
|
|
}
|
|
);
|
|
$('#sell_list_filter_date_range').on('cancel.daterangepicker', function(ev, picker) {
|
|
$('#sell_list_filter_date_range').val('');
|
|
sell_table.ajax.reload();
|
|
});
|
|
|
|
sell_table = $('#sell_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
aaSorting: [
|
|
[1, 'desc']
|
|
],
|
|
"ajax": {
|
|
"url": "/sells",
|
|
"data": function(d) {
|
|
if ($('#sell_list_filter_date_range').val()) {
|
|
var start = $('#sell_list_filter_date_range').data('daterangepicker')
|
|
.startDate.format('YYYY-MM-DD');
|
|
var end = $('#sell_list_filter_date_range').data('daterangepicker').endDate
|
|
.format('YYYY-MM-DD');
|
|
d.start_date = start;
|
|
d.end_date = end;
|
|
}
|
|
d.is_direct_sale = 1;
|
|
|
|
d.location_id = $('#sell_list_filter_location_id').val();
|
|
d.customer_id = $('#sell_list_filter_customer_id').val();
|
|
d.payment_status = $('#sell_list_filter_payment_status').val();
|
|
d.created_by = $('#created_by').val();
|
|
d.sales_cmsn_agnt = $('#sales_cmsn_agnt').val();
|
|
d.service_staffs = $('#service_staffs').val();
|
|
|
|
if ($('#shipping_status').length) {
|
|
d.shipping_status = $('#shipping_status').val();
|
|
}
|
|
|
|
if ($('#sell_list_filter_source').length) {
|
|
d.source = $('#sell_list_filter_source').val();
|
|
}
|
|
|
|
if ($('#only_subscriptions').is(':checked')) {
|
|
d.only_subscriptions = 1;
|
|
}
|
|
|
|
if ($('#payment_method').length) {
|
|
d.payment_method = $('#payment_method').val();
|
|
}
|
|
|
|
d = __datatable_ajax_callback(d);
|
|
}
|
|
},
|
|
scrollY: "75vh",
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
columns: [{
|
|
data: 'action',
|
|
name: 'action',
|
|
orderable: false,
|
|
"searchable": false
|
|
},
|
|
{
|
|
data: 'transaction_date',
|
|
name: 'transaction_date'
|
|
},
|
|
{
|
|
data: 'invoice_no',
|
|
name: 'invoice_no'
|
|
},
|
|
{
|
|
data: 'conatct_name',
|
|
name: 'conatct_name'
|
|
},
|
|
{
|
|
data: 'mobile',
|
|
name: 'contacts.mobile'
|
|
},
|
|
{
|
|
data: 'business_location',
|
|
name: 'bl.name'
|
|
},
|
|
{
|
|
data: 'payment_status',
|
|
name: 'payment_status'
|
|
},
|
|
{
|
|
data: 'payment_methods',
|
|
orderable: false,
|
|
"searchable": false
|
|
},
|
|
{
|
|
data: 'final_total',
|
|
name: 'final_total'
|
|
},
|
|
{
|
|
data: 'total_paid',
|
|
name: 'total_paid',
|
|
"searchable": false
|
|
},
|
|
{
|
|
data: 'total_remaining',
|
|
name: 'total_remaining'
|
|
},
|
|
{
|
|
data: 'return_due',
|
|
orderable: false,
|
|
"searchable": false
|
|
},
|
|
{
|
|
data: 'shipping_status',
|
|
name: 'shipping_status'
|
|
},
|
|
{
|
|
data: 'total_items',
|
|
name: 'total_items',
|
|
"searchable": false
|
|
},
|
|
{
|
|
data: 'types_of_service_name',
|
|
name: 'tos.name',
|
|
@if (empty($is_types_service_enabled))
|
|
visible: false
|
|
@endif
|
|
},
|
|
{
|
|
data: 'service_custom_field_1',
|
|
name: 'service_custom_field_1',
|
|
@if (empty($is_types_service_enabled))
|
|
visible: false
|
|
@endif
|
|
},
|
|
{
|
|
data: 'custom_field_1',
|
|
name: 'transactions.custom_field_1',
|
|
@if (empty($custom_labels['sell']['custom_field_1']))
|
|
visible: false
|
|
@endif
|
|
},
|
|
{
|
|
data: 'custom_field_2',
|
|
name: 'transactions.custom_field_2',
|
|
@if (empty($custom_labels['sell']['custom_field_2']))
|
|
visible: false
|
|
@endif
|
|
},
|
|
{
|
|
data: 'custom_field_3',
|
|
name: 'transactions.custom_field_3',
|
|
@if (empty($custom_labels['sell']['custom_field_3']))
|
|
visible: false
|
|
@endif
|
|
},
|
|
{
|
|
data: 'custom_field_4',
|
|
name: 'transactions.custom_field_4',
|
|
@if (empty($custom_labels['sell']['custom_field_4']))
|
|
visible: false
|
|
@endif
|
|
},
|
|
{
|
|
data: 'added_by',
|
|
name: 'u.first_name'
|
|
},
|
|
{
|
|
data: 'additional_notes',
|
|
name: 'additional_notes'
|
|
},
|
|
{
|
|
data: 'staff_note',
|
|
name: 'staff_note'
|
|
},
|
|
{
|
|
data: 'shipping_details',
|
|
name: 'shipping_details'
|
|
},
|
|
{
|
|
data: 'table_name',
|
|
name: 'tables.name',
|
|
@if (empty($is_tables_enabled))
|
|
visible: false
|
|
@endif
|
|
},
|
|
{
|
|
data: 'waiter',
|
|
name: 'ss.first_name',
|
|
@if (empty($is_service_staff_enabled))
|
|
visible: false
|
|
@endif
|
|
},
|
|
],
|
|
"fnDrawCallback": function(oSettings) {
|
|
__currency_convert_recursively($('#sell_table'));
|
|
},
|
|
"footerCallback": function(row, data, start, end, display) {
|
|
var footer_sale_total = 0;
|
|
var footer_total_paid = 0;
|
|
var footer_total_remaining = 0;
|
|
var footer_total_sell_return_due = 0;
|
|
for (var r in data) {
|
|
footer_sale_total += $(data[r].final_total).data('orig-value') ? parseFloat($(
|
|
data[r].final_total).data('orig-value')) : 0;
|
|
footer_total_paid += $(data[r].total_paid).data('orig-value') ? parseFloat($(
|
|
data[r].total_paid).data('orig-value')) : 0;
|
|
footer_total_remaining += $(data[r].total_remaining).data('orig-value') ?
|
|
parseFloat($(data[r].total_remaining).data('orig-value')) : 0;
|
|
footer_total_sell_return_due += $(data[r].return_due).find('.sell_return_due')
|
|
.data('orig-value') ? parseFloat($(data[r].return_due).find(
|
|
'.sell_return_due').data('orig-value')) : 0;
|
|
}
|
|
|
|
$('.footer_total_sell_return_due').html(__currency_trans_from_en(
|
|
footer_total_sell_return_due));
|
|
$('.footer_total_remaining').html(__currency_trans_from_en(footer_total_remaining));
|
|
$('.footer_total_paid').html(__currency_trans_from_en(footer_total_paid));
|
|
$('.footer_sale_total').html(__currency_trans_from_en(footer_sale_total));
|
|
|
|
$('.footer_payment_status_count').html(__count_status(data, 'payment_status'));
|
|
$('.service_type_count').html(__count_status(data, 'types_of_service_name'));
|
|
$('.payment_method_count').html(__count_status(data, 'payment_methods'));
|
|
},
|
|
createdRow: function(row, data, dataIndex) {
|
|
$(row).find('td:eq(6)').attr('class', 'clickable_td');
|
|
}
|
|
});
|
|
|
|
$(document).on('change',
|
|
'#sell_list_filter_location_id, #sell_list_filter_customer_id, #sell_list_filter_payment_status, #created_by, #sales_cmsn_agnt, #service_staffs, #shipping_status, #sell_list_filter_source, #payment_method',
|
|
function() {
|
|
sell_table.ajax.reload();
|
|
});
|
|
|
|
$('#only_subscriptions').on('ifChanged', function(event) {
|
|
sell_table.ajax.reload();
|
|
});
|
|
});
|
|
</script>
|
|
<script src="{{ asset('js/payment.js?v=' . $asset_v) }}"></script>
|
|
@endsection
|