コード例 #1
0
ファイル: rating.php プロジェクト: mrdeadmouse/u136006
$bCreateRule = true;
$rsData = $DB->Query("SELECT ID, ACTIVE FROM b_rating_rule WHERE CONDITION_MODULE = 'intranet'");
while ($arRule = $rsData->Fetch()) {
    if ($arRule["ACTIVE"] == "N") {
        $DB->Query("DELETE FROM b_rating_rule WHERE ID = " . $arRule["ID"], true);
    } else {
        COption::SetOptionString("intranet", "ratingSubordinateId", $arRule['ID']);
        CRatingRule::Apply($arRule['ID']);
        $bCreateRule = false;
    }
}
// после авторитета
if ($bCreateRule) {
    $dbRes = CLanguage::GetList($by = 'sort', $order = 'asc');
    while ($arRes = $dbRes->Fetch()) {
        if (file_exists(dirname(__FILE__) . '/' . $arRes['LID'] . '/rating.php')) {
            require dirname(__FILE__) . '/' . $arRes['LID'] . '/rating.php';
        }
    }
    $arFields = array("ACTIVE" => "Y", "NAME" => $MESS['INTR_INSTALL_RATING_RULE'], "ENTITY_TYPE_ID" => "USER", "CONDITION_NAME" => "SUBORDINATE", "CONDITION_MODULE" => "intranet", "CONDITION_CLASS" => "CRatingRulesIntranet", "CONDITION_METHOD" => "subordinateCheck", "CONDITION_CONFIG" => array("SUBORDINATE" => array()), "ACTION_NAME" => "empty", "ACTION_CONFIG" => array(), "ACTIVATE" => "N", "ACTIVATE_CLASS" => "empty", "ACTIVATE_METHOD" => "empty", "DEACTIVATE" => "N", "DEACTIVATE_CLASS" => "empty ", "DEACTIVATE_METHOD" => "empty", "~CREATED" => $DB->GetNowFunction(), "~LAST_MODIFIED" => $DB->GetNowFunction());
    $arFields["CONDITION_CONFIG"] = serialize($arFields["CONDITION_CONFIG"]);
    $arFields["ACTION_CONFIG"] = serialize($arFields["ACTION_CONFIG"]);
    $ID = $DB->Add("b_rating_rule", $arFields, array("ACTION_CONFIG", "CONDITION_CONFIG"));
    COption::SetOptionString("intranet", "ratingSubordinateId", $ID);
    CRatingRule::Apply($ID);
}
// recount ratings
$rsData = CRatings::GetList(array('ID' => 'ASC'), array());
while ($arRes = $rsData->Fetch()) {
    CRatings::Calculate($arRes['ID'], true);
}
コード例 #2
0
ファイル: rating_rules.php プロジェクト: DarneoStudio/bitrix
 function changeUF($arConfigs)
 {
     global $DB;
     $err_mess = "File: " . __FILE__ . "<br>Function: changeUF<br>Line: ";
     $ruleId = IntVal(IntVal($arConfigs['ID']));
     $entityTypeId = $DB->ForSql($arConfigs['ENTITY_TYPE_ID']);
     $userFieldId = $DB->ForSql($arConfigs['ACTION_CONFIG']['CHANGE_UF']['UF_ID']);
     $userFieldValue = $DB->ForSql($arConfigs['ACTION_CONFIG']['CHANGE_UF']['UF_VALUE']);
     if (!empty($userFieldId)) {
         $strSql = "UPDATE b_uts_user uts SET uts.{$userFieldId} = '{$userFieldValue}'\n\t\t\t\t\t\tWHERE uts.VALUE_ID IN (\n\t\t\t\t\t\t\tSELECT prv.ENTITY_ID\n\t\t\t\t\t\t\tFROM b_rating_rule_vetting prv\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tprv.RULE_ID = {$ruleId}\n\t\t\t\t\t\t\tAND prv.ENTITY_TYPE_ID = '{$entityTypeId}'\n\t\t\t\t\t\t\tAND prv.APPLIED = 'N'\n\t\t\t\t\t\t)";
         $DB->Query($strSql, false, $err_mess . __LINE__);
         $strSql = "INSERT INTO b_uts_user (VALUE_ID, {$userFieldId})\n\t\t\t\t\t\tSELECT prv.ENTITY_ID, '{$userFieldValue}' as UF_VALUE\n\t\t\t\t\t\tFROM b_rating_rule_vetting prv\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tprv.RULE_ID = {$ruleId}\n\t\t\t\t\t\tand prv.ENTITY_TYPE_ID = '{$entityTypeId}'\n\t\t\t\t\t\tand prv.ENTITY_ID NOT IN (\n\t\t\t\t\t\t\tSELECT uf.VALUE_ID FROM b_uts_user uf\n\t\t\t\t\t\t)\n\t\t\t\t\t\tand prv.APPLIED = 'N'\n\t\t\t\t\t\tGROUP BY ENTITY_ID\n\t\t\t\t\t\t";
         $DB->Query($strSql, false, $err_mess . __LINE__);
     }
     CRatingRule::ApplyVetting($arConfigs);
     return true;
 }
