Viewing file: index.blade.php (22.66 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
@extends('layouts.admin')
@section('title') Customers @endsection
@section('extra-css') <link rel="stylesheet" href="{{asset('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css')}}"> <link rel="stylesheet" href="{{asset('plugins/datatables-responsive/css/responsive.bootstrap4.min.css')}}"> <style> .custom-modal-dialog{ max-width: 800px!important; } </style> @endsection
@section('content') <!-- Main content --> <section class="content"> <div class="row"> <div class="col-12"> <div class="card"> <div class="card-header"> <h2 class="card-title">@lang('admin.customers.list')</h2> <a class="btn btn-outline-primary float-right" href="{{route('admin.customers.create')}}">@lang('admin.form.button.new')</a> </div> <!-- /.card-header --> <div class="card-body table-body"> <table id="customers" class="table table-striped table-bordered dt-responsive nowrap"> <thead> <tr> <th>@lang('admin.table.sl')</th> <th>@lang('admin.table.profile')</th> <th>@lang('admin.table.balance')</th> <th>@lang('admin.table.created_at')</th> <th>@lang('admin.table.status')</th> <th>@lang('admin.table.action')</th> </tr> </thead>
</table> </div> <!-- /.card-body --> </div> <!-- /.card --> </div> <!-- /.col --> </div> <!-- /.row --> </section> <!-- /.content --> <div class="modal fade" id="addOrSubtractBalance" tabindex="-1" role="dialog" aria-labelledby="addOrSubtractBalanceModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="addOrSubtractBalanceModalLabel">@lang('admin.add_or_subtract_balance')</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form action="{{route('admin.customer.balance.update')}}" method="post"> @csrf <input type="hidden" id="total_balance_id" name="id"> <div class="form-group"> <label for="totalBalance">@lang('admin.total_balance')</label> <span id="total_balance" data-balance="0" class="text-primary">{{formatNumberWithCurrSymbol(0)}}</span> </div> <div class="form-check form-check-inline"> <input class="form-check-input balanceType" type="radio" name="type" id="add_balance" value="add" checked> <label class="form-check-label" for="add_balance">@lang('admin.add_balance')</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input balanceType" type="radio" name="type" id="subtract_balance" value="subtract"> <label class="form-check-label" for="subtract_balance">@lang('admin.subtract_balance')</label> </div> <div class="form-group"> <label for="add_or_subtract_amount">@lang('admin.balance')</label> <input name="amount" type="number" class="form-control" id="add_or_subtract_amount"> <small class="text-danger d-none" id="balance_test">@lang('admin.balance_test')</small> </div> <div class="modal-footer"> <button type="submit" class="btn btn-primary">@lang('admin.form.button.save')</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">@lang('admin.form.button.close')</button> </div> </form> </div>
</div> </div> </div>
<div class="modal fade" id="customRate" tabindex="-1" role="dialog" aria-labelledby="customRateModalLabel" aria-hidden="true"> <div class="modal-dialog custom-modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="customRateModalLabel">@lang('admin.apply_custom_rate')</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form action="{{route('admin.customer.custom.rate.store')}}" method="post"> @csrf <input type="hidden" name="service_id" id="service_id_input"> <div class="form-group"> <label for="customRateSelect">@lang('admin.choose_service')</label> <select class="form-control" id="services_name"> <option selected disabled>@lang('admin.choose_a_option')</option> </select> </div> <div class="row d-none" id="custom_rate_section"> <div class="col-lg-3"> <div class="form-group"> <label for="custom_rate">@lang('admin.custom_rate')</label> <input name="custom_rate" type="text" class="form-control" id="custom_rate" placeholder="@lang('admin.enter_custom_rate')"> </div> </div> <div class="col-lg-3"> <div class="form-group"> <label for="service_rate">@lang('admin.service_rate')</label> <input name="service_rate" type="text" class="form-control" id="service_rate" readonly placeholder="@lang('admin.enter_service_rate')"> </div> </div> <div class="col-lg-3"> <div class="form-group"> <label for="totalBalance">@lang('admin.customer_charges')</label> <input name="customer_charges" type="text" class="form-control" id="customer_charges" readonly placeholder="@lang('admin.enter_customer_charges')"> </div> </div> <div class="col-lg-3"> <div class="form-group"> <label for="order_quantity">@lang('admin.order_quantity')</label> <input name="order_quantity" type="text" class="form-control" id="order_quantity" readonly placeholder="@lang('admin.enter_order_quantity')"> </div> </div> </div> <div class="modal-footer "> <button type="submit" class="btn btn-primary">@lang('admin.form.button.save')</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">@lang('admin.form.button.close')</button> </div> </form> </div>
</div> </div> </div>
<div class="modal fade" id="editCustomerModal" tabindex="-1" role="dialog" aria-labelledby="editCustomerModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="editCustomerModalLabel">@lang('admin.customer_edit')</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form id="customer_update_form" method="post"> @csrf @method('put') <input type="hidden" id="id" name="id" value=""> <div class="form-group"> <label for="first_name">@lang('admin.form.first_name')</label> <input name="first_name" type="text" class="form-control" id="first_name" placeholder="First Name"> </div>
<div class="form-group"> <label for="last_name">@lang('admin.form.last_name')</label> <input name="last_name" type="text" class="form-control" id="last_name" placeholder="Last Name"> </div> <div class="form-group"> <label for="inputEmail">@lang('admin.form.email')</label> <input name="email" type="email" class="form-control" id="email" placeholder="Email"> </div> <div class="form-group"> <label for="status">@lang('admin.form.status')</label> <select class="form-control" name="status" id="status"> <option value="active">@lang('admin.active')</option> <option value="inactive">@lang('admin.inactive')</option> </select> </div> <button type="submit" class="btn btn-primary float-right">@lang('admin.form.button.save')</button> </form> </div> </div> </div> </div>
<div class="modal fade" id="customerMailModal" tabindex="-1" role="dialog" aria-labelledby="customerMailModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="customerMailModalLabel">@lang('admin.customer_mail_send')</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form action="{{route('admin.customer.mail.send')}}" method="post"> @csrf <div class="form-group"> <label for="recipient_mail">@lang('admin.recipient_mail')</label> <input name="recipient_mail" type="email" class="form-control" id="recipient_mail"> </div>
<div class="form-group"> <label for="email_subject">@lang('admin.settings.email_subject')</label> <input name="email_subject" type="text" class="form-control" id="email_subject" placeholder="@lang('admin.settings.enter_email_subject')"> </div> <div class="form-group"> <label for="inputEmail">@lang('admin.settings.email_body')</label> <textarea name="email_body" cols="30" rows="5" class="form-control" placeholder="@lang('admin.settings.enter_email_body')"></textarea> </div> <button type="submit" class="btn btn-primary float-right">@lang('admin.send')</button> </form> </div> </div> </div> </div> @endsection
@section('extra-scripts') <script src="{{asset('plugins/datatables/jquery.dataTables.min.js')}}"></script> <script src="{{asset('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js')}}"></script> <script src="{{asset('plugins/datatables-responsive/js/dataTables.responsive.min.js')}}"></script> <script src="{{asset('plugins/datatables-responsive/js/responsive.bootstrap4.min.js')}}"></script> <script> $(document).on('click', '.data-customer', function (e) { e.preventDefault(); const id = $(this).attr('data-id'); const first_name = $(this).attr('data-first-name'); const last_name = $(this).attr('data-last-name'); const email = $(this).attr('data-email'); const status = $(this).attr('data-status'); const url = $(this).attr('data-url') $('#customer_update_form').attr('action', url); $('#id').val(id); $('#first_name').val(first_name); $('#last_name').val(last_name); $('#email').val(email); $('#status').val(status.toLowerCase()); $('#status').trigger('change'); $('#threedot').modal('show'); $('#editCustomerModal').modal('show'); }); </script> <script> $(document).on('keyup', '#custom_rate', function (e) { const custom_rate = $(this).val(); $('#present_rate').text(custom_rate); }); $(document).on('click', '.customRate', function (e) { const id = $(this).attr('data-id'); $.ajax({ url: '{{route('admin.customer.service.purchase')}}', method: "GET", data: { id: id, }, success: function (res) { if (res.status == 'success') { let html = ''; $.each(res.data, function (index, value) { html += `<option data-id="${value.service_id}" data-order-quantity="${value.order_quantity}" data-max_order="${value.max_order}" data-charges="${value.charges}" data-min_order="${value.min_order}" data-rate_per="${value.rate_per}" data-name="${value.name}">${value.name}</option>`; }); $('#services_name').append(html); } } }); $('#customRate').modal('show'); }) </script>
<script> "use strict"; $('#customers').DataTable({ processing: true, serverSide: true, responsive: true, ajax: '{{route('admin.customer.get.all')}}', columns: [ {"data": "id"}, {"data": "profile"}, {"data": "balance"}, {"data": "created_at"}, {"data": "status"}, {"data": "action"}, ] }); $(document).on('click', '.customerMailModalBtn', function (e) { const email = $(this).attr('data-email'); $('#recipient_mail').val(email) $('#customerMailModal').modal('show'); }) $(document).on('click', '.addOrSubtractBalanceBtn', function (e) { const balance = $(this).attr('data-balance'); const id = $(this).attr('data-id') $('#total_balance_id').val(id); $('#total_balance').text(balance) $('#total_balance').attr('data-balance', balance) $('#addOrSubtractBalance').modal('show'); }) $(document).on('keyup', '#add_or_subtract_amount', function (e) { const balance = $('#total_balance').attr('data-balance') const balanceType = $('input[name="type"]:checked').val(); const amount = $('#add_or_subtract_amount').val(); let totalBalance = 0; if (balanceType == 'add') { totalBalance = Number(balance) + Number(amount) $('#balance_test').addClass('d-none'); } else if (balanceType == 'subtract') { if (Number(balance) < Number(amount)) { $('#balance_test').removeClass('d-none'); } else { $('#balance_test').addClass('d-none'); } totalBalance = Number(balance) - Number(amount) } $('#total_balance').text(totalBalance.formatNumberWithCurrSymbol()) $('#present_rate').text(custom_rate); }); $(document).on('click', '.balanceType', function (e) { const balance = $('#total_balance').attr('data-balance') const balanceType = $('input[name="type"]:checked').val(); const amount = $('#add_or_subtract_amount').val(); let totalBalance = 0; if (balanceType == 'add') { totalBalance = Number(balance) + Number(amount) $('#balance_test').addClass('d-none'); } else if (balanceType == 'subtract') { if (Number(balance) < Number(amount)) { $('#balance_test').removeClass('d-none'); } else { $('#balance_test').addClass('d-none'); } totalBalance = Number(balance) - Number(amount) } $('#total_balance').text(totalBalance.formatNumberWithCurrSymbol()) $('#present_rate').text(custom_rate); }); $('#services_name').change(function() { const charges = $('option:selected', this).attr('data-charges') const rate_per = $('option:selected', this).attr('data-rate_per') const quantity = $('option:selected', this).attr('data-order-quantity') const id = $('option:selected', this).attr('data-id')
if (charges && rate_per && quantity){ $('#service_rate').val(rate_per) $('#customer_charges').val(charges) $('#order_quantity').val(quantity) $('#service_id_input').val(id)
$('#custom_rate_section').removeClass('d-none') }else { $('#custom_rate_section').addClass('d-none') }
}) $(document).on("keyup","#custom_rate", function(e) { const rate = $(this).val(); const quantity = $('#order_quantity').val() const customer_charges = (Number(quantity)*Number(rate))/1000; $('#customer_charges').val(customer_charges);
}) </script> @endsection
|