/** * Codage CCAM vers les systèmes de facturation * * @param CHPrimXMLEvenementServeurActes $messageServeurActes Message H'XML serveur actes * * @return CHPrimXMLAcquittementsServeurActes messageAcquittement **/ function evenementServeurActes($messageServeurActes) { // Création de l'échange $echange_hprim = new CEchangeHprim(); $messageAcquittement = null; $data = array(); // Gestion de l'acquittement $domAcquittement = new CHPrimXMLAcquittementsServeurActes(); $domGetEvenement = new CHPrimXMLEvenementsServeurActes(); try { // Récupération des informations du message XML $domGetEvenement->loadXML($messageServeurActes); $doc_errors = $domGetEvenement->schemaValidate(null, true); $data = $domGetEvenement->getEnteteEvenementXML("evenementsServeurActes"); $domAcquittement->identifiant = $data['identifiantMessage']; $domAcquittement->destinataire = $data['idClient']; $domAcquittement->destinataire_libelle = $data['libelleClient']; $domAcquittement->_sous_type_evt = $domGetEvenement->sous_type; // Acquittement d'erreur d'un document XML recu non valide if ($doc_errors !== true) { $messageAcquittement = $domAcquittement->generateAcquittementsServeurActivitePmsi("erreur", "E002", $doc_errors); $doc_valid = $domAcquittement->schemaValidate(); $echange_hprim->date_production = CMbDT::dateTime(); $echange_hprim->emetteur = $data['idClient'] ? $dest_hprim->_id : 0; $echange_hprim->destinataire = CAppUI::conf('mb_id'); $echange_hprim->group_id = CGroups::loadCurrent()->_id; $echange_hprim->type = "pmsi"; $echange_hprim->sous_type = $domGetEvenement->sous_type ? $domGetEvenement->sous_type : "inconnu"; $echange_hprim->_message = $messageServeurActes; $echange_hprim->_acquittement = $messageAcquittement; $echange_hprim->statut_acquittement = "erreur"; $echange_hprim->message_valide = 0; $echange_hprim->acquittement_valide = $doc_valid ? 1 : 0; $echange_hprim->store(); return $messageAcquittement; } // Récupère l'initiateur du message s'il existe if (CAppUI::conf('sip server')) { $echange_hprim->identifiant_emetteur = intval($data['identifiantMessage']); $echange_hprim->loadMatchingObject(); } if (!$echange_hprim->_id) { $echange_hprim->emetteur = $dest_hprim->_id; $echange_hprim->destinataire = CAppUI::conf('mb_id'); $echange_hprim->group_id = CGroups::loadCurrent()->_id; $echange_hprim->identifiant_emetteur = $data['identifiantMessage']; $echange_hprim->type = "pmsi"; $echange_hprim->sous_type = $domGetEvenement->sous_type; $echange_hprim->_message = $messageServeurActes; $echange_hprim->message_valide = 1; } $echange_hprim->date_production = CMbDT::dateTime(); $echange_hprim->store(); $data = array_merge($data, $domGetEvenement->getContentsXML()); $echange_hprim->id_permanent = $data['idSourceVenue']; $messageAcquittement = $domGetEvenement->serveurActes($domAcquittement, $echange_hprim, $data); return $messageAcquittement; } catch (Exception $e) { /*$domAcquittement = new CHPrimXMLAcquittementsServeurActes(); $domAcquittement->identifiant = $data['identifiantMessage']; $domAcquittement->destinataire = $data['idClient']; $domAcquittement->destinataire_libelle = $data['libelleClient']; $domAcquittement->_sous_type_evt = "evenementServeurActe"; $messageAcquittement = $domAcquittement->generateAcquittementsServeurActivitePmsi("erreur", "E009", $e->getMessage()); $doc_valid = $domAcquittement->schemaValidate(); $echange_hprim->_acquittement = $messageAcquittement; $echange_hprim->statut_acquittement = "erreur"; $echange_hprim->acquittement_valide = $doc_valid ? 1 : 0; $echange_hprim->date_echange = CMbDT::dateTime(); $echange_hprim->store();*/ return $messageAcquittement; } }
$type = CValue::get("type"); $limit = CValue::get("limit"); $path = CAppUI::conf("dPfiles CFile upload_directory") . "/{$path}"; $count = CMbPath::countFiles($path); if (!$do_import) { CAppUI::stepAjax("{$count} fichiers '{$type}' à passer en échanges HPRIM"); } else { if ($count <= 0) { CAppUI::stepAjax("Aucun fichier à passer en échange HPRIM", UI_MSG_ERROR); } $evt = $class = null; if ($type == "pmsi") { $domEvenement = new CHPrimXMLEvenementsPmsi(); $evt = "evenementsPMSI"; } elseif ($type == "actes") { $domEvenement = new CHPrimXMLEvenementsServeurActes(); $evt = "evenementsServeurActes"; } else { CAppUI::stepAjax("Type de l'échange invalide", UI_MSG_ERROR); } $files = CAppUI::readFiles($path); ini_set("memory_limit", "512M"); CApp::setTimeLimit(360); CMbObject::$useObjectCache = false; $counter = 0; foreach ($files as $_file) { $xmlfile = file_get_contents("{$path}/{$_file}"); // Chargement du fichier XML $domEvenement->loadXML($xmlfile); // Création de l'échange $echg_hprim = new CEchangeHprim();