Skip to content

Commit 7587f06

Browse files
committed
fix: submitters presentation emails
fixed excert email added is_speaker filter condition to member get presentation methods
1 parent 9aa5914 commit 7587f06

3 files changed

Lines changed: 174 additions & 52 deletions

File tree

app/Models/Foundation/Main/Member.php

Lines changed: 143 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2656,16 +2656,26 @@ public function getAcceptedPresentations
26562656
{
26572657
$extraWhere .= " AND mut.id NOT IN (:media_upload_type_id)";
26582658
}
2659+
if($filter->hasFilter("is_speaker")){
2660+
$value = to_boolean($filter->getValue("is_speaker")[0]);
2661+
if($value)
2662+
$extraWhere .= " AND spk.member = :member_id";
2663+
else
2664+
$extraWhere .= " AND spk.member <> :member_id";
2665+
}
26592666
}
2660-
$query = $this->createQuery(sprintf("SELECT p from models\summit\Presentation p
2661-
JOIN p.summit s
2662-
JOIN p.created_by cb
2663-
LEFT JOIN p.selection_plan sel_p
2664-
LEFT JOIN p.materials m
2665-
LEFT JOIN models\summit\PresentationMediaUpload pmu WITH pmu.id = m.id
2667+
$query = $this->createQuery(sprintf("
2668+
SELECT p from models\summit\Presentation p
2669+
JOIN p.summit s
2670+
LEFT JOIN p.speakers a_spk
2671+
LEFT JOIN a_spk.speaker spk
2672+
JOIN p.created_by cb
2673+
LEFT JOIN p.selection_plan sel_p
2674+
LEFT JOIN p.materials m
2675+
LEFT JOIN models\summit\PresentationMediaUpload pmu WITH pmu.id = m.id
26662676
LEFT JOIN pmu.media_upload_type mut
26672677
JOIN p.type t
2668-
JOIN p.category cat
2678+
JOIN p.category cat
26692679
LEFT JOIN p.selected_presentations ssp
26702680
LEFT JOIN ssp.list sspl
26712681
WHERE s.id = :summit_id
@@ -2713,7 +2723,21 @@ public function getAcceptedPresentations
27132723
$v = $filter->getValue("has_not_media_upload_with_type");
27142724
$query = $query->setParameter("media_upload_type_id", $v);
27152725
}
2726+
if($filter->hasFilter("is_speaker")){
2727+
$query->setParameter("member_id", $this->id);
2728+
}
27162729
}
2730+
2731+
Log::debug
2732+
(
2733+
sprintf
2734+
(
2735+
"Member::getAcceptedPresentations id %s query %s",
2736+
$this->id,
2737+
$query->getDQL()
2738+
)
2739+
);
2740+
27172741
return $query->getResult();
27182742
}
27192743

@@ -2745,11 +2769,26 @@ public function hasAcceptedPresentations
27452769
(
27462770
Summit $summit,
27472771
?Filter $filter = null
2748-
)
2772+
):bool
27492773
{
27502774
return count($this->getAcceptedPresentations($summit, $filter)) > 0;
27512775
}
27522776

