function updateDepartmentId() { var chargeToElement = document.getElementById('chargeTo'); if (!chargeToElement) { console.error('chargeTo element not found'); return; } var selectedOption = chargeToElement.options[chargeToElement.selectedIndex]; if (!selectedOption) { console.error('No option selected'); return; } document.getElementById('departmentId').value = selectedOption.value; document.getElementById('chargeTo').addEventListener('change', updateDepartmentId); } function renderItembtns(data, row) { var jsonData = JSON.stringify(row).replace(/"/g, """); var buttonsHtml = ''; // var statusNumber = parseInt(row.status, 10); buttonsHtml += ' '; return buttonsHtml; } function showHideLabelButtons() { if (RequestTypeId == 1) { let labelnormalPR = document.getElementById('normalPR'); let specialPR = document.getElementById('specialPR'); let chargeTo = document.getElementById('chargeTo'); let labelChargeTo = document.getElementById('labelChargeTo'); labelnormalPR.style.display = 'none'; specialPR.style.display = 'none'; chargeTo.style.display = 'none'; labelChargeTo.style.display = 'none'; } else if (RequestTypeId == 2){ let specialPR = document.getElementById('specialPR'); let internalRequest = document.getElementById('internalRequest'); let chargeTo = document.getElementById('chargeTo'); let labelChargeTo = document.getElementById('labelChargeTo'); internalRequest.style.display = 'none'; specialPR.style.display = 'none'; chargeTo.style.display = 'none'; labelChargeTo.style.display = 'none'; } else { let labelnormalPR = document.getElementById('normalPR'); let internalRequest = document.getElementById('internalRequest'); labelnormalPR.style.display = 'none'; internalRequest.style.display = 'none'; } } $(document).ready(function () { loader = $('#overlay, #loader'); var submitButton = $('#btnSubmitItem'); var totalSelectedLabel = $('#totalSelected'); UserRights = document.getElementById("roleRights").value; RequestTypeId = document.getElementById("requestTypeId").value; showHideLabelButtons(); itemTable = $('#ItemCartTable').DataTable({ ajax: { url: '/ItemMgmt/GetItemCart', type: 'GET', data: { RequestTypeId }, beforeSend: function () { // Show the loader before making the AJAX request loader.show(); }, complete: function () { loader.hide(); } }, initComplete: function () { var api = this.api(); var data = api.ajax.json(); if (!data || !data.data || data.data === "No Data") { // Display the "No record available" message $('.dataTables_empty').html("No record available"); } updateSubmitButtonVisibility(); }, columns: [ { data: 'itemCartId', render: function () { return ''; } }, { data: 'itemNo' }, { data: 'itemName' }, { data: 'itemCategoryName' }, { data: 'prTypeId' }, { data: 'qty' }, { data: null, render: function (data, type, row) { return renderItembtns(data, row); } }, { data: 'isActive', visible: false }, { data: 'itemCartId', visible: false }, { data: 'cartItemCount', visible: false }, { data: 'createdDate', visible: false }, { data: 'requestTypeId', visible: false }, ], "columnDefs": [ { "targets": [5], // Index of the 'qty' column (0-based) "render": function (data, type, row) { // Render the 'qty' column as an input field return ''; } } ], rowCallback: function (row, data) { var cartItemCount = data.cartItemCount; // Retrieve the cart item count from the data object var itemCount = parseInt(cartItemCount, 10); // Parse the text content as an integer var prTypeIdCell = $('td:eq(4)', row); var PRTypeId = prTypeIdCell.text(); var PRTypeIdNumer = parseInt(PRTypeId, 10); // console.log('ItemCartIds', ItemCartId); // Check if the parsed integer is a valid number if (!isNaN(itemCount)) { $('#cartCount').text(itemCount); // Update the cart count in the navbar } else { $('#cartCount').text('0'); // If the parsed integer is NaN, set the cart count to 0 } if (!isNaN(PRTypeIdNumer)) { if (PRTypeIdNumer === 1) { prTypeIdCell.text('Goods').addClass('next-facilitator'); } else { prTypeIdCell.text('Service').addClass('next-facilitator'); } } }, //responsive: true, order: [[10, 'desc']], language: { emptyTable: "No record available" }, error: function (xhr, error, thrown) { console.log('DataTables error:', error); console.log('Status:', Status); console.log('Details:', xhr.responseText); window.location.href = '/Home/Logout'; } }); // Function to update the visibility of the submit button function updateSubmitButtonVisibility() { var isEmpty = itemTable.data().length === 0; // Check if the table is empty // Toggle the visibility of the submit button based on whether the table is empty or not submitButton.toggle(!isEmpty); } // Event handler for individual checkbox change $('#ItemCartTable').on('change', '.selectedItem-checkbox', function () { var row = $(this).closest('tr'); // Get the closest row for the checkbox if ($(this).prop('checked')) { row.addClass('selected-row'); // Add highlight class if checked } else { row.removeClass('selected-row'); // Remove highlight class if unchecked } updateTotalSelectedCount(); // Update the total selected count }); // Event handler for "Select All" checkbox change in the header $('#selectAllHeaderCheckbox').on('change', function () { var isChecked = $(this).prop('checked'); // Check if "Select All" checkbox is checked // Check or uncheck all checkboxes in the table based on the state of "Select All" checkbox $('.selectedItem-checkbox').prop('checked', isChecked); // Highlight or unhighlight all rows based on "Select All" checkbox state if (isChecked) { $('#ItemCartTable tbody tr').addClass('selected-row'); } else { $('#ItemCartTable tbody tr').removeClass('selected-row'); } updateTotalSelectedCount(); // Update the total selected count }); function updateTotalSelectedCount() { var totalSelected = $('.selectedItem-checkbox:checked').length; // Count the checked checkboxes totalSelectedLabel.text(totalSelected); // Update the label with the count } }) function deleteCartItemById(data) { loader = $('#overlay, #loader'); var ItemCartId = data.itemCartId; var ItemNo = data.itemNo; showConfirmation({ title: 'Item Cart Deletion', message: 'Are you sure you want to delete this item? This action cannot be undone.', type: 'danger', confirmText: 'Yes, Delete', cancelText: 'Keep Item' }).then((confirmed) => { if (confirmed) { $.ajax({ url: '/ItemMgmt/PostPutItemCart', type: 'POST', data: { ItemNo, ItemCartId }, success: function (response) { if (response.success) { itemTable.ajax.reload(); var totalSelectedLabel = $('#totalSelected'); totalSelectedLabel.text(''); showToast('success', 'Selected item deleted!', 'Success', 4000); } else { loader.hide(); showToast('error', response.response, title + ' failed', 4000); } }, beforeSend: function () { loader.show(); }, complete: function () { loader.hide(); } }); } }); }