function popPONo() { $("#poNo").autocomplete({ source: function (request, response) { $.ajax({ url: endpoint.GetPOListByTerm, data: { query: request.term }, success: function (result) { if (result && result.success && Array.isArray(result.data)) { var formattedData = result.data.map(item => ({ label: item.label || '', value: item.value !== undefined && item.value !== null ? item.value : 0, value2: item.value2 !== undefined && item.value2 !== null ? item.value2 : 0 })); response(formattedData); } else { console.error('Invalid data format received:', result); response([]); } } }); }, minLength: 2, select: function (event, ui) { if (!ui.item || !ui.item.value) { return false; } $('#poNo').val(ui.item.label); $('#poId').val(ui.item.value); $('#poTypeId').val(ui.item.value2); populatePOModificationForm(ui.item.value2); populateIncoterms(); fetchAndPopulatePOFormData(ui.item.value2,ui.item.value); $("#supplierName").off('keyup').on('keyup', function () { populateSupplier(); }); // Recalculate after populating charges calculateTotalPesoAmount(); calculateFinalUsdAmount(); document.getElementById('btnSubmitPO').style.display = 'block'; isUpdate = true; return false; }, focus: function (event, ui) { event.preventDefault(); }, open: function () { var dropdown = $(".ui-autocomplete"); dropdown.css({ "max-height": "200px", "overflow-y": "auto" }); }, messages: { noResults: '', results: function (count) { return count + (count > 1 ? ' results' : ' result'); } } }); } async function populatePOModificationForm(id) { if (!id) { console.warn("No PO Type selected."); return; } await new Promise(function (resolve, reject) { $.ajax({ url: '/POMgmt/GetCustomFormPOElem', type: 'GET', data: { id: id }, success: function (response) { $('#CustomFormPOElemContainer').html(response); $("#C-paymentTerms").off('keyup').on('keyup', function () { populateTerms(); }); resolve(); }, error: function (xhr, status, error) { console.error("Error loading component:", error); reject(error); } }); }); } function populatePOElem(id) { loader = $('#overlay, #loader').css('z-index', 1060); return new Promise(function (resolve, reject) { $.ajax($.extend( beforeComplete(loader), { url: endpoint.GetLatestPO2, type: 'POST', success: function (data) { poDataTable.clear().draw(); if (data && data.data && data.data.length > 0) { var item = data.data[0]; $('#si-poNo').val('00' + (parseFloat(item.poNoVatInc) + 1)); $('#dr-poNo').val(parseFloat(item.poNoVatEx) + 1); $('#si-ImportPoNo').val('10-' + (parseFloat(item.ipoNoVatInc) + 1)); $('#dr-ImportPoNo').val(item.ipoNoVatEx); resolve(id); } else { console.log('Data is null or undefined'); resolve(id); } }, error: function (xhr, status, error) { errorHandler(xhr, status, error); reject(error); } } )); }); } function populateIncoterms() { $.ajax({ url: endpoint.GetIncoterms, success: function (response) { if (response && response.success && Array.isArray(response.data)) { var $incotermsName = $('#incotermsName'); $incotermsName.empty(); response.data.forEach(function (item) { var option = $('') .attr('value', item.incotermsId) .text(item.incotermsName); $incotermsName.append(option); }); if (response.data.length > 0) { var firstItem = response.data[0]; $incotermsName.val(firstItem.incotermsId); $('#incoTermsId').val(firstItem.incotermsId); } $incotermsName.on('change', function () { var selectedincotermsId = $(this).val(); $('#incoTermsId').val(selectedincotermsId); console.log(selectedincotermsId); }); } else { console.error('Invalid data format received:', response); } }, error: function (error) { console.error('Error fetching payment terms:', error); } }); } function popTerms() { $("#P-paymentTerms").autocomplete({ source: function (request, response) { $.ajax({ url: endpoint.GetPaymentTerms, data: { query: request.term }, success: function (result) { if (result && result.success && Array.isArray(result.data)) { var formattedData = result.data.map(item => ({ label: item.label || '', value: item.value !== undefined && item.value !== null ? item.value.toString() : '' })); response(formattedData); } else { console.error('Invalid data format received:', result); response([]); } } }); }, minLength: 2, select: function (event, ui) { $('#P-paymentTerms').val(ui.item.label); $('#P-paymentTermsId').val(ui.item.value); return false; }, focus: function (event, ui) { event.preventDefault(); }, open: function () { var dropdown = $(".ui-autocomplete"); dropdown.css({ "max-height": "200px", "overflow-y": "auto" }); }, messages: { noResults: '', results: function (count) { return count + (count > 1 ? ' results' : ' result'); } } }); } function popPortOfDisCharge() { $("#P-portOfDischarge").autocomplete({ source: function (request, response) { $.ajax({ url: endpoint.GetPortOfDischarge, data: { query: request.term }, success: function (result) { if (result && result.success && Array.isArray(result.data)) { var formattedData = result.data.map(item => ({ label: item.label || '', value: item.value !== undefined && item.value !== null ? item.value.toString() : '' })); response(formattedData); } else { console.error('Invalid data format received:', result); response([]); } } }); }, minLength: 2, select: function (event, ui) { $('#P-portOfDischarge').val(ui.item.label); $('#P-portOfDischarge-id').val(ui.item.value); return false; }, focus: function (event, ui) { event.preventDefault(); }, open: function () { var dropdown = $(".ui-autocomplete"); dropdown.css({ "max-height": "200px", "overflow-y": "auto" }); }, messages: { noResults: '', results: function (count) { return count + (count > 1 ? ' results' : ' result'); } } }); } function populateSupplier() { $("#supplierName").autocomplete({ source: function (request, response) { $.ajax({ url: endpoint.GetSuppliers, data: { query: request.term }, success: function (result) { if (result && result.success && Array.isArray(result.data)) { var formattedData = result.data.map(item => ({ label: item.label || '', value: item.value !== undefined && item.value !== null ? item.value.toString() : '', value2: item.value2 !== undefined && item.value2 !== null ? item.value2.toString() : '', value3: item.value3 !== undefined && item.value3 !== null ? item.value3.toString() : '', value4: item.value4 !== undefined && item.value4 !== null ? item.value4.toString() : '' })); response(formattedData); } else { console.error('Invalid data format received:', result); response([]); } } }); }, minLength: 2, select: function (event, ui) { $('#supplierName').val(ui.item.label); $('#supplierId').val(ui.item.value); $('#currency').val(ui.item.value2); $('#C-paymentTerms').val(ui.item.value3); $('#C-paymentTermsId').val(ui.item.value4); return false; }, focus: function (event, ui) { event.preventDefault(); }, open: function () { var dropdown = $(".ui-autocomplete"); dropdown.css({ "max-height": "200px", "overflow-y": "auto" }); }, messages: { noResults: '', results: function (count) { return count + (count > 1 ? ' results' : ' result'); } } }); } function populateDropdown(selector, value) { const $dropdown = $(selector); $dropdown.empty(); $('').val(value).text(value).appendTo($dropdown); $dropdown.val(value); }