本文整理汇总了PHP中CGroups::loadFromGuid方法的典型用法代码示例。如果您正苦于以下问题:PHP CGroups::loadFromGuid方法的具体用法?PHP CGroups::loadFromGuid怎么用?PHP CGroups::loadFromGuid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGroups
的用法示例。
在下文中一共展示了CGroups::loadFromGuid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: generateIdex
static function generateIdex(CMbObject $object, $tag, $group_id)
{
$group = CGroups::loadFromGuid("CGroups-{$group_id}");
// On préfère générer un identifiant d'un établissement virtuel pour les séjours non-facturables
$group_id_pour_sejour_facturable = CAppUI::conf('dPsante400 CDomain group_id_pour_sejour_facturable', $group);
if ($object instanceof CSejour && !$object->facturable && $group_id_pour_sejour_facturable) {
$group_id = $group_id_pour_sejour_facturable;
}
$group_domain = new CGroupDomain();
$group_domain->object_class = $object->_class;
$group_domain->group_id = $group_id;
$group_domain->master = 1;
$group_domain->loadMatchingObject();
if (!$group_domain->_id) {
return;
}
$domain = $group_domain->loadRefDomain();
$conf = CAppUI::conf("dPsante400 CIncrementer");
$cluster_count = abs(intval($conf["cluster_count"]));
$cluster_position = abs(intval($conf["cluster_position"]));
if ($cluster_count == 0) {
$cluster_count = 1;
}
if ($cluster_count == 1) {
$cluster_position = 0;
}
$mutex = new CMbSemaphore("incrementer-{$object->_class}");
$mutex->acquire();
$incrementer = $domain->loadRefIncrementer();
// Chargement du dernier 'increment' s'il existe sinon on déclenche une erreur
if (!$incrementer->_id) {
$mutex->release();
return;
}
// Incrementation de l'idex
$value = $incrementer->value;
// Valeur compatible avec la position dans le cluster
do {
$value++;
} while ($value % $cluster_count != $cluster_position);
do {
// Idex vraiment disponible ?
$idex = new CIdSante400();
$idex->object_class = $object->_class;
$idex->tag = $tag;
$idex->id400 = self::formatValue($object, $incrementer->pattern, $value);
$idex->loadMatchingObject();
} while ($idex->_id && ($value += $cluster_count));
$incrementer->value = $value;
$incrementer->last_update = CMbDT::dateTime();
$incrementer->store();
// Création de l'identifiant externe
$idex->object_id = $object->_id;
$idex->last_update = CMbDT::dateTime();
$idex->store();
$mutex->release();
return $idex;
}