ultimatepos/Modules/Maintenance/Resources/views/spare_parts/index.blade.php

92 lines
4.2 KiB
PHP

@extends('layouts.app')
@section('title', __('maintenance::lang.spare_parts'))
@section('content')
@include('maintenance::layouts.nav')
<section class="content no-print mt-page">
<div class="mt-page-header">
<h1><i class="fas fa-cog" style="color:#14b8a6;margin-left:8px;"></i> @lang('maintenance::lang.spare_parts')</h1>
@can('maintenance.spare_parts.create')
<button type="button" class="mt-btn-primary btn-modal"
data-href="{{ action([\Modules\Maintenance\Http\Controllers\SparePartController::class, 'create']) }}"
data-container=".maintenance_spare_part_modal">
<i class="fa fa-plus"></i> @lang('maintenance::lang.add')
</button>
@endcan
</div>
<div class="mt-card">
<div class="mt-card-header"><h3 class="mt-card-title">@lang('maintenance::lang.all_spare_parts')</h3></div>
<div class="mt-card-body">
<div class="checkbox" style="margin-bottom:12px;">
<label><input type="checkbox" class="mm-low-stock-filter" value="1"> @lang('maintenance::lang.low_stock_only')</label>
</div>
<div class="table-responsive">
<table class="table table-bordered table-striped" id="mm_spare_parts_table" style="width:100%">
<thead>
<tr>
<th>@lang('maintenance::lang.part_number')</th>
<th>@lang('maintenance::lang.name')</th>
<th>@lang('maintenance::lang.supplier')</th>
<th>@lang('maintenance::lang.quantity')</th>
<th>@lang('maintenance::lang.min_stock')</th>
<th>@lang('maintenance::lang.purchase_price')</th>
<th>@lang('maintenance::lang.stock_status')</th>
<th>@lang('maintenance::lang.action')</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</section>
<div class="modal fade maintenance_spare_part_modal" tabindex="-1" role="dialog"></div>
@endsection
@section('javascript')
<script type="text/javascript">
$(document).ready(function() {
var table = $('#mm_spare_parts_table').DataTable({
processing: true, serverSide: true,
ajax: {
url: '{{ action([\Modules\Maintenance\Http\Controllers\SparePartController::class, "index"]) }}',
data: function(d) { d.low_stock = $('.mm-low-stock-filter').is(':checked') ? 1 : 0; }
},
columns: [
{ data: 'part_number', name: 'part_number' },
{ data: 'name', name: 'name' },
{ data: 'supplier_name', name: 'supplier_name', orderable: false },
{ data: 'quantity', name: 'quantity' },
{ data: 'min_stock', name: 'min_stock' },
{ data: 'purchase_price', name: 'purchase_price' },
{ data: 'stock_status', name: 'stock_status', orderable: false },
{ data: 'action', name: 'action', orderable: false, searchable: false }
]
});
$('.mm-low-stock-filter').on('change', function() { table.ajax.reload(); });
$(document).on('submit', 'form#mm_spare_part_form', function(e) {
e.preventDefault();
var form = $(this);
$.ajax({
method: form.find('input[name="_method"]').val() === 'PUT' ? 'PUT' : 'POST',
url: form.attr('action'), dataType: 'json', data: form.serialize(),
success: function(r) {
if (r.success) { $('.maintenance_spare_part_modal').modal('hide'); toastr.success(r.msg); table.ajax.reload(); }
else { toastr.error(r.msg); }
}
});
});
$(document).on('click', '.delete_maintenance_spare_part', function() {
var url = $(this).data('href');
swal({ title: LANG.sure, icon: 'warning', buttons: true, dangerMode: true }).then(function(ok) {
if (!ok) return;
$.ajax({ method: 'DELETE', url: url, dataType: 'json', success: function(r) {
if (r.success) { toastr.success(r.msg); table.ajax.reload(); } else { toastr.error(r.msg); }
}});
});
});
});
</script>
@endsection