private function disableCpmCommissionInCampaigns() {
     $campaign = new Pap_Db_Campaign();
     $campaigns = $campaign->loadCollection();
     foreach ($campaigns as $campaign) {
         $commissionType = new Pap_Db_CommissionType();
         $commissionType->setCampaignId($campaign->getId());
         $commissionType->setType(Pap_Common_Constants::TYPE_CPM);
         try {
             $commissionType->loadFromData();
             $commissionType->setStatus(Pap_Db_CommissionType::STATUS_DISABLED);
             $commissionType->save();
         } catch (Gpf_DbEngine_NoRowException $e) {
         }
     }
 }
	protected function insertCommissionType($campaignId, $recurringCommission, $recurringDateType, $pap4CommType) {
		$obj = new Pap_Db_CommissionType();
		$obj->setType($pap4CommType);
		$obj->setStatus(Pap_Common_Constants::ESTATUS_ENABLED);

		// set commission type approval
		$pap3ApprovalStatus = '';
		if($pap4CommType == Pap_Common_Constants::TYPE_CLICK) {
			$pap3ApprovalStatus = $this->getPap3Setting($campaignId, 'Aff_camp_clickapproval');
		} else {
			$pap3ApprovalStatus = $this->getPap3Setting($campaignId, 'Aff_camp_saleapproval');
		}
		if($pap3ApprovalStatus == 2) {
			$obj->setApproval(Pap_Db_CommissionType::APPROVAL_AUTOMATIC);
		} else {
			$obj->setApproval(Pap_Db_CommissionType::APPROVAL_MANUAL);
		}

		// set recurring type
		if($recurringCommission == 0 || $recurringDateType == 0) {
			$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_NONE);
		} else {
			switch($recurringDateType) {
				case Pap3Compatibility_Migration_Pap3Constants::RECURRINGTYPE_WEEKLY:
					$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_WEEKLY); break;

				case Pap3Compatibility_Migration_Pap3Constants::RECURRINGTYPE_MONTHLY:
					$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_MONTHLY); break;

				case Pap3Compatibility_Migration_Pap3Constants::RECURRINGTYPE_QUARTERLY:
					$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_QUARTERLY); break;

				case Pap3Compatibility_Migration_Pap3Constants::RECURRINGTYPE_BIANNUALLY:
					$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_SEMIANNUALLY); break;

				case Pap3Compatibility_Migration_Pap3Constants::RECURRINGTYPE_YEARLY:
					$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_YEARLY); break;
				default:
					$obj->setRecurrencePresetId(Pap_Db_CommissionType::RECURRENCE_NONE);
			}
		}

		$obj->setZeroOrdersCommission(Gpf::YES);
        $obj->setSaveZeroCommission(Gpf::YES);
		$obj->setCampaignId($campaignId);
		$obj->save();

		$this->countCommTypes++;
		return $obj;
	}
	/**
	 * changes status for commissiontype record
	 *
	 * @service commission write
	 * @param $fields
	 * @return Gpf_Rpc_Action
	 */
	public function changeCommissionTypeStatus(Gpf_Rpc_Params $params) {
		$action = new Gpf_Rpc_Action($params);
		$action->setErrorMessage($this->_('Failed to change status'));
		$action->setInfoMessage($this->_('Status successfully changed'));

		$commType = new Pap_Db_CommissionType();
		$commType->set(Pap_Db_Table_CommissionTypes::ID, $action->getParam('commtypeid'));
		$commType->load();

		$commType->set(Pap_Db_Table_CommissionTypes::STATUS, $action->getParam('rstatus'));

		$commType->save();

		if ($action->getParam('rstatus')==Pap_Common_Constants::ESTATUS_DISABLED) {
			$this->changeCommissionTypeChildsStatus($action->getParam('commtypeid'), $action->getParam('rstatus'));
		}

		$action->addOk();
		return $action;
	}