コード例 #1
0
 function event(CExchangeDataFormat $data_format)
 {
     $msg = $data_format->_message;
     /** @var CHPREvent $evt */
     $evt = $data_format->_family_message;
     $evt->_data_format = $data_format;
     // Récupération des informations du message
     $dom_evt = $evt->handle($msg);
     try {
         // Création de l'échange
         $exchange_hpr = new CEchangeHprim21();
         $exchange_hpr->load($data_format->_exchange_id);
         // Récupération des données du segment H
         $data = $dom_evt->getHEvenementXML();
         // Gestion de l'acquittement
         $ack = new CHPrim21Acknowledgment($evt);
         $evt_class = CHPREvent::getEventClass($evt);
         if (!in_array($evt_class, $data_format->_messages_supported_class)) {
             $data_format->_ref_sender->_delete_file = false;
             // Pas de création d'échange dans le cas :
             // * où l'on ne souhaite pas traiter le message
             // * où le sender n'enregistre pas les messages non pris en charge
             if (!$data_format->_to_treatment || !$data_format->_ref_sender->save_unsupported_message) {
                 return null;
             }
             $exchange_hpr->populateExchange($data_format, $evt);
             $exchange_hpr->loadRefsInteropActor();
             $exchange_hpr->populateErrorExchange(null, $evt);
             $ack->_ref_exchange_hpr = $exchange_hpr;
             $msgAck = $ack->generateAcknowledgment("AR", "E001", "201");
             $exchange_hpr->populateErrorExchange($ack);
             return $msgAck;
         }
         // Acquittement d'erreur d'un document XML recu non valide
         $exchange_hpr->populateExchange($data_format, $evt);
         $exchange_hpr->message_valide = 1;
         // Gestion des notifications ?
         if (!$exchange_hpr->_id) {
             $exchange_hpr->date_production = $data['dateHeureProduction'];
             $exchange_hpr->nom_fichier = $data['filename'];
         }
         $exchange_hpr->store();
         // Pas de traitement du message
         if (!$data_format->_to_treatment) {
             return null;
         }
         $exchange_hpr->loadRefsInteropActor();
         // Chargement des configs de l'expéditeur
         $sender = $exchange_hpr->_ref_sender;
         $sender->getConfigs($data_format);
         $dom_evt->_ref_exchange_hpr = $exchange_hpr;
         $ack->_ref_exchange_hpr = $exchange_hpr;
         // Message ADM / REG
         $msgAck = self::handleEvent($data, $exchange_hpr, $dom_evt, $ack);
     } catch (Exception $e) {
     }
     return $msgAck;
 }
コード例 #2
0
    CAppUI::stepAjax($e->getMessage(), UI_MSG_WARNING);
}
if (empty($list)) {
    CAppUI::stepAjax("Le répertoire ne contient aucun fichier", UI_MSG_ERROR);
}
$sender_ftp = new CSenderFTP();
$sender_ftp->user_id = CUser::get()->_id;
$sender_ftp->loadMatchingObject();
$count = CAppUI::conf("eai max_files_to_process");
$list = array_slice($list, 0, $count);
foreach ($list as $filepath) {
    if (substr($filepath, -strlen($extension)) == $extension) {
        $filename = basename($filepath);
        $hprimFile = $ftp->getFile($filepath, "tmp/hprim21/{$filename}");
        // Création de l'échange
        $echg_hprim21 = new CEchangeHprim21();
        $echg_hprim21->group_id = CGroups::loadCurrent()->_id;
        $echg_hprim21->sender_class = $sender_ftp->_class;
        $echg_hprim21->sender_id = $sender_ftp->_id;
        $echg_hprim21->date_production = CMbDT::dateTime();
        $echg_hprim21->store();
        $hprimReader = new CHPrim21Reader();
        $hprimReader->_echange_hprim21 = $echg_hprim21;
        $hprimReader->readFile($hprimFile);
        // Mapping de l'échange
        $echg_hprim21 = $hprimReader->bindEchange($hprimFile);
        if (!count($hprimReader->error_log)) {
            $echg_hprim21->message_valide = true;
            $ftp->delFile($filepath);
        } else {
            $echg_hprim21->message_valide = false;
コード例 #3
0
<?php

/**
 * Reprocessing des messages Hprim21
 *
 * @category Hprim21
 * @package  Mediboard
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License; see http://www.gnu.org/licenses/gpl.html
 * @version  SVN: $Id:$
 * @link     http://www.mediboard.org
 */
CCanDo::checkRead();
$echg_hprim21_id = CValue::get("echange_hprim21_id");
// Chargement de l'objet
$echg_hprim21 = new CEchangeHprim21();
$echg_hprim21->load($echg_hprim21_id);
$hprimFile = tmpfile();
fwrite($hprimFile, $echg_hprim21->message);
fseek($hprimFile, 0);
$hprimReader = new CHPrim21Reader();
$hprimReader->_echange_hprim21 = $echg_hprim21;
$hprimReader->readFile(null, $hprimFile);
// Mapping de l'échange
$echg_hprim21 = $hprimReader->bindEchange();
if (!count($hprimReader->error_log)) {
    $echg_hprim21->message_valide = true;
} else {
    $echg_hprim21->message_valide = false;
    CAppUI::setMsg("Erreur(s) pour le fichier '{$echg_hprim21->nom_fichier}' : {$hprimReader->error_log}", UI_MSG_WARNING);
}
コード例 #4
0
<?php

/**
 * Rafraichissement d'un échange Hprim21
 *
 * @category Hprim21
 * @package  Mediboard
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License; see http://www.gnu.org/licenses/gpl.html
 * @version  SVN: $Id:$
 * @link     http://www.mediboard.org
 */
CCanDo::checkRead();
$echg_hprim21_id = CValue::get("echange_hprim21_id");
// Chargement de l'objet
$echg_hprim21 = new CEchangeHprim21();
$echg_hprim21->load($echg_hprim21_id);
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("object", $echg_hprim21);
$smarty->display("inc_echange_hprim21.tpl");
コード例 #5
0
$_date_min = CValue::getOrSession('_date_min', CMbDT::dateTime("-7 day"));
$_date_max = CValue::getOrSession('_date_max', CMbDT::dateTime("+1 day"));
// Types filtres qu'on peut prendre en compte
$filtre_types = array('no_date_echange', 'message_invalide');
$types = array();
foreach ($filtre_types as $type) {
    $types[$type] = !isset($t) || in_array($type, $t);
}
// Chargement de l'échange HPRIM 2.1 demandé
$echg_hprim21 = new CEchangeHprim21();
$echg_hprim21->_date_min = $_date_min;
$echg_hprim21->_date_max = $_date_max;
$echg_hprim21->load($echange_hprim21_id);
$echg_hprim21->loadRefsInteropActor();
// Récupération de la liste des echanges HPRIM 2.1
$itemEchangeHprim21 = new CEchangeHprim21();
$where = array();
if ($_date_min && $_date_max) {
    $where['date_production'] = " BETWEEN '" . $_date_min . "' AND '" . $_date_max . "' ";
}
if ($type_message) {
    $where["type_message"] = " = '{$type_message}'";
}
if (isset($t["message_invalide"])) {
    $where["message_valide"] = " = '0'";
}
if (isset($t["no_date_echange"])) {
    $where["date_echange"] = "IS NULL";
}
$where["group_id"] = "= '" . CGroups::loadCurrent()->_id . "'";
$total_echange_hprim21 = $itemEchangeHprim21->countList($where);