Skip to content

Commit 308cb74

Browse files
committed
[smarcet] - #13374
* bugfixing on merge procedure
1 parent 17603a2 commit 308cb74

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

survey_builder/code/model/SurveyManager.php

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,7 @@ public function doClone(ISurveyTemplate $template, $clone_name = null, $parent_i
566566
}
567567
}
568568
if($clone_step instanceof SurveyThankYouStepTemplate) {
569-
// clone email ?
569+
// clone email ?
570570
}
571571
if($clone_step instanceof SurveyDynamicEntityStepTemplate && !is_null($cloned_entity))
572572
{
@@ -602,7 +602,9 @@ public function mergeSurveys(array $surveys_2_merge, $merge_result_survey_title
602602

603603
$query_ids = implode(",", $surveys_2_merge);
604604
$surveys_instances = Survey::get()->filter(
605-
['IsTest' => 0]
605+
[
606+
'IsTest' => 0,
607+
]
606608
)->where("TemplateID IN ({$query_ids})")->sort("CreatedByID", "ASC");
607609

608610
$last_user_id = null;
@@ -611,14 +613,17 @@ public function mergeSurveys(array $surveys_2_merge, $merge_result_survey_title
611613
foreach($surveys_instances as $survey_instance){
612614
$current_user_id = intval($survey_instance->CreatedByID);
613615
if(!is_null($last_user_id) && $last_user_id != $current_user_id && count($user_surveys) > 0){
614-
echo sprintf("processing %s surveys for member id %s", count($user_surveys), $current_user_id).PHP_EOL;
615-
$this->processMerge($new_template, $current_user_id, $user_surveys);
616+
echo sprintf("processing %s surveys for member id %s", count($user_surveys), $last_user_id).PHP_EOL;
617+
$this->processMerge($new_template, $last_user_id, $user_surveys);
618+
// resets surveys per user
619+
$user_surveys = [];
616620
}
617621
$last_user_id = $current_user_id;
618622
$user_surveys[] = $survey_instance;
619623
}
620624
if(count($user_surveys) > 0){
621-
$this->processMerge($new_template, $current_user_id, $user_surveys);
625+
echo sprintf("processing %s surveys for member id %s", count($user_surveys), $last_user_id).PHP_EOL;
626+
$this->processMerge($new_template, $last_user_id, $user_surveys);
622627
}
623628
});
624629
}
@@ -649,6 +654,7 @@ private function processMerge($new_template, $current_user_id, &$user_surveys){
649654
}
650655
}
651656
// merge surveys
657+
echo sprintf("member id %s - former survey id %s - new survey id %s", $current_user_id, $last_user_survey->ID, $new_survey_instance->ID).PHP_EOL;
652658
foreach ($new_survey_instance->getSteps() as $step) {
653659
if ($step instanceof ISurveyRegularStep) {
654660
$former_step = $last_user_survey->getStep($step->template()->title());
@@ -661,14 +667,16 @@ private function processMerge($new_template, $current_user_id, &$user_surveys){
661667
$former_answers[$answer->Question()->Name] = SurveyAnswerValueTranslator::translate($answer->Value, $answer->Question(), $new_question);
662668
}
663669

664-
echo sprintf("got %s aswers from former step %s", count($former_answers), $former_step->template()->title()) . PHP_EOL;
670+
echo sprintf("got %s answers from former step %s", count($former_answers), $former_step->template()->title()) . PHP_EOL;
665671
$this->completeStep($step, $former_answers, $new_survey_instance->Lang);
666672
}
667673
if ($step instanceof ISurveyDynamicEntityStep && count($former_entity_surveys) > 0) {
668674
echo sprintf("processing deployments for member id %s (%s)", $current_user_id, count($former_entity_surveys)) . PHP_EOL;
669675
foreach ($former_entity_surveys as $key => $former_entity_survey) {
670676
// create new deployment
677+
echo sprintf("adding deployment %s for member id %s", $key, $current_user_id) . PHP_EOL;
671678
$new_entity_survey = $this->buildEntitySurvey($step, $current_user_id, $new_survey_instance->Lang);
679+
echo sprintf("member id %s - former deployment id %s - new deployment id %s", $current_user_id, $former_entity_survey->ID, $new_entity_survey->ID).PHP_EOL;
672680
foreach ($new_entity_survey->getSteps() as $new_survey_instance_step) {
673681
$former_step = $former_entity_survey->getStep($new_survey_instance_step->template()->title());
674682
if (is_null($former_step)) continue;
@@ -693,11 +701,9 @@ private function processMerge($new_template, $current_user_id, &$user_surveys){
693701
$new_survey_instance->Created = $last_user_survey->Created;
694702
$new_survey_instance->LastEdited = $last_user_survey->LastEdited;
695703
$new_survey_instance->write();
696-
$user_surveys = [];
697704
}
698705
catch (Exception $ex){
699706
echo $ex->getMessage().PHP_EOL;
700-
$user_surveys = [];
701707
}
702708
}
703709

0 commit comments

Comments
 (0)