Skip to content

Commit 812468c

Browse files
committed
feat: trim any length-limited values
1 parent 6aee3a7 commit 812468c

File tree

1 file changed

+29
-22
lines changed

1 file changed

+29
-22
lines changed

main.js

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ ipcMain.on("upload-csv", (event, dataArray, version) => {
113113
xmlBase.Header.CollectionDetails.Year = version.split(".")[0];
114114
let refNumber = 0;
115115

116+
// Test for Empty Values
116117
const CheckBoxPattern = /0 checked out/;
117118
for (let I = 1; I < dataArray.length; I++) {
118119
for (let i = 0; i < dataArray[I].length; i++) {
@@ -121,13 +122,15 @@ ipcMain.on("upload-csv", (event, dataArray, version) => {
121122
}
122123
}
123124
}
125+
126+
// Map CSV values to XML structure
124127
for (let i = 1; i < dataArray.length; i++) {
125128
refNumber = i.toString().padStart(4, "0");
126129
xmlBase.Learner.push({
127130
LearnRefNumber: refNumber,
128131
ULN: dataArray[i][2],
129-
FamilyName: dataArray[i][4],
130-
GivenNames: dataArray[i][3],
132+
FamilyName: dataArray[i][4].trim(),
133+
GivenNames: dataArray[i][3].trim(),
131134
DateOfBirth: dataArray[i][6],
132135
Ethnicity: dataArray[i][8],
133136
Sex: dataArray[i][5],
@@ -138,6 +141,7 @@ ipcMain.on("upload-csv", (event, dataArray, version) => {
138141
Postcode: dataArray[i][10].trim(),
139142
AddLine1: dataArray[i][11]
140143
.replace(/[^a-zA-Z0-9\s]/g, "")
144+
.trim()
141145
.substring(0, 50),
142146
TelNo: dataArray[i][12] || undefined,
143147
LLDDHealthProb: dataArray[i][13] != "99" ? 1 : 9,
@@ -268,7 +272,7 @@ ipcMain.on("upload-csv", (event, dataArray, version) => {
268272
{
269273
// Aim type (programme aim 1)
270274
LearnAimRef: dataArray[i][35].trim(), // Programme aim 1 Learning ref
271-
AimType: dataArray[i][34], // Aim type (programme aim 1)
275+
AimType: dataArray[i][34].trim(), // Aim type (programme aim 1)
272276
AimSeqNumber: "1",
273277
LearnStartDate: dataArray[i][36], // Start date (aim 1)
274278
LearnPlanEndDate: dataArray[i][37], // Planned end date (aim 1)
@@ -277,9 +281,9 @@ ipcMain.on("upload-csv", (event, dataArray, version) => {
277281
OTJActHours: dataArray[i][43] || undefined, // Actual hours (aim 1)
278282
ProgType: dataArray[i][39], // Programme type (aim 1)
279283
StdCode: dataArray[i][40] || undefined, // Apprentice standard (aim 1)
280-
DelLocPostCode: dataArray[i][41], // Delivery postcode (aim 1)
281-
EPAOrgID: dataArray[i][45] || undefined, // EPAO ID (aim 1)
282-
ConRefNumber: dataArray[i][44] || undefined, // Contract Ref (aim 1)
284+
DelLocPostCode: dataArray[i][41].trim(), // Delivery postcode (aim 1)
285+
EPAOrgID: dataArray[i][45].trim() || undefined, // EPAO ID (aim 1)
286+
ConRefNumber: dataArray[i][44].trim() || undefined, // Contract Ref (aim 1)
283287
CompStatus: dataArray[i][60] || undefined, // Completion status (aim 1)
284288
LearnActEndDate: dataArray[i][61] || undefined, // Actual end date (aim 1)
285289
WithdrawReason: dataArray[i][64] || undefined, // Withdrawal reason (aim 1)
@@ -351,18 +355,18 @@ ipcMain.on("upload-csv", (event, dataArray, version) => {
351355
? [
352356
{
353357
LearnAimRef: dataArray[i][67].trim(), // Programme aim 2 Learning ref
354-
AimType: dataArray[i][66], // Aim type (programme aim 2)
358+
AimType: dataArray[i][66].trim(), // Aim type (programme aim 2)
355359
AimSeqNumber: "2",
356360
LearnStartDate: dataArray[i][68], // Start date (aim 2)
357361
LearnPlanEndDate: dataArray[i][69], // Planned end date (aim 2)
358362
FundModel: dataArray[i][70], // Funding module (aim 2)
359363
PHours: dataArray[i][74] || undefined, // Planned hours (aim 2)
360364
ProgType: dataArray[i][71], // Programme type (aim 2)
361365
StdCode: dataArray[i][72] || undefined, // Apprentice standard (aim 2)
362-
DelLocPostCode: dataArray[i][73], // Delivery postcode (aim 2)
366+
DelLocPostCode: dataArray[i][73].trim(), // Delivery postcode (aim 2)
363367
OTJActHours: dataArray[i][75] || undefined, // Actual hours (aim 2)
364-
EPAOrgID: dataArray[i][77] || undefined, // EPAO ID (aim 2)
365-
ConRefNumber: dataArray[i][76] || undefined, // Contract Ref (aim 2)
368+
EPAOrgID: dataArray[i][77].trim() || undefined, // EPAO ID (aim 2)
369+
ConRefNumber: dataArray[i][76].trim() || undefined, // Contract Ref (aim 2)
366370
CompStatus: dataArray[i][92] || undefined, // Completion status (aim 2)
367371
LearnActEndDate: dataArray[i][93] || undefined, // Actual end date (aim 2)
368372
WithdrawReason: dataArray[i][96] || undefined, // Withdrawal reason (aim 2)
@@ -435,18 +439,18 @@ ipcMain.on("upload-csv", (event, dataArray, version) => {
435439
{
436440
// Aim type (programme aim 3)
437441
LearnAimRef: dataArray[i][99].trim(), // Programme aim 3 Learning ref
438-
AimType: dataArray[i][98], // Aim type (programme aim 3)
442+
AimType: dataArray[i][98].trim(), // Aim type (programme aim 3)
439443
AimSeqNumber: "3",
440444
LearnStartDate: dataArray[i][100], // Start date (aim 3)
441445
LearnPlanEndDate: dataArray[i][101], // Planned end date (aim 3)
442446
FundModel: dataArray[i][102], // Funding module (aim 3)
443447
ProgType: dataArray[i][103], // Programme type (aim 3)
444448
StdCode: dataArray[i][104] || undefined, // Apprentice standard (aim 3)
445-
DelLocPostCode: dataArray[i][105], // Delivery postcode (aim 3)
449+
DelLocPostCode: dataArray[i][105].trim(), // Delivery postcode (aim 3)
446450
PHours: dataArray[i][106] || undefined, // Planned hours (aim 3)
447451
OTJActHours: dataArray[i][107] || undefined, // Actual hours (aim 3)
448-
EPAOrgID: dataArray[i][109] || undefined, // EPAO ID (aim 3)
449-
ConRefNumber: dataArray[i][108] || undefined, // Contract Ref (aim 3)
452+
EPAOrgID: dataArray[i][109].trim() || undefined, // EPAO ID (aim 3)
453+
ConRefNumber: dataArray[i][108].trim() || undefined, // Contract Ref (aim 3)
450454
CompStatus: dataArray[i][124] || undefined, // Completion status (aim 3)
451455
LearnActEndDate: dataArray[i][125] || undefined, // Actual end date (aim 3)
452456
WithdrawReason: dataArray[i][127] || undefined, // Withdrawal reason (aim 3)
@@ -519,18 +523,18 @@ ipcMain.on("upload-csv", (event, dataArray, version) => {
519523
{
520524
// Aim type (programme aim 4)
521525
LearnAimRef: dataArray[i][131].trim(), // Programme aim 4 Learning ref
522-
AimType: dataArray[i][130], // Aim type (programme aim 4)
526+
AimType: dataArray[i][130].trim(), // Aim type (programme aim 4)
523527
AimSeqNumber: "4",
524528
LearnStartDate: dataArray[i][132], // Start date (aim 4)
525529
LearnPlanEndDate: dataArray[i][133], // Planned end date (aim 4)
526530
FundModel: dataArray[i][134], // Funding module (aim 4)
527531
PHours: dataArray[i][138] || undefined, // Planned hours (aim 4)
528532
ProgType: dataArray[i][135], // Programme type (aim 4)
529533
StdCode: dataArray[i][136] || undefined, // Apprentice standard (aim 4)
530-
DelLocPostCode: dataArray[i][137], // Delivery postcode (aim 4)
534+
DelLocPostCode: dataArray[i][137].trim(), // Delivery postcode (aim 4)
531535
OTJActHours: dataArray[i][139] || undefined, // Actual hours (aim 4)
532-
EPAOrgID: dataArray[i][141] || undefined, // EPAO ID (aim 4)
533-
ConRefNumber: dataArray[i][140] || undefined, // Contract Ref (aim 4)
536+
EPAOrgID: dataArray[i][141].trim() || undefined, // EPAO ID (aim 4)
537+
ConRefNumber: dataArray[i][140].trim() || undefined, // Contract Ref (aim 4)
534538
CompStatus: dataArray[i][156] || undefined, // Completion status (aim 4)
535539
LearnActEndDate: dataArray[i][157] || undefined, // Actual end date (aim 4)
536540
WithdrawReason: dataArray[i][159] || undefined, // Withdrawal reason (aim 4)
@@ -603,18 +607,18 @@ ipcMain.on("upload-csv", (event, dataArray, version) => {
603607
{
604608
// Aim type (programme aim 5)
605609
LearnAimRef: dataArray[i][163].trim(), // Programme aim 5 Learning ref
606-
AimType: dataArray[i][162], // Aim type (programme aim 5)
610+
AimType: dataArray[i][162].trim(), // Aim type (programme aim 5)
607611
AimSeqNumber: "5",
608612
LearnStartDate: dataArray[i][164], // Start date (aim 5)
609613
LearnPlanEndDate: dataArray[i][165], // Planned end date (aim 5)
610614
FundModel: dataArray[i][166], // Funding module (aim 5)
611615
ProgType: dataArray[i][167], // Programme type (aim 5)
612616
StdCode: dataArray[i][168] || undefined, // Apprentice standard (aim 5)
613-
DelLocPostCode: dataArray[i][169], // Delivery postcode (aim 5)
617+
DelLocPostCode: dataArray[i][169].trim(), // Delivery postcode (aim 5)
614618
PHours: dataArray[i][170] || undefined, // Planned hours (aim 5)
615619
OTJActHours: dataArray[i][171] || undefined, // Actual hours (aim 5)
616-
EPAOrgID: dataArray[i][173] || undefined, // EPAO ID (aim 5)
617-
ConRefNumber: dataArray[i][172] || undefined, // Contract Ref (aim 5)
620+
EPAOrgID: dataArray[i][173].trim() || undefined, // EPAO ID (aim 5)
621+
ConRefNumber: dataArray[i][172].trim() || undefined, // Contract Ref (aim 5)
618622
CompStatus: dataArray[i][188] || undefined, // Completion status (aim 5)
619623
LearnActEndDate: dataArray[i][189] || undefined, // Actual end date (aim 5)
620624
WithdrawReason: dataArray[i][192] || undefined, // Withdrawal reason (aim 5)
@@ -684,6 +688,7 @@ ipcMain.on("upload-csv", (event, dataArray, version) => {
684688
});
685689
}
686690

691+
// Create the XML file
687692
let xml = xmlbuilder
688693
.create(
689694
{
@@ -699,11 +704,13 @@ ipcMain.on("upload-csv", (event, dataArray, version) => {
699704
pretty: true,
700705
});
701706

707+
// Build the XML file path
702708
XMLfilePath = path.join(
703709
tempDir,
704710
`ILR-10085696-${version.split(".")[0]}-${formatDateTime(currentDate)}-01.xml`,
705711
);
706712

713+
// Save the XML file
707714
fs.writeFile(XMLfilePath, xml, (err) => {
708715
if (err) {
709716
event.reply("xml-creation-failed", err.message);

0 commit comments

Comments
 (0)