public function processRequest($request)
 {
     $db = new WPAM_Data_DataAccess();
     $affiliateFields = $db->getAffiliateFieldRepository()->loadMultipleBy(array('enabled' => true), array('order' => 'asc'));
     if (isset($request['action']) && $request['action'] == 'saveInfo') {
         $validator = new WPAM_Validation_Validator();
         $validator->addValidator('ddBountyType', new WPAM_Validation_SetValidator(array('fixed', 'percent')));
         if ($request['ddBountyType'] === 'fixed') {
             $validator->addValidator('txtBountyAmount', new WPAM_Validation_MoneyValidator());
         } else {
             if ($request['ddBountyType'] === 'percent') {
                 $validator->addValidator('txtBountyAmount', new WPAM_Validation_NumberValidator());
             }
         }
         $affiliateHelper = new WPAM_Util_AffiliateFormHelper();
         $vr = $affiliateHelper->validateForm($validator, $request, $affiliateFields);
         if ($vr->getIsValid()) {
             $model = $affiliateHelper->getNewAffiliate();
             $affiliateHelper->setModelFromForm($model, $affiliateFields, $request);
             $affiliateHelper->setPaymentFromForm($model, $request);
             //send email etc.
             $userHandler = new WPAM_Util_UserHandler();
             if (get_option(WPAM_PluginConfig::$AutoAffiliateApproveIsEnabledOption) == 1) {
                 $userHandler->AutoapproveAffiliate($model, $request['ddBountyType'], $request['txtBountyAmount']);
             } else {
                 $userHandler->approveAffiliate($model, $request['ddBountyType'], $request['txtBountyAmount'], false);
             }
             return new WPAM_Pages_TemplateResponse('admin/affiliate_new_success');
         } else {
             return $this->getForm($affiliateFields, $request, $vr);
         }
     }
     return $this->getForm($affiliateFields, $request);
 }
 public function processRequest($request)
 {
     $db = new WPAM_Data_DataAccess();
     if (isset($request['viewDetail']) && is_numeric($request['viewDetail'])) {
         $affiliateFields = $db->getAffiliateFieldRepository()->loadMultipleBy(array('enabled' => true), array('order' => 'asc'));
         $id = (int) $request['viewDetail'];
         $model = $db->getAffiliateRepository()->load($id);
         if ($model == null) {
             wp_die("Invalid affiliate ID.");
         }
         if (isset($request['action']) && $request['action'] == 'saveInfo') {
             $validator = new WPAM_Validation_Validator();
             //validate bounty type & amount if they're in the appropriate status
             if (!$model->isPending() && !$model->isBlocked() && !$model->isDeclined()) {
                 $validator->addValidator('ddBountyType', new WPAM_Validation_SetValidator(array('fixed', 'percent')));
                 if ($request['ddBountyType'] === 'fixed') {
                     $validator->addValidator('txtBountyAmount', new WPAM_Validation_MoneyValidator());
                 } else {
                     if ($request['ddBountyType'] === 'percent') {
                         $validator->addValidator('txtBountyAmount', new WPAM_Validation_NumberValidator());
                     }
                 }
                 $validator->addValidator('ddPaymentMethod', new WPAM_Validation_SetValidator(array('check', 'paypal')));
                 if ($request['ddPaymentMethod'] === 'paypal') {
                     $validator->addValidator('txtPaypalEmail', new WPAM_Validation_EmailValidator());
                 }
             }
             $affiliateHelper = new WPAM_Util_AffiliateFormHelper();
             $vr = $affiliateHelper->validateForm($validator, $request, $affiliateFields, TRUE);
             if ($vr->getIsValid()) {
                 $affiliateHelper->setModelFromForm($model, $affiliateFields, $request);
                 $affiliateHelper->setPaymentFromForm($model, $request);
                 $db->getAffiliateRepository()->update($model);
             } else {
                 return $this->getDetailForm($affiliateFields, $model, $request, $vr);
             }
         }
         return $this->getDetailForm($affiliateFields, $model, $request);
     } else {
         //Show all the affiliates list.
         //Lets include the affiliates_list.php file
         $response = new WPAM_Pages_TemplateResponse('admin/affiliates_list');
     }
     return $response;
 }
 protected function validateForm($request)
 {
     $validator = new WPAM_Validation_Validator();
     $validator->addValidator('ddPaymentMethod', new WPAM_Validation_SetValidator(array('paypal', 'check')));
     if ($request['ddPaymentMethod'] === 'check') {
         $validator->addValidator('txtCheckTo', new WPAM_Validation_StringValidator(1));
     } else {
         if ($request['ddPaymentMethod'] === 'paypal') {
             $validator->addValidator('txtPaypalEmail', new WPAM_Validation_EmailValidator());
         }
     }
     return $validator->validate($request);
 }
 protected function doFormSubmit($request)
 {
     $validator = new WPAM_Validation_Validator();
     if (isset($request['AffGeneralSettings'])) {
         $validator->addValidator('txtMinimumPayout', new WPAM_Validation_MoneyValidator());
         $validator->addValidator('txtTnc', new WPAM_Validation_StringValidator(1));
         $validator->addValidator('txtCookieExpire', new WPAM_Validation_NumberValidator());
     }
     //#61 allow these to be unset/null
     if (!empty($request['txtEmailName'])) {
         $validator->addValidator('txtEmailName', new WPAM_Validation_StringValidator(1));
     }
     if (!empty($request['txtEmailAddress'])) {
         $validator->addValidator('txtEmailAddress', new WPAM_Validation_EmailValidator());
     }
     if (isset($request['chkEnablePaypalMassPay'])) {
         $validator->addValidator('txtPaypalAPIUser', new WPAM_Validation_StringValidator(1));
         $validator->addValidator('txtPaypalAPIPassword', new WPAM_Validation_StringValidator(1));
         $validator->addValidator('txtPaypalAPISignature', new WPAM_Validation_StringValidator(1));
     }
     $vr = $validator->validate($request);
     if ($vr->getIsValid()) {
         $db = new WPAM_Data_DataAccess();
         if (isset($request['AffGeneralSettings'])) {
             update_option(WPAM_PluginConfig::$MinPayoutAmountOption, $request['txtMinimumPayout']);
             update_option(WPAM_PluginConfig::$TNCOptionOption, $request['txtTnc']);
             update_option(WPAM_PluginConfig::$CookieExpireOption, $request['txtCookieExpire']);
             update_option(WPAM_PluginConfig::$EmailNameOption, $request['txtEmailName']);
             update_option(WPAM_PluginConfig::$EmailAddressOption, $request['txtEmailAddress']);
             update_option(WPAM_PluginConfig::$AffBountyType, $request['affBountyType']);
             update_option(WPAM_PluginConfig::$AffBountyAmount, $request['affBountyAmount']);
             update_option(WPAM_PluginConfig::$AffCurrencySymbol, $request['affCurrencySymbol']);
             update_option(WPAM_PluginConfig::$AffCurrencyCode, $request['affCurrencyCode']);
             if (isset($request['autoaffapprove'])) {
                 update_option(WPAM_PluginConfig::$AutoAffiliateApproveIsEnabledOption, 1);
             } else {
                 update_option(WPAM_PluginConfig::$AutoAffiliateApproveIsEnabledOption, 0);
             }
             if (isset($request['chkImpressions'])) {
                 update_option(WPAM_PluginConfig::$AffEnableImpressions, 1);
             } else {
                 update_option(WPAM_PluginConfig::$AffEnableImpressions, 0);
             }
             if (isset($request['enable_debug'])) {
                 update_option(WPAM_PluginConfig::$AffEnableDebug, 1);
             } else {
                 update_option(WPAM_PluginConfig::$AffEnableDebug, 0);
             }
         }
         if (isset($request['AffPaymentSettings'])) {
             if (isset($request['chkEnablePaypalMassPay'])) {
                 update_option(WPAM_PluginConfig::$PaypalMassPayEnabledOption, 1);
                 update_option(WPAM_PluginConfig::$PaypalAPIUserOption, $request['txtPaypalAPIUser']);
                 update_option(WPAM_PluginConfig::$PaypalAPIPasswordOption, $request['txtPaypalAPIPassword']);
                 update_option(WPAM_PluginConfig::$PaypalAPISignatureOption, $request['txtPaypalAPISignature']);
                 update_option(WPAM_PluginConfig::$PaypalAPIEndPointOption, $request['ddPaypalAPIEndPoint']);
             } else {
                 update_option(WPAM_PluginConfig::$PaypalMassPayEnabledOption, 0);
             }
         }
         if (isset($request['AffMsgSettings'])) {
             foreach ($request['messages'] as $message) {
                 $messageModel = $db->getMessageRepository()->loadBy(array('name' => $message['name']));
                 if ($messageModel != NULL) {
                     $messageModel->content = $message['content'];
                     $db->getMessageRepository()->update($messageModel);
                 }
             }
         }
         if (isset($request['AffRegSettings'])) {
             if (isset($request['chkPayoutMethodPaypal'])) {
                 update_option(WPAM_PluginConfig::$PayoutMethodPaypalIsEnabledOption, 1);
             } else {
                 update_option(WPAM_PluginConfig::$PayoutMethodPaypalIsEnabledOption, 0);
             }
             if (isset($request['chkPayoutMethodCheck'])) {
                 update_option(WPAM_PluginConfig::$PayoutMethodCheckIsEnabledOption, 1);
             } else {
                 update_option(WPAM_PluginConfig::$PayoutMethodCheckIsEnabledOption, 0);
             }
             $affiliateFieldRepository = $db->getAffiliateFieldRepository();
             $affiliateFieldRepository->delete(array('type' => 'custom'));
             $order = 0;
             foreach ($request['field'] as $fieldName => $params) {
                 if ($params['type'] === 'custom') {
                     $field = new WPAM_Data_Models_AffiliateFieldModel();
                     $field->type = 'custom';
                     $field->databaseField = $fieldName;
                     $field->fieldType = $params['fieldType'];
                     $field->length = $params['maxLength'];
                     $field->name = $params['displayName'];
                 } else {
                     $field = $affiliateFieldRepository->loadby(array('databaseField' => $fieldName));
                 }
                 $field->order = $order++;
                 //#43 email is required (but not submitted b/c it's disabled on the form)
                 if ($fieldName == 'email') {
                     $field->enabled = 1;
                     $field->required = 1;
                 } else {
                     $field->enabled = isset($params['enabled']) ? 1 : 0;
                     $field->required = isset($params['required']) ? 1 : 0;
                 }
                 if ($params['type'] === 'custom') {
                     $affiliateFieldRepository->insert($field);
                 } else {
                     $affiliateFieldRepository->update($field);
                 }
             }
         }
         if (isset($request['AffPagesSettings'])) {
             update_option(WPAM_PluginConfig::$AffLoginPageURL, $request['affLoginPage']);
         }
         return $this->getSettingsForm(NULL, "Settings updated.");
     }
     //else
     return $this->getSettingsForm($request, NULL, $vr);
 }
 protected function doCreativeSubmit($request)
 {
     $validator = new WPAM_Validation_Validator();
     //#23 before getting media library images, upload an image file if there is one
     $has_new_image = isset($_FILES['fileImageNew']) && trim($_FILES['fileImageNew']['name']) != '';
     if ($has_new_image) {
         $mimes = array('jpg|jpeg|jpe' => 'image/jpeg', 'gif' => 'image/gif', 'png' => 'image/png', 'bmp' => 'image/bmp', 'tif|tiff' => 'image/tiff');
         $file = wp_handle_upload($_FILES['fileImageNew'], array('mimes' => $mimes, 'test_form' => false));
         if (isset($file['error'])) {
             $validator->addError(new WPAM_Validation_ValidatorError('fileImageNew', sprintf(__('Image Upload Error: %s', 'wpam'), $file['error'])));
         } else {
             //successfully uploaded an image
             $object = array('post_title' => basename($file['url']), 'post_content' => $file['url'], 'post_mime_type' => $file['type'], 'guid' => $file['url']);
             // Save the attachment
             $attachment_id = wp_insert_attachment($object, $file['file']);
             //make it selected in the media library dropdown
             $has_new_image = false;
             $request['ddFileImage'] = $attachment_id;
         }
     }
     $db = new WPAM_Data_DataAccess();
     $images = $db->getWordPressRepository()->getAllImageAttachments();
     $imageIds = array();
     foreach ($images as $image) {
         $imageIds[] = $image->ID;
     }
     $validator->addValidator('txtName', new WPAM_Validation_StringValidator(1));
     //$validator->addValidator('ddLandingPage', new WPAM_Validation_SetValidator(array('index','products')));
     $validator->addValidator('ddType', new WPAM_Validation_SetValidator(array('image', 'text')));
     if ($request['ddType'] === 'image' && !$has_new_image) {
         $validator->addValidator('ddFileImage', new WPAM_Validation_SetValidator($imageIds));
     } else {
         if ($request['ddType'] === 'text') {
             $validator->addValidator('txtLinkText', new WPAM_Validation_StringValidator(1));
         }
     }
     $vr = $validator->validate($request);
     if ($vr->getIsValid()) {
         $creativesRepo = $db->getCreativesRepository();
         if ($request['action'] === 'edit') {
             $model = $creativesRepo->load($request['creativeId']);
         } else {
             $model = new WPAM_Data_Models_CreativeModel();
             $model->dateCreated = time();
             //#50 new creatives start as 'inactive'
             $model->status = 'active';
         }
         $model->type = $request['ddType'];
         if ($model->type === 'image') {
             $model->imagePostId = $request['ddFileImage'];
             $model->altText = $request['txtImageAltText'];
         } else {
             if ($model->type === 'text') {
                 $model->linkText = $request['txtLinkText'];
                 $model->altText = $request['txtAltText'];
             } else {
                 wp_die(__('Insert failed: Bad creative type.', 'wpam'));
             }
         }
         $model->slug = $request['txtSlug'];
         $model->name = $request['txtName'];
         $db = new WPAM_Data_DataAccess();
         $response = new WPAM_Pages_TemplateResponse('admin/creatives_detail');
         if ($request['action'] === 'edit') {
             $response->viewData['updateMessage'] = __('Creative Updated.', 'wpam');
             $creativesRepo->update($model);
         } else {
             if ($request['action'] === 'new') {
                 $id = $creativesRepo->insert($model);
                 $model->creativeId = $id;
                 $response->viewData['updateMessage'] = __('Creative ... created.', 'wpam');
             } else {
                 wp_die(__('Insert failed: invalid creative update mechanism.', 'wpam'));
             }
         }
         $response->viewData['request'] = $request;
         $response->viewData['creative'] = $model;
         return $response;
     } else {
         return $this->getCreativeUpdateForm($request, $vr);
     }
 }
 protected function doFormSubmit($request)
 {
     $validator = new WPAM_Validation_Validator();
     if (isset($request['AffGeneralSettings'])) {
         $validator->addValidator('txtMinimumPayout', new WPAM_Validation_MoneyValidator());
         $validator->addValidator('txtCookieExpire', new WPAM_Validation_NumberValidator());
     }
     if (isset($request['AffRegSettings'])) {
         //$validator->addValidator('txtTnc', new WPAM_Validation_StringValidator(1));
     }
     //#61 allow these to be unset/null
     if (!empty($request['txtEmailName'])) {
         $validator->addValidator('txtEmailName', new WPAM_Validation_StringValidator(1));
     }
     if (!empty($request['txtEmailAddress'])) {
         $validator->addValidator('txtEmailAddress', new WPAM_Validation_EmailValidator());
     }
     if (isset($request['chkEnablePaypalMassPay'])) {
         $validator->addValidator('txtPaypalAPIUser', new WPAM_Validation_StringValidator(1));
         $validator->addValidator('txtPaypalAPIPassword', new WPAM_Validation_StringValidator(1));
         $validator->addValidator('txtPaypalAPISignature', new WPAM_Validation_StringValidator(1));
     }
     $vr = $validator->validate($request);
     if ($vr->getIsValid()) {
         $db = new WPAM_Data_DataAccess();
         if (isset($request['AffGeneralSettings'])) {
             //General settings options submitted
             update_option(WPAM_PluginConfig::$MinPayoutAmountOption, $request['txtMinimumPayout']);
             update_option(WPAM_PluginConfig::$CookieExpireOption, $request['txtCookieExpire']);
             update_option(WPAM_PluginConfig::$EmailNameOption, $request['txtEmailName']);
             update_option(WPAM_PluginConfig::$EmailAddressOption, $request['txtEmailAddress']);
             update_option(WPAM_PluginConfig::$AffBountyType, $request['affBountyType']);
             update_option(WPAM_PluginConfig::$AffBountyAmount, $request['affBountyAmount']);
             update_option(WPAM_PluginConfig::$AffCurrencySymbol, $request['affCurrencySymbol']);
             update_option(WPAM_PluginConfig::$AffCurrencyCode, $request['affCurrencyCode']);
             if (isset($request['autoaffapprove'])) {
                 update_option(WPAM_PluginConfig::$AutoAffiliateApproveIsEnabledOption, 1);
             } else {
                 update_option(WPAM_PluginConfig::$AutoAffiliateApproveIsEnabledOption, 0);
             }
             if (isset($request['doNotRecordZeroAmtCommission'])) {
                 update_option(WPAM_PluginConfig::$AffdoNotRecordZeroAmtCommission, 1);
             } else {
                 update_option(WPAM_PluginConfig::$AffdoNotRecordZeroAmtCommission, 0);
             }
             if (isset($request['chkImpressions'])) {
                 update_option(WPAM_PluginConfig::$AffEnableImpressions, 1);
             } else {
                 update_option(WPAM_PluginConfig::$AffEnableImpressions, 0);
             }
             if (isset($request['enable_debug'])) {
                 update_option(WPAM_PluginConfig::$AffEnableDebug, 1);
             } else {
                 update_option(WPAM_PluginConfig::$AffEnableDebug, 0);
             }
         }
         if (isset($request['AffPaymentSettings'])) {
             //Payment settings options submitted
             if (isset($request['chkEnablePaypalMassPay'])) {
                 update_option(WPAM_PluginConfig::$PaypalMassPayEnabledOption, 1);
                 update_option(WPAM_PluginConfig::$PaypalAPIUserOption, $request['txtPaypalAPIUser']);
                 update_option(WPAM_PluginConfig::$PaypalAPIPasswordOption, $request['txtPaypalAPIPassword']);
                 update_option(WPAM_PluginConfig::$PaypalAPISignatureOption, $request['txtPaypalAPISignature']);
                 update_option(WPAM_PluginConfig::$PaypalAPIEndPointOption, $request['ddPaypalAPIEndPoint']);
             } else {
                 update_option(WPAM_PluginConfig::$PaypalMassPayEnabledOption, 0);
             }
         }
         if (isset($request['AffMsgSettings'])) {
             //Messaging settings options submitted
             foreach ($request['messages'] as $message) {
                 $messageModel = $db->getMessageRepository()->loadBy(array('name' => $message['name']));
                 if ($messageModel != NULL) {
                     $messageModel->content = $message['content'];
                     $db->getMessageRepository()->update($messageModel);
                 }
             }
         }
         if (isset($request['AffRegSettings'])) {
             //Registration settings options submitted
             if (isset($request['chkPayoutMethodManual'])) {
                 update_option(WPAM_PluginConfig::$PayoutMethodManualIsEnabledOption, 1);
             } else {
                 update_option(WPAM_PluginConfig::$PayoutMethodManualIsEnabledOption, 0);
             }
             if (isset($request['chkPayoutMethodPaypal'])) {
                 update_option(WPAM_PluginConfig::$PayoutMethodPaypalIsEnabledOption, 1);
             } else {
                 update_option(WPAM_PluginConfig::$PayoutMethodPaypalIsEnabledOption, 0);
             }
             if (isset($request['chkPayoutMethodCheck'])) {
                 update_option(WPAM_PluginConfig::$PayoutMethodCheckIsEnabledOption, 1);
             } else {
                 update_option(WPAM_PluginConfig::$PayoutMethodCheckIsEnabledOption, 0);
             }
             $affiliateFieldRepository = $db->getAffiliateFieldRepository();
             $affiliateFieldRepository->delete(array('type' => 'custom'));
             $order = 0;
             foreach ($request['field'] as $fieldName => $params) {
                 if ($params['type'] === 'custom') {
                     $field = new WPAM_Data_Models_AffiliateFieldModel();
                     $field->type = 'custom';
                     $field->databaseField = $fieldName;
                     $field->fieldType = $params['fieldType'];
                     $field->length = $params['maxLength'];
                     $field->name = $params['displayName'];
                 } else {
                     $field = $affiliateFieldRepository->loadby(array('databaseField' => $fieldName));
                 }
                 $field->order = $order++;
                 //#43 email is required (but not submitted b/c it's disabled on the form)
                 if ($fieldName == 'email') {
                     $field->enabled = 1;
                     $field->required = 1;
                 } else {
                     $field->enabled = isset($params['enabled']) ? 1 : 0;
                     $field->required = isset($params['required']) ? 1 : 0;
                 }
                 if ($params['type'] === 'custom') {
                     $affiliateFieldRepository->insert($field);
                 } else {
                     $affiliateFieldRepository->update($field);
                 }
             }
             $txtTnc = $request['txtTnc'];
             if (empty($txtTnc)) {
                 //save the default T&C message if empty
                 $txtTnc = file_get_contents(WPAM_RESOURCES_DIR . "default_tnc.txt");
             }
             update_option(WPAM_PluginConfig::$TNCOptionOption, $txtTnc);
             $affhomemsg = $request['affhomemsg'];
             if (empty($affhomemsg)) {
                 //save the default home message if empty
                 $login_url = get_option(WPAM_PluginConfig::$AffLoginPageURL);
                 $register_page_id = get_option(WPAM_PluginConfig::$RegPageId);
                 $register_page_url = get_permalink($register_page_id);
                 $affhomemsg = 'This is the affiliates section of this store. If you are an existing affiliate, please <a href="' . $login_url . '">log in</a> to access your control panel.';
                 $affhomemsg .= '<br />';
                 $affhomemsg .= '<br />';
                 $affhomemsg .= 'If you are not an affiliate, but wish to become one, you will need to apply. To apply, you must be a registered user on this blog. If you have an existing account on this blog, please <a href="' . $login_url . '">log in</a>. If not, please <a href="' . $register_page_url . '">register</a>.';
             }
             update_option(WPAM_PluginConfig::$AffHomeMsg, $affhomemsg);
         }
         if (isset($request['AffPagesSettings'])) {
             //Affiliate pages/forms options submitted
             update_option(WPAM_PluginConfig::$AffLoginPageURL, $request['affLoginPage']);
         }
         if (isset($request['AffAdvancedSettings'])) {
             //Advanced Settings options submitted
             update_option(WPAM_PluginConfig::$AffLandingPageURL, $request['affLandingPage']);
         }
         return $this->getSettingsForm(NULL, "Settings updated.");
     }
     //else
     return $this->getSettingsForm($request, NULL, $vr);
 }
 public function processRequest($request)
 {
     $db = new WPAM_Data_DataAccess();
     if (isset($request['viewDetail']) && is_numeric($request['viewDetail'])) {
         $affiliateFields = $db->getAffiliateFieldRepository()->loadMultipleBy(array('enabled' => true), array('order' => 'asc'));
         $id = (int) $request['viewDetail'];
         $model = $db->getAffiliateRepository()->load($id);
         if ($model == null) {
             wp_die("Invalid affiliate ID.");
         }
         if (isset($request['action']) && $request['action'] == 'saveInfo') {
             $validator = new WPAM_Validation_Validator();
             //validate bounty type & amount if they're in the appropriate status
             if (!$model->isPending() && !$model->isBlocked() && !$model->isDeclined()) {
                 $validator->addValidator('ddBountyType', new WPAM_Validation_SetValidator(array('fixed', 'percent')));
                 if ($request['ddBountyType'] === 'fixed') {
                     $validator->addValidator('txtBountyAmount', new WPAM_Validation_MoneyValidator());
                 } else {
                     if ($request['ddBountyType'] === 'percent') {
                         $validator->addValidator('txtBountyAmount', new WPAM_Validation_NumberValidator());
                     }
                 }
                 $validator->addValidator('ddPaymentMethod', new WPAM_Validation_SetValidator(array('check', 'paypal')));
                 if ($request['ddPaymentMethod'] === 'paypal') {
                     $validator->addValidator('txtPaypalEmail', new WPAM_Validation_EmailValidator());
                 }
             }
             $affiliateHelper = new WPAM_Util_AffiliateFormHelper();
             $vr = $affiliateHelper->validateForm($validator, $request, $affiliateFields, TRUE);
             if ($vr->getIsValid()) {
                 $affiliateHelper->setModelFromForm($model, $affiliateFields, $request);
                 $affiliateHelper->setPaymentFromForm($model, $request);
                 $db->getAffiliateRepository()->update($model);
             } else {
                 return $this->getDetailForm($affiliateFields, $model, $request, $vr);
             }
         }
         return $this->getDetailForm($affiliateFields, $model, $request);
     } else {
         if (isset($_GET['orderby'])) {
             $current_orderby = $_GET['orderby'];
         } else {
             $current_orderby = 'affiliateId';
         }
         if (isset($_GET['order']) && 'desc' == $_GET['order']) {
             $current_order = 'desc';
         } else {
             $current_order = 'asc';
         }
         $orderBy = array($current_orderby => $current_order);
         $filterWhere = array();
         $minPayout = NULL;
         if (!isset($request['statusFilter'])) {
             $request['statusFilter'] = 'all_active';
         }
         if ($request['statusFilter'] !== 'all') {
             switch ($request['statusFilter']) {
                 case 'all_active':
                     $filterWhere['status'] = array('NOT IN', array('declined', 'blocked', 'inactive'));
                     break;
                 case 'all':
                     break;
                 case 'active':
                 case 'applied':
                 case 'approved':
                 case 'confirmed':
                 case 'declined':
                 case 'blocked':
                 case 'inactive':
                     $filterWhere['status'] = $request['statusFilter'];
                 default:
                     break;
             }
         }
         if (isset($request['overPayout']) && $request['overPayout'] === 'true') {
             $minPayout = get_option(WPAM_PluginConfig::$MinPayoutAmountOption);
         }
         $models = $db->getAffiliateRepository()->loadAffiliateSummary($filterWhere, $minPayout, $orderBy);
         $response = new WPAM_Pages_TemplateResponse('admin/affiliates_list');
         $response->viewData['minPayoutAmount'] = get_option(WPAM_PluginConfig::$MinPayoutAmountOption);
         $response->viewData['affiliates'] = $models;
         $response->viewData['request'] = $request;
         $response->viewData['statusFilters'] = array('all_active' => __('All Active', 'wpam'), 'all' => __('All (Including Closed)', 'wpam'), '---' => '---', 'active' => __('Status: Active', 'wpam'), 'applied' => __('Status: Applied', 'wpam'), 'approved' => __('Status: Approved', 'wpam'), 'confirmed' => __('Status: Confirmed', 'wpam'), 'declined' => __('Status: Declined', 'wpam'), 'blocked' => __('Status: Blocked', 'wpam'), 'inactive' => __('Status: Inactive', 'wpam'));
         $response->viewData['current_orderby'] = $current_orderby;
         $response->viewData['current_order'] = $current_order;
     }
     return $response;
 }