Exemple #1
0
     }
     $DB->Commit();
     break;
 case "activate":
 case "deactivate":
     $arFields = array("ACTIVE" => $_REQUEST['action'] == "activate" ? "Y" : "N");
     if (!CSaleAffiliate::Update($ID, $arFields)) {
         if ($ex = $APPLICATION->GetException()) {
             $lAdmin->AddGroupError($ex->GetString(), $ID);
         } else {
             $lAdmin->AddGroupError(GetMessage("SAA_ERROR_ACTIVATE"), $ID);
         }
     }
     break;
 case "calculate":
     if (!CSaleAffiliate::CalculateAffiliate($ID, false, false, false, false)) {
         if ($ex = $APPLICATION->GetException()) {
             $lAdmin->AddGroupError($ex->GetString(), $ID);
         } else {
             $lAdmin->AddGroupError(GetMessage("SAA_ERROR_CALCULATE"), $ID);
         }
     }
     break;
 case "pay_affiliate":
     if (!CSaleAffiliate::PayAffiliate($ID, "P", $sum = 0)) {
         if ($ex = $APPLICATION->GetException()) {
             $lAdmin->AddGroupError($ex->GetString(), $ID);
         } else {
             $lAdmin->AddGroupError(GetMessage("SAA_ERROR_PAY"), $ID);
         }
     }
 function Calculate($dateFrom = false, $dateTo = false, $datePlanFrom = false, $datePlanTo = false)
 {
     global $DB;
     $arFilter = array("ACTIVE" => "Y", "ORDER_ALLOW_DELIVERY" => "Y");
     if (!$dateFrom || StrLen($dateFrom) <= 0) {
         if (!$dateTo || StrLen($dateTo) <= 0) {
             $dateTo = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), time() + CTimeZone::GetOffset());
         }
         $arFilter[">=ORDER_DATE_ALLOW_DELIVERY"] = $dateFrom;
         $arFilter["<ORDER_DATE_ALLOW_DELIVERY"] = $dateTo;
     } else {
         $dateTo = false;
     }
     if (!$datePlanFrom || StrLen($datePlanFrom) <= 0) {
         $datePlanFrom = $dateFrom;
     }
     if (!$datePlanTo || StrLen($datePlanTo) <= 0) {
         $datePlanTo = $dateTo;
     }
     $dbAffiliates = CSaleAffiliate::GetList(array(), $arFilter, array("ID", "SITE_ID", "USER_ID", "AFFILIATE_ID", "PLAN_ID", "ACTIVE", "TIMESTAMP_X", "DATE_CREATE", "PAID_SUM", "APPROVED_SUM", "PENDING_SUM", "ITEMS_NUMBER", "ITEMS_SUM", "FIX_PLAN", "MAX" => "ORDER_ID"));
     while ($arAffiliates = $dbAffiliates->Fetch()) {
         CSaleAffiliate::CalculateAffiliate($arAffiliates, $dateFrom, $dateTo, $datePlanFrom, $datePlanTo);
     }
 }
     $DATE_CALC_TO = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), time() + CTimeZone::GetOffset());
 }
 if (StrLen($DATE_CALC_TO) > 0) {
     $arFilterTmp["<ORDER_DATE_ALLOW_DELIVERY"] = $DATE_CALC_TO;
 }
 if (StrLen($DATE_PLAN_TO) <= 0) {
     $DATE_PLAN_TO = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), time() + CTimeZone::GetOffset());
 }
 $LAST_AFFILIATE_ID = IntVal($LAST_AFFILIATE_ID);
 if ($LAST_AFFILIATE_ID > 0) {
     $arFilterTmp[">ID"] = $LAST_AFFILIATE_ID;
 }
 $dbAffiliates = CSaleAffiliate::GetList(array("ID" => "ASC"), $arFilterTmp, array("ID", "SITE_ID", "USER_ID", "AFFILIATE_ID", "PLAN_ID", "ACTIVE", "TIMESTAMP_X", "DATE_CREATE", "PAID_SUM", "APPROVED_SUM", "PENDING_SUM", "ITEMS_NUMBER", "ITEMS_SUM", "LAST_CALCULATE", "MAX" => "ORDER_ID", "FIX_PLAN"));
 while ($arAffiliates = $dbAffiliates->Fetch()) {
     $errorMessageTmp = "";
     if (!CSaleAffiliate::CalculateAffiliate($arAffiliates, $DATE_CALC_FROM, $DATE_CALC_TO, $DATE_PLAN_FROM, $DATE_PLAN_TO)) {
         $errorMessageTmp .= str_replace("#ID#", $arAffiliates["ID"], GetMessage("SAC_AFFILIATE_N"));
         if ($ex = $APPLICATION->GetException()) {
             $errorMessageTmp .= $ex->GetString();
         } else {
             $errorMessageTmp .= GetMessage("SAC_ERROR_CALC_AFFILIATE");
         }
         $errorMessageTmp .= "<br>";
     }
     $LAST_AFFILIATE_ID = $arAffiliates["ID"];
     $numAffiliatesCalc++;
     if (StrLen($errorMessageTmp) > 0) {
         $errorMessage .= $errorMessageTmp;
     }
     if ($max_execution_time > 0 && getmicrotime() - START_EXEC_TIME > $max_execution_time) {
         $bAllAffiliatesCalc = False;