@@ -856,33 +856,14 @@ public function save(PluginFormcreatorFormAnswer $formanswer): ?CommonDBTM {
856856
857857 $ this ->prepareActors ($ form , $ formanswer );
858858
859- if (count ($ this ->requesters ['_users_id_requester ' ]) == 0 ) {
860- $ this ->addActor (PluginFormcreatorTarget_Actor::ACTOR_ROLE_REQUESTER , $ formanswer ->fields ['requester_id ' ], true );
861- $ requesters_id = $ formanswer ->fields ['requester_id ' ];
862- } else {
863- $ requesterAccounts = array_filter ($ this ->requesters ['_users_id_requester ' ], function ($ v ) {
864- return ($ v != 0 );
865- });
866- $ requesters_id = array_shift ($ requesterAccounts );
867- if ($ requesters_id === null ) {
868- // No account for requesters, then fallback on the account used to fill the answers
869- $ requesters_id = $ formanswer ->fields ['requester_id ' ];
870- }
871-
872- // If only one requester, revert array of requesters into a scalar
873- // This is needed to process business rule affecting location of a ticket with the location of the user
874- if (count ($ this ->requesters ['_users_id_requester ' ]) == 1 ) {
875- $ this ->requesters ['_users_id_requester ' ] = array_pop ($ this ->requesters ['_users_id_requester ' ]);
876- }
877- }
878-
879859 $ data ['users_id_recipient ' ] = $ formanswer ->fields ['requester_id ' ];
880860 $ lastUpdater = Session::getLoginUserID ();
881861 $ data ['users_id_lastupdater ' ] = $ lastUpdater != '' ? $ lastUpdater : 0 ;
882862
863+ $ data = $ this ->setTargetRequesters ($ data , $ formanswer );
883864 $ data = $ this ->setTargetType ($ data , $ formanswer );
884865 $ data = $ this ->setTargetSource ($ data , $ formanswer );
885- $ data = $ this ->setTargetEntity ($ data , $ formanswer , $ requesters_id );
866+ $ data = $ this ->setTargetEntity ($ data , $ formanswer , $ this -> firstRequester );
886867 $ data = $ this ->setTargetDueDate ($ data , $ formanswer );
887868 $ data = $ this ->setSLA ($ data , $ formanswer );
888869 $ data = $ this ->setOLA ($ data , $ formanswer );
@@ -893,28 +874,10 @@ public function save(PluginFormcreatorFormAnswer $formanswer): ?CommonDBTM {
893874 $ data = $ this ->setTargetAssociatedItem ($ data , $ formanswer );
894875 $ data = $ this ->setTargetValidation ($ data , $ formanswer );
895876
896- // There is always at least one requester
897- $ data = $ this ->requesters + $ data ;
898-
899877 // Overwrite default actors only if populated
900- if (count ($ this ->observers ['_users_id_observer ' ]) > 0 ) {
901- $ data = $ this ->observers + $ data ;
902- }
903- if (count ($ this ->assigned ['_users_id_assign ' ]) > 0 ) {
904- $ data = $ this ->assigned + $ data ;
905- }
906- if (count ($ this ->assignedSuppliers ['_suppliers_id_assign ' ]) > 0 ) {
907- $ data = $ this ->assignedSuppliers + $ data ;
908- }
909- if (count ($ this ->requesterGroups ['_groups_id_requester ' ]) > 0 ) {
910- $ data = $ this ->requesterGroups + $ data ;
911- }
912- if (count ($ this ->observerGroups ['_groups_id_observer ' ]) > 0 ) {
913- $ data = $ this ->observerGroups + $ data ;
914- }
915- if (count ($ this ->assignedGroups ['_groups_id_assign ' ]) > 0 ) {
916- $ data = $ this ->assignedGroups + $ data ;
917- }
878+ $ data = $ this ->setTargetObservers ($ data , $ formanswer );
879+ $ data = $ this ->setTargeAssigned ($ data , $ formanswer );
880+ $ data = $ this ->setTargetSuppliers ($ data , $ formanswer );
918881
919882 $ data = $ this ->prepareUploadedFiles ($ data , $ formanswer );
920883
0 commit comments