| # |
Code |
Name |
Category |
UoM |
Selling Price |
Qty |
@push('extra-script')
var dataItems = [];
var dataSupplier = [];
$("#type").change(function() {
if (this.value == 'sets') {
$('#child-item').show()
} else {
dataItems = [];
$('#child-item').hide()
}
});
var itemList = $('#items-list-on-sets').DataTable({
data: dataItems,
columns: [{
data: "id",
render: function(data, type, row, meta) {
return meta.row + meta.settings._iDisplayStart + 1;
},
orderable: false,
searchable: false
},
{
data: 'item_code',
name: 'item_code'
},
{
data: 'name',
name: 'name'
},
{
data: "id",
render: function(data, type, row, meta) {
if (!isEmpty(row.category)) {
return row.category.name;
}
},
},
{
data: "id",
name: 'uom',
render: function(data, type, row, meta) {
if (!isEmpty(row.uom)) {
return row.uom.name;
}
},
},
{
data: 'qty',
name: 'qty'
},
],
columnDefs: [{
targets: 6,
data: null,
defaultContent: `
`
}]
})
var supplierList = $('#supplier-list').DataTable({
data: dataSupplier,
columns: [{
data: "id",
render: function(data, type, row, meta) {
return meta.row + meta.settings._iDisplayStart + 1;
},
orderable: false,
searchable: false
},
{
data: 'name',
name: 'name'
},
{
data: 'address',
name: 'address'
},
],
columnDefs: [{
targets: 3,
data: null,
defaultContent: `
`
}, ]
})
$(document).ready(function() {
$('#child-item').hide()
initialSelect2();
});
/* delete item */
$('#items-list-on-sets').on('click', '.btn-delete-item', function() {
let $row = $(this).closest('tr');
let data = $('#items-list-on-sets').DataTable().row($row).data();
dataItems = dataItems.filter(item => item.id !== data.id);
itemList.clear().rows.add(dataItems).draw();
})
/* delete supplier list */
$('#supplier-list').on('click', '.btn-delete-supplier', function() {
let $row = $(this).closest('tr');
let data = $('#supplier-list').DataTable().row($row).data();
dataSupplier = dataSupplier.filter(item => item.id !== data.id);
supplierList.clear().rows.add(dataSupplier).draw();
})
/* on click item search end */
function initialSelect2() {
$('.uom').select2({
theme: "bootstrap",
placeholder: 'Select UoM..',
allowClear: true,
ajax: {
url: "{{ route('ajax.uoms.index') }}",
dataType: 'json',
delay: 200,
cache: true,
data: function(params) {
return {
q: params.term || '',
page: params.page || 1
}
},
processResults: function(data, params) {
console.log(data);
return {
results: $.map(data.data, function(item) {
return {
data: item,
text: item.name,
id: item.id
}
}),
}
}
}
});
$('.category').select2({
theme: "bootstrap",
placeholder: 'Select Category..',
allowClear: true,
ajax: {
url: "{{ route('ajax.itemcategory.index') }}",
dataType: 'json',
delay: 200,
cache: true,
data: function(params) {
return {
q: params.term || '',
page: params.page || 1
}
},
processResults: function(data, params) {
console.log(data);
return {
results: $.map(data.data, function(item) {
return {
data: item,
text: item.name,
id: item.id
}
}),
}
}
}
});
}
/* on click item search */
$(document).on('click', '#search-items', function (e) {
$('#modal-item').appendTo("body").modal('show');
$('#table-items').DataTable().clear();
$('#table-items').DataTable().destroy();
let url = `{{route('master-item.notset')}}`;
$('#table-items').DataTable({
processing: true,
serverSide: true,
ajax: url,
columns: [
{
data: "id",
render: function (data, type, row, meta) {
return ``;
},
orderable: false,
searchable: false
},
{data: 'item_code', name: 'item_code'},
{data: 'name', name: 'name'},
{
data: "id", name: 'category',
render: function (data, type, row, meta) {
if(!isEmpty(row.category)){
return row.category.name;
}
},
},
{
data: "id", name: 'uom',
render: function (data, type, row, meta) {
if(!isEmpty(row.uom)){
return row.uom.name;
}
},
},
{data: 'selling_price', name :'selling_price'},
{
data: "id",
render: function (data, type, row, meta) {
return ``;
},
orderable: false,
searchable: false
},
],
});
})
/* on click item search end */
/* on click selected item */
$(document).on('click', '#selected_add_btn', function (e) {
console.log('selected add btn');
e.stopImmediatePropagation();
e.preventDefault();
var items = $("input[name='selected_items[]']:checked");
if(items.is(":checked")){
let itemsx = [];
let url = `{{route('master-item.check')}}`;
items.map(function(_, el) {
let data = {
"item_id" : $(el).val(),
"qty" : $("input[name='item_qty_".concat($(el).val())+"']").val(),
}
itemsx.push(data)
});
let params = { "items" : itemsx };
var setData = getDataWithAjax(url, "GET", $.param(params));
setData.done(function(res){
console.log(res);
res.map((item)=>{
dataItems.push(item)
})
//CHECK if items any same id, and summed qty
result = dataItems.reduce((a, c) => {
let found = a.find(el => el.item_id === c.item_id);
if (found) {
found.qty += c.qty;
} else {
a.push(c);
}
return a;
}, []);
dataItems = [...result];
itemList.clear().rows.add(dataItems).draw();
new Noty({
text: "Success add ittem",
type: "success"
}).show();
})
setData.fail(function(e){
if(parseInt(e.status) == 422 ){
alert(`qty : must greather than 0 \nmsg : ${e.responseJSON.message}\n`);
}else {
alert(e.statusText);
}
})
}else{
alert("Please select the stock first.");
}
e.stopPropagation();
});
/* on click suppler search */
$(document).on('click', '#search-supplier', function (e) {
$('#modal-supplier').appendTo("body").modal('show');
$('#table-supplier').DataTable().clear();
$('#table-supplier').DataTable().destroy();
let url = `{{route('master-item.supplier')}}`;
var supplierListTable = $('#table-supplier').DataTable({
processing: true,
serverSide: true,
ajax: url,
columns: [
{
data: "id",
name: "id"
},
{data: 'name', name: 'name'},
{data: 'address', name: 'address'},
],
columnDefs: [
{
targets: 0,
checkboxes: {
selectRow: true
}
}
],
select: {
style: 'multi'
},
});
/* on click selected item */
$(document).on('click', '#selected_supplier', function (e) {
e.preventDefault();
let data = $.map(supplierListTable.rows('.selected').data(), function (item) {
return item
});
data.map((data) => {
dataSupplier.push(data);
//check suplier not same id
result = dataSupplier.reduce((a, c) => {
let found = a.find(el => el.supplier_id === c.supplier_id);
if (found) {
return a;
} else {
a.push(c);
}
return a;
}, []);
console.log(result)
dataSupplier = [...result];
supplierList.clear().rows.add(dataSupplier).draw();
});
console.log(dataSupplier)
})
});
@endpush