/**
  * 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();