Uploading as a file screwed up the alignment… Will post as code block below.
Also there is something afoot with the code getting the region at state abbrev belongs to in the Regions table.
The code runs all the way thru but throw the Forbidden error as well:
HERE IS THE CODE:
import wixData from ‘wix-data’;
import wixWindow from ‘wix-window’;
import wixLocation from ‘wix-location’;
import wixUsers from ‘wix-users’;
import wixCrm from ‘wix-crm-backend’;
import { createMyPayment } from ‘backend/pay’;
import wixPay from ‘wix-pay’;
//>>>>>>>>>>>>>>>>>>> Multi Email >>>>>>>>>>>
// These variables are loaded in the on ready
//Presidents email
let presidentID;
//Webmasters Email
let webmasterID;
//Registras Email
let registrarID;
//VP Merchandise Director Email
let vpMerchDirID;
// VP Membership & Finance Director
let vpMembFinanceID;
//the regigional director is loaded in the sendEmail function
let RegDirID;
//>>>>>>>>>>>>>>>>>>> Multi Email variable ends >>>>>>>>>>>
let Fname;
let Mname;
let Sname;
let Add1;
let Add2;
let City;
let Country;
let State;
let Zip;
let Phnum;
let EmailAdd;
let PasswordAdd; //ADDED 8/19 JDS
let memberDuration;
let PaymentMethod;
let startDate = new Date();
let endDate;
let memberTerm;
let memberStatus;
let payString;
let stateRegion;
let region;
let userWixId;
let oneYear = 365;
let threeYears = 1095;
// =====================================================================
$w.onReady( function () {
userWixId = wixUsers.currentUser.id;
$w("#slideshow1").changeSlide(0);
$w("#invalidCredentials").hide
//loads Registra Email
wixData.query(“CVOA_Members”)
.eq(“title”, “Registrar”)
.find()
.then(results => {
let firstItem = results.items[0];
registrarID = firstItem._id;
console.log("ID: "+registrarID)
});
//loads Webmaster Email
wixData.query(“CVOA_Members”)
.eq(“title”, “Webmaster”)
.find()
.then(results => {
let firstItem = results.items[0];
webmasterID = firstItem._id;
console.log("ID: "+webmasterID)
});
//loads the VP Merch email
wixData.query(“CVOA_Members”)
.eq(“title”, “VP Merchandise Director”)
.find()
.then(results => {
let firstItem = results.items[0];
vpMerchDirID = firstItem._id;
console.log("ID: "+vpMerchDirID)
});
//loads the VP Member & Finance email
wixData.query(“CVOA_Members”)
.eq(“title”, “VP Membership and Finance”)
.find()
.then(results => {
let firstItem = results.items[0];
vpMembFinanceID = firstItem._id;
console.log("ID: "+vpMembFinanceID)
});
//loads the president email
wixData.query(“CVOA_Members”)
.eq(“title”, “President”)
.find()
.then(results => {
let firstItem = results.items[0];
presidentID = firstItem._id;
console.log("ID: "+ presidentID)
});
$w("#slideshow1").changeSlide(0);
});
export function button7_click(event, $w) {
Fname = $w(“#input1”).value;
Mname = $w(“#input2”).value;
Sname = $w(“#input3”).value;
Add1 = $w(“#input4”).value;
Add2 = $w(“#input5”).value;
City = $w(“#input6”).value;
State = $w(“#selection1”).value;
Country = $w(“#selection5”).value;
Zip = $w(“#input8”).value;
Phnum = $w(“#input9”).value;
EmailAdd = $w(“#input10”).value;
PasswordAdd = $w(“#input11”).value;
region = $w(‘#text159’).text; //ADDED 10/9 JDS
wixData.query("CVOA_Members")
.eq("email", EmailAdd)
.find()
.then((results) => {
let firstItem = results.items[0];
if (firstItem === undefined) {
if (Fname === “” || Sname === “” || Add1 === “” || City === “” || Country === “” || State === “” || Zip === “” || Phnum === “” || EmailAdd === “”) {
$w(“#text86”).show();
} else {
$w(“#text86”).hide();
$w(“#slideshow1”).changeSlide(2);
}
}
})
. catch ((err) => {
let errFunction = “loading the members details on the CVOA_Membership-Renewal Page”
let toInsert = {
“errorMessage”: String(err),
“user”: EmailAdd,
“function”: errFunction
};
wixData.insert("errorCodes", toInsert)
.then((results) => {
let item = results; //see item below
})
. catch ((error) => {
let errorMessage = error;
});
});
}
export function selection5_change(event) {
//Find out which region the state appreviation belongs to
$w(“#image20”).show();
let regionString = $w(“#selection1”).value; //State Abbreviation
console.log("Setting Region for State: " + regionString)
wixData.query("Regions")
.eq("abbrev", regionString)
.find()
.then((results) => {
let firstItem = results.items[0]; //see item below
stateRegion = firstItem.region;
$w(“#image20”).hide();
if (stateRegion !== “”) {
$w(“#text159”).text = stateRegion;
$w(“#text159”).show();
} else {
$w(“#text159”).hide();
}
let StateAbrev = firstItem.abbrev
if (StateAbrev !== “”) {
$w(“#text160”).text = StateAbrev;
$w(“#text160”).show();
} else {
$w(“#text160”).hide();
}
})
. catch ((err) => {
let errorMsg = err;
$w(“#image34”).hide();
let errFunction = “Trying to load the correct region on the Join the CVOA 4 Wix Page”
let toInsert = {
“errorMessage”: String(err),
“user”: EmailAdd,
“function”: errFunction
};
wixData.insert("errorCodes", toInsert)
.then((results) => {
let item = results; //see item below
})
. catch ((error) => {
let errorMessage = error;
});
});
}
function addDays(days, fromDate) {
fromDate.setDate(fromDate.getDate() + days);
return fromDate;
}
export function button8_click(event, $w) {
memberDuration = $w(“#selection4”).value;
PaymentMethod = $w(“#selection3”).value;
payString = “$” + memberDuration;
if (memberDuration === “” || PaymentMethod === “”) {
$w(“#text87”).show();
} else if (PaymentMethod === “PayPal”) {
if (memberDuration === ‘50’) {
let addTo = new Date();
endDate = addDays(oneYear, addTo);
memberTerm = “1 Year”;
} else if (memberDuration === ‘100’) {
let addTo = new Date();
endDate = addDays(threeYears, addTo);
memberTerm = “3 Years”;
}
$w("#text87").hide();
$w("#slideshow1").changeSlide(4);
$w("#text115").text = Fname;
$w("#text117").text = Mname;
$w("#text123").text = Sname;
$w("#text125").text = Add1;
$w("#text127").text = Add2;
$w("#text129").text = City;
$w("#text131").text = State;
$w("#text133").text = Zip;
$w("#text135").text = Country;
$w("#text119").text = Phnum;
$w("#text120").text = EmailAdd;
$w("#text137").text = startDate.toLocaleDateString('en-US');
$w("#text139").text = endDate.toLocaleDateString('en-US');
$w("#text141").text = memberTerm;
$w("#text157").text = payString;
memberStatus = "ACTIVE";
} **else if** (PaymentMethod === "Cash") {
if (memberDuration === ‘50’) {
let addTo = new Date();
endDate = addDays(oneYear, addTo);
memberTerm = “1 Year”;
} else if (memberDuration === ‘100’) {
let addTo = new Date();
endDate = addDays(threeYears, addTo);
memberTerm = “3 Years”;
} else if (memberDuration === ‘0.01’) {
let addTo = new Date();
endDate = addDays(threeYears, addTo);
memberTerm = “Test 1 cent”;
}
memberStatus = "PENDING";
$w("#text87").hide();
$w("#slideshow1").changeSlide(3);
$w("#text100").text = Fname;
$w("#text101").text = Mname;
$w("#text102").text = Sname;
$w("#text103").text = Add1;
$w("#text104").text = Add2;
$w("#text105").text = City;
$w("#text106").text = State;
$w("#text107").text = Zip;
$w("#text109").text = Country;
$w("#text110").text = Phnum;
$w("#text111").text = EmailAdd;
$w("#text143").text = startDate.toLocaleDateString('en-US');
$w("#text144").text = endDate.toLocaleDateString('en-US');
$w("#text147").text = memberTerm;
$w("#text156").text = payString;
} **else if** (PaymentMethod === "OTC") {
$w("#slideshow1").changeSlide(6);
}
}
export function text148_click(event, $w) {
$w(“#slideshow1”).changeSlide(0);
}
export function text149_click(event, $w) {
$w(“#slideshow1”).changeSlide(0);
}
export function html1_mouseIn(event, $w) {
let roundedTot = Math.round(memberDuration);
$w(“#html1”).postMessage(parseFloat(roundedTot));
}
export function SaveToDB() {
let firstName;
let lastName;
wixUsers.register(EmailAdd, PasswordAdd, {
contactInfo: {
“firstName”: Fname,
“lastName”: Sname,
“emails”: [EmailAdd],
“phones”: [Phnum]
}})
.then((result) => {
let toSave = {
“email”: EmailAdd,
“fname”: Fname,
“middle”: Mname,
“lname”: Sname,
“address1”: Add1,
“address2”: Add2,
“city”: City,
“state”: State,
“zip”: Zip,
“country”: Country,
“phone”: Phnum,
“paymentAmount”: payString,
“mem_status”: memberStatus,
“payment_info”: PaymentMethod + " - " + payString,
“expires”: endDate,
“region”: stateRegion
}
wixData.save("CVOA_Members", toSave)
.then((results) => {
let item = results;
// sendTrigEmail();
})
. catch ((err) => {
let errorMsg = err;
$w(“#image34”).hide();
$w(“#text178”).text = errorMsg;
$w(“#text178”).show();
});
})
. **catch** ((err) => {
let errFunction = “Saving updates to the DB with SaveToDB on the Join the CVOA 4 Wix Page”
let toInsert = {
“errorMessage”: String(err),
“user”: EmailAdd,
“function”: errFunction
};
wixData.insert("errorCodes", toInsert)
.then((results) => {
let item = results; //see item below
})
. catch ((error) => {
let errorMessage = error;
});
});
}
export function button9_click(event, $w) { //ERROR SAVEING CVOA_MEMBERS … check error_codes database???
// memberStatus = “PENDING”;
// endDate = $w(“#text152”).text;
SaveToDB();
$w(“#slideshow1”).changeSlide(5); // ADDED since page did not advance to show where to send payment…
}
export function vectorImage1_click(event) {
$w(“#image34”).show();
let otc = $w(“#input12”).value;
wixData.query("MembershipOTC")
.eq("code", otc)
.find()
.then((results) => {
let firstItem = results.items[0];
$w(“#image34”).hide();
if (firstItem === undefined) {
$w(“#text175”).text = “Not Valid”
$w(“#text176”).text = “0”;
$w(“#button10”).disable();
} else {
if (firstItem.used === true ) {
$w(“#text175”).text = “Code Used”
$w(“#text176”).text = “0”;
$w(“#button10”).disable();
} else {
$w(“#text175”).text = “Available”
$w(“#text176”).text = firstItem.length + " Days";
$w(“#text177”).text = firstItem._id;
otcLength = parseFloat(firstItem.length);
$w(“#button10”).enable();
}
}
})
. catch ((err) => {
let errorMsg = err;
$w(“#text178”).text = errorMsg;
$w(“#text178”).show();
$w(“#image34”).hide();
let errFunction = “Loading an OTC on the Join the CVOA 4 Wix Page”
let toInsert = {
“errorMessage”: String(err),
“user”: EmailAdd,
“function”: errFunction
};
wixData.insert("errorCodes", toInsert)
.then((results) => {
let item = results; //see item below
})
. catch ((error) => {
let errorMessage = error;
});
});
}
let otcLength;
export function button10_click(event) {
$w(“#image34”).show();
let addTo = new Date();
endDate = addDays(otcLength, addTo);
memberTerm = $w(“#text176”).text;
let ID = $w(“#text177”).text
wixData.remove("MembershipOTC", ID)
.then((results) => {
memberStatus = "ACTIVE";
SaveToDB();
})
. **catch** ((err) => {
let errorMsg = err;
$w(“#text178”).text = errorMsg;
$w(“#text178”).show();
$w(“#image34”).hide();
let errFunction = “Deleting the Used OTC on the Join the CVOA 4 Wix Page”
let toInsert = {
“errorMessage”: String(err),
“user”: EmailAdd,
“function”: errFunction
};
wixData.insert("errorCodes", toInsert)
.then((results) => {
let item = results; //see item below
})
. catch ((error) => {
let errorMessage = error;
});
});
}
export function button11_click(event) {
sendTrigEmail();
}
export function button11_click_1(event) {
let email = $w(“#input13”).value;
let password = $w(“#input14”).value;
wixUsers.login(email, password)
.then(() => {
let userID = wixUsers.currentUser.id;
console.log(“User is logged in”);
wixLocation.to(‘/member-audit-id’);
})
. catch ((err) => {
console.log(err);
$w(“#invalidCredentials”).text = "Email or Passowrd is incorrect. Try Again. "
});
}
//export function button12_click(event) {
// $w(“#invalidCredentials”).text = " "
// $w(“#slideshow1”).changeSlide(7)
//}
export function resetPassword_click(event) {
wixUsers.promptForgotPassword()
.then(() => {
console.log(“Password reset submitted”);
})
. catch ((err) => {
let errorMsg = err; // “The user closed the forgot password dialog”
});
}
export function storeTransaction(descrip, transID, tranStatus, transVal, transEmail, name, surname, phone, country) {
let toInsert = {
“title”: descrip,
“paymentId”: transID,
“paymentValue”: parseFloat(transVal),
“paymentStatus”: tranStatus,
“firstname”: name,
“surname”: surname,
“phone”: phone,
“email”: transEmail,
“country”: country,
“wixEmail”: EmailAdd
}
wixData.insert("payTransactions", toInsert)
. **catch** ((err) => {
console.log(err)
})
}
export function button13_click(event) {
$w("#loaderGif").show();
let roundedTot = parseFloat(memberDuration).toFixed(2);
let payDescrip = "CVOA Membership Application Fees for " + memberTerm + “($” + roundedTot + “)”;
createMyPayment(parseFloat(roundedTot), payDescrip)
.then((payment) => {
wixPay.startPayment(payment.id)
.then((result) => {
let resStatus = result.status;
let transID = result.transactionId;
let transEmail = result.userInfo.email;
let name = result.userInfo.firstName;
let surname = result.userInfo.lastName;
let country = result.userInfo.country;
let phone = result.userInfo.phone;
storeTransaction(payDescrip, transID, resStatus, roundedTot, transEmail, name, surname, phone, country);
if (resStatus === “Successful”) {
SaveToDB();
} else if (resStatus === “Failed”) {
$w(“#errText”).text = “Error, payment failed”;
$w(“#errText”).show();
$w(“#loaderGif”).hide();
} else if (resStatus === “Pending”) {
SaveToDB();
} else if (resStatus === “Cancelled”) {
$w(“#errText”).text = “Error, payment cancelled”;
$w(“#errText”).show();
$w(“#loaderGif”).hide();
} else if (resStatus === “Undefined”) {
$w(“#errText”).text = “Error, unknown payment result, contact us as soon as you can.”;
$w(“#errText”).show();
$w(“#loaderGif”).hide();
} else {
$w(“#errText”).text = “Error, unknown payment result, contact us as soon as you can.”;
$w(“#errText”).show();
$w(“#loaderGif”).hide();
}
});
});
}
export function checkExisting_click(event) {
EmailAdd = $w(“#emailInput”).value;
wixData.query(“CVOA_Members”)
.eq(“email”, EmailAdd)
.find()
.then((results) => {
let firstItem = results.items[0];
let resultCount = results.totalCount;
console.log(EmailAdd)
if (resultCount > 0) {
wixWindow.openLightbox(“Offline Member”, EmailAdd);
} else {
$w(“#slideshow1”).changeSlide(1);
}
})
. catch ((err) => {
let errFunction = “loading the members details on the CVOA_Membership-Renewal Page”
let toInsert = {
“errorMessage”: String(err),
“user”: EmailAdd,
“function”: errFunction
};
wixData.insert("errorCodes", toInsert)
.then((results) => {
let item = results; //see item below
})
. catch ((error) => {
let errorMessage = error;
});
});
}
//Send Triggered emails
export function sendTrigEmail() {
let emailBuilder = [presidentID, vpMembFinanceID, webmasterID, RegDirID];
let dateString = endDate.toLocaleDateString(“en-US”);
//sends the clients Email
wixCrm.emailContact(‘RBmZ8Af’, userWixId, {
variables: {
firstname: Fname,
expiryDate: dateString,
totalAmount: payString,
payType: PaymentMethod,
membershipStatus: memberStatus
}
})
//email the webmaster
wixCrm.emailContact(‘RBmbCgI’, webmasterID, {
variables: {
memberStatus: memberStatus,
dateString: dateString,
Country: Country,
stateRegion: stateRegion,
Add1: Add1,
Phnum: Phnum,
memberTerm: memberTerm,
EmailAdd: EmailAdd,
Mname: Mname,
Fname: Fname,
City: City,
Zip: Zip,
payString: payString,
State: State,
Add2: Add2,
PaymentMethod: PaymentMethod,
Sname: Sname
}
})
.then(() => {
//email the president
wixCrm.emailContact(‘RBmbCgI’, presidentID, {
variables: {
memberStatus: memberStatus,
dateString: dateString,
Country: Country,
stateRegion: stateRegion,
Add1: Add1,
Phnum: Phnum,
memberTerm: memberTerm,
EmailAdd: EmailAdd,
Mname: Mname,
Fname: Fname,
City: City,
Zip: Zip,
payString: payString,
State: State,
Add2: Add2,
PaymentMethod: PaymentMethod,
Sname: Sname
}
})
.then(() => {
//email the Membership Finance
wixCrm.emailContact(‘RBmbCgI’, vpMembFinanceID, {
variables: {
memberStatus: memberStatus,
dateString: dateString,
Country: Country,
stateRegion: stateRegion,
Add1: Add1,
Phnum: Phnum,
memberTerm: memberTerm,
EmailAdd: EmailAdd,
Mname: Mname,
Fname: Fname,
City: City,
Zip: Zip,
payString: payString,
State: State,
Add2: Add2,
PaymentMethod: PaymentMethod,
Sname: Sname
}
})
.then(() => {
wixData.query("CVOA_Members")
.contains("title", stateRegion)
.find()
.then(results => {
let firstItem = results.items[0];
let RdEmail = firstItem.wixId;
console.log("ID: "+RdEmail)
//email the regional director
wixCrm.emailContact(‘RBmbCgI’, RdEmail, {
variables: {
memberStatus: memberStatus,
dateString: dateString,
Country: Country,
stateRegion: stateRegion,
Add1: Add1,
Phnum: Phnum,
memberTerm: memberTerm,
EmailAdd: EmailAdd,
Mname: Mname,
Fname: Fname,
City: City,
Zip: Zip,
payString: payString,
State: State,
Add2: Add2,
PaymentMethod: PaymentMethod,
Sname: Sname
}
})
.then(() => {
$w(“#image34”).hide();
$w(“#loaderGif”).hide();
$w(“#slideshow1”).changeSlide(5);
$w(“#text153”).text = memberStatus;
$w(“#text154”).text = endDate.toLocaleDateString(“en-US”);
})
});
})
})
})
}