Viewing file: index.blade.php (15.5 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
@extends('layouts.customer')
@section('title') Order @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: 1000px!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.order')</h2> <button class="btn btn-outline-info float-right" type="button" data-toggle="modal" data-target="#massModalLong">@lang('admin.form.button.mass_order_create')</button> <button class="btn btn-outline-primary float-right mr-3" type="button" data-toggle="modal" data-target="#categoryModalLong">@lang('admin.form.button.new_order_create')</button>
</div> <!-- /.card-header --> <div class="card-body table-body"> <table id="categories" class="table table-striped table-bordered dt-responsive nowrap"> <thead> <tr> <th>@lang('customer.id')</th> <th>@lang('customer.order_basic_details')</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 --> <!-- Button trigger modal --> <!-- Modal --> <div class="modal fade" id="categoryModalLong" tabindex="-1" role="dialog" aria-labelledby="orderModalLongTitle" 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="orderModalLongTitle">@lang('admin.order_create')</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form method="post" role="form" id="planForm" action="{{route('customer.order.store')}}"> <input type="hidden" id="charge_input" name="charges"> @csrf <div class="card-body"> @include('customer.order.form') </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">@lang('admin.form.button.close')</button> <button type="submit" class="btn btn-primary" id="order_btn">@lang('admin.order')</button> </div> </form> </div> </div> </div> </div>
<div class="modal fade" id="massModalLong" tabindex="-1" role="dialog" aria-labelledby="massModalLongTitle" 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="massModalLongTitle">@lang('admin.form.button.mass_order')</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <form method="post" role="form" action="{{route('customer.mass.order.store')}}"> @csrf <div class="card-body"> <div class="row"> <div class="col-lg-12"> <div class="form-group"> <label for="mass_services">@lang('admin.order_service')</label> <select class="form-control" name="service_id" id="mass_services"> <option selected disabled>Choose a option</option> @if($services->isNotEmpty()) @foreach($services as $service) <option data-action="{{$service}}" value="{{$service->id}}">{{$service->name}}</option> @endforeach @else <option>@lang('admin.no_data_available')</option> @endif </select> </div> </div> </div> <div id="mass-service">
</div> <div class="col-lg-12"> <div class="form-check"> <input class="form-check-input" type="checkbox" value="" id="massconfirmationCheck"> <label class="form-check-label" for="massconfirmationCheck"> @lang('admin.i_have_confirm') </label> </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">@lang('admin.form.button.close')</button> <button type="submit" class="btn btn-primary" id="mass_order_btn">@lang('admin.order')</button> </div> </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> "use strict"; $('#categories').DataTable({ processing: true, serverSide: true, responsive:true, ajax:'{{route('customer.order.get.all')}}', columns: [ { "data": "id" }, { "data": "order_basic_details" }, { "data": "status" }, { "data": "action" }, ] }); $('#service_id').change(function(){ const option = $('option:selected', this).attr('data-action'); const service = JSON.parse(option); $('#service_name').val(service.name); $('#min_order').val(service.min_order); $('#max_order').val(service.max_order); $('#rate_per').val(service.rate_per); $('#description').val(service.description); $('#order_quantity').val(''); $('#choose_a_service_type').addClass('d-none') }) $("#order_quantity").on("keyup change", function(e) { const order_quantity = $('#order_quantity').val(); const min_order = $('#min_order').val(); const max_order = $('#max_order').val(); const rate_per = $('#rate_per').val(); $("#order_btn").attr("disabled","true") if (!min_order || !max_order || !rate_per){ $('#choose_a_service_type').removeClass('d-none') }else { if (Number(order_quantity) < Number(min_order)){ $('#choose_a_service_type').removeClass('d-none') $('#choose_a_service_type').text('Minimal order '+min_order) $("#order_btn").attr("disabled","true") }else if (Number(order_quantity) > Number(max_order)){ $('#choose_a_service_type').removeClass('d-none') $('#choose_a_service_type').text('Maximal order '+max_order) $("#order_btn").attr("disabled","true") }else { const charge = (Number(order_quantity) / 1000)*Number(rate_per); $('#total_charges').text(charge.formatNumberWithCurrSymbol()) $('#choose_a_service_type').addClass('d-none'); $('#charge_input').val(charge) if($('#confirmationCheck').is(":checked")){ $("#order_btn").attr("disabled",false) }
} } }) $('#confirmationCheck').change(function(){ const charge = $('#charge_input').val() if($('#confirmationCheck').is(":checked") && charge){ $("#order_btn").attr("disabled",false) } }); $("#order_btn").attr("disabled","true") $("#mass_order_btn").attr("disabled","true")
$('#mass_services').change(function(){ const option = $('option:selected', this).attr('data-action'); const service = JSON.parse(option); let html = `<div class="row"> <div class="col-lg-6"> <div class="row"> <div class="col-lg-6"> <div class="form-group"> <label for="mass_order_quantity">@lang('customer.order_quantity')</label> <input data-id="${service.id}" data-min-order="${service.min_order}" data-max-order="${service.max_order}" data-rate-per="${service.rate_per}" value="" type="number" name="mass_order[quantity][]" class="form-control mass_order_quantity" placeholder="@lang('customer.enter_order_quantity')"> <small class="text-danger d-none" id="choose_a_mass_service_type_${service.id}">@lang('customer.choose_a_service_type')</small> </div> </div> <div class="col-lg-6"> <div class="form-group"> <label for="mass_link">@lang('admin.link')</label> <input value="" type="text" name="mass_order[link][]" class="form-control" placeholder="@lang('https://')"> </div> </div> </div> </div> <input value="${service.id}" type="hidden" name="mass_order[id][]" class="form-control" <div class="col-lg-6"> <div class="row"> <div class="col-lg-12"> <div class="row"> <div class="col-lg-6"> <div class="form-group"> <label for="link">@lang('admin.service_name')</label> <input value="${service.name}" type="text" name="mass_service_name[]" class="form-control" disabled placeholder="@lang('admin.service_name_input')">
</div> </div> <div class="col-lg-6"> <div class="form-group"> <label for="link">@lang('customer.total_charges')</label> <input value="" type="number" name="mass_order[charges][]" class="form-control" id="total_charges_${service.id}" readonly="false" placeholder="@lang('customer.total_charges')"> </div> </div> </div> </div> </div> </div> </div>`; $('#mass-service').append(html); }); $(document).on('keyup','.mass_order_quantity', function(e) { const order_quantity = $(this).val(); const min_order = $(this).attr('data-min-order'); const max_order = $(this).attr('data-max-order'); const rate_per = $(this).attr('data-rate-per'); const id = $(this).attr('data-id'); $("#mass_order_btn").attr("disabled","true") if (!min_order || !max_order || !rate_per){ $('#choose_a_mass_service_type_'+id).removeClass('d-none') }else { if (Number(order_quantity) < Number(min_order)){ $('#choose_a_mass_service_type_'+id).removeClass('d-none') $('#choose_a_mass_service_type_'+id).text('Minimal order '+min_order) $("#mass_order_btn").attr("disabled","true") }else if (Number(order_quantity) > Number(max_order)){ $('#choose_a_mass_service_type_'+id).removeClass('d-none') $('#choose_a_mass_service_type_'+id).text('Maximal order '+max_order) $("#mass_order_btn").attr("disabled","true") }else { const charge = (Number(order_quantity) / 1000)*Number(rate_per); $('#total_charges_'+id).val(charge) $('#choose_a_mass_service_type_'+id).addClass('d-none'); if($('#massconfirmationCheck').is(":checked")){ $("#mass_order_btn").attr("disabled",false) }
} } }); $('#massconfirmationCheck').change(function(){ if($('#massconfirmationCheck').is(":checked")){ $("#mass_order_btn").attr("disabled",false) } }); $('#category_id').change(function(){ const serviceType = $('option:selected', this).attr('data-service'); const service = JSON.parse(serviceType); let html = '<option selected disabled>Choose a option</option>'; $.each(service, function (index, value) { html += `<option data-action='${JSON.stringify(value)}' value="${value.id}">${value.name}</option>`; }); $("#service_id").html(html); }); </script> @endsection
|