@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