/
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"> <ul class="breadcrumb"> <li><i class="ace-icon fa fa-home home-icon"></i><a href="#">Home</a></li> <li class="active">Assign Spare To 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-xs-12"> <h3 class="header smaller lighter blue">Assign Spare To Department</h3> <div class="col-md-3"> <label for="datepicker">Assign Date</label> <input type="date" class="form-control" name="assign_date" id="assign_date"> </div> <div class="col-md-3"> <label for="warehouse">Warehouse</label> <select class="form-control mr select2" 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="project">Project</label> <select class="form-control mr select2" id="project" onchange="getProject(this)"> <option value=""> -- Select Project --</option> <?php $__currentLoopData = $projects; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $project): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <option value="<?php echo e($project->id); ?>"><?php echo e($project->name); ?></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> </div> <!-- Spare Parts Section --> <div class="page-content" style="margin-bottom: 30px;"> <div class="row align-items-end mb-3"> <div class="col-md-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-md-2"> <button type="button" class="btn btn-success w-100" onclick="addselectedItem()">Add Spare</button> </div> </div> <!-- Table --> <div class="table-responsive"> <table class="table table-striped table-bordered"> <thead> <tr> <th>Spare Code</th> <th>Description</th> <th>UOM</th> <th>Category</th> <th>Total Available Qty</th> <th>Assign Qty</th> <th>---</th> </tr> </thead> <tbody id="tbody"> </tbody> </table> <div id="loaderAction"> <div class="loader"></div> </div> </div> </div> <!-- Purpose & Department Assignment --> <div class="page-content" style="margin-bottom: 30px;"> <div class="row align-items-end mb-3"> <div class="col-md-4"> <label for="purpose">Purpose</label> <textarea class="form-control" id="purpose" onchange="get_purpose(this)"></textarea> </div> <div class="col-md-3"> <label class="invisible">Assign Now</label> <button type="button" id="assignBtn" onclick="assign_now()" class="btn btn-warning w-100">Assign Now</button> </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 assignedSpare = {}; assignedSpare.items = []; assignedSpare.department_id = ''; assignedSpare.project_id = ''; assignedSpare.assign_date = ''; assignedSpare.warehouse = ''; assignedSpare.transaction_id = Date.now(); localStorage.setItem('assignedSpare', JSON.stringify(assignedSpare)); currentWarehouse = ''; } $(document).ready(function() { if(localStorage.getItem('assignedSpare') != null){ var assignedSpare = JSON.parse(localStorage.getItem('assignedSpare')); currentWarehouse = assignedSpare.warehouse || ''; if(assignedSpare.department_id != ""){ $('#department').val(assignedSpare.department_id); } if(assignedSpare.project_id != ""){ $('#project').val(assignedSpare.project_id); } if(assignedSpare.assign_date != ""){ $('#assign_date').val(assignedSpare.assign_date); } if(assignedSpare.warehouse != ""){ $('#warehouse').val(assignedSpare.warehouse); } showSelectedItems(); } else { init_cart(); } }); function get_ware_house(t){ var warehouse = $(t).val(); if(warehouse != ""){ if(currentWarehouse !== warehouse) { console.log("Warehouse changed from " + currentWarehouse + " to " + warehouse); var assignedSpare = {}; assignedSpare.items = []; assignedSpare.department_id = ''; assignedSpare.assign_date = $('#assign_date').val() || ''; assignedSpare.warehouse = warehouse; assignedSpare.transaction_id = Date.now(); localStorage.setItem('assignedSpare', JSON.stringify(assignedSpare)); currentWarehouse = warehouse; showSelectedItems(); // $('#warehouse').attr('disabled', true); } 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); $('#loaderAction').hide(); }, dataType: 'json' }); } else { swal("Please Select warehouse !", { icon: "error", }); } } function removeItem(id){ var assignedSpare = JSON.parse(localStorage.getItem('assignedSpare')); var items = assignedSpare.items; $(items).each(function (index){ if(items[index].id == id){ items.splice(index,1); return false; } }); assignedSpare.items = items; localStorage.setItem('assignedSpare',JSON.stringify(assignedSpare)); showSelectedItems(); } function addselectedItem(){ var code = $('#spareCode').val(); var warehouse = $('#warehouse').val(); if(code != "" && warehouse != ""){ var assignedSpare = JSON.parse(localStorage.getItem('assignedSpare')); console.log('Assigned Spare is', assignedSpare); if(currentWarehouse !== warehouse) { console.log("Warehouse changed during add operation from " + currentWarehouse + " to " + warehouse); assignedSpare = {}; assignedSpare.items = []; assignedSpare.department_id = ''; assignedSpare.assign_date = $('#assign_date').val() || ''; assignedSpare.warehouse = warehouse; assignedSpare.transaction_id = Date.now(); currentWarehouse = warehouse; } var url = window.location.origin+"/circle-store/get-spare-part-from-circle-stock"; var data = {}; data.code = code; 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){ $('#warehouse').attr('disabled',true); var spare_part = res.spare_part; var is_added = false; $.each(assignedSpare.items,function(key,val){ if(parseInt(val.id) == spare_part.id){ is_added = true; } }); if(is_added == false){ var sparts = spare_part; sparts.qty = spare_part.fresh_qty; assignedSpare.items.push(spare_part); } localStorage.setItem('assignedSpare',JSON.stringify(assignedSpare)); showSelectedItems(); $('#spareCode').val(''); } 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 and Select warehouse !", { icon: "error", }); } } function showSelectedItems(){ var assignedSpare = JSON.parse(localStorage.getItem('assignedSpare')); var html = ''; $.each(assignedSpare.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> <td> <input type="text" name="totalqty" value="`+spare_part.fresh_qty+`" readonly data-id="`+spare_part.id+`" data-original="`+spare_part.fresh_qty+`" class="totalqty-input" style="width: 80px;" /> </td> <td> <input type="text" name="qty" data-id="`+spare_part.id+`" class="qty-input" onkeypress="return onlyCurrency(event)" onblur="check_zero(this)" onkeyup="calculate(this,`+spare_part.id+`)" style="width: 80px;"/> </td> <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 onlyCurrency(event){ if(event.which == 8 || event.which == 0){ return true; } if(event.which < 46 || event.which > 59) { return false; } if(event.which == 46 && $(this).val().indexOf('.') != -1) { return false; } } function calculate(t, id){ var qty = parseInt($(t).val()) || 0; var $totalQtyInput = $('input[name="totalqty"][data-id="'+id+'"]'); var original = parseInt($totalQtyInput.data('original')) || 0; var remaining = original - qty; if (remaining < 0) remaining = 0; $totalQtyInput.val(remaining); addCartValueInKey(id,'qty',qty); } function check_zero(t){ var qty = $(t).val(); if(qty == "" || qty == null){ $(t).val(0); } } function addCartValueInKey(id,key,value){ var assignedSpare = JSON.parse(localStorage.getItem('assignedSpare')); $.each(assignedSpare.items,function(k,val){ if(parseInt(val.id) == id){ assignedSpare.items[k][key] = value; } }); localStorage.setItem('assignedSpare',JSON.stringify(assignedSpare)); } function getDepartment(t){ var dpt_id = $(t).val(); if(dpt_id != ""){ var assignedSpare = JSON.parse(localStorage.getItem('assignedSpare')); assignedSpare.department_id = dpt_id; localStorage.setItem('assignedSpare',JSON.stringify(assignedSpare)); } else { swal('Please Select Department !!', { icon: "error", }); } } function get_assign_date(t){ var assign_date = $(t).val(); if(assign_date != ""){ var assignedSpare = JSON.parse(localStorage.getItem('assignedSpare')); assignedSpare.assign_date = assign_date; localStorage.setItem('assignedSpare',JSON.stringify(assignedSpare)); } else { swal('Please Select Assign Date !!', { icon: "error", }); } } function get_purpose(t){ var purpose = $(t).val(); if(purpose != ""){ var assignedSpare = JSON.parse(localStorage.getItem('assignedSpare')); assignedSpare.purpose = purpose; localStorage.setItem('assignedSpare',JSON.stringify(assignedSpare)); } } function is_valid(){ var assignedSpare = JSON.parse(localStorage.getItem('assignedSpare')); var check = true; $.each(assignedSpare.items,function(key,val){ if(val.qty == 0){ check = false; return false; } }); return check; } function assign_now(){ var dpt_id = $('#department').val(); console.log('My Department Data is',dpt_id); var warehouse = $('#warehouse').val(); console.log('My warehouse Data is',warehouse); var assign_date = $('#assign_date').val(); console.log('My Assign Date is',assign_date); var purpose = $('#purpose').val(); console.log('My Purpose Data is',purpose); var assignedSpare = JSON.parse(localStorage.getItem('assignedSpare')); if(dpt_id != "" && assignedSpare.items.length > 0 && warehouse != "" && assign_date != ""){ if(is_valid()){ swal({ title: "Is Your Spare Parts Verified ?", text: "if you verified your items then press 'Ok',otherwise press 'Cancel' and check again.", icon: "warning", buttons: true, dangerMode: true, }); var url = window.location.origin+"/circle-store/assign-spare-now"; assignedSpare._token = "<?php echo e(csrf_token()); ?>"; assignedSpare.warehouse = warehouse; assignedSpare.assign_date = assign_date; assignedSpare.purpose = purpose; $('#loaderAction').show(); var requestTimeout; var ajaxRequest = $.ajax({ type: "POST", url: url, data: assignedSpare, timeout: 20000, success:function(res){ clearTimeout(requestTimeout); if(res.success == true){ swal(res.msg, { icon: "success", }); init_cart(); showSelectedItems(); $('#warehouse').attr('disabled', false); assignBtn.disabled = false; assignBtn.innerHTML = 'Assign Now'; } else { swal(res.msg, { icon: "error", }); } $('#loaderAction').hide(); }, error:function(xhr, status, error){ console.log(error); $('#loaderAction').hide(); swal("Process has been cancelled due to exceeding the execution time!", { icon: "error" }); assignBtn.disabled = false; assignBtn.innerHTML = 'Assign Now'; }, dataType: 'json' }); requestTimeout = setTimeout(function() { ajaxRequest.abort(); $('#loaderAction').hide(); swal("Process has been cancelled due to exceeding the execution time!", { icon: "error" }); assignBtn.disabled = false; assignBtn.innerHTML = 'Assign Now'; }, 20000); } else { swal('Both fresh and repaired qty of spare can not be zero !!', { icon: "error", }); } } else { swal('Please Select Department, warehouse, assign date and add at least 1 spare !!', { icon: "error", }); } } function getProject(t){ var project_id = $(t).val(); if(project_id != ""){ var assignedSpare = JSON.parse(localStorage.getItem('assignedSpare')); assignedSpare.project_id = project_id; localStorage.setItem('assignedSpare',JSON.stringify(assignedSpare)); } else { swal('Please Select Project !!', { icon: "error", }); } } </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> <script> const assignDateInput = document.getElementById('assign_date'); const today = new Date().toISOString().split('T')[0]; // Set today's date and restrict past & today assignDateInput.value = today; assignDateInput.min = today; assignDateInput.addEventListener('change', function () { if (this.value === today) { swal("You cannot select today's date again!", { icon: "error" }); this.value = ''; } }); </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/spare-assigned-to-department.blade.php ENDPATH**/ ?>