Skip to content

Commit c5eedee

Browse files
Merge pull request #375 from AmericaSCORESBayArea/sandbox
Add statistics per session using new fields `Count_Attendance_True__c` and `Count_Attendance_False__c`
2 parents 774e92c + ac3a0e1 commit c5eedee

File tree

2 files changed

+83
-14
lines changed

2 files changed

+83
-14
lines changed

src/main/mule/coach.xml

Lines changed: 54 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,9 @@ payload map ( payload01 ,
181181
SystemModstamp,
182182
Team_Season__c,
183183
Session_Start__c,
184-
Session_End__c
184+
Session_End__c,
185+
Count_Attendance_True__c,
186+
Count_Attendance_False__c
185187
FROM
186188
Session__c
187189
WHERE
@@ -208,6 +210,12 @@ payload map ( payload01 ,
208210
<ee:message>
209211
<ee:set-payload><![CDATA[%dw 2.0
210212
output application/json
213+
214+
fun ratio(t, f): String =
215+
if (t as Number + f as Number != 0)
216+
((t as Number / (t as Number + f as Number)) as Number * 100)
217+
as String { format: "##0.00", roundMode: "HALF_UP" } ++ "%"
218+
else "100%"
211219
---
212220
payload map ( payload01 , indexOfPayload01 ) -> {
213221
TeamSeasonId: vars.teamSeasonId,
@@ -216,7 +224,11 @@ payload map ( payload01 , indexOfPayload01 ) -> {
216224
SessionDate: payload01.Session_Date__c as String default "",
217225
SessionStartTime: payload01.Session_Start__c as LocalTime as String default "",
218226
SessionEndTime: payload01.Session_End__c as LocalTime as String default "",
219-
SessionTopic: payload01.Session_Topic__c default ""
227+
SessionTopic: payload01.Session_Topic__c default "",
228+
CountAttendanceTotal: (payload01.Count_Attendance_False__c as Number + payload01.Count_Attendance_True__c as Number) as String,
229+
CountAttendanceTrue: (payload01.Count_Attendance_True__c as Number) as String,
230+
CountAttendanceFalse: (payload01.Count_Attendance_False__c as Number) as String,
231+
AttendancesRatio: ratio(payload01.Count_Attendance_True__c, payload01.Count_Attendance_False__c)
220232
}]]></ee:set-payload>
221233
</ee:message>
222234
</ee:transform>
@@ -270,7 +282,9 @@ payload map ( payload01 , indexOfPayload01 ) -> {
270282
Session_Date__c,
271283
Session_Start__c,
272284
Session_End__c,
273-
Number_of_Students_Present__c
285+
Number_of_Students_Present__c,
286+
Count_Attendance_True__c,
287+
Count_Attendance_False__c
274288
From
275289
Sessions__r
276290
WHERE
@@ -327,7 +341,9 @@ payload map ( payload01 , indexOfPayload01 ) -> {
327341
Session_Date__c,
328342
Session_Start__c,
329343
Session_End__c,
330-
Number_of_Students_Present__c
344+
Number_of_Students_Present__c,
345+
Count_Attendance_True__c,
346+
Count_Attendance_False__c
331347
FROM
332348
Sessions__r
333349
WHERE
@@ -367,6 +383,12 @@ payload map ( payload01 , indexOfPayload01 ) -> {
367383
<ee:message>
368384
<ee:set-payload><![CDATA[%dw 2.0
369385
output application/json
386+
387+
fun ratio(t, f): String =
388+
if (t as Number + f as Number != 0)
389+
((t as Number / (t as Number + f as Number)) as Number * 100)
390+
as String { format: "##0.00", roundMode: "HALF_UP" } ++ "%"
391+
else "100%"
370392
---
371393
payload map ( payload01 , indexOfPayload01 ) -> {
372394
Enrollments: payload01.Enrollments__r map ( enrollmentsr , indexOfEnrollmentsr ) -> {
@@ -388,7 +410,11 @@ payload map ( payload01 , indexOfPayload01 ) -> {
388410
SessionStartTime: payload01.Session_Start__c as LocalTime as String default "",
389411
SessionEndTime: payload01.Session_End__c as LocalTime as String default "",
390412
SessionTopic: sessionsr.Session_Topic__c,
391-
TotalStudentsPresent: sessionsr.Number_of_Students_Present__c
413+
TotalStudentsPresent: sessionsr.Number_of_Students_Present__c,
414+
CountAttendanceTotal: (sessionsr.Count_Attendance_False__c as Number + sessionsr.Count_Attendance_True__c as Number) as String,
415+
CountAttendanceTrue: (sessionsr.Count_Attendance_True__c as Number) as String,
416+
CountAttendanceFalse: (sessionsr.Count_Attendance_False__c as Number) as String,
417+
AttendancesRatio: ratio(sessionsr.Count_Attendance_True__c, sessionsr.Count_Attendance_False__c)
392418
},
393419
CoachSoccer: vars.coachId,
394420
CoachWriting: vars.coachId,
@@ -902,7 +928,9 @@ payload map ( payload01 , indexOfPayload01 ) -> {
902928
Team_Season__r.Team__r.School_Site__r.Region__c,
903929
Team_Season__r.Team__r.SCORES_Program_Type__c,
904930
Team_Season__r.Team__r.Uses_Headcount__c,
905-
Session_Weekday__c
931+
Session_Weekday__c,
932+
Count_Attendance_True__c,
933+
Count_Attendance_False__c
906934
FROM
907935
Session__c
908936
WHERE
@@ -963,7 +991,9 @@ payload map ( payload01 , indexOfPayload01 ) -> {
963991
Team_Season__r.Team__r.School_Site__r.Region__c,
964992
Team_Season__r.Team__r.SCORES_Program_Type__c,
965993
Team_Season__r.Team__r.Uses_Headcount__c,
966-
Session_Weekday__c
994+
Session_Weekday__c,
995+
Count_Attendance_True__c,
996+
Count_Attendance_False__c
967997
FROM
968998
Session__c
969999
WHERE
@@ -1023,7 +1053,9 @@ payload map ( payload01 , indexOfPayload01 ) -> {
10231053
Team_Season__r.Team__r.School_Site__r.Region__c,
10241054
Team_Season__r.Team__r.SCORES_Program_Type__c,
10251055
Team_Season__r.Team__r.Uses_Headcount__c,
1026-
Session_Weekday__c
1056+
Session_Weekday__c,
1057+
Count_Attendance_True__c,
1058+
Count_Attendance_False__c
10271059
FROM
10281060
Session__c
10291061
WHERE
@@ -1079,7 +1111,9 @@ payload map ( payload01 , indexOfPayload01 ) -> {
10791111
Team_Season__r.Team__r.School_Site__r.Region__c,
10801112
Team_Season__r.Team__r.SCORES_Program_Type__c,
10811113
Team_Season__r.Team__r.Uses_Headcount__c,
1082-
Session_Weekday__c
1114+
Session_Weekday__c,
1115+
Count_Attendance_True__c,
1116+
Count_Attendance_False__c
10831117
FROM
10841118
Session__c
10851119
WHERE
@@ -1120,6 +1154,12 @@ payload map ( payload01 , indexOfPayload01 ) -> {
11201154
<ee:message>
11211155
<ee:set-payload><![CDATA[%dw 2.0
11221156
output application/json
1157+
1158+
fun ratio(t, f): String =
1159+
if (t as Number + f as Number != 0)
1160+
((t as Number / (t as Number + f as Number)) as Number * 100)
1161+
as String { format: "##0.00", roundMode: "HALF_UP" } ++ "%"
1162+
else "100%"
11231163
---
11241164
payload map ( payload01 , indexOfPayload01 ) -> {
11251165
TeamSeasonId: payload01.Team_Season__c default "",
@@ -1140,7 +1180,11 @@ payload map ( payload01 , indexOfPayload01 ) -> {
11401180
SeasonName: payload01.Team_Season__r.Season__r.Name default "",
11411181
Region: payload01.Team_Season__r.Team__r.School_Site__r.Region__c default "",
11421182
ProgramType: payload01.Team_Season__r.Team__r.SCORES_Program_Type__c,
1143-
UsesHeadcount: payload01.Team_Season__r.Team__r.Uses_Headcount__c
1183+
UsesHeadcount: payload01.Team_Season__r.Team__r.Uses_Headcount__c,
1184+
CountAttendanceTotal: (payload01.Count_Attendance_False__c as Number + payload01.Count_Attendance_True__c as Number) as String,
1185+
CountAttendanceTrue: (payload01.Count_Attendance_True__c as Number) as String,
1186+
CountAttendanceFalse: (payload01.Count_Attendance_False__c as Number) as String,
1187+
AttendancesRatio: ratio(payload01.Count_Attendance_True__c, payload01.Count_Attendance_False__c)
11441188
}]]></ee:set-payload>
11451189
</ee:message>
11461190
</ee:transform>

src/main/mule/sessions.xml

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/htt
3535
Session_Start__c,
3636
Session_End__c,
3737
Session_Topic__c,
38-
Team_Season__c
38+
Team_Season__c,
39+
Count_Attendance_True__c,
40+
Count_Attendance_False__c
3941
FROM
4042
Session__c
4143
WHERE
@@ -55,6 +57,13 @@ http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/htt
5557
<ee:message>
5658
<ee:set-payload><![CDATA[%dw 2.0
5759
output application/json
60+
61+
fun ratio(t, f): String =
62+
if (t as Number + f as Number != 0)
63+
((t as Number / (t as Number + f as Number)) as Number * 100)
64+
as String { format: "##0.00", roundMode: "HALF_UP" } ++ "%"
65+
else "100%"
66+
5867
---
5968
payload map ( payload01 , indexOfPayload01 ) -> {
6069
TeamSeasonId: payload01.Team_Season__c,
@@ -63,7 +72,11 @@ payload map ( payload01 , indexOfPayload01 ) -> {
6372
SessionDate: payload01.Session_Date__c as String,
6473
SessionStartTime: payload01.Session_Start__c as LocalTime as String default "",
6574
SessionEndTime: payload01.Session_End__c as LocalTime as String default "",
66-
SessionTopic: payload01.Session_Topic__c
75+
SessionTopic: payload01.Session_Topic__c,
76+
CountAttendanceTotal: (payload01.Count_Attendance_False__c as Number + payload01.Count_Attendance_True__c as Number) as String,
77+
CountAttendanceTrue: (payload01.Count_Attendance_True__c as Number) as String,
78+
CountAttendanceFalse: (payload01.Count_Attendance_False__c as Number) as String,
79+
AttendancesRatio: ratio(payload01.Count_Attendance_True__c, payload01.Count_Attendance_False__c)
6780
}]]></ee:set-payload>
6881
</ee:message>
6982
</ee:transform>
@@ -104,7 +117,9 @@ payload map ( payload01 , indexOfPayload01 ) -> {
104117
Boys_Present__c,
105118
Girls_Present__c,
106119
Nonbinary_Present__c,
107-
Unknown_Present__c
120+
Unknown_Present__c,
121+
Count_Attendance_True__c,
122+
Count_Attendance_False__c
108123
FROM
109124
Session__c
110125
WHERE
@@ -123,6 +138,12 @@ payload map ( payload01 , indexOfPayload01 ) -> {
123138
<ee:message>
124139
<ee:set-payload><![CDATA[%dw 2.0
125140
output application/json
141+
142+
fun ratio(t, f): String =
143+
if (t as Number + f as Number != 0)
144+
((t as Number / (t as Number + f as Number)) as Number * 100)
145+
as String { format: "##0.00", roundMode: "HALF_UP" } ++ "%"
146+
else "100%"
126147
---
127148
(payload map ( payload01 , indexOfPayload01 ) -> {
128149
SessionId: payload01.Id,
@@ -137,7 +158,11 @@ output application/json
137158
NonbinaryPresent: payload01.Nonbinary_Present__c,
138159
UnknownPresent: payload01.Unknown_Present__c,
139160
UsesHeadcount: payload01.Team_Season__r.Team__r.Uses_Headcount__c,
140-
ProgramType: payload01.Team_Season__r.Team__r.SCORES_Program_Type__c
161+
ProgramType: payload01.Team_Season__r.Team__r.SCORES_Program_Type__c,
162+
CountAttendanceTotal: (payload01.Count_Attendance_False__c as Number + payload01.Count_Attendance_True__c as Number) as String,
163+
CountAttendanceTrue: (payload01.Count_Attendance_True__c as Number) as String,
164+
CountAttendanceFalse: (payload01.Count_Attendance_False__c as Number) as String,
165+
AttendancesRatio: ratio(payload01.Count_Attendance_True__c, payload01.Count_Attendance_False__c)
141166
}) reduce ($$ ++ $)]]></ee:set-payload>
142167
</ee:message>
143168
</ee:transform>

0 commit comments

Comments
 (0)