/** * Return the CCodageCCAM linked to the given codable and practitioner, and create it if it not exists * * @param CCodable $codable The codable object * @param integer $praticien_id The practitioner id * @param integer $activite Is the CCodage concern anesthesia activities or other activities * @param date $date The date * * @return CCodageCCAM */ public static function get($codable, $praticien_id, $activite = 1, $date = null) { if (!$date) { switch ($codable->_class) { case 'CConsultation': $codable->loadRefPlageConsult(); $date = $codable->_date; break; case 'COperation': $date = $codable->date; break; case 'CSejour': return new CCodageCCAM(); } } $codage_ccam = new CCodageCCAM(); $codage_ccam->codable_class = $codable->_class; $codage_ccam->codable_id = $codable->_id; $codage_ccam->praticien_id = $praticien_id; $codage_ccam->loadPraticien(); $codage_ccam->activite_anesth = $activite == 4 && $codage_ccam->_ref_praticien->isAnesth() ? 1 : 0; $codage_ccam->date = $date; $codage_ccam->loadMatchingObject(); if (!$codage_ccam->_id) { $codage_ccam->_apply_rules = false; $codage_ccam->store(); } return $codage_ccam; }
$uncoded_acts[$key] = $uncoded_acts[$key] + 1; } } } } } $date = CValue::post('date', $codage->_ref_codable->sortie); $days = CMbDT::daysRelative($codage->date . ' 00:00:00', CMbDT::format($date, '%Y-%m-%d 00:00:00')); for ($i = 1; $i <= $days; $i++) { $_date = CMbDT::date("+{$i} DAYS", $codage->date); $_codage = new CCodageCCAM(); $_codage->praticien_id = $codage->praticien_id; $_codage->codable_class = $codage->codable_class; $_codage->codable_id = $codage->codable_id; $_codage->date = $_date; $_codage->loadMatchingObject(); if ($codage->association_mode == 'user_choice') { $_codage->association_mode = $codage->association_mode; $_codage->association_rule = $codage->association_rule; } $_codage->store(); foreach ($actes as $_acte_id) { if (array_key_exists($_acte_id, $codage->_ref_actes_ccam)) { $_acte = $codage->_ref_actes_ccam[$_acte_id]; /* Si il n'y a pas d'acte non coté pour ce code ccam, on l'ajoute au codable */ $key = "{$_acte->code_acte}-{$_acte->code_activite}-{$_acte->code_phase}"; if (array_key_exists($key, $uncoded_acts)) { $uncoded_acts[$key] = $uncoded_acts[$key] - 1; if ($uncoded_acts[$key] == 0) { unset($uncoded_acts[$key]); }