/
home
/
sjslayjy
/
public_html
/
scm
/
resources
/
views
/
dashboard
/
po
/
Upload File
HOME
@extends('dashboard.layouts.app') @section('title','Items Received Notes') @section('style') <style type="text/css"> span.close-now { background: red; width: 25px; height: 25px; display: block; text-align: center; border-radius: 50%; padding: 3px; color: #fff; margin-top: 30px; } </style> @endsection @section('content') <div class="main-content"> <div class="main-content-inner"> <div class="breadcrumbs ace-save-state" id="breadcrumbs"> <ul class="breadcrumb"> <li> <i class="ace-icon fa fa-home home-icon"></i> <a href="#">Home</a> </li> <li class="active">Material Received Notes</li> </ul> </div> <div class="page-content"> <div class="row"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title">Material Received Notes</h3> </div> <div class="panel-body"> <form action="{{ URL('/user/add-item-received-notes') }}" role="form" method="post" id="makeItemReceivedNotes" enctype="multipart/form-data"> {{csrf_field()}} <div class="row grid-margin"> <div class="col-lg-4"> <div class="form-group"> <label>Invoice Number:</label> <input type="text" id="invoice_number" name="invoice_number" onkeyup="get_invoice_number(this)" placeholder="Enter invoice_number " class="form-control"> <span class="label label-danger" id="add_invoice_number_error" style="display: none;"></span> </div> </div> <div class="col-lg-4"> <div class="form-group"> <label>Invoice Date :</label> <input type="date" id="invoice_date" name="invoice_date" onchange="get_invoice_date(this)" placeholder="Enter invoice_date" class="form-control"> <span class="label label-danger" id="add_invoice_date_error" style="display: none;"></span> </div> </div> <div class="col-md-4"> <div class="form-group"> <label for="name">Invoice Copy :</label> <input class="form-control" type="file" name="document" id="document" onchange="getFile(this)"> <span class="label label-danger" id="add_document_error" style="display: none;"></span> </div> </div> </div> <div class="row grid-margin"> <div class="col-md-4"> <div class="form-group"> <label>Gate Entry Date :</label> <input type="date" id="gate_entry_date" name="gate_entry_date" onchange="get_gate_entry_date(this)" placeholder="Enter Gate Entry Date" class="form-control"> <span class="label label-danger" id="add_gate_entry_date_error" style="display: none;"></span> </div> </div> <div class="col-lg-4"> <div class="form-group"> <label>Gate Entry Number :</label> <input type="text" id="gate_entry_number" name="gate_entry_number" onchange="get_gate_entry_number(this)" placeholder="Enter Gate Entry Number" class="form-control"> <span class="label label-danger" id="add_gete_entry_number_error" style="display: none;"></span> </div> </div> <div class="col-lg-4"> <div class="form-group"> <label>Receive Date :</label> <input type="date" id="receive_date" name="receive_date" onchange="get_receive_date(this)" placeholder="Enter receive_date" class="form-control"> <span class="label label-danger" id="add_receive_date_error" style="display: none;"></span> </div> </div> </div> <div class="row grid-margin"> <div class="col-md-4"> <div class="form-group"> <label for="receiver_name">Receiver Name & Receiver ID</label> <input type="text" class="form-control" name="receiver_name" id="receiver_name" onchange="getReceiverName(this)"> <span class="label label-danger" id="add_receiver_name_error" style="display: none;"></span> </div> </div> <div class="col-md-4"> <div class="form-group"> <label for="receiver_phone">Receiver Phone Number</label> <input type="text" class="form-control" name="receiver_phone" id="receiver_phone" onchange="getReceiverPhone(this)"> <span class="label label-danger" id="add_receiver_phone_error" style="display: none;"></span> </div> </div> <div class="col-md-4"> <div class="form-group"> <label for="e_way_bill_number">E-way Bill number</label> <input type="text" class="form-control" name="e_way_bill_number" id="e_way_bill_number" onchange="get_e_way_bill_number(this)"> <span class="label label-danger" id="add_e_way_bill_number_error" style="display: none;"></span> </div> </div> </div> <div class="row grid-margin"> <div class="col-md-4"> <div class="form-group"> <label for="transporter_details">Transporter Details</label> <input type="text" class="form-control" name="transporter_details" id="transporter_details" onchange="get_transporter_details(this)"> <span class="label label-danger" id="add_transporter_details_error" style="display: none;"></span> </div> </div> <div class="col-md-4"> <div class="form-group"> <label for="builty_number">Docket/BUILY Number</label> <input type="text" class="form-control" name="builty_number" id="builty_number" onchange="get_builty_number(this)"> <span class="label label-danger" id="add_builty_number_error" style="display: none;"></span> </div> </div> <div class="col-md-4"> <div class="form-group"> <label for="delivery_location">Delivery Location</label> <input type="text" class="form-control" name="delivery_location" id="delivery_location" onchange="get_delivery_location(this)"> <span class="label label-danger" id="add_delivery_location_error" style="display: none;"></span> </div> </div> </div> <div class="row grid-margin"> <div class="col-lg-4"> <div class="form-group"> <label>Payment Date :</label> <input type="date" id="payment_date" name="payment_date" onchange="get_payment_date(this)" placeholder="Enter payment_date" class="form-control"> <span class="label label-danger" id="add_payment_date_error" style="display:none;"></span> </div> </div> <div class="col-md-4"> <div class="form-group"> <label for="freight_charges">Freight charges</label> <input type="text" class="form-control" name="freight_charges" id="freight_charges" onchange="get_freight_charges(this)"> <span class="label label-danger" id="add_freight_charges_error" style="display: none;"></span> </div> </div> <div class="col-md-4"> <div class="form-group"> <label for="freight_gst">Freight GST</label> <select class="form-control" onchange="get_freight_gst(this)" name="freight_gst"> <option value="">Select GST Slab</option> @foreach($gst_slabs as $key=>$gst_slab) <option value="{{$gst_slab->gst}}">{{$gst_slab->gst}}%</option> @endforeach </select> <span class="label label-danger" id="add_freight_gst_error" style="display: none;"></span> </div> </div> </div> <div class="row grid-margin"> <div class="col-md-4"> <label for="status">Quality Check</label> <select name="status" id="status" class="form-control"> <option value="">--Select Status--</option> <option value="Approved">Approved</option> <option value="rejected">Rejected</option> </select> <span class="label label-danger" id="add_status_error" style="display: none;"></span> </div> </div> <hr> <hr> <div class="row grid-margin"> <div class="col-lg-4"> <h4 class="card-title">Item List</h4> </div> <div class="col-lg-6"> <!-- <input type="text" id="poNumber" name="poNumber" placeholder="Enter PoNumber Code" class="form-control"> --> <select class="e1" name="poNumber" id="poNumber" class="form-control"> <option value="">Search and Enter PoNumber Code</option> @foreach($purchase_orders as $purchase_order) <option value="{{$purchase_order->po_number}}">{{$purchase_order->po_number}}</option> @endforeach </select> </div> <div class="col-lg-2"> <button type="button" onclick="addselectedPoNumber()" class="btn btn-success btn-sm">Add PoNum</button> </div> </div> <div class="clearfix"> <div class="pull-right tableTools-container"> </div> </div> <!-- <div class="table-header"> Results for "Latest Added Items" </div> --> <!-- div.table-responsive --> <!-- div.dataTables_borderWrap --> <div> <table class="table table-striped table-bordered"> <thead> <tr> <th> Po Number</th> <th> Item Code</th> <th> Description</th> <th> Qty</th> <th> Receive Qty</th> <th> Unit Price </th> <th> Amount </th> <th> GST Tax %age </th> <th> GST Amount </th> <th> Total Amount </th> <th> --- </th> </tr> </thead> <tbody id="tbody"> </tbody> </table> </div> <div class="row"> <div class="col-md-6"> </div> <div class="col-md-3"> <div class="form-group"> <label>Grand Total :</label> <input type="text" id="po_amount" name="po_amount" value="" class="form-control" readonly> </div> </div> <div class="col-md-3"> <div class="form-group"> <label>GST Grand Total :</label> <input type="text" id="poGstGrandTotalAmount" value="" class="form-control" readonly> </div> </div> </div> <div class="row"> <div class="col-md-6"> </div> <div class="col-md-3"> <label>Freight Total(Freight charges + Freight GST):</label> <input type="text" id="freightTotal" value="" class="form-control" readonly> </div> <div class="col-md-3"> <label>Grand Total(Freight Total + GST Grand Total):</label> <input type="text" id="grandTotal" value="" class="form-control" readonly> </div> </div> <<div class="row" style="float: right;"> <div class="col-md-6"> <button type="submit" id="generateOrderBtn" class="btn btn-primary float-right">Submit</button> </div> </div> </form> </div> </div> </div> </div><!-- /.page-content --> </div> </div> @endsection @section('script') {{ Html::script("assets/js/jquery.dataTables.min.js")}} {{ Html::script("assets/js/jquery.dataTables.bootstrap.min.js")}} {{ Html::script("assets/js/dataTables.buttons.min.js")}} {{ Html::script("assets/js/buttons.flash.min.js")}} {{ Html::script("assets/js/buttons.html5.min.js")}} {{ Html::script("assets/js/buttons.print.min.js")}} {{ Html::script("assets/js/buttons.colVis.min.js")}} {{ Html::script("assets/js/dataTables.select.min.js")}} {{ Html::script("assets/js/ace-elements.min.js")}} {{ Html::script("assets/js/ace.min.js")}} <script type="text/javascript"> var irnData = {}; irnData.items = []; irnData.invoice_number = ''; irnData.receive_date=''; irnData.freight_charges = ''; irnData.freight_gst = ''; irnData._token = $('meta[name="_token"]').attr('content'); localStorage.setItem('irnData', JSON.stringify(irnData)); function get_invoice_number(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.invoice_number = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); } function get_receive_date(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.receive_date = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); } function get_payment_date(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.payment_date = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); } function get_invoice_date(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.invoice_date = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); } function get_gate_entry_number(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.gate_entry_number = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); } function get_gate_entry_date(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.gate_entry_date = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); } function getReceiverName(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.receiver_name = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); } function getReceiverPhone(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.receiver_phone = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); } function get_e_way_bill_number(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.e_way_bill_number = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); } function get_builty_number(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.builty_number = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); } function get_delivery_location(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.delivery_location = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); } function get_transporter_details(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.transporter_details = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); } function get_freight_charges(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.freight_charges = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); calculate_total(); } function get_freight_gst(t){ var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.freight_gst = $(t).val(); localStorage.setItem('irnData',JSON.stringify(irnData)); calculate_total(); } function addselectedPoNumber(){ var poNumber = $('#poNumber').val(); var html = ""; if(poNumber != ""){ var url = window.location.origin+"/user/get-poNumberItem" var data = {}; data.poNumber = poNumber; $('#loaderAction').show(); $.ajax({ type: "POST", url: url, data: $('#makeItemReceivedNotes').serialize(), success:function(res){ console.log(res.items); if(res.success == true){ var irnData = JSON.parse(localStorage.getItem('irnData')); if( irnData.items.length >0 ){ $.each(res.items,function(k,v){ if(!is_added(v.id)){ v.dispach_qty = 0; irnData.items.push(v); localStorage.setItem('irnData',JSON.stringify(irnData)); show_items(); calculate_total(); } }); }else{ $.each(res.items,function(k,v){ v.dispach_qty = 0; irnData.items.push(v); }); localStorage.setItem('irnData',JSON.stringify(irnData)); show_items(); calculate_total(); } }else{ swal('Error','Entered PO Not Approved or Invalid !', 'error'); } }, error:function(error){ console.log(error); }, dataType: 'json' }); }else{ swal('Error','Please Enter Item Code !', 'error'); } } function is_added(id){ var irnData = JSON.parse(localStorage.getItem('irnData')); var added = false; $.each(irnData.items,function(key,val){ if(val.id == id){ added = true; return false; } }); if(added == true){ return true; }else{ return false; } } function show_items(){ var irnData = JSON.parse(localStorage.getItem('irnData')); var items = irnData.items; var html =""; $.each(items,function(key,val){ let gstAmount=((val.qty*val.rate)*(val.gst/100)).toFixed(2); let totalAmount=((val.qty*val.rate)*(val.gst/100))+(val.qty*val.rate); let rem_qty = val.qty-(parseFloat(val.rqty)+parseFloat(val.stc_qty)) html +=`<tr id="item_`+val.id+`"> <td>`+val.po_number+`</td> <td>`+val.item_code+`</td> <td>`+val.description+`</td> <td>`+(rem_qty)+`</td> <td><input type="text" onkeypress="return onlyCurrency(event)" onblur="check_zero(this)" data-id="id_`+val.po_id+`_`+val.id+`" onkeyup="getvalue(this,`+val.id+`)" value="`+val.dispach_qty+`" style="width:100px;" name="rq" id="rq" /> </td> <td>`+val.rate+`</td> <td id="itemtotal_`+val.id+`">`+(rem_qty*val.rate).toFixed(2)+`</td> <td>`+val.gst+`</td> <td id="gstamount_`+val.id+`">`+gstAmount+`</td> <td id="totalamount_`+val.id+`">`+totalAmount+`</td> <td><button type="button" class="btn btn-sm btn-danger" onclick="deleteItem(`+val.id+`)"><i class="fa fa-trash"></i></button></td> </tr>`; val.total = 0; }); localStorage.setItem('irnData',JSON.stringify(irnData)); $('#tbody').html(html); } function deleteItem(id){ // alert(id); var irnData = JSON.parse(localStorage.getItem('irnData')); var items = irnData.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 $('#item_'+id).remove(); return false; // This will stop the execution of jQuery each loop. } }); irnData.items = items; localStorage.setItem('irnData',JSON.stringify(irnData)); calculate_total(); } 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 calculate_total(){ var irnData = JSON.parse(localStorage.getItem('irnData')); var sub_total = 0; var grand_total = 0; var sub_gst_amount = 0; var grand_gst_amount = 0; var sub_total_amount = 0; var grand_totalAmount = 0; $.each(irnData.items,function(k,val){ let subtotal = parseFloat(val.dispach_qty*val.rate); let subTotalGstAmount =parseFloat((val.dispach_qty*val.rate)*(val.gst/100)); let subTotalAmount =parseFloat((val.dispach_qty*val.rate)+((val.dispach_qty*val.rate)*(val.gst/100))); sub_total = sub_total + subtotal; sub_gst_amount = sub_gst_amount + subTotalGstAmount; sub_total_amount = sub_total_amount + subTotalAmount; }); grand_total = sub_total; grand_gst_amount = sub_gst_amount; grand_totalAmount = sub_total_amount; irnData.grand_total = parseFloat(grand_total.toFixed(2)); irnData.grand_gst_amount = parseFloat(grand_gst_amount.toFixed(2)); irnData.grand_totalAmount = parseFloat(grand_totalAmount.toFixed(2)); $('#po_amount').val(grand_total.toFixed(2)); $('#poGstGrandTotalAmount').val(grand_totalAmount.toFixed(2)); addToKart('grand_total', grand_total); addToKart('grand_totalAmount', grand_totalAmount); var freight_charges = irnData.freight_charges; var freight_gst = irnData.freight_gst; var fgstTotal = ((freight_charges*freight_gst)/100)+parseFloat(freight_charges); $('#freightTotal').val(fgstTotal.toFixed(2)); var final_grand_total = parseFloat(grand_totalAmount)+ parseFloat(fgstTotal); $('#grandTotal').val(final_grand_total.toFixed(2)); addToKart('fgstTotal', fgstTotal); addToKart('final_grand_total', final_grand_total); } function addToKart(key, qty) { var irnData = JSON.parse(localStorage.getItem('irnData')); irnData[key] = qty; localStorage.setItem('irnData',JSON.stringify(irnData)); } function calculate(id){ var irnData = JSON.parse(localStorage.getItem('irnData')); $.each(irnData.items,function(key,val){ if(val.id == id){ let qty = parseFloat(val.dispach_qty); let rate =parseFloat(val.rate); let gst =parseFloat(val.gst); let total = (qty*rate).toFixed(2); let gstAmount=(total*(gst/100)).toFixed(2); let totalAmount=parseFloat(total)+parseFloat(gstAmount); $('#itemtotal_'+id).text(total); $('#gstamount_'+id).text(gstAmount); $('#totalamount_'+id).text(totalAmount); addCartValueInKey(id,'dispach_qty',qty); addCartValueInKey(id,'gstamount',gstAmount); addCartValueInKey(id,'totalamount',totalAmount); } }); calculate_total(); } function check_zero(t){ var qty = $(t).val(); if(qty == "" || qty == null){ $(t).val(0); } } function getvalue(t,id){ var qty = $(t).val(); console.log(qty); if(qty != "" && qty != null){ var qty = parseFloat(qty); addCartValueInKey(id,'dispach_qty',qty); calculate_total(); calculate(id); }else{ addCartValueInKey(id,'dispach_qty',0); calculate(id); } } function getrate(rate,id){ var rate = $(rate).val(); console.log(rate); if(rate != "" && rate != null){ var rate = parseFloat(rate); addCartValueInKey(id,'rate',rate); calculate(id); }else{ addCartValueInKey(id,'rate',0); calculate(id); } } function addCartValueInKey(id,key,value){ var irnData = JSON.parse(localStorage.getItem('irnData')); $.each(irnData.items,function(k,val){ if(parseInt(val.id) == id){ irnData.items[k][key] = value; } }); localStorage.setItem('irnData',JSON.stringify(irnData)); } $('#makeItemReceivedNotes').submit(function(e){ e.preventDefault(); var irnData = JSON.parse(localStorage.getItem('irnData')); irnData.po_amount = $('#po_amount').val(); irnData.po_gst_amount = $('#poGstGrandTotalAmount').val(); localStorage.setItem('irnData', JSON.stringify(irnData)); irnData = JSON.parse(localStorage.getItem('irnData')); // Conditions if(irnData.items.length < 1){ swal('Error','Please Added at least one item !! !!!','error'); } else if(!is_valid()){ swal('Error','Quantity can not be zero And can not be greater than available Quantity. please check!!','error'); } else { var url = $('#makeItemReceivedNotes').attr('action'); var formData = new FormData(this); formData.append('items', JSON.stringify(irnData.items)); // Disable button and show loader var submitButton = $('#generateOrderBtn'); submitButton.prop('disabled', true); submitButton.html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> Submitting...'); $.ajax({ url: url, method: 'POST', data: formData, contentType: false, cache: false, processData: false, dataType: 'json', success: function(data){ if(data.success == true){ swal({ title: "Success", text: "Item Received Note Added Successfully !\nIRN Number is : " + data.irn_number, type: "success" }, function(){ location.reload(); }); } if (data.flag == false) { $.each(data.error, function(key, val) { showError('add_' + key + '_error', val); }); } // Re-enable button and remove loader submitButton.prop('disabled', false); submitButton.html('Submit'); }, error: function(error){ console.log(data); // Re-enable button and remove loader submitButton.prop('disabled', false); submitButton.html('Submit'); } }); } return false; }); function is_valid(){ var irnData = JSON.parse(localStorage.getItem('irnData')); var check = true; $.each(irnData.items,function(key,val){ var abl_qty=val.qty-(parseFloat(val.rqty)+parseFloat(val.stc_qty)); if(abl_qty < val.dispach_qty || val.dispach_qty == 0 ){ check = false; $('#input_'+val.id).css({'border:border': '1px solid #D5D5D5','border-color':'#bf0606'}); return false; }else{ $('#input_'+val.id).css({'border:border': '1px solid #D5D5D5','border-color':'#b5b5b5'}); } }); if(check == false){ return false }else{ return true; } } function showError(id,error){ if(typeof(error) === "undefined"){ $('#'+id).hide(); }else{ $('#'+id).show(); // $('#'+id).text(error); $('#'+id).removeAttr('style').text(error); } } </script> <script> $(document).ready(function() { $(".e1").select2(); }); </script> @endsection