get('commissions_enable'); if ($commissionsEnable == 'true') { $htmlHeadXtra[] = ''; $commissions = ''; } $includeSession = $plugin->get('include_sessions') === 'true'; $editingCourse = $type === BuyCoursesPlugin::PRODUCT_TYPE_COURSE; $editingSession = $type === BuyCoursesPlugin::PRODUCT_TYPE_SESSION; $entityManager = Database::getManager(); $userRepo = UserManager::getRepository(); $currency = $plugin->getSelectedCurrency(); if (empty($currency)) { Display::addFlash( Display::return_message($plugin->get_lang('CurrencyIsNotConfigured'), 'error') ); $currency = null; } $currencyIso = null; if ($editingCourse) { $course = $entityManager->find('ChamiloCoreBundle:Course', $id); if (!$course) { api_not_allowed(true); } /*if (!$plugin->isValidCourse($course)) { api_not_allowed(true); }*/ $courseItem = $plugin->getCourseForConfiguration($course, $currency); $defaultBeneficiaries = []; $teachers = $course->getTeachers(); $teachersOptions = []; foreach ($teachers as $courseTeacher) { $teacher = $courseTeacher->getUser(); $teachersOptions[] = [ 'text' => $teacher->getCompleteName(), 'value' => $teacher->getId(), ]; $defaultBeneficiaries[] = $teacher->getId(); } if (!empty($courseItem['item_id'])) { $currentBeneficiaries = $plugin->getItemBeneficiaries($courseItem['course_id']); if (!empty($currentBeneficiaries)) { $defaultBeneficiaries = array_column($currentBeneficiaries, 'user_id'); if ($commissionsEnable === 'true') { $defaultCommissions = array_column($currentBeneficiaries, 'commissions'); foreach ($defaultCommissions as $defaultCommission) { $commissions .= $defaultCommission.','; } $commissions = substr($commissions, 0, -1); } } $currencyIso = $courseItem['currency']; $formDefaults = [ 'product_type' => get_lang('Course'), 'id' => $courseItem['course_id'], 'type' => BuyCoursesPlugin::PRODUCT_TYPE_COURSE, 'name' => $courseItem['course_title'], 'visible' => $courseItem['visible'], 'price' => $courseItem['price'], 'tax_perc' => $courseItem['tax_perc'], 'beneficiaries' => $defaultBeneficiaries, $commissionsEnable == 'true' ? 'commissions' : '' => $commissionsEnable == 'true' ? $commissions : '', ]; } else { $formDefaults = [ 'product_type' => get_lang('Course'), 'id' => $courseItem['course_id'], 'type' => BuyCoursesPlugin::PRODUCT_TYPE_COURSE, 'name' => $courseItem['course_title'], 'visible' => false, 'price' => 0, 'tax_perc' => 0, 'beneficiaries' => [], $commissionsEnable == 'true' ? 'commissions' : '' => $commissionsEnable == 'true' ? '' : '', ]; } } elseif ($editingSession) { if (!$includeSession) { api_not_allowed(true); } $session = $entityManager->find('ChamiloCoreBundle:Session', $id); if (!$session) { api_not_allowed(true); } $sessionItem = $plugin->getSessionForConfiguration($session, $currency); $generalCoach = $session->getGeneralCoach(); $generalCoachOption = [ 'text' => $generalCoach->getCompleteName(), 'value' => $generalCoach->getId(), ]; $defaultBeneficiaries = [ $generalCoach->getId(), ]; $courseCoachesOptions = []; $sessionCourses = $session->getCourses(); foreach ($sessionCourses as $sessionCourse) { $courseCoaches = $userRepo->getCoachesForSessionCourse($session, $sessionCourse->getCourse()); foreach ($courseCoaches as $courseCoach) { if ($generalCoach->getId() === $courseCoach->getId()) { continue; } $courseCoachesOptions[] = [ 'text' => $courseCoach->getCompleteName(), 'value' => $courseCoach->getId(), ]; $defaultBeneficiaries[] = $courseCoach->getId(); } } if ($sessionItem['item_id']) { $currentBeneficiaries = $plugin->getItemBeneficiaries($sessionItem['item_id']); } if (!empty($currentBeneficiaries)) { $defaultBeneficiaries = array_column($currentBeneficiaries, 'user_id'); if ($commissionsEnable == 'true') { $defaultCommissions = array_column($currentBeneficiaries, 'commissions'); foreach ($defaultCommissions as $defaultCommission) { $commissions .= $defaultCommission.','; } $commissions = substr($commissions, 0, -1); } } $currencyIso = $sessionItem['currency']; $formDefaults = [ 'product_type' => get_lang('Session'), 'id' => $session->getId(), 'type' => BuyCoursesPlugin::PRODUCT_TYPE_SESSION, 'name' => $sessionItem['session_name'], 'visible' => $sessionItem['visible'], 'price' => $sessionItem['price'], 'tax_perc' => $sessionItem['tax_perc'], 'beneficiaries' => $defaultBeneficiaries, $commissionsEnable == 'true' ? 'commissions' : '' => $commissionsEnable == 'true' ? $commissions : '', ]; } else { api_not_allowed(true); } if ($commissionsEnable === 'true') { $htmlHeadXtra[] = " "; } $globalSettingsParams = $plugin->getGlobalParameters(); $form = new FormValidator('beneficiaries'); $form->addText('product_type', $plugin->get_lang('ProductType'), false); $form->addText('name', get_lang('Name'), false); $form->addCheckBox( 'visible', $plugin->get_lang('VisibleInCatalog'), $plugin->get_lang('ShowOnCourseCatalog') ); $form->addElement( 'number', 'price', [$plugin->get_lang('Price'), null, $currencyIso], ['step' => 0.01] ); $form->addElement( 'number', 'tax_perc', [$plugin->get_lang('TaxPerc'), $plugin->get_lang('TaxPercDescription'), '%'], ['step' => 1, 'placeholder' => $globalSettingsParams['global_tax_perc'].'% '.$plugin->get_lang('ByDefault')] ); $beneficiariesSelect = $form->addSelect( 'beneficiaries', $plugin->get_lang('Beneficiaries'), null, ['multiple' => 'multiple', 'id' => 'selectBox'] ); if ($editingCourse) { $teachersOptions = api_unique_multidim_array($teachersOptions, 'value'); $beneficiariesSelect->addOptGroup($teachersOptions, get_lang('Teachers')); } elseif ($editingSession) { $courseCoachesOptions = api_unique_multidim_array($courseCoachesOptions, 'value'); $beneficiariesSelect->addOptGroup([$generalCoachOption], get_lang('SessionGeneralCoach')); $beneficiariesSelect->addOptGroup($courseCoachesOptions, get_lang('SessionCourseCoach')); } if ($commissionsEnable === 'true') { $platformCommission = $plugin->getPlatformCommission(); $form->addHtml( '