/
home
/
sjslayjy
/
public_html
/
tabson
/
storage
/
framework
/
views
/
Upload File
HOME
<?php $__env->startSection('title','Assign Spare To Department'); ?> <?php $__env->startPush('styles'); ?> <?php $__env->stopPush(); ?> <?php $__env->startSection('content'); ?> <div class="main-content"> <div class="main-content-inner"> <!-- Breadcrumbs --> <div class="breadcrumbs ace-save-state mb-3" id="breadcrumbs" style="margin-bottom: 30px;"> <ul class="breadcrumb"> <li><i class="ace-icon fa fa-home home-icon"></i><a href="#">Home</a></li> <li class="active">Receive Spare From Department</li> </ul> </div> <!-- Assign Section --> <div class="page-content" style="margin-bottom: 30px;"> <div class="row align-items-end mb-3"> <div class="col-md-6"> <h3 class="card-title">Receive Spare From Department</h3> </div> <div class="col-md-3"> <label for="warehouse">Warehouse</label> <select class="form-control mr" id="warehouse" onchange="get_ware_house(this)"> <option value=""> -- Select Warehouse --</option> <?php $__currentLoopData = $warehouses; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $warehouse): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <option value="<?php echo e($warehouse); ?>"><?php echo e($warehouse); ?></option> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> </select> </div> <div class="col-md-3"> <label for="department">Department</label> <select class="form-control" onchange="getDepartment(this)" id="department"> <option value="">-- Select Department --</option> <?php $__currentLoopData = $departments; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $department): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <option value="<?php echo e($department->department_id); ?>"><?php echo e($department->department_id); ?> - <?php echo e($department->name); ?></option> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> </select> </div> </div> </div> <!-- Spare Parts Section --> <div class="col-lg-12 grid-margin page-content" id="itemForm"> <div class="card"> <div class="card-body"> <div class="row grid-margin"> <div class="col-lg-4"> <h4 class="card-title">Spare Parts List</h4> </div> <div class="col-md-6"> <select class="form-control mr select2" id="spareCode" placeholder="Enter Spare Code"> <option value="">Search and Enter Item Code</option> <?php $__currentLoopData = $items; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $item): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <option value="<?php echo e($item->code); ?>"><?php echo e($item->code); ?>(<?php echo e($item->description); ?>)</option> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> </select> </div> <div class="col-lg-2"> <button type="button" class="btn btn-success btn-fw" onclick="addselectedItem()">Add Spare</button> </div> </div> <div class="table-responsive"> <table class="table table-striped table-bordered"> <thead> <tr> <th> Spare Code</th> <th> Description</th> <th> UOM</th> <th> Type</th> <th> Fresh Qty</th> <th> Scrap Qty</th> <th> --- </th> </tr> </thead> <tbody id="tbody"> </tbody> </table> <div id="loaderAction"> <div class="loader"></div> </div> </div> </div> </div> </div> <!-- Purpose & Department Assignment --> <div class="col-lg-12 grid-margin page-content"> <div class="card"> <div class="card-body"> <div class="row"> <div class="col-lg-9"></div> <div class="col-lg-3"><button type="button" id="materialBtn" onclick="assign_now()" class="btn btn-warning btn-fw">Received Now</button></div> </div> </div> </div> </div> </div> </div> <?php $__env->startSection('script'); ?> <?php echo e(Html::script("assets/js/jquery.dataTables.min.js")); ?> <?php echo e(Html::script("assets/js/jquery.dataTables.bootstrap.min.js")); ?> <?php echo e(Html::script("assets/js/dataTables.buttons.min.js")); ?> <?php echo e(Html::script("assets/js/buttons.flash.min.js")); ?> <?php echo e(Html::script("assets/js/buttons.html5.min.js")); ?> <?php echo e(Html::script("assets/js/buttons.print.min.js")); ?> <?php echo e(Html::script("assets/js/buttons.colVis.min.js")); ?> <?php echo e(Html::script("assets/js/dataTables.select.min.js")); ?> <?php echo e(Html::script("assets/js/ace-elements.min.js")); ?> <?php echo e(Html::script("assets/js/ace.min.js")); ?> <script type="text/javascript"> jQuery(function($) { var myTable = $('.myTable').DataTable({ bAutoWidth: false, "aaSorting": [], }); $.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap'; new $.fn.dataTable.Buttons(myTable, { buttons: [{ "extend": "colvis", "text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>Show/hide columns</span>", "className": "btn btn-white btn-primary btn-bold", columns: ':not(:first):not(:last)' }, { "extend": "copy", "text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>Copy to clipboard</span>", "className": "btn btn-white btn-primary btn-bold" }, { "extend": "csv", "text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>Export to CSV</span>", "className": "btn btn-white btn-primary btn-bold" }, { "extend": "excel", "text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>Export to Excel</span>", "className": "btn btn-white btn-primary btn-bold" }, { "extend": "pdf", "text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>Export to PDF</span>", "className": "btn btn-white btn-primary btn-bold" }, { "extend": "print", "text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>Print</span>", "className": "btn btn-white btn-primary btn-bold", autoPrint: false, message: 'This print was produced using the Print button for DataTables' } ] }); myTable.buttons().container().appendTo($('.tableTools-container')); var defaultCopyAction = myTable.button(1).action(); myTable.button(1).action(function(e, dt, button, config) { defaultCopyAction(e, dt, button, config); $('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white'); }); var defaultColvisAction = myTable.button(0).action(); myTable.button(0).action(function(e, dt, button, config) { defaultColvisAction(e, dt, button, config); if ($('.dt-button-collection > .dropdown-menu').length == 0) { $('.dt-button-collection') .wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />') .find('a').attr('href', '#').wrap("<li />") } $('.dt-button-collection').appendTo('.tableTools-container .dt-buttons') }); }); function get_spare_of_warehouse(t) { var warehouse = $(t).val(); console.log('Warehouse is', warehouse); var url = window.location.origin+'/user/store-stock/?circle='+warehouse; window.location.replace(url); } </script> <script> $( function() { $( "#datepicker" ).datepicker({ minDate: -5, maxDate: "+7D" }); }); </script> <script type="text/javascript"> // Global variable to track current warehouse var currentWarehouse = ''; function init_cart(){ var receivedSpare = {}; receivedSpare.items = []; receivedSpare.department_id = ''; receivedSpare.warehouse = ''; receivedSpare.transaction_id = Date.now(); // Add transaction ID localStorage.setItem('receivedSpare', JSON.stringify(receivedSpare)); currentWarehouse = ''; } if(localStorage.getItem('receivedSpare') != null){ $(document).ready(function() { if(localStorage.getItem('receivedSpare') != null){ var receivedSpare = JSON.parse(localStorage.getItem('receivedSpare')); currentWarehouse = receivedSpare.warehouse || ''; if(receivedSpare.department_id != ""){ $('#department').val(receivedSpare.department_id); $('#itemForm').show('fadeIn'); } if(receivedSpare.warehouse != ""){ $('#warehouse').val(receivedSpare.warehouse); } showSelectedItems(); } else { init_cart(); } }); }else{ init_cart(); } function get_ware_house(t){ var warehouse = $(t).val(); if(warehouse !=""){ var url = window.location.origin+"/circle-store/get-department-of-warehouse" var data = {}; data._token = "<?php echo e(csrf_token()); ?>"; data.warehouse = warehouse; $('#loaderAction').show(); $.ajax({ type: "POST", url: url, data: data, success:function(res){ if(res.success == true){ var html = '<option value=""> -- Select Department --</option>'; $.each(res.departments,function(key,val){ html +=`<option value="`+val.department_id+`">`+val.department_id+` - `+val.name+`</option>`; }); $('#department').html(html); }else{ swal(res.msg, { icon: "error", }); } $('#loaderAction').hide(); }, error:function(error){ console.log(error); }, dataType: 'json' }); }else{ swal("Please Select warehouse !", { icon: "error", }); } } function removeItem(id){ var receivedSpare = JSON.parse(localStorage.getItem('receivedSpare')); var items = receivedSpare.items; $(items).each(function (index){ if(items[index].id == id){ items.splice(index,1); // This will remove the object that first name equals to Test1 return false; // This will stop the execution of jQuery each loop. } }); receivedSpare.items = items; localStorage.setItem('receivedSpare',JSON.stringify(receivedSpare)); showSelectedItems(); } function addselectedItem(){ var code = $('#spareCode').val(); var department_id = $('#department').val(); var warehouse = $('#warehouse').val(); if(code != "" && department_id !="" && warehouse !=""){ var receivedSpare = JSON.parse(localStorage.getItem('receivedSpare')); // Check if warehouse changed or new transaction needed if(currentWarehouse !== warehouse) { console.log("Warehouse changed during add operation from " + currentWarehouse + " to " + warehouse); // Reset the cart with new transaction receivedSpare = {}; receivedSpare.items = []; receivedSpare.department_id = department_id; receivedSpare.warehouse = warehouse; receivedSpare.transaction_id = Date.now(); currentWarehouse = warehouse; } var url = window.location.origin+"/circle-store/get-spare-part-from-department-stock" var data = {}; data.code = code; data.department_id = department_id; data.warehouse = warehouse; data._token = "<?php echo e(csrf_token()); ?>"; $('#loaderAction').show(); $.ajax({ type: "POST", url: url, data: data, success:function(res){ if(res.success == true){ $('#warehouse').attr('disabled', true); // Disable warehouse after first item var spare_part = res.spare_part; var is_added = false; $.each(receivedSpare.items,function(key,val){ if(parseInt(val.id) == spare_part.id){ is_added = true; } }); if(is_added == false){ var sparts = spare_part; var dpt_stock = res.department_spare_info; sparts.fqty = dpt_stock.fresh_qty; sparts.sqty = dpt_stock.scrap_qty; if(sparts.fqty == 0 && sparts.sqty == 0){ swal('This spare is not in Department stock.', { icon: "warning", }); } else { receivedSpare.items.push(sparts); } } localStorage.setItem('receivedSpare', JSON.stringify(receivedSpare)); showSelectedItems(); $('#spareCode').val(''); // Clear input after adding } else { swal(res.msg, { icon: "error", }); } $('#loaderAction').hide(); }, error:function(error){ console.log(error); $('#loaderAction').hide(); }, dataType: 'json' }); } else { swal("Please Enter Spare Code in Textbox !", { icon: "error", }); } } function showSelectedItems(){ var receivedSpare = JSON.parse(localStorage.getItem('receivedSpare')); var html = ''; var n = 0; $.each(receivedSpare.items,function(key,spare_part){ html +=`<tr class="row_`+spare_part.id+`"> <td class="font-weight-medium">`+spare_part.code+`</td> <td>`+spare_part.description+`</td> <td>`+spare_part.uom_name+`</td> <td>`+spare_part.category_name+`</td>`; if(spare_part.fqty == 0){ html +=`<td> <input type="text" name="fqty_remaining" value="`+spare_part.fqty+`" readonly data-id="`+spare_part.id+`" data-original="`+spare_part.fqty+`" class="fqty-remaining" style="width: 80px; margin-left:5px;" /> <input type="text" name="fqty" onkeypress="return onlyCurrency(event)" onkeyup="fcalculate(this,`+spare_part.id+`)" style="width: 80px;" value="`+spare_part.fqty+`" disabled/> </td>`; }else{ html +=`<td> <input type="text" name="fqty_remaining" value="`+spare_part.fqty+`" readonly data-id="`+spare_part.id+`" data-original="`+spare_part.fqty+`" class="fqty-remaining" style="width: 80px; margin-left:5px;" /> <input type="text" onkeypress="return onlyCurrency(event)" name="fqty" onkeyup="fcalculate(this,`+spare_part.id+`)" onblur="check_zero(this)" style="width: 80px;" /> </td>`; } if(spare_part.sqty == 0){ html +=`<td><input type="text" onkeypress="return onlyNumber(event)" name="sqty" onkeyup="scalculate(this,`+spare_part.id+`)" style="width: 80px;" value="`+spare_part.sqty+`" disabled/></td>`; }else{ html +=`<td><input type="text" onkeypress="return onlyNumber(event)" name="sqty" onkeyup="scalculate(this,`+spare_part.id+`)" onblur="check_zero(this)" style="width: 80px;" value="`+spare_part.sqty+`"/></td>`; } html +=`<td><a href="#" onclick="removeItem(`+spare_part.id+`)"><i class="mdi mdi-delete-forever"></i></a></td> </tr>`; }); $('#tbody').html(html); } function onlyNumber(evt){ var charCode = (evt.which) ? evt.which : event.keyCode if (charCode > 31 && (charCode < 48 || charCode > 57)){ return false; } return true; } function check_zero(t){ var qty = $(t).val(); if(qty == "" || qty == null){ $(t).val(0); } } function fcalculate(t,id){ var fqty = parseFloat($(t).val()) || 0; var $remaining = $('input[name="fqty_remaining"][data-id="'+id+'"]'); var original = parseFloat($remaining.data('original')) || 0; var remaining = original - fqty; if (remaining < 0) remaining = 0; $remaining.val(remaining); addCartValueInKey(id,'fqty',fqty); } function scalculate(t,id){ var sqty = parseFloat($(t).val()) || 0; var $remaining = $('input[name="sqty_remaining"][data-id="'+id+'"]'); var original = parseFloat($remaining.data('original')) || 0; var remaining = original - sqty; if (remaining < 0) remaining = 0; $remaining.val(remaining); addCartValueInKey(id,'sqty',sqty); } function onlyCurrency(event){ if(event.which == 8 || event.which == 0){ return true; } if(event.which < 46 || event.which > 59) { return false; //event.preventDefault(); } // prevent if not number/dot if(event.which == 46 && $(this).val().indexOf('.') != -1) { return false; //event.preventDefault(); } // preven } function addCartValueInKey(id,key,value){ var receivedSpare = JSON.parse(localStorage.getItem('receivedSpare')); $.each(receivedSpare.items,function(k,val){ if(parseInt(val.id) == id){ receivedSpare.items[k][key] = value; } }); localStorage.setItem('receivedSpare',JSON.stringify(receivedSpare)); } function getDepartment(t){ var dpt_id = $(t).val(); if(dpt_id !=""){ var receivedSpare = JSON.parse(localStorage.getItem('receivedSpare')); receivedSpare.department_id = dpt_id; localStorage.setItem('receivedSpare',JSON.stringify(receivedSpare)); $('#itemForm').show('fadeIn'); }else{ $('#itemForm').hide('fadeOut'); swal('Please Select Department !!', { icon: "error", }); } } function is_valid(){ var receivedSpare = JSON.parse(localStorage.getItem('receivedSpare')); var check = true; $.each(receivedSpare.items,function(key,val){ if(val.fqty == 0 && val.sqty == 0 ){ check = false; return false; } }); if(check == false){ return false }else{ return true; } } function assign_now(){ var dpt_id = $('#department').val(); var warehouse = $('#warehouse').val(); var receivedSpare = JSON.parse(localStorage.getItem('receivedSpare')); if(dpt_id =="" || warehouse == ""){ swal('Please Select Department and Select warehouse!!', { icon: "error", }); }else if(!is_valid()){ swal('Zero Qty Not allow in items list !!', { icon: "error", }); }else if(receivedSpare.items.length < 1){ swal('Please Select add atleast 1 items !!', { icon: "error", }); }else{ var url = window.location.origin+"/circle-store/received-spare-now" receivedSpare._token = "<?php echo e(csrf_token()); ?>"; receivedSpare.warehouse = warehouse; console.log(receivedSpare); $('#loaderAction').show(); var requestTimeout; var ajaxRequest = $.ajax({ type: "POST", url: url, data: receivedSpare, timeout: 20000, // Set the timeout to 2 seconds (5000 milliseconds) success:function(res){ clearTimeout(requestTimeout); console.log(res); if(res.success == true){ if(res.added_count > 0){ swal(res.msg, { icon: "success", }); init_cart(); showSelectedItems(); // Enable the button for re-submit materialBtn.disabled = false; // Reset the button text materialBtn.innerHTML = 'Received Now'; }else{ $.each(res.added_spare_code,function(key,val){ removeItem(val); }); } }else{ swal(res.msg, { icon: "error", }); } $('#loaderAction').hide(); materialBtn.disabled = res.success !== true; // placeAmcButton.innerHTML = 'AMC Request Placed !';; }, error:function(xhr, status, error){ var requestTimeout = setTimeout(function () { $('#loaderAction').hide(); swal("Process has been cancelled due to exceeding the execution time!", { icon: "error" }); ajaxRequest.abort(); }, 20000); console.log(error); materialBtn.disabled = true; materialBtn.innerHTML = '<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> <span class="animated-text">Please wait, request is under process...</span>'; // Clear the timeout on error clearTimeout(requestTimeout); }, dataType: 'json' }); // Set the timeout for the request requestTimeout = setTimeout(function() { $('#loaderAction').hide(); swal("Process has been cancelled due to exceeding the execution time!", { icon: "error" }); ajaxRequest.abort(); // Enable the button for re-submit materialBtn.disabled = false; // Reset the button text materialBtn.innerHTML = 'Received Now'; }, 20000); } } $(document).ready(function(){ }); </script> <script> $(document).ready(function() { $('.select2').select2({ placeholder: 'Search Warehouses', allowClear: false, language: { noResults: function() { return '<span class="no-results">No results found!</span>'; } }, escapeMarkup: function (markup) { return markup; } }); }); </script> <?php $__env->stopSection(); ?> <?php $__env->stopSection(); ?> <?php echo $__env->make('dashboard.layouts.app', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /home/sjslayjy/public_html/tabson/resources/views/dashboard/stock/material-receiving.blade.php ENDPATH**/ ?>