Add Item
×
Select Item
#
Items Code
Name
Uom
Supplier
Location
Purchase Price
Order Qty
@if (!empty($data))
Item Info
×
Type
Selected type
SETS
UNIT
Name
Purchase Price
$
Selling Price
$
MOC
Stock
Lead Time
day
Category
UoM
QTY Primary
QTY Received
Add Qty Receive
@endif
Item on sets
×
#
Item Code
Name
QTY
@push('extra-script') var dataItems = []; var itemList = $('#item-list').DataTable({ data : dataItems, columns: [ { data: null, name: 'action' }, { 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", name: 'supplier', render: function (data, type, row, meta) { if(!isEmpty(row.supplier)){ return row.supplier.name; }else{ return ''; } }, }, { data: "id", name: 'uom', render: function (data, type, row, meta) { if(!isEmpty(row.uom)){ return row.uom.name; } }, }, { data: "id", name: 'location', render: function (data, type, row, meta) { if(!isEmpty(location)){ return row.location.name; } }, }, {data: 'purchase_price', name: 'purchase_price'}, {data: 'qty_primary', name: 'qty_primary'}, {data: 'qty_receive', name: 'qty_receive'}, ], columnDefs: [ { targets: 0, data: null, render : function(data, type, row, meta) { let btn = ``; //IF APPROVED @if (!empty($data) && $data->status == "Approved") btn += `
` @else //IF HOLD PENDING STILL CAN CHANGE ITEM btn += `
` @endif //IF ITEM SETS if(row.type == 'sets'){ btn += `
` } return btn; }, }, ] }) /* on click item search */ $(document).on('click', '#search-items', function(e) { $('#data-item-list').DataTable().clear(); $('#data-item-list').DataTable().destroy(); let url = `{{route('item.list.requistion')}}`; $('#data-item-list').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: 'uom', render: function(data, type, row, meta) { if (!isEmpty(row.uom)) { return row.uom.name; } else { return ''; } }, }, { data: "id", render: function(data, type, row, meta) { return `
`; }, orderable: false, searchable: false }, { data: "id", render: function(data, type, row, meta) { return `
`; }, orderable: false, searchable: false }, { data: "id", render: function(data, type, row, meta) { return `
`; }, orderable: false, searchable: false }, { data: "id", render: function(data, type, row, meta) { return `
`; }, orderable: false, searchable: false }, ], drawCallback: function(dt) { $('.selected_items').on('change', function() { $('.selected_items').not(this).prop('checked', false); let item_id = null; let items = $("input[name='selected_items[]']:checked"); if (items.is(":checked")) { items.map(function(_, el) { item_id = $(el).val(); }); } console.log(item_id); let urlSupplier = "{{ route('ajax.supplier.index') }}"; urlSupplier +=`?item_id=${item_id}`; $('.supplier_id').select2({ theme: "bootstrap", placeholder: 'Select Suppler..', allowClear: true, ajax: { url: urlSupplier, 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 } }), } } } }); }); $('.location_id').select2({ theme: "bootstrap", placeholder: 'Select Project..', allowClear: true, ajax: { url: "{{ route('ajax.location.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 } }), } } } }); } }); $('#modalItems').appendTo("body").modal('show'); $(document).on('click', '#selected_add_btn', function(e) { e.stopImmediatePropagation(); e.preventDefault(); var items = $("input[name='selected_items[]']:checked"); if (items.is(":checked")) { let itemsx = []; let url = `{{route('grn.item-check')}}`; items.map(function(_, el) { let data = { "item_id": $(el).val(), "qty_primary": $("input[name='item_order_qty_".concat($(el).val()) + "']").val(), "purchase_price": $("input[name='purchase_price_".concat($(el).val()) + "']").val(), "supplier_id": $("[name='supplier_id_".concat($(el).val()) + "']").val(), "location_id": $("[name='location_id_".concat($(el).val()) + "']").val(), } itemsx.push(data); }); let params = { "items" : itemsx }; var setData = getDataWithAjax(url, "GET", $.param(params)); setData.done(function(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); console.log(found) if (found) { found.supplier = c.supplier; found.supplier_id = c.supplier_id; found.qty_primary += c.qty_primary; } 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) == 500 || parseInt(e.status) == 422) { let msg = ''; $.each(e.responseJSON.errors, function(index, messages) { index = index.replace('items.0.', ""); messages = messages.join('').replace('items.0.', ""); msg += ` ${index} : ${messages} \n`; }); alert(msg); } else if (parseInt(e.status) == 500) { alert(e.statusText); } }) } else { alert("Please select the stock first."); } e.stopPropagation(); }); }); $('#item-list tbody').on( 'click', '.btn-info-set', function () { console.log('item list'); $("#table-sets-info").empty(); items = itemList.row( $(this).parents('tr') ).data() ; let table = ''; let number = 1; items.sets.map((val) => { console.log(val) table += ''; table += '' + number + ''; table += '' + val.item.item_code + ''; table += '' + val.item.name + ''; table += '' + val.qty + ''; table += ''; number++ }) $('#table-sets-info').append(table); $('#modal-sets-info').modal('show'); }); /* delete item */ $('#item-list').on('click', '.btn-delete-item', function() { let $row = $(this).closest('tr'); let data = $('#item-list').DataTable().row($row).data(); dataItems = dataItems.filter(item => item.id !== data.id); itemList.clear().rows.add(dataItems).draw(); }) /* on click item search end */ @endpush