Skip to content

Instantly share code, notes, and snippets.

@widoyo
Created May 30, 2014 02:05
Show Gist options
  • Save widoyo/aa071a14ae9eb43dc6f4 to your computer and use it in GitHub Desktop.
Save widoyo/aa071a14ae9eb43dc6f4 to your computer and use it in GitHub Desktop.
Stocktake Script
$(document).ready(function(){
var currentBin = '',
latestScanned = '';
var bin = [];
var binContent = [],
scanned = [];
var req;
var stocktake_id = $('#id_stocktake').text();
var au_success = $('#ding'),
au_load = $('#load'),
au_unsuccess = $('#dirt');
$("#id_binsn").focus();
$("#id_binsn").keypress(function(e){
if (e.keyCode == 13) {
latestScanned = $('#id_binsn').val();
$("#last_scanned").text(latestScanned);
if (isBin(latestScanned)) {
$("#current_bin").text(latestScanned);
bin.push(latestScanned);
$('#server-data tbody').empty();
$('#sparepart-list tbody').empty();
$('#data-scanned').html("<span class='label'>0</span>")
$('#data-server').html("<span class='label'>0</span>")
$.get('/api/v1/sparepart/?format=json&bin=' + latestScanned + '&stocktake_id=' + stocktake_id, function(data, status){
au_load[0].load();
au_load[0].play();
_.each(data.objects, function(item){
binContent.push(item.sn);
// Perlu periksa tabel scan (sisi kanan layar),
// mungkin data ini hadir terlambat
$('#server-data tbody').prepend("<tr><td>"+ item.bin +"</td><td>"+ item.part.partnum + '_' + item.sn +"</td><td><span class='label radius'>Not Scanned</span></td></tr>");
});
$('#data-server').html("<span class='label'>"+data.meta.total_count+"</span>")
});
} else {
if ($("#current_bin").text() == '-') { return $; }
$("#id_binsn").prop('readonly', true);
status = "<span class='label secondary radius'>Not Found</span>";
if (latestScanned.indexOf('_') !== -1) {
var pn = latestScanned.split('_')[0];
var sn = latestScanned.split('_')[1];
} else {
var pn = '';
var sn = latestScanned;
}
$.ajax({url: '/api/v1/takeitem/',
type: 'POST',
data: JSON.stringify({stocktake_id: stocktake_id, sn_text: sn, pn_text: pn, bin_text: _.last(bin)}),
success: serverKick,
error: function(xhr, status, error) { alert('Status: ' + status + ' Error:' + error); },
dataType: 'json',
processData: false,
contentType: "application/json"});
if ( _.contains(binContent, sn) ) {
au_success[0].load();
au_success[0].play();
status = "<span class='label success radius'>Found</span>";
$('#server-data td:nth-child(2)').filter(function() { return $(this).text() === sn})
.siblings(':last')
.html("<span class='label success radius'>Scanned</span>");
} else {
au_unsuccess[0].load();
au_unsuccess[0].play();
}
$('#sparepart-list tbody').prepend("<tr><td>"+ _.last(bin)+"</td><td>"+ latestScanned +"</td><td>"+ status +"</td></tr>");
$('#data-scanned').html("<span class='label'>"+ $('#sparepart-list tbody tr').length +"</span>");
$("#id_binsn").prop('readonly', false).focus();
}
$("#id_binsn").val('').focus();
}
});
var serverKick = function(data, status) {
if (data.sparepart) {
$('#sparepart-list td:nth-child(2)').filter(function() { return $(this).text() === data.sn })
.siblings(':last')
.html("<span class='label success radius'>Found</span>");
if (! _.contains(binContent, data.sn) ) {
$('#server-data tbody').prepend("<tr><td>"+ _.last(bin) +"</td><td>"+ data.sn +"</td><td><span class='label success radius'>Moved</span></td></tr>");
}
$('#data-server').html("<span class='label'>"+$('#server-data tbody tr').length+"</span>")
}
};
var isBin = function(data){
return (data.split("-")[0].toUpperCase() == 'NEC' + $("#id_pool_code").text());
}
$(document).on('click', 'a.del', function(e){
if ( confirm("Yakin akan menghapus baris ini?") ) {
$.ajax({type: "DELETE",
url: "/api/v1/takeitem/" + $(this).prop("id").split("_")[1] + "/",
dataType: "json",
contentType: "application/json",
});
$(this).parent().parent().remove();
}
e.preventDefault();
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment