FIX_CHANGE_INSURER_NOT_CHECK_DUB_INS : RV

This commit is contained in:
VENKATESHWARAN 2025-06-17 14:44:44 +05:30
parent 0f88ddc117
commit 0f305ab8dc

View File

@ -2560,6 +2560,15 @@ function popInsurerInArray(proposal_name, insurerName) {
function changeInsurer(event) {
console.log('change insure event', event);
let proposal_name = getParentHeaderTh(event);
console.log('proposel Name', proposal_name)
if(proposal_name == null || proposal_name == ""){
toastr.warning("Could not change the insurer", "WARNING")
return;
}
// let newInsurerName = prompt("Enter New insurer name:");
const insurers = <?= json_encode($insurer); ?>;
@ -2577,77 +2586,164 @@ function changeInsurer(event) {
console.log('newInsurerName', newInsurerName)
console.log('newversion', newversion)
if (newInsurerName) {
const closestTh = event.target.closest('th');
let oldInsurerName = closestTh.innerText.split('⋮')[0].trim();
console.log(oldInsurerName + ' - ' + newInsurerName);
const closestTh = event.target.closest('th');
let oldInsurerName = closestTh.innerText.split('⋮')[0].trim();
let subThIndex = closestTh.cellIndex;
console.log(oldInsurerName + ' - ' + newInsurerName);
// Iterate over child nodes to find the text node containing "Myname"
closestTh.childNodes.forEach(node => {
if (node.nodeType === Node.TEXT_NODE && node.textContent.includes(oldInsurerName)) {
// Replace the old name with the new name
node.textContent = node.textContent.replace(oldInsurerName, newInsurerName);
if (!checkExistingInsurer(proposal_name, newInsurerName) && oldInsurerName != newInsurerName) {
Swal.fire({
title: "Insurer Dublicate Found?",
text: "Do you want version control!",
icon: "warning",
showCancelButton: true,
confirmButtonColor: "#3085d6",
cancelButtonColor: "#d33",
confirmButtonText: "Yes, Procced!"
}).then((result) => {
if (result.isConfirmed) {
let modifiedInsurerName = constructInsurerNameWithVersion(proposal_name, newInsurerName);
console.log('modifiedInsurerName', modifiedInsurerName);
changeInsurerData(event, modifiedInsurerName, dataId)
}else{
return false;
}
});
//find parent th index then it's text content
// Get the sub TH from the second header row
const table = document.getElementById('rfqTable');
const headerRows = table.querySelectorAll('thead tr');
const subTh = headerRows[1].children[subThIndex];
let accumulatedColspan = 0;
let parentTh = null;
const firstHeaderRow = headerRows[0];
// Find the parent TH for the specified sub TH index
for (let i = 0; i < firstHeaderRow.children.length; i++) {
const currentParentTh = firstHeaderRow.children[i];
const currentColspan = parseInt(currentParentTh.getAttribute('colspan')) || 1;
accumulatedColspan += currentColspan;
if (subThIndex < accumulatedColspan) {
parentTh = currentParentTh;
break;
}
}
changeInsurerForPremiumTable(event, newInsurerName, subThIndex)
let proposal_name = parentTh.innerText.split('⋮')[0].trim();
if (over_all_column_data[proposal_name]) {
// let tempInsurerList = over_all_column_data[proposal_name].insurers;
// console.log(tempInsurerList);
// if(!tempInsurerList.length) { return true; }
//replace the old insurer with the new insuren in global array
over_all_column_data[proposal_name].insurers.forEach(item => {
if (item.display_name === oldInsurerName) {
item.display_name = newInsurerName; // Replace with new name
item.ins_name = newInsurerName.split('-')[0].trim(); // Replace with new name
item.id = dataId
}
});
// console.log(tempInsurerList);
// over_all_column_data[proposal_name].insurers = tempInsurerList;
console.log('insurer name replaced in golbal variable');
console.log(over_all_column_data[proposal_name].insurers);
// over_all_column_data[proposal_name].insurers = tempInsurerList
isFormDataModified = true; // if any value changeing in the table to set true
return;
}
console.log('insurer name not replaced in golbal variable');
}else{
changeInsurerData(event, newInsurerName)
}
});
}
function changeInsurerData(event, newInsurerName, dataId){
if (newInsurerName) {
const closestTh = event.target.closest('th');
let oldInsurerName = closestTh.innerText.split('⋮')[0].trim();
let subThIndex = closestTh.cellIndex;
console.log(oldInsurerName + ' - ' + newInsurerName);
// Iterate over child nodes to find the text node containing "Myname"
closestTh.childNodes.forEach(node => {
if (node.nodeType === Node.TEXT_NODE && node.textContent.includes(oldInsurerName)) {
// Replace the old name with the new name
node.textContent = node.textContent.replace(oldInsurerName, newInsurerName);
}
});
//find parent th index then it's text content
// Get the sub TH from the second header row
const table = document.getElementById('rfqTable');
const headerRows = table.querySelectorAll('thead tr');
const subTh = headerRows[1].children[subThIndex];
let accumulatedColspan = 0;
let parentTh = null;
const firstHeaderRow = headerRows[0];
// Find the parent TH for the specified sub TH index
for (let i = 0; i < firstHeaderRow.children.length; i++) {
const currentParentTh = firstHeaderRow.children[i];
const currentColspan = parseInt(currentParentTh.getAttribute('colspan')) || 1;
accumulatedColspan += currentColspan;
if (subThIndex < accumulatedColspan) {
parentTh = currentParentTh;
break;
}
}
changeInsurerForPremiumTable(event, newInsurerName, subThIndex)
let proposal_name = parentTh.innerText.split('⋮')[0].trim();
if (over_all_column_data[proposal_name]) {
// let tempInsurerList = over_all_column_data[proposal_name].insurers;
// console.log(tempInsurerList);
// if(!tempInsurerList.length) { return true; }
//replace the old insurer with the new insuren in global array
over_all_column_data[proposal_name].insurers.forEach(item => {
if (item.display_name === oldInsurerName) {
item.display_name = newInsurerName; // Replace with new name
item.ins_name = newInsurerName.split('-')[0].trim(); // Replace with new name
item.id = dataId
}
});
// console.log(tempInsurerList);
// over_all_column_data[proposal_name].insurers = tempInsurerList;
console.log('insurer name replaced in golbal variable');
console.log(over_all_column_data[proposal_name].insurers);
// over_all_column_data[proposal_name].insurers = tempInsurerList
isFormDataModified = true; // if any value changeing in the table to set true
return;
}
console.log('insurer name not replaced in golbal variable');
}else{
toastr.warning("Could not change the insurer", "WARNING")
return;
}
}
function getParentHeaderTh(event) {
const currentTh = event.target.closest('th');
if (!currentTh) return;
const colIndex = currentTh.cellIndex;
// Get all header rows
const thead = currentTh.closest('thead');
const headerRows = thead.querySelectorAll('tr');
if (headerRows.length < 2) return; // need at least 2 header rows
const secondRowThs = headerRows[1].querySelectorAll('th');
const firstRowThs = headerRows[0].querySelectorAll('th');
// Step 1: Find actual column span index of clicked th in 2nd row
let actualColIndex = 0;
for (let i = 0; i < secondRowThs.length; i++) {
const th = secondRowThs[i];
const colspan = parseInt(th.getAttribute('colspan')) || 1;
if (th === currentTh) break;
actualColIndex += colspan;
}
// Step 2: Match it with first row <th>s
let colSpanCounter = 0;
for (let i = 0; i < firstRowThs.length; i++) {
const th = firstRowThs[i];
const colspan = parseInt(th.getAttribute('colspan')) || 1;
if (actualColIndex >= colSpanCounter && actualColIndex < colSpanCounter + colspan) {
let proposelName = th.innerText.split('⋮')[0].trim();
console.log("Parent TH Proposel innerText:", proposelName);
console.log("Parent TH Proposel textContent:", th.textContent.trim());
return proposelName;
}
colSpanCounter += colspan;
}
console.log("Parent header not found");
return null;
}
function changeState(event) {
console.log('changeState Function called')