} $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;