Created
May 30, 2014 02:05
-
-
Save widoyo/aa071a14ae9eb43dc6f4 to your computer and use it in GitHub Desktop.
Stocktake Script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$(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