Rev 32771 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<style>.table-striped > tbody > tr:nth-child(odd) > td {background: white;background-color: white;font-size: 14px;}.table-striped > tbody > tr:nth-child(even) > td {background: white;background-color: white;}.table-striped > tbody > tr:hover > td,.table-striped > tbody > tr:hover {background-color: #e98c8f;color: white;}.btn:hover,.btn:focus {color: grey;text-decoration: none;}.modal-content {background: white;}.modelHeaderCustom {font-size: 14px;font-weight: bold;}hr {background-color: #007aff;border: none;height: 1px;background: #007aff;}.border-highlight {border: 3px solid red;}</style><section class="wrapper"><!--overview start--><div class="row"><div class="col-lg-12"><h3 class="page-header"><i class="icon_document_alt"></i>GRN</h3><ol class="breadcrumb"><li><i class="fa fa-home"></i><a href="${rc.contextPath}/dashboard">#springMessage("grn.home")</a></li><li><i class="icon_document_alt"></i>#springMessage("grn.new")</li><!--Training Video --><li><a href="#videoModal" class="btn btn-danger" data-toggle="modal" data-src="o6GyFxS8jUo"><spanclass="glyphicon glyphicon-play-circle"></span> #springMessage("grn.playvideo")</a></li></ol></div></div><!--<form class="form-horizontal row" id="purchase-reference-submit-form">--><div class="col-lg-9 row"><label class="col-lg-3 control-label font-bold" style="text-align:center;font-weight:600;">#springMessage("grn.invoiceno")</label><div class="input-group col-lg-6">#if($airwayBillOrInvoiceNumber)#set($value = $airwayBillOrInvoiceNumber)#else#set($value = "")#end<input type="text" class="form-control" name="airwayBillOrInvoiceNumber" value="$value"id="airwayBillOrInvoiceNumberText" placeholder="Enter invoice Number"/><span class="input-group-btn"><button class="btn btn-primary" id="purchase-reference-submit-button"onclick="getPurchaseByInvoiceNumber()">#springMessage("grn.submit")</button></span></div></div><!--</form>-->#if($customItems && $customItems.size() > 0)#if($totalImeisCount && $totalImeisCount > 0)<div class="row col-lg-12"><br><h4>Add imeis (<span id="scanleft">0</span>/$totalImeisCount)</h4><div id="invalid-imeis-container" style="display:none"><div id="invalid-imeis" class="col-lg-12" style="color: red"></div></div></div><div class="row"><div class="col-lg-6"><input type="text" id="all-imeis" placeholder=""></div><div class="col-lg-3"><button class="btn btn-primary" id="grnPartial" onclick="grnPartial('$invoiceNumber')">Add IMEI!</button></div></div>#else<div class="row col-lg-9"><h4 style="color:green">All imeis/serial numbers are added</h4></div>#end<div class="row"><div class="col-lg-12"><table class="table table-striped table-advance table-hover"><tbody><tr><th>Brand</th><th>Model Name</th><th>Model Number</th><th>Color</th><th>Quantity</th><th>Unit Price</th><th>GRN</th></tr>#foreach( $customItem in $customItems )#set($customLineItem = $customItem.getItemDetail())<tr><td>$customLineItem.getBrand()</td>#if($customLineItem.getModelName())<td>$customLineItem.getModelName()</td>#else<td>-</td>#end#if($customLineItem.getModelNumber())<td>$customLineItem.getModelNumber()</td>#else<td>-</td>#end#if($customLineItem.getColor())<td>$customLineItem.getColor()</td>#else<td>-</td>#end<td>$customLineItem.getQuantity()</td><td>$customLineItem.getUnitPrice()</td>#if($customItem.isScanned())<td class="grnDone"><a class="btn btn-primary" href="javascript:void(0)"><iclass="icon_check_alt2"></i></a></td>#else#if($customItem.getType() == "SERIALIZED")<td class="startGrnSerialized" itemId="$customItem.getItemId()"displayName="$customLineItem.getDisplayName()" invoiceNumber="$invoiceNumber"quantity="$customLineItem.getQuantity()"><a class="btn btn-primary" data-toggle="modal"data-target="#scanModel"data-serial_numbers="$customLineItem.getSerialNumbers()"><iclass="icon_plus_alt2"></i></a></td>#else<td class="startGrnNonSerialized" itemId="$customItem.getItemId()"displayName="$customLineItem.getDisplayName()" invoiceNumber="$invoiceNumber"quantity="$customLineItem.getQuantity()"><a class="btn btn-primary"data-toggle="modal"data-target="#scanNonSerializedModel"><iclass="icon_plus_alt2"></i></a></td>#end#end</tr>#end</tbody></table></div></div><div id="scanModel" class="modal" role="dialog"><div class="modal-dialog modal-lg"><!-- Modal content--><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal">×</button><h4 class="modal-title">Enter GRN Details</h4></div><div class="modal-body" style="max-height: 600px;overflow: scroll"><input type="hidden" class="invoiceNumber"/><input type="hidden" class="itemId"/><h4 class="modelHeaderCustom">Item Type : <span>SERIALIZED</span></h4><h4 class="grnInvoiceNumber modelHeaderCustom">Invoice Number : <span></span></h4><h4 class="grnProductInfo modelHeaderCustom">Product Details : <span></span></h4><h4 class="modal-title">Enter Serial Numbers</h4><div id="grnImeiInformation"></div><hr/><button type="submit" id="grnSubmitSerialized" class="btn btn-primary">Check and Submit!</button></div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">Close</button></div></div></div></div><div id="scanNonSerializedModel" class="modal" role="dialog"><div class="modal-dialog modal-lg"><!-- Modal content--><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal">×</button><h4 class="modal-title">Enter GRN Details</h4></div><div class="modal-body"><input type="hidden" class="invoiceNumber"/><input type="hidden" class="itemId"/><h4 class="modelHeaderCustom">Item Type : <span>NON-SERIALIZED</span></h4><h4 class="grnInvoiceNumber modelHeaderCustom">Invoice Number : <span></span></h4><h4 class="grnProductInfo modelHeaderCustom">Product Details : <span></span></h4><h4 class="modal-title">Enter Quantity</h4><div class="row"><div class="col-sm-3"><div class="input-group"><input type="text" class="quantity form-control"></input></div></div></div><hr/><span class="input-group-btn"><button type="submit" id="grnNonSerializedSubmit" class="btn btn-primary">Submit!</button></span></div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">Close</button></div></div></div></div></div>#end</section><script>$(function () {//debugger;imeisToValidate = [];let imeiInputElem = $("#all-imeis");imeiInputElem.tagsinput({maxTags:`$totalImeisCount`,trimValue: true,allowDuplicates: false,confirmKeys: [13, 44, 188, 32],delimiterRegex: ',',tagClass: function (item) {if (item.valid == null) return 'label label-primary';if (item.valid) {return 'label label-success';} else {return 'label label-danger';}},});const debouncedCallback = debounce(function () {$("#invalid-imeis").html('');let imeisJson = {serialNumbers: imeisToValidate,invoiceNumber: "$invoiceNumber"}doPostAjaxRequestWithJsonHandler(`${context}/purchase/validate-imeis`, JSON.stringify(imeisJson), function (data) {imeiData = data.response;let invalidImeis = [];for (let imeiIndex in imeisToValidate) {let imei = imeisToValidate[imeiIndex];let isValid = imeiData[imeisToValidate[imeiIndex]];if (!isValid) {imeiInputElem.tagsinput('remove', imei);invalidImeis.push(imei);}}$("#invalid-imeis").html(invalidImeis.join(','));invalidImeis = []$("#invalid-imeis-container").show();$("#scanleft").html($("#all-imeis").tagsinput('items').length);imeisToValidate = [];});}, 300);imeiInputElem.on('itemAdded', (event) => {imeisToValidate.push(event.item);debouncedCallback();});imeiInputElem.on('beforeItemAdd', (event) => {if (event.item.indexOf(' ') > 0) {event.cancel = true;let strItem = event.item.replaceAll(' ', '');imeiInputElem.tagsinput('add', strItem);}});});</script>