public static function authorizeChainedPayment($course)
 {
     global $CFG;
     $flag = false;
     $current_user = $CFG->current_app->getCurrentUser();
     $course_institution = $course->getApp()->getInstitution();
     if ($course_institution->getAccountManager()->usesChainedPayments()) {
         $flag = true;
     } else {
         if ($seller = $course->getSeller()) {
             if ($seller->getAccountManager()->usesChainedPayments()) {
                 $flag = true;
             }
         }
     }
     if ($current_user->isRemoteUser()) {
         $user_institution = $current_user->getInstitution();
         if ($user_institution->getAccountManager()->usesChainedPayments()) {
             $commission = GcrCommissionTable::getCommission($user_institution, $course->getApp());
             if ($commission) {
                 $rate = $commission->getCommissionRate();
                 if ($rate > 0 && $rate <= 100) {
                     $flag = true;
                 }
             }
         }
     }
     return $flag;
 }
 public static function getCommissionFee($institution, $eschool)
 {
     $commission_fee = 0;
     $eschool_institution = $eschool->getInstitution();
     if ($institution->getId() != $eschool_institution->getid()) {
         $commission = GcrCommissionTable::getCommission($institution, $eschool);
         if ($commission) {
             $commission_rate = $commission->getCommissionRate();
             if ($commission_rate > 0 && $commission_rate <= 100) {
                 $commission_fee = $commission_rate;
             }
         }
     }
     return $commission_fee;
 }
 public function executeCreateCommission(sfWebRequest $request)
 {
     $this->authorizeUser();
     $form = $request->getPostParameters();
     if ($form['commission_rate'] > 0 && $form['commission_rate'] <= 100) {
         $institution = GcrInstitutionTable::getInstitution($form['institution']);
         $eschool = GcrEschoolTable::getEschool($form['eschool']);
         $existing_commission = GcrCommissionTable::getCommission($institution, $eschool);
         if ($existing_commission) {
             $existing_commission->setCommissionRate($form['commission_rate']);
             $existing_commission->save();
         } else {
             GcrCommissionTable::createCommission($institution, $eschool, $form['commission_rate']);
         }
     }
     $this->redirect(GcrEschoolTable::getHome()->getUrl() . '/homeadmin/commission');
 }
 public function copyCommissions($institution, $eschool = false)
 {
     if ($eschool && $this->hasMnetConnection($eschool)) {
         $eschools = array($eschool);
     } else {
         $eschools = $this->getMnetEschools();
     }
     if (count($eschools > 0)) {
         foreach ($eschools as $eschool) {
             $commission = GcrCommissionTable::getCommission($institution, $eschool);
             if ($commission) {
                 GcrCommissionTable::createCommission($this, $eschool, $commission->getCommissionRate());
             }
         }
     }
 }