コード例 #3
0
ファイル: rating_rule_edit.php プロジェクト: ASDAFF/open_bx
		<td><?php 
echo GetMessage("RATING_RULE_EDIT_FRM_TYPE_ID");
?>
</td>
		<td><?php 
echo SelectBoxFromArray("ENTITY_TYPE_ID", array('reference_id' => $arObjects, 'reference' => $arObjects), $str_ENTITY_TYPE_ID, "", "onChange=\"jsTypeChanged('rating_rule_form')\"");
?>
</td>
	</tr>
<?
$tabControl->EndCustomField("ENTITY_TYPE_ID");

$tabControl->AddSection("CAT_HOW_ACTIVATE", GetMessage("RATING_RULE_EDIT_CAT_HOW_ACTIVATE"));

$tabControl->BeginCustomField("CONDITION_NAME", GetMessage('RATING_RULE_EDIT_FRM_CONDITION_NAME'), true);
$arRatingRuleConfigs = CRatingRule::GetRatingRuleConfigs($str_ENTITY_TYPE_ID);
$arConditionName = array();
foreach ($arRatingRuleConfigs["CONDITION_CONFIG"] as $configId => $arConfig)
{
	$arConditionName['reference'][] = $arConfig["NAME"];
	$arConditionName['reference_id'][] = $arConfig["ID"];
}
$arCurrentCondition = $arRatingRuleConfigs["CONDITION_CONFIG"][$str_CONDITION_NAME];
$conditionCount = count($arCurrentCondition['FIELDS']);
?>
	<tr>
		<td colspan="2">
			<table cellpadding="2" cellspacing="0" border="0" width="100%" class="edit-table">
			<tr valign="top" style="" class="adm-detail-required-field">
				<td class="field-name" style="vertical-align:middle;" width="40%">
					<?php 
コード例 #4
0
ファイル: rating_rule.php プロジェクト: rasuldev/torino
 public static function __CheckFields($arFields)
 {
     $aMsg = array();
     if (is_set($arFields, "NAME") && trim($arFields["NAME"]) == "") {
         $aMsg[] = array("id" => "NAME", "text" => GetMessage("RR_GENERAL_ERR_NAME"));
     }
     if (is_set($arFields, "ACTIVE") && !($arFields["ACTIVE"] == 'Y' || $arFields["ACTIVE"] == 'N')) {
         $aMsg[] = array("id" => "ACTIVE", "text" => GetMessage("RR_GENERAL_ERR_ACTIVE"));
     }
     if (is_set($arFields, "ENTITY_TYPE_ID")) {
         $arObjects = CRatingRule::GetRatingRuleObjects();
         if (!in_array($arFields['ENTITY_TYPE_ID'], $arObjects)) {
             $aMsg[] = array("id" => "ENTITY_TYPE_ID", "text" => GetMessage("RR_GENERAL_ERR_ENTITY_TYPE_ID"));
         }
     }
     if (is_set($arFields, "CONDITION_NAME") && trim($arFields["CONDITION_NAME"]) == "") {
         $aMsg[] = array("id" => "CONDITION_NAME", "text" => GetMessage("RR_GENERAL_ERR_CONDITION_NAME"));
     }
     if (is_set($arFields, "ACTION_NAME") && trim($arFields["ACTION_NAME"]) == "") {
         $aMsg[] = array("id" => "ACTION_NAME", "text" => GetMessage("RR_GENERAL_ERR_ACTION_NAME"));
     }
     if (!empty($aMsg)) {
         $e = new CAdminException($aMsg);
         $GLOBALS["APPLICATION"]->ThrowException($e);
         return false;
     }
     return true;
 }