2777+
/**
2778+
* @param Summit $summit
2779+
* @param Filter|null $filter
2780+
* @return int
2781+
*/
2782+
public function getAcceptedPresentationsCount
2783+
(
2784+
Summit $summit,
2785+
?Filter $filter = null
2786+
):int
2787+
{
2788+
return count($this->getAcceptedPresentations($summit, $filter));
2789+
}
2790+
2791+
27532792
/**
27542793
* @param Summit $summit
27552794
* @param Filter|null $filter
@@ -2759,11 +2798,26 @@ public function hasAlternatePresentations
27592798
(
27602799
Summit $summit,
27612800
?Filter $filter = null
2762-
)
2801+
):bool
27632802
{
27642803
return count($this->getAlternatePresentations($summit, $filter)) > 0;
27652804
}
27662805

2806+
2807+
/**
2808+
* @param Summit $summit
2809+
* @param Filter|null $filter
2810+
* @return int
2811+
*/
2812+
public function getAlternatePresentationsCount
2813+
(
2814+
Summit $summit,
2815+
?Filter $filter = null
2816+
):int
2817+
{
2818+
return count($this->getAlternatePresentations($summit, $filter));
2819+
}
2820+
27672821
/**
27682822
* @param Summit $summit
27692823
* @param Filter|null $filter
@@ -2796,19 +2850,29 @@ public function getAlternatePresentations
27962850
{
27972851
$extraWhere .= " AND mut.id NOT IN (:media_upload_type_id)";
27982852
}
2853+
if($filter->hasFilter("is_speaker")){
2854+
$value = to_boolean($filter->getValue("is_speaker")[0]);
2855+
if($value)
2856+
$extraWhere .= " AND spk.member = :member_id";
2857+
else
2858+
$extraWhere .= " AND spk.member <> :member_id";
2859+
}
27992860
}
28002861

2801-
$query = $this->createQuery("SELECT p from models\summit\Presentation p
2802-
JOIN p.summit s
2803-
JOIN p.created_by cb
2804-
LEFT JOIN p.selection_plan sel_p
2805-
LEFT JOIN p.materials m
2806-
LEFT JOIN models\summit\PresentationMediaUpload pmu WITH pmu.id = m.id
2807-
LEFT JOIN pmu.media_upload_type mut
2808-
JOIN p.type t
2809-
JOIN p.category cat
2810-
WHERE s.id = :summit_id
2811-
AND cb.id = :submitter_id" . $extraWhere);
2862+
$query = $this->createQuery("
2863+
SELECT p from models\summit\Presentation p
2864+
JOIN p.summit s
2865+
LEFT JOIN p.speakers a_spk
2866+
LEFT JOIN a_spk.speaker spk
2867+
JOIN p.created_by cb
2868+
JOIN p.selection_plan sel_p
2869+
LEFT JOIN p.materials m
2870+
LEFT JOIN models\summit\PresentationMediaUpload pmu WITH pmu.id = m.id
2871+
LEFT JOIN pmu.media_upload_type mut
2872+
JOIN p.type t
2873+
JOIN p.category cat
2874+
WHERE s.id = :summit_id
2875+
AND cb.id = :submitter_id" . $extraWhere);
28122876

28132877
$query
28142878
->setParameter('summit_id', $summit->getId())
@@ -2837,10 +2901,23 @@ public function getAlternatePresentations
28372901
$v = $filter->getValue("has_not_media_upload_with_type");
28382902
$query = $query->setParameter("media_upload_type_id", $v);
28392903
}
2904+
if($filter->hasFilter("is_speaker")){
2905+
$query->setParameter("member_id", $this->id);
2906+
}
28402907
}
28412908

28422909
$presentations = $query->getResult();
28432910

2911+
Log::debug
2912+
(
2913+
sprintf
2914+
(
2915+
"Member::getAlternatePresentations id %s query %s",
2916+
$this->id,
2917+
$query->getDQL()
2918+
)
2919+
);
2920+
28442921
foreach ($presentations as $p) {
28452922
if ($p->getSelectionStatus() == Presentation::SelectionStatus_Alternate) {
28462923
$alternate_presentations[] = $p;
@@ -2878,11 +2955,25 @@ public function hasRejectedPresentations
28782955
(
28792956
Summit $summit,
28802957
?Filter $filter = null
2881-
)
2958+
):bool
28822959
{
28832960
return count($this->getRejectedPresentations($summit, $filter)) > 0;
28842961
}
28852962

2963+
/**
2964+
* @param Summit $summit ,
2965+
* @param Filter|null $filter
2966+
* @return int
2967+
*/
2968+
public function getRejectedPresentationsCount
2969+
(
2970+
Summit $summit,
2971+
?Filter $filter = null
2972+
):int
2973+
{
2974+
return count($this->getRejectedPresentations($summit, $filter));
2975+
}
2976+
28862977
/**
28872978
* @param Summit $summit ,
28882979
* @param Filter|null $filter
@@ -2915,20 +3006,29 @@ public function getRejectedPresentations
29153006
{
29163007
$extraWhere .= " AND mut.id NOT IN (:media_upload_type_id)";
29173008
}
3009+
if($filter->hasFilter("is_speaker")){
3010+
$value = to_boolean($filter->getValue("is_speaker")[0]);
3011+
if($value)
3012+
$extraWhere .= " AND spk.member = :member_id";
3013+
else
3014+
$extraWhere .= " AND spk.member <> :member_id";
3015+
}
29183016
}
29193017

29203018
$query = $this->createQuery("SELECT p from models\summit\Presentation p
2921-
JOIN p.summit s
2922-
LEFT JOIN p.selection_plan sel_p
2923-
LEFT JOIN p.materials m
2924-
LEFT JOIN models\summit\PresentationMediaUpload pmu WITH pmu.id = m.id
2925-
LEFT JOIN pmu.media_upload_type mut
2926-
JOIN p.type t
2927-
JOIN p.category cat
3019+
JOIN p.summit s
3020+
LEFT JOIN p.speakers a_spk
3021+
LEFT JOIN a_spk.speaker spk
3022+
LEFT JOIN p.materials m
3023+
LEFT JOIN models\summit\PresentationMediaUpload pmu WITH pmu.id = m.id
3024+
LEFT JOIN pmu.media_upload_type mut
3025+
LEFT JOIN p.selection_plan sel_p
3026+
JOIN p.type t
3027+
JOIN p.category cat
29283028
JOIN p.created_by cb
29293029
WHERE s.id = :summit_id
2930-
AND p.published = 0
2931-
AND cb.id = :submitter_id" . $extraWhere);
3030+
AND p.published = 0
3031+
AND cb.id = :submitter_id " . $extraWhere);
29323032

29333033
$query
29343034
->setParameter('summit_id', $summit->getId())
@@ -2957,10 +3057,23 @@ public function getRejectedPresentations
29573057
$v = $filter->getValue("has_not_media_upload_with_type");
29583058
$query = $query->setParameter("media_upload_type_id", $v);
29593059
}
3060+
if($filter->hasFilter("is_speaker")){
3061+
$query->setParameter("member_id", $this->id);
3062+
}
29603063
}
29613064

29623065
$presentations = $query->getResult();
29633066

3067+
Log::debug
3068+
(
3069+
sprintf
3070+
(
3071+
"Member::getRejectedPresentations id %s query %s",
3072+
$this->id,
3073+
$query->getDQL()
3074+
)
3075+
);
3076+
29643077
foreach ($presentations as $p) {
29653078
if ($p->getSelectionStatus() == Presentation::SelectionStatus_Unaccepted) {
29663079
$rejected_presentations[] = $p;

app/Services/Model/Imp/SubmitterService.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ function
9797
$onDispatchSuccess,
9898
$onDispatchError,
9999
$onDispatchInfo
100-
) {
100+
) use ($payload) {
101101
try {
102102
$this->tx_service->transaction(function () use (
103103
$flow_event,
@@ -107,7 +107,8 @@ function
107107
$test_email_recipient,
108108
$onDispatchSuccess,
109109
$onDispatchError,
110-
$onDispatchInfo
110+
$onDispatchInfo,
111+
$payload
111112
) {
112113
$email_strategy = new SubmitterActionsEmailStrategy($summit, $flow_event);
113114

app/Services/Model/Strategies/EmailActions/SubmitterActionsEmailStrategy.php

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -72,36 +72,44 @@ public function process(Member $submitter,
7272
try {
7373
$type = null;
7474

75-
Log::debug("SubmitterActionsEmailStrategy::send processing submitter {$submitter->getEmail()} - original flow event {$this->flow_event}");
75+
Log::debug
76+
(
77+
sprintf(
78+
"SubmitterActionsEmailStrategy::send processing submitter %s original flow event %s filter %s",
79+
$submitter->getEmail(),
80+
$this->flow_event,
81+
is_null($filter) ? "NOT SET" : $filter->__toString()
82+
)
83+
);
7684

77-
$has_accepted_presentations = $submitter->hasAcceptedPresentations($this->summit, $filter);
85+
$accepted_presentations_count = $submitter->getAcceptedPresentationsCount($this->summit, $filter);
7886

79-
$has_alternate_presentations = $submitter->hasAlternatePresentations($this->summit, $filter);
87+
$alternate_presentations_count = $submitter->getAlternatePresentationsCount($this->summit, $filter);
8088

81-
$has_rejected_presentations = $submitter->hasRejectedPresentations($this->summit, $filter);
89+
$rejected_presentations_count = $submitter->getRejectedPresentationsCount($this->summit, $filter);
8290

8391
Log::debug
8492
(
8593
sprintf
8694
(
87-
"SubmitterActionsEmailStrategy::send submitter %s accepted %b alternates %b rejected %b.",
95+
"SubmitterActionsEmailStrategy::send submitter %s accepted %s alternates %s rejected %s.",
8896
$submitter->getEmail(),
89-
$has_accepted_presentations,
90-
$has_alternate_presentations,
91-
$has_rejected_presentations
97+
$accepted_presentations_count,
98+
$alternate_presentations_count,
99+
$rejected_presentations_count
92100
)
93101
);
94102

95103
if(!is_null($onInfo))
96104
$onInfo(
97105
sprintf
98106
(
99-
"Trying to send email %s to submitter %s accepted %b alternate %b rejected %b.",
107+
"Trying to send email %s to submitter %s accepted %s alternate %s rejected %s.",
100108
$this->flow_event,
101109
$submitter->getEmail(),
102-
$has_accepted_presentations,
103-
$has_alternate_presentations,
104-
$has_rejected_presentations
110+
$accepted_presentations_count,
111+
$alternate_presentations_count,
112+
$rejected_presentations_count
105113
)
106114
);
107115

@@ -133,11 +141,11 @@ public function process(Member $submitter,
133141
$onInfo(
134142
sprintf
135143
(
136-
"Submitter %s accepted %b alternate %b rejected %b already has an email of type %s.",
144+
"Submitter %s accepted %s alternate %s rejected %s already has an email of type %s.",
137145
$submitter->getEmail(),
138-
$has_accepted_presentations,
139-
$has_alternate_presentations,
140-
$has_rejected_presentations,
146+
$accepted_presentations_count,
147+
$alternate_presentations_count,
148+
$rejected_presentations_count,
141149
$this->flow_event
142150
)
143151
);
@@ -158,11 +166,11 @@ public function process(Member $submitter,
158166
$onInfo(
159167
sprintf
160168
(
161-
"Excluded submitter %s accepted %b alternate %b rejected %b for original email %s.",
169+
"Excluded submitter %s accepted %b alternate %s rejected %s for original email %s.",
162170
$submitter->getEmail(),
163-
$has_accepted_presentations,
164-
$has_alternate_presentations,
165-
$has_rejected_presentations,
171+
$accepted_presentations_count,
172+
$alternate_presentations_count,
173+
$rejected_presentations_count,
166174
$this->flow_event
167175
)
168176
);

0 commit comments

Comments
 (0)