Inquiry, Potential, High Potential, Verba
Add Constant-
define('LEAD_STATUS_POTENTIAL', 486);
define('LEAD_STATUS_HIGHPOTENTIAL', 487);
define('LEAD_STATUS_VERBAL', 488);
Add this into gofero->lead->add->add_holiday.php
Add code in gofero->partials->add_common_customer_details.php
$(document).ready(function() {
var requiredFieldBasedOnCondition = ['gf_customer_name', 'kp_country_code', 'gf_contact_number', 'gf_email_address', 'gf_nationality', 'gf_lead_source', 'gf_lead_status'];
var requiredFields = [];
var isLeadStatusSelected = false;
$(document).on('change', '#gf_lead_status', function() {
if (!isLeadStatusSelected) {
captureRequiredFields();
isLeadStatusSelected = true;
}
const leadStatus = $(this).val();
const noResponseStatus = btoa('LEAD_STATUS_NO_RESPONSE');
const closedNoPlansStatus = btoa('LEAD_STATUS_CLOSED_NO_PLANS');
const InquiryLeadStatus = btoa('LEAD_STATUS_INQUIRY');
const PotentialLeadStatus = btoa('LEAD_STATUS_POTENTIAL');
const HighPotentialLeadStatus = btoa('LEAD_STATUS_HIGHPOTENTIAL');
const VerbalLeadStatus = btoa('LEAD_STATUS_VERBAL');
// alert(InquiryLeadStatus);
if (leadStatus === noResponseStatus || leadStatus === closedNoPlansStatus) {
removeAsteriskFromLabels();
applyAstriskAndRequired();
} else {
applyAsteriskToLabels();
}
if (
leadStatus === InquiryLeadStatus ||
leadStatus === PotentialLeadStatus ||
leadStatus === HighPotentialLeadStatus ||
leadStatus === VerbalLeadStatus
) {
$('#no_of_pax_adult, #no_of_pax_child, #no_of_pax_infant').prop('required', true);
$('.no-of-pax-required').show();
} else {
$('#no_of_pax_adult, #no_of_pax_child, #no_of_pax_infant').prop('required', false);
$('.no-of-pax-required').hide();
}
});
in gofero.php
copy paste fuctions
updateLeadData() and saveLeadData()
holiday_details.php
in details_service_common_footer_section.php
$(document).on("change", "#gf_lead_status", function() {
const leadStatus = $(this).val();
const noResponseStatus = btoa('LEAD_STATUS_NO_RESPONSE');
const closedNoPlansStatus = btoa('LEAD_STATUS_CLOSED_NO_PLANS');
const bookedStatus = btoa('TOUR_BOOKED_STATUS_CODE');
const InquiryLeadStatus = btoa('LEAD_STATUS_INQUIRY');
const PotentialLeadStatus = btoa('LEAD_STATUS_POTENTIAL');
const HighPotentialLeadStatus = btoa('LEAD_STATUS_HIGHPOTENTIAL');
const VerbalLeadStatus = btoa('LEAD_STATUS_VERBAL');
if (leadStatus === noResponseStatus || leadStatus === closedNoPlansStatus) {
removeAsteriskFromLabels();
applyAstriskAndRequired();
} else {
applyAsteriskToLabels();
}
if (
leadStatus === InquiryLeadStatus ||
leadStatus === PotentialLeadStatus ||
leadStatus === HighPotentialLeadStatus ||
leadStatus === VerbalLeadStatus
) {
$('#no_of_pax_adult, #no_of_pax_child, #no_of_pax_infant').prop('required', true);
$('.no-of-pax-required').show();
} else {
$('#no_of_pax_adult, #no_of_pax_child, #no_of_pax_infant').prop('required', false);
$('.no-of-pax-required').hide();
}
modify function handleroomsandadultRequire()
function handleroomsandadultRequire() {
const leadStatusField = document.getElementById('gf_lead_status');
const religionField = document.getElementById('gf_lead_religion');
const bookedStatus = btoa('TOUR_BOOKED_STATUS_CODE');
// On change, toggle required + collapse block
leadStatusField.addEventListener('change', function () {
if (this.value === bookedStatus) {
religionField.setAttribute('required', 'required');
$('#collapsefacebook').collapse('show');
} else {
religionField.removeAttribute('required');
$('#collapsefacebook').collapse('hide');
}
});
// Form submission prevention logic
$('#edit-retail-lead-form').on('submit', function (e) {
const isBooked = leadStatusField.value === bookedStatus;
const paxAdult = parseInt($('#no_of_pax_adult').val()) || 0;
const paxChild = parseInt($('#no_of_pax_child').val()) || 0;
const paxInfant = parseInt($('#no_of_pax_infant').val()) || 0;
const adultCount = parseInt($('#gf_traveller_adult_count').val()) || 0;
const childCount = (parseInt($('#gf_traveller_child_count').val()) || 0) + (parseInt($('#gf_traveller_child_count_cwn').val()) || 0);
const infantCount = parseInt($('#gf_traveller_infant_count').val()) || 0;
if (!isBooked) return; // Do nothing if not Booked
let allValid = true;
// Check adult counts
// $('.gf_traveller_adult_count').each(function () {
// const val = parseInt($(this).val());
// if (isNaN(val) || val <= 0) {
// $(this).addClass('is-invalid');
// allValid = false;
// } else {
// $(this).removeClass('is-invalid');
// }
// });
let totalAdultCount = 0;
$('.gf_traveller_adult_count').each(function () {
const val = parseInt($(this).val());
if (!isNaN(val) && val > 0) {
totalAdultCount += val;
$(this).removeClass('is-invalid');
} else {
$(this).addClass('is-invalid');
}
});
// Check room count
const roomVal = parseInt($('#gf_rooms').val());
if (isNaN(roomVal) || roomVal <= 0) {
$('#gf_rooms').addClass('is-invalid');
allValid = false;
} else {
$('#gf_rooms').removeClass('is-invalid');
}
if (paxAdult !== adultCount) {
$('#gf_traveller_adult_count').addClass('is-invalid');
alert('Adults are not matching');
allValid = false;
} else {
$('#gf_traveller_adult_count').removeClass('is-invalid');
}
if (paxChild !== childCount) {
$('#gf_traveller_child_count_cwn').addClass('is-invalid');
alert('Childs and child with no bed count are not matching');
allValid = false;
} else {
$('#gf_traveller_child_count_cwn').removeClass('is-invalid');
}
if (paxInfant !== infantCount) {
$('#gf_traveller_infant_count').addClass('is-invalid');
alert('Infants are not matching');
allValid = false;
} else {
$('#gf_traveller_infant_count').removeClass('is-invalid');
}
// Prevent form if invalid
if (!allValid) {
alert('All adult counts and room count must be greater than 0 for booked status.');
e.preventDefault(); // Stop form submission
}
});
}