/
home
/
sjslayjy
/
public_html
/
scm
/
resources
/
views
/
dashboard
/
po
/
Upload File
HOME
@extends('dashboard.layouts.app') @section('title','All PO') @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">Purchase Orders</li> </ul> </div> <div class="page-content"> <div class="row"> <div class="col-xs-12"> <h3 class="header smaller lighter blue">Purchase Order</h3> <div class="clearfix"> <div class="pull-right tableTools-container"> </div> </div> <div class="table-header" style="height:50px;"> List Of Latest Generated Orders </div> <!-- div.table-responsive --> <!-- div.dataTables_borderWrap --> <div> <div style="display: flex; justify-content: space-between; align-items: center; padding: 0 10px; background-color:#EFF3F8"> <form method="GET" action="{{ url()->current() }}" id="recordsPerPageForm" style="margin-right: auto;"> <label for="perPage">Display</label> <select name="per_page" id="perPage" onchange="document.getElementById('recordsPerPageForm').submit();"> <option value="10" {{ request('per_page') == 10 ? 'selected' : '' }}>10</option> <option value="50" {{ request('per_page') == 50 ? 'selected' : '' }}>50</option> <option value="100" {{ request('per_page') == 100 ? 'selected' : '' }}>100</option> </select> records </form> <label for="perPage">Search</label> <input type="text" id="search-input-po" class="pr_search" placeholder="Searching..." style="height:29px; width:150px; margin-left: 20px;"> </div> <table id="dynamic-table" class="table table-striped table-bordered table-hover" style="margin-bottom: 0px;"> <thead> <tr> <th>S.No </th> <th>PO Date </th> <th>PO Number </th> <th>PR Number </th> <th>Vendor Name </th> <th>GRN Status </th> <th>Current Status </th> <th>PO Status </th> <th>Status Action </th> <th>Doc1 </th> <th>Doc2 </th> <th>Doc3 </th> <th>Action </th> </tr> </thead> <tbody> @php $startingNumber = ($purchase_orders->currentPage() - 1) * $purchase_orders->perPage() + 1; @endphp @foreach($purchase_orders as $po) @php $arr = []; if (substr_count(getPRIdByPONumber($po->id), ",") > 0) { $arr = explode(',', getPRIdByPONumber($po->id)); } else { $arr[] = getPRIdByPONumber($po->id); } @endphp <tr id="tr_{{$po->id}}"> <td>{{ $startingNumber++ }}</td> <td>{{date("d-m-Y", strtotime($po->created_at))}}</td> <td>{{$po->po_number}}</td> <td> @foreach($arr as $prr) <p>{{$prr}}</p><br> @endforeach </td> <td>{{getModelById('Vendor', $po->vendor_id)->vendor_name}}</td> <td> @if(getMRNStatus($po->id) == 1) <span class="badge badge-success" title="Done">Done</span> @elseif(getMRNStatus($po->id) == 2) <span class="badge badge-warning" title="Partially Done">Partially Done</span> @elseif(getMRNStatus($po->id) == 3) <span class="badge badge-danger" title="Not Done">Not Done</span> @endif </td> <td> @if ($po->status == 'requested') <span class="badge badge-info" title="PO Current Status">{{ $po->status }}</span> @elseif($po->status == 'pending_approval') <span class="badge badge-success" title="PO Current Status">{{$po->status}}</span> @elseif($po->status == 'Approved') <span class="badge badge-success" title="PO Current Status">{{$po->status}}</span> @elseif($po->status == 'rejected') <span class="badge badge-danger" title="PO Current Status">{{$po->status}}</span> @elseif ($po->status == 'ReOpened') <span class="badge badge-info" title="PO Current Status">{{ $po->status }}</span> @elseif ($po->status == 'Amendment') <span class="badge badge-info" title="PO Current Status">{{ $po->status }}</span> @endif <td> <!-- <span class="badge badge-warning" title="PO Status"> {{getPOCurrentStatus($po->id)}} </span> --> @if($po->status == 'rejected') <span class="badge badge-danger" title="PO Current">rejected</span> @else <span class="badge badge-warning" title="PO Current Status"> {{getPOCurrentStatus($po->id)}} </span> @endif </td> <td> <!-- <button class="btn btn-xs btn-primary" data-toggle="tooltip" title="Set Status" onclick="setStatusModal({{$po->id}})" > {{-- <i class="ace-icon fa fa-trash-o bigger-120"></i> --}} Update Status </button> --> @if ($role_id == '1') <button class="btn btn-xs btn-primary" data-toggle="tooltip" title="Set Status" onclick="setStatusModal({{$po->id}})" > {{-- <i class="ace-icon fa fa-trash-o bigger-120"></i> --}} Update Status </button> @endif @if ($role_id == '4' && $po->status == 'requested') <button class="btn btn-xs btn-primary" data-toggle="tooltip" title="Set Status" onclick="setStatusModal({{$po->id}})" > {{-- <i class="ace-icon fa fa-trash-o bigger-120"></i> --}} Update Status </button> @endif @if ($role_id == '5' && checkMailConditionPo($po->po_created_by) && $po->status!='Approved' && $email !== 'rituraj.shukla@aerialtelecom.in') <button class="btn btn-xs btn-primary" data-toggle="tooltip" title="Set Status" onclick="setStatusModal({{$po->id}})" > {{-- <i class="ace-icon fa fa-trash-o bigger-120"></i> --}} Update Status </button> @endif </td> <td style="text-align:center; padding-top:50px;"> @if ($po->document1 == true) <a href="{{URL::to($po->document1)}}" target="_blank" title="Download PDF" class=""><i class="fa fa-file-pdf-o fa-lg" aria-hidden="true"></i></a> @else($po->document1 == '') <i class="fa fa-file-excel-o" aria-hidden="true"></i> <!-- <p style="color: red;">Document Not Avilable</p> --> @endif </td> <td style="text-align:center; padding-top:50px;"> @if ($po->document2 == true) <a href="{{URL::to($po->document2)}}" target="_blank" title="Download PDF" class=""><i class="fa fa-file-pdf-o fa-lg" aria-hidden="true"></i></a> @else($po->document2 == '') <i class="fa fa-file-excel-o" aria-hidden="true"></i> <!-- <p style="color: red;">Document Not Avilable</p> --> @endif </td> <td style="text-align:center; padding-top:50px;"> @if ($po->document3 == true) <a href="{{URL::to($po->document3)}}" target="_blank" title="Download PDF" class=""><i class="fa fa-file-pdf-o fa-lg" aria-hidden="true"></i></a> @else($po->document3 == '') <i class="fa fa-file-excel-o" aria-hidden="true"></i> <!-- <p style="color: red;">Document Not Avilable</p> --> @endif </td> <td> <div class="hidden-sm hidden-xs btn-group"> <a class="btn btn-xs btn-warning" href="{{url('/user/po-view/'.$po->id)}}" title="View PO" onclick="viewPr({{$po->id}})" > {{-- <i class="ace-icon fa fa-trash-o bigger-120"></i> --}} <i class="ace-icon fa fa-eye bigger-120"></i> </a> @if($po->status == 'ReOpened' || $po->status == 'Amendment') @if($po->po_created_by == $id || $role_id == '1') <a href="{{url('/user/edit-purchase-order/'.$po->id)}}" class="btn btn-xs btn-info" title="Edit PO" onclick="getEdit({{$po->id}})"> <i class="ace-icon fa fa-pencil bigger-120"></i> </a> @endif @else @if ($role_id == '1') <a href="{{url('/user/edit-purchase-order/'.$po->id)}}" class="btn btn-xs btn-info" title="Edit PO" onclick="getEdit({{$po->id}})" > <i class="ace-icon fa fa-pencil bigger-120"></i> </a> @endif @if ($role_id == '7' && $po->status == 'requested' && $po->status != 'rejected') <a href="{{url('/user/edit-purchase-order/'.$po->id)}}" class="btn btn-xs btn-info" title="Edit PO" onclick="getEdit({{$po->id}})" > <i class="ace-icon fa fa-pencil bigger-120"></i> </a> @endif @if ($role_id == '4' && $po->status == 'requested' && $po->status != 'rejected') <a href="{{url('/user/edit-purchase-order/'.$po->id)}}" class="btn btn-xs btn-info" title="Edit PO" onclick="getEdit({{$po->id}})" > <i class="ace-icon fa fa-pencil bigger-120"></i> </a> @endif @if ($role_id == '5' && $po->status == 'pending_approval' && $po->status != 'rejected' && $email !== 'rituraj.shukla@aerialtelecom.in') <a href="{{url('/user/edit-purchase-order/'.$po->id)}}" class="btn btn-xs btn-info" title="Edit PO" onclick="getEdit({{$po->id}})" > <i class="ace-icon fa fa-pencil bigger-120"></i> </a> @endif @if ($role_id == '5' && $po->status != 'Approved' && $po->status != 'rejected' && $email !== 'rituraj.shukla@aerialtelecom.in') <a href="{{url('/user/edit-purchase-order/'.$po->id)}}" class="btn btn-xs btn-info" title="Edit PO" onclick="getEdit({{$po->id}})" > <i class="ace-icon fa fa-pencil bigger-120"></i> </a> @endif @endif <!-- <button class="btn btn-xs btn-danger" onclick="deleteLocation({{$po->id}})" disabled> <i class="ace-icon fa fa-trash-o bigger-120"></i> </button> --> <a class="btn btn-xs btn-warning" href="{{url('/user/po-print/'.$po->id)}}" title="Print PO" onclick="printPr({{$po->id}})" target="_blank"> <i class="ace-icon fa fa-print bigger-120"></i></a> <button class="btn btn-xs btn-primary" data-toggle="tooltip" title="PO History" onclick="viewHistoryModal({{$po->id}})" > {{-- <i class="ace-icon fa fa-trash-o bigger-120"></i> --}} <i class="ace-icon fa fa-history bigger-120"></i></a> </button> </div> </td> </tr> @endforeach </tbody> </table> <!-- Pagination links with appending the per_page value --> {{ $purchase_orders->appends(['per_page' => request('per_page')])->links('pagination') }} </div> </div> </div> </div><!-- /.page-content --> </div> </div><!-- /.main-content --> <div class="modal fade" id="editItemModal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title">Update Item</h4> </div> <div class="modal-body" id="EditBodyItem"> </div> </div> </div> </div> <div class="modal fade" id="historyModal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title">History</h4> </div> <div class="modal-body" id="genrateHistory"> </div> </div> </div> </div> @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")}} {{ Html::script("js/sweetalert2.all.js")}} <script type="text/javascript"> jQuery(function($) { // Initiate DataTables plugin for PO, same as PR var myTable = $('#dynamic-table').DataTable({ bAutoWidth: false, paging: false, // Custom pagination in use searching: false, // Custom search in use "aaSorting": [], // Disable initial sorting dom: 'Bfrtip', // Enable button functionalities info: false, // Disable the "Showing 1 to X of Y entries" text 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' } ] }); // Append buttons to the container myTable.buttons().container().appendTo($('.tableTools-container')); // Style the copy message box 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'); }); // Customize the column visibility dropdown 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 setStatusModal(id){ if(id == ""){ swal('Error','PO id is missing','warning'); }else{ $.ajax({ url: "/user/set-status/"+id, type: 'GET', success:function(data){ // console.log(data); $('#EditBodyItem').html(data); $('#editItemModal').modal('toggle'); // OnLoad(); } }); } } function breakPO(pr, id) { $('#pr_'+id).html(pr.replace(',', '<br>')); console.log(pr.replace(',', '<br>')); console.log(id); } function viewPr(id){ if(id == ""){ swal('Error','PR id is missing','warning'); }else{ $('#pr_details_view').modal('toggle'); // $.ajax({ // url: "/user/set-status/"+id, // type: 'GET', // success:function(data){ // // console.log(data); // $('#EditBodyItem').html(data); // $('#editItemModal').modal('toggle'); // // OnLoad(); // } // }); } } function setStaus(id) { // alert(id); $id = $('#id_'+id).val(); $status = $('#status_'+id).val(); if ($status != '') { $.ajax({ type: "POST", url: "/user/set-purchase-request-status", data: { "status" : $status, "id" : $id, "_token": "{{ csrf_token() }}", }, success: function (response) { swal('Success','Purchase Request Status Updated Successfully !','success'); window.location.reload(); }, error: function (error) { swal('Warning','Oops something went wrong !', 'warning'); } }); } else { swal('Error','Please Select Status First !', 'error'); } } function updateStatus(){ $status = $('#status').val(); $remark = $('#remark').val(); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') } }); $.ajax({ url: $('#editStatusForm').attr('action'), method: 'POST', data: $('#editStatusForm').serialize(), success: function(data){ // console.log(data); if(!data.flag){ showError('edit_status_error',data.errors.status); }else{ $('#editItemModal').modal('hide'); swal({ title: "Success!", text: data.message, type: "success" }, function() { window.location.reload(); }); } } }); } function showError(id,error){ if(typeof(error) === "undefined"){ $('#'+id).hide(); }else{ $('#'+id).show(); $('#'+id).text(error); } } function viewHistoryModal(id){ if(id == ""){ swal('Error','PR id is missing','warning'); }else{ $.ajax({ url: "/user/view-po-history/"+id, type: 'GET', success:function(data){ // console.log(data); $('#genrateHistory').html(data); $('#historyModal').modal('toggle'); // OnLoad(); } }); } } </script> <script> $(document).ready(function() { $('#search-input-po').on('keyup', function() { var query = $(this).val().trim(); if (query === '') { window.location.href = window.location.href; } else { $.ajax({ url: '{{ route("searchPo") }}', type: 'GET', data: {'query': query}, success: function(data) { if (data.trim() !== '') { $('tbody').html(data); } else { $('tbody').html('<tr><td colspan="12" class="text-center">No Matching Record Found!</td></tr>'); } }, error: function() { $('tbody').html('<tr><td colspan="12" class="text-center">Error while fetching data!</td></tr>'); } }); } }); }); </script> <script> $(document).ready(function() { $('th').on('click', function() { var table = $(this).parents('table').eq(0); var rows = table.find('tbody > tr').get(); var index = $(this).index(); var isAsc = $(this).hasClass('asc'); // Remove sorting classes from all headers table.find('th').removeClass('asc').removeClass('desc'); table.find('th').find('.fa').removeClass('fa-sort-up fa-sort-down').addClass('fa-sort'); // Toggle sorting direction $(this).toggleClass('asc', !isAsc); $(this).toggleClass('desc', isAsc); // Update the icon based on the sort direction $(this).find('.fa').toggleClass('fa-sort-up', !isAsc); $(this).find('.fa').toggleClass('fa-sort-down', isAsc); rows.sort(function(a, b) { var keyA = $(a).children('td').eq(index).text().toUpperCase(); var keyB = $(b).children('td').eq(index).text().toUpperCase(); if (isAsc) { return (keyA < keyB) ? -1 : (keyA > keyB) ? 1 : 0; } else { return (keyA > keyB) ? -1 : (keyA < keyB) ? 1 : 0; } }); $.each(rows, function(idx, row) { table.children('tbody').append(row); }); }); }); </script> @endsection @endsection