NonInventPurchasingSystem/CPRNIMS.WebApps/wwwroot/JsFunctions/Common/PRWOCanvassV2.js
2026-01-20 07:44:30 +08:00

340 lines
13 KiB
JavaScript

function viewPRWOCanvass() {
loader = $('#overlay, #loader');
$('#addItemWOCanvass').modal('show');
$('#addItemWOCanvass').css('z-index', 1065);
cleanupColumnSearch('#PRItemTable');
if (!isLoaded) {
tableName = '#PRItemTable';
totalSelectedLabel = $('#totalSelected');
clearTableSelection(tableName, selectedProductsMap, () => {
totalSelectedLabel.text(0);
}, 'selected-row', '.select-all-CanvassItem-checkbox');
tableElement = $(tableName);
tableDestroy($(tableName));
PRItemTable = tableElement.DataTable({
ajax: $.extend({
url: '/POMgmt/GetPRWOCanvass',
}, beforeComplete(loader)),
language: {
emptyTable: "No record available"
},
columns: colPOPRList,
pageLength: 5,
lengthMenu: [[5, 10, 25, 50, 100, -1], [5, 10, 25, 50, 100, "All"]],
initComplete: function () {
initializeTableSelectionWithDuplicateCheck({
tableName: tableName,
dataTable: PRItemTable,
selectedItemsMap: selectedProductsMap,
idKey: 'prDetailsId',
idKey2: 'itemNo',
checkboxClass: '.select-item-checkbox',
selectAllClass: '.select-all-item-checkbox',
selectedRowClass: 'selected-row',
updateCountCallback: function () {
totalSelectedLabel.text(getSelectedCount(selectedProductsMap));
}
});
initializeSearchAndSelection(PRItemTable);
},
});
isLoaded = true;
} else {
setTimeout(() => {
PRItemTable.draw();
initializeSearchAndSelection(PRItemTable);
}, 100);
}
}
function initializeSearchAndSelection(PRItemTable) {
initializeColumnSearch({
tableId: '#PRItemTable',
dataTable: PRItemTable,
searchableColumns: [
{
columnIndex: 1,
columnName: 'PR No',
placeholder: 'Enter PR Number...',
searchType: 'text',
searchMode: 'exact',
width: '150px'
},
{
columnIndex: 4,
columnName: 'Item No',
placeholder: 'Enter Item Number...',
searchType: 'text',
searchMode: 'exact',
width: '150px'
},
{
columnIndex: 5,
columnName: 'Item Name',
placeholder: 'Enter Item Name...',
searchType: 'text',
searchMode: 'contains',
width: '200px'
},
{
columnIndex: 7,
columnName: 'Created By',
placeholder: 'Select Creator...',
searchType: 'select',
searchMode: 'exact',
width: '150px'
}
]
});
const uniqueSearchClass = 'column-search-input-PRItemTable';
populateSelectOptions(PRItemTable, 7, '.' + uniqueSearchClass + '[data-column="7"]');
restoreSearchFromURL(uniqueSearchClass, '#PRItemTable');
}
function viewPRForTagging(data,Query) {
loader = $('#overlay, #loader');
$('#viewPRForTagging').modal('show');
$('#viewPRForTagging').css('z-index', 1065);
if (data.supplierId) {
$('#supplierId').val(data.supplierId);
document.getElementById('t-supplierName').innerHTML = data.supplierName
SupplierId = $('#supplierId').val();
}
tableName = '#ItemForTaggingTable';
totalSelectedLabel = $('#totalSelTag');
cleanupColumnSearch(tableName);
clearTableSelection(tableName, selectedProductsMap, () => {
totalSelectedLabel.text(0);
}, 'selected-row', '.select-all-CanvassItem-checkbox');
tableElement = $(tableName);
tableDestroy($(tableName));
PRItemTable = tableElement.DataTable({
ajax: $.extend({
url: '/CanvassMgmt/GetMyPRWOCanvass',
type: 'GET',
data: { Query, SupplierId },
}, beforeComplete(loader)),
language: {
emptyTable: "No record available"
},
columns: colPRList,
pageLength: 5,
lengthMenu: [[5, 10, 25, 50, 100, -1], [5, 10, 25, 50, 100, "All"]],
initComplete: function () {
initializeTableSelection({
tableName: tableName,
dataTable: PRItemTable,
selectedItemsMap: selectedProductsMap,
idKey: 'prDetailsId',
idKey2: 'batchNo',
checkboxClass: '.select-CanvassItem-checkbox',
selectAllClass: '.select-all-CanvassItem-checkbox',
selectedRowClass: 'selected-row',
updateCountCallback: function () {
totalSelectedLabel.text(getSelectedCount(selectedProductsMap));
}
});
initializeColumnSearch({
tableId: tableName,
dataTable: PRItemTable,
searchableColumns: [
{
columnIndex: 1,
columnName: 'PR No',
placeholder: 'Enter PR Number...',
searchType: 'text',
searchMode: 'exact',
width: '150px'
},
{
columnIndex: 4,
columnName: 'Item No',
placeholder: 'Enter Item Number...',
searchType: 'text',
searchMode: 'exact',
width: '150px'
},
{
columnIndex: 5,
columnName: 'Item Name',
placeholder: 'Enter Item Name...',
searchType: 'text',
searchMode: 'contains',
width: '200px'
},
{
columnIndex: 7,
columnName: 'PR By',
placeholder: 'Select PRBy...',
searchType: 'select',
searchMode: 'exact',
width: '150px'
}
]
});
const uniqueSearchClass = 'column-search-input-ItemForTaggingTable';
populateSelectOptions(PRItemTable, 7, '.' + uniqueSearchClass + '[data-column="7"]');
},
});
}
function viewPRItemDetail(data) {
loader = $('#overlay, #loader').css('z-index', 1070);
$("#uomName").on('keyup', function () {
populateUOM();
});
let PRDetailsId = data.prDetailsId;
$.ajax($.extend({
url: '/POMgmt/GetPRWOCanvass',
type: 'GET',
data: { PRDetailsId },
success: function (data) {
if (data && data.data && data.data.length > 0) {
var item = data.data[0];
$('#itemName').val(item.itemName);
$('#itemDescription').val(item.itemDescription);
$('#specification').val(item.specification);
$('#itemQty').val(item.qty);
$('#uomName').val(item.uomName);
$('#uomId').val(item.uomId);
$('#prDetailsId').val(item.prDetailsId);
$('#denied-itemNo').val(item.itemNo);
var itemPicturePath = item.itemAttachPath;
if (!itemPicturePath || itemPicturePath === 'N/A' || itemPicturePath === 'None') {
$('#itemPictureImage').attr('src', '/Content/Common/empty.jpg');
} else {
var imageUrl = item.urlImg + itemPicturePath;
// Set the image source
$('#itemPictureImage').attr('src', imageUrl);
}
$('#viewPRItemDetail').modal('show');
$('#viewPRItemDetail').css('z-index', 1070);
} else {
console.log('Data is null or undefined');
}
},
error: errorHandler
}, beforeComplete(loader)));
}
function viewPOItemDetail(data) {
loader = $('#overlay, #loader').css('z-index', 1070);
$("#uomName").on('keyup', function () {
populateUOM();
});
let PONo = data.poNo;
let PRDetailsId = data.prDetailsId;
$.ajax($.extend({
url: '/POMgmt/GetPOItemDetail',
type: 'GET',
data: { PRDetailsId, PONo },
success: function (data) {
if (data && data.data && data.data.length > 0) {
var item = data.data[0];
$('#itemName').val(item.itemName);
$('#itemDescription').val(item.itemDescription);
$('#specification').val(item.specification);
$('#itemQty').val(item.qty);
$('#uomName').val(item.uomName);
$('#uomId').val(item.uomId);
$('#unitPrice').val(item.unitPrice);
$('#prDetailsId').val(item.prDetailsId);
$('#c-poRemarks').val(item.remarks);
$('#P-paymentTerms').val(item.paymentTerms);
$('#P-paymentTermsId').val(item.paymentTermsId);
$('#P-portOfDischarge').val(item.portOfDischarge);
$('#P-portOfDischarge-id').val(item.podId);
$("#P-paymentTerms").on('keyup', function () {
popTerms();
});
var poTypeId = $('#potype-cancel').val();
if (poTypeId == 3) {
document.getElementById('P-portOfDischarge').style.display = 'flex';
document.getElementById('pod-label').style.display = 'flex';
$("#P-portOfDischarge").on('keyup', function () {
popPortOfDisCharge();
});
} else {
document.getElementById('P-portOfDischarge').style.display = 'none';
document.getElementById('pod-label').style.display = 'none';
}
// Check if item picture path is null or empty
var itemPicturePath = item.itemAttachPath;
if (!itemPicturePath || itemPicturePath === 'N/A' || itemPicturePath === 'None') {
$('#itemPictureImage').attr('src', '/Content/Common/empty.jpg');
} else {
var imageUrl = item.urlImg + itemPicturePath;
// Set the image source
$('#itemPictureImage').attr('src', imageUrl);
}
$('#viewPOItemDetail').modal('show');
$('#viewPOItemDetail').css('z-index', 1070);
} else {
console.log('Data is null or undefined');
}
},
error: errorHandler
}, beforeComplete(loader)));
}
function populateUOM() {
$("#uomName").autocomplete({
source: function (request, response) {
$.ajax({
url: "/ItemMgmt/GetItemUOM",
data: { query: request.term },
success: function (result) {
if (result && result.success && Array.isArray(result.data)) {
var formattedData = result.data.map(item => ({
label: item.label || '', // Use an empty string if undefined
value: item.value !== undefined && item.value !== null ? item.value.toString() : ''
}));
// console.log('formattedData value:', formattedData);
response(formattedData);
} else {
console.error('Invalid data format received:', result);
response([]); // Return an empty array to clear the dropdown
}
}
});
},
minLength: 2,
select: function (event, ui) {
$('#uomName').val(ui.item.label);
$('#uomId').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');
}
}
});
}