コード例 #5
0
ファイル: rating_rules.php プロジェクト: ASDAFF/open_bx
	function changeUF($arConfigs)
	{
		global $DB;
		$err_mess = "File: ".__FILE__."<br>Function: changeUF<br>Line: ";

		$ruleId = IntVal(IntVal($arConfigs['ID']));
		$entityTypeId = $DB->ForSql($arConfigs['ENTITY_TYPE_ID']);
		$userFieldId = $DB->ForSql($arConfigs['ACTION_CONFIG']['CHANGE_UF']['UF_ID']);
		$userFieldValue = $DB->ForSql($arConfigs['ACTION_CONFIG']['CHANGE_UF']['UF_VALUE']);
		if (!empty($userFieldId))
		{
			$strSql = "UPDATE b_uts_user uts SET uts.$userFieldId = '$userFieldValue'
						WHERE uts.VALUE_ID IN (
							SELECT prv.ENTITY_ID
							FROM b_rating_rule_vetting prv
							WHERE
								prv.RULE_ID = $ruleId
							AND prv.ENTITY_TYPE_ID = '$entityTypeId'
							AND prv.APPLIED = 'N'
						)";
			$DB->Query($strSql, false, $err_mess.__LINE__);

			$strSql = "INSERT INTO b_uts_user (VALUE_ID, $userFieldId)
						SELECT prv.ENTITY_ID, '$userFieldValue' as UF_VALUE
						FROM b_rating_rule_vetting prv
						WHERE
							prv.RULE_ID = $ruleId
						and prv.ENTITY_TYPE_ID = '$entityTypeId'
						and prv.ENTITY_ID NOT IN (
							SELECT uf.VALUE_ID FROM b_uts_user uf
						)
						and prv.APPLIED = 'N'
						GROUP BY ENTITY_ID
						";
			$DB->Query($strSql, false, $err_mess.__LINE__);
		}

		CRatingRule::ApplyVetting($arConfigs);

		return true;
	}
コード例 #6
0
        }
        switch ($_REQUEST['action']) {
            case "reapply":
                if (!CRatingRule::Apply($ID, true)) {
                    $lAdmin->AddGroupError(GetMessage("RATING_RULE_LIST_ERR_APP"), $ID);
                }
                break;
            case "delete":
                if (!CRatingRule::Delete($ID)) {
                    $lAdmin->AddGroupError(GetMessage("RATING_RULE_LIST_ERR_DEL"), $ID);
                }
                break;
        }
    }
}
$rsData = CRatingRule::GetList(array($by => $order), $arFilter);
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("RATING_RULE_LIST_NAV")));
$aHeaders = array(array("id" => "ID", "content" => "ID", "sort" => "id", "default" => true), array("id" => "NAME", "content" => GetMessage("RATING_RULE_NAME"), "sort" => "name", "default" => true), array("id" => "ACTIVE", "content" => GetMessage("RATING_RULE_ACTIVE"), "sort" => "active", "default" => true), array("id" => "CREATED", "content" => GetMessage("RATING_RULE_CREATED"), "sort" => "created", "default" => false), array("id" => "LAST_MODIFIED", "content" => GetMessage("RATING_RULE_LAST_MODIFIED"), "sort" => "last_modified", "default" => true), array("id" => "LAST_APPLIED", "content" => GetMessage("RATING_RULE_LAST_APPLIED"), "sort" => "last_applied", "default" => true), array("id" => "ENTITY_TYPE_ID", "content" => GetMessage("RATING_RULE_ENTITY_TYPE_ID"), "sort" => "entity_type_id", "default" => false));
$lAdmin->AddHeaders($aHeaders);
while ($arRes = $rsData->NavNext(true, "f_")) {
    $row =& $lAdmin->AddRow($f_ID, $arRes);
    $row->AddInputField("NAME", array("size" => 20));
    $row->AddViewField("NAME", $f_NAME);
    $row->AddCheckField("ACTIVE", array("size" => 20));
    $row->AddViewField("ACTIVE", $f_ACTIVE == "Y" ? GetMessage("RATING_RULE_ACTIVE_YES") : GetMessage("RATING_RULE_ACTIVE_NO"));
    $row->AddViewField("LAST_CALCULATED", empty($f_LAST_CALCULATED) ? GetMessage("RATING_RULE_STATUS_WAITING") : $f_LAST_CALCULATED);
    $arActions = array(array("ICON" => "edit", "DEFAULT" => true, "TEXT" => GetMessage("RATING_RULE_LIST_EDIT"), "ACTION" => $lAdmin->ActionRedirect("rating_rule_edit.php?ID=" . $f_ID)), array("ICON" => "edit", "TEXT" => GetMessage("RATING_RULE_LIST_REAPPLY"), "ACTION" => $lAdmin->ActionDoGroup($f_ID, "reapply")), array("ICON" => "delete", "TEXT" => GetMessage("RATING_RULE_LIST_DEL"), "ACTION" => "if(confirm('" . GetMessage("RATING_RULE_LIST_DEL_CONF") . "')) " . $lAdmin->ActionDoGroup($f_ID, "delete")));
    $row->AddActions($arActions);
}