handleSubmitFinancialWorkshop = async e => {
const {
financialworkshops,
financialworkshopdata,
surveyId,
currentSurveyId,
consultantId,
} = this.state;
// const matrixFinancialWorkshopsRef = firebase
// .firestore()
// .collection(consultantId ? 'portfolio-surveys-consultants' : 'surveys')
// .doc(surveyId ? surveyId : currentSurveyId)
// .collection('financial-workshops');
e.preventDefault();
this.setState({
loading: true,
financialWorkshopTabIndex: 0,
});
const formatDate = (date) => {
if (!date) return null;
const d = date.seconds ? new Date(date.seconds * 1000 + date.nanoseconds / 1000000) : new Date(date);
const month = ('0' + (d.getMonth() + 1)).slice(-2);
const day = ('0' + d.getDate()).slice(-2);
const year = d.getFullYear();
return `${month}/${day}/${year}`;
};
try {
// Edit condition (if id exists)
if (financialworkshopdata.id) {
// const docRef = matrixFinancialWorkshopsRef.doc(financialworkshopdata.id);
// const docSnapshot = await docRef.get();
// const oldData = docSnapshot.data();
const workshopData = await getWorkshopById("financial-workshops", {
surveyId: surveyId,
consultantId: consultantId,
id: financialworkshopdata.id,
});
const oldData = workshopData.data();
const _date = financialworkshopdata['Date of Workshop or Interview'];
const payload = {
...financialworkshopdata,
answeredEntries: financialworkshopdata?.answeredEntries ? financialworkshopdata?.answeredEntries : [],
['Date of Workshop or Interview']:
_date && _date.seconds
? new Date(_date.seconds * 1000 + _date.nanoseconds / 1000000)
: _date,
date: new Date(),
};
// await matrixFinancialWorkshopsRef.doc(financialworkshopdata.id).update(payload)
// )
await updateFinancialWorkshops(consultantId, financialworkshopdata.id, payload)
const changes = [];
// const oldDateFormatted = formatDate(oldData['Date of Workshop or Interview']);
// const newDateFormatted = formatDate(financialworkshopdata['Date of Workshop or Interview']);
const oldDateFormatted = oldData['Date of Workshop or Interview'];
const newDateFormatted = financialworkshopdata['Date of Workshop or Interview'];
if (financialworkshopdata['Name of Person'] !== oldData['Name of Person']) {
changes.push(`Name of Person changed from ${oldData['Name of Person']} to ${financialworkshopdata['Name of Person']}`);
}
if (financialworkshopdata['Stakeholder Type'] !== oldData['Stakeholder Type']) {
changes.push(`Stakeholder Type changed from ${oldData['Stakeholder Type']} to ${financialworkshopdata['Stakeholder Type']}`);
}
if (financialworkshopdata['Type'] !== oldData['Type']) {
changes.push(`Type changed from ${oldData['Type']} to ${financialworkshopdata['Type']}`);
}
if (financialworkshopdata['Interviewer Name'] !== oldData['Interviewer Name']) {
changes.push(`Interviewer Name changed from ${oldData['Interviewer Name']} to ${financialworkshopdata['Interviewer Name']}`);
}
if (newDateFormatted !== oldDateFormatted) {
changes.push(`Date of Workshop or Interview changed from ${oldDateFormatted} to ${newDateFormatted}`);
}
if (financialworkshopdata['Comments'] !== oldData['Comments']) {
const oldcomment = oldData['Comments'] || 'Blank';
changes.push(`Comments changed from ${oldcomment} to ${financialworkshopdata['Comments']}`);
}
if (financialworkshopdata['Recommendations'] !== oldData['Recommendations']) {
const oldrec = oldData['Recommendations'] || 'Blank';
changes.push(`Recommendations changed from ${oldrec} to ${financialworkshopdata['Recommendations']}`);
}
this.handleAddAuditLog(
'update',
this.state.assessmentType,
'Assessment',
`${this.state.user.name} Updated worksheet of ${financialworkshopdata['Name of Person']} (${financialworkshopdata.id}) : ${changes} `,
'worksheet',
);
const index = financialworkshops.findIndex(item => item.id == financialworkshopdata.id);
financialworkshops[index] = payload;
this.setState({
loading: false,
financialworkshopdata: {},
financialworkshops: [...financialworkshops],
selectedfinancialworkshop: payload,
showfinancialworkshopmodal: false,
});
return;
}
// Add new financial Workshop
const payload = {
...financialworkshopdata,
['Date of Workshop or Interview']:
financialworkshopdata['Date of Workshop or Interview'] || new Date(),
companyId: this.state.companyId,
surveyId: surveyId,
worksheet: [],
date: new Date(),
};
// const { id } = await matrixFinancialWorkshopsRef.add(payload);
const response = await setFinancialWorkshops(consultantId, payload)
const answeredTopics = this.sortAnsweredTopics(this.state.answeredTopics || []);
const payloadfinal = {
...payload,
id: response.data.data.id,
worksheet:
payload.worksheet && payload.worksheet.length > 0
? payload.worksheet
: answeredTopics.map(itm => ({ ...itm, 'Scoring Comments': '' })),
};
this.handleAddAuditLog(
'add',
this.state.assessmentType,
'Assessment',
`${this.state.user.name} added worksheet for ${payloadfinal['Name of Person']} (${payloadfinal.id})`,
'worksheet',
);
financialworkshops.push(payloadfinal);
this.setState({
loading: false,
financialworkshopdata: {},
financialworkshops: [...financialworkshops],
showfinancialworkshopmodal: false,
selectedfinancialworkshop: payloadfinal,
financialWorkshopViewIndex: 1,
answeredTopics: answeredTopics.map(itm => ({ ...itm, 'Scoring Comments': '' })),
});
} catch (ex) {
console.log(ex.message);
this.setState({
loading: false,
financialworkshopdata: {},
showfinancialworkshopmodal: false,
});
}
};
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter