public function registerPayout() { if (!OW::getRequest()->isAjax()) { exit(json_encode(array('result' => false))); } $service = OCSAFFILIATES_BOL_Service::getInstance(); $lang = OW::getLanguage(); $form = new OCSAFFILIATES_CLASS_RegisterPayoutForm('register_payout'); if (!$form->isValid($_POST)) { exit(json_encode(array('result' => false, 'error' => $lang->text('ocsaffiliates', 'fill_required_fields')))); } $values = $form->getValues(); $affiliateId = (int) $values['affiliateId']; $affiliate = $service->findAffiliateById($affiliateId); if (!$affiliate) { exit(json_encode(array('result' => false))); } if (!OW::getUser()->isAdmin()) { exit(json_encode(array('result' => false))); } $payout = new OCSAFFILIATES_BOL_Payout(); $payout->affiliateId = $affiliateId; $payout->amount = abs(floatval($values['amount'])); $payout->paymentDate = time(); $payout->method = 'currency'; if ($values['byCredits']) { $assoc = OCSAFFILIATES_BOL_Service::getInstance()->getAffiliateAssocUser($affiliateId); if (OW::getPluginManager()->isPluginActive('usercredits') && $assoc) { $payout->method = 'credits'; USERCREDITS_BOL_CreditsService::getInstance()->increaseBalance($assoc['id'], $payout->amount); } } $service->registerPayout($payout); OW::getFeedback()->info($lang->text('ocsaffiliates', 'payout_registered')); exit(json_encode(array('result' => true))); }