/**
  * @see parent::doStore()
  */
 function doStore()
 {
     if (isset($_FILES['attachment'])) {
         $mail_id = CValue::post('mail_id');
         $mail = new CUserMail();
         $mail->load($mail_id);
         $files = array();
         foreach ($_FILES['attachment']['error'] as $key => $file_error) {
             if (isset($_FILES['attachment']['name'][$key])) {
                 $files[] = array('name' => $_FILES['attachment']['name'][$key], 'tmp_name' => $_FILES['attachment']['tmp_name'][$key], 'error' => $_FILES['attachment']['error'][$key], 'size' => $_FILES['attachment']['size'][$key]);
             }
         }
         foreach ($files as $_key => $_file) {
             if ($_file['error'] == UPLOAD_ERR_NO_FILE) {
                 continue;
             }
             if ($_file['error'] != 0) {
                 CAppUI::setMsg(CAppUI::tr("CFile-msg-upload-error-" . $_file["error"]), UI_MSG_ERROR);
                 continue;
             }
             $attachment = new CMailAttachments();
             $attachment->name = $_file['name'];
             $content_type = mime_content_type($_file['tmp_name']);
             $attachment->type = $attachment->getTypeInt($content_type);
             $attachment->bytes = $_file['size'];
             $attachment->mail_id = $mail_id;
             $content_type = explode('/', $content_type);
             $attachment->subtype = strtoupper($content_type[1]);
             $attachment->disposition = 'ATTACHMENT';
             $attachment->extension = substr(strrchr($attachment->name, '.'), 1);
             $attachment->part = $mail->countBackRefs('mail_attachments') + 1;
             $attachment->store();
             $file = new CFile();
             $file->setObject($attachment);
             $file->author_id = CAppUI::$user->_id;
             $file->file_name = $attachment->name;
             $file->file_date = CMbDT::dateTime();
             $file->fillFields();
             $file->updateFormFields();
             $file->doc_size = $attachment->bytes;
             $file->file_type = mime_content_type($_file['tmp_name']);
             $file->moveFile($_file, true);
             if ($msg = $file->store()) {
                 CAppUI::setMsg(CAppUI::tr('CMailAttachments-error-upload-file') . ':' . CAppUI::tr($msg), UI_MSG_ERROR);
                 CApp::rip();
             }
             $attachment->file_id = $file->_id;
             if ($msg = $attachment->store()) {
                 CAppUI::setMsg($msg, UI_MSG_ERROR);
                 CApp::rip();
             }
         }
         CAppUI::setMsg('CMailAttachments-msg-added', UI_MSG_OK);
     } else {
         parent::doStore();
     }
 }
Esempio n. 2
0
 /**
  * create the CFiles attached to the mail
  *
  * @param CMailAttachments[] $attachList The list of CMailAttachment
  * @param CPop               $popClient  the CPop client
  *
  * @return void
  */
 function attachFiles($attachList, $popClient)
 {
     //size limit
     $size_required = CAppUI::pref("getAttachmentOnUpdate");
     if ($size_required == "") {
         $size_required = 0;
     }
     foreach ($attachList as $_attch) {
         $_attch->mail_id = $this->_id;
         $_attch->loadMatchingObject();
         if (!$_attch->_id) {
             $_attch->store();
         }
         //si preference taille ok OU que la piece jointe est incluse au texte => CFile
         if ($_attch->bytes <= $size_required || $_attch->disposition == "INLINE") {
             $file = new CFile();
             $file->setObject($_attch);
             $file->author_id = CAppUI::$user->_id;
             if (!$file->loadMatchingObject()) {
                 $file_pop = $popClient->decodeMail($_attch->encoding, $popClient->openPart($this->uid, $_attch->getpartDL()));
                 $file->file_name = $_attch->name;
                 //apicrypt attachment
                 if (strpos($_attch->name, ".apz") !== false) {
                     $file_pop = CApicrypt::uncryptAttachment($popClient->source->object_id, $file_pop);
                 }
                 //file type detection
                 $first = is_array($file_pop) ? reset($file_pop) : $file_pop;
                 $mime = $this->extensionDetection($first);
                 //file name
                 $infos = pathinfo($_attch->name);
                 $extension = $infos['extension'];
                 $mime_extension = strtolower(end(explode("/", $mime)));
                 if (strtolower($extension) != $mime_extension) {
                     $file->file_name = $infos['filename'] . "." . $mime_extension;
                 }
                 $file->file_type = $mime ? $mime : $_attch->getType($_attch->type, $_attch->subtype);
                 $file->fillFields();
                 $file->updateFormFields();
                 $file->putContent($file_pop);
                 $file->store();
             }
         }
     }
 }
 /**
  * Edition des journaux selon le type
  *
  * @param bool $read           lecture
  * @param bool $create_journal Création du journal
  *
  * @return void
  */
 function editJournal($read = true, $create_journal = true)
 {
     if ($create_journal) {
         $journal = new CJournalBill();
         $journal->type = $this->type_pdf;
         $journal->nom = "Journal_" . $this->type_pdf . "_" . CMbDT::date();
         $journal->_factures = $this->factures;
         if ($msg = $journal->store()) {
             mbTrace($msg);
         } else {
             $this->journal_id = $journal->_id;
         }
     }
     // Creation du PDF
     $this->pdf = new CMbPdf('l', 'mm');
     $this->pdf->setPrintHeader(false);
     $this->pdf->setPrintFooter(false);
     $this->font = "vera";
     $this->fontb = $this->font . "b";
     $this->pdf->setFont($this->font, '', 8);
     $this->page = 0;
     $this->editEntete();
     switch ($this->type_pdf) {
         case "paiement":
             $this->editPaiements();
             break;
         case "debiteur":
             $this->editDebiteur();
             break;
         case "rappel":
             $this->editRappel();
             break;
         case "checklist":
             $this->editCheckList();
             break;
     }
     if ($create_journal) {
         $file = new CFile();
         $file->file_name = $journal->nom . ".pdf";
         $file->file_type = "application/pdf";
         $file->author_id = CMediusers::get()->_id;
         $file->file_category_id = 1;
         $file->setObject($journal);
         $file->fillFields();
         $file->putContent($this->pdf->Output('Factures.pdf', "S"));
         if ($msg = $file->store()) {
             echo $msg;
         }
         if ($this->type_pdf == "checklist") {
             $user = CMediusers::get();
             $printer = new CPrinter();
             $printer->function_id = $user->function_id;
             $printer->label = "justif";
             $printer->loadMatchingObject();
             if (!$printer->_id) {
                 CAppUI::setMsg("Les imprimantes ne sont pas paramétrées", UI_MSG_ERROR);
                 echo CAppUI::getMsg();
                 return false;
             }
             $file = new CFile();
             $pdf = $this->pdf->Output('Factures.pdf', "S");
             $file_path = tempnam("tmp", "facture");
             $file->_file_path = $file_path;
             file_put_contents($file_path, $pdf);
             $printer->loadRefSource()->sendDocument($file);
             unlink($file_path);
         }
     }
     if ($read) {
         //Affichage du fichier pdf
         $this->pdf->Output('Factures.pdf', "I");
     }
 }
 /**
  * Store a CFile linked to $this
  *
  * @param string $filename File name
  * @param string $filedata File contents
  *
  * @return bool
  */
 function addFile($filename, $filedata)
 {
     $file = new CFile();
     $file->setObject($this);
     $file->file_name = $filename;
     $file->file_type = "text/plain";
     $file->doc_size = strlen($filedata);
     $file->author_id = CAppUI::$instance->user_id;
     $file->fillFields();
     if (!$file->putContent($filedata)) {
         return false;
     }
     $file->store();
     return true;
 }
Esempio n. 5
0
while ($zipFile = zip_read($zip)) {
    $doc_name = zip_entry_name($zipFile);
    $extension = strtolower(pathinfo($doc_name, PATHINFO_EXTENSION));
    $file_name = pathinfo($doc_name, PATHINFO_BASENAME);
    $doc_size = zip_entry_filesize($zipFile);
    $dir_name = end(explode("/", dirname($doc_name)));
    if ((!$dir_name || $dir_name == ".") && $category || $category != "divers") {
        $dir_name = $category;
    }
    $cat = new CDrawingCategory();
    $cat->name = $dir_name;
    $cat->loadMatchingObjectEsc();
    if ($msg = $cat->store()) {
        CAppUI::stepAjax($msg, UI_MSG_WARNING);
    }
    $content_file = zip_entry_read($zipFile, $doc_size);
    if ($content_file) {
        $file = new CFile();
        $file->file_name = $file_name;
        $file->author_id = CAppUI::$user->_id;
        $file->file_type = CMbPath::guessMimeType($doc_name);
        $file->fillFields();
        $file->setObject($cat);
        $file->updateFormFields();
        $file->putContent($content_file);
        if ($msg = $file->store()) {
            CAppUI::setMsg($msg, UI_MSG_WARNING);
        }
    }
}
zip_close($zip);
Esempio n. 6
0
$data = $file_array[$dispo];
// context
$object_guid = CValue::post("context_guid");
$context = CMbObject::loadFromGuid($object_guid);
// get data uri
foreach ($data as $_key => &$_data) {
    $file = new CFile();
    $file->load($_data["file_id"]);
    $file->getDataURI();
    $_data["file_uri"] = $file->_data_uri;
}
//user
$user = CMediusers::get($user_id);
// file
$file = new CFile();
$file->setObject($context);
$file->file_name = CAppUI::tr("CFile-create-mozaic") . " de " . CAppUI::tr($context->_class) . " du " . CMbDT::dateToLocale(CMbDT::date()) . ".pdf";
$file->file_type = "application/pdf";
$file->file_category_id = $cat_id;
$file->author_id = CMediusers::get()->_id;
$file->fillFields();
$file->updateFormFields();
$file->forceDir();
$file->store();
$cr = new CCompteRendu();
$cr->_page_format = "A4";
$cr->_orientation = "portrait";
// use template for header and footer
$template_header = new CTemplateManager();
$context->fillTemplate($template_header);
$header = CCompteRendu::getSpecialModel($user, "CPatient", "[ENTETE MOZAIC]");
/**
 * $Id: do_select_supervision_picture.php 26555 2014-12-23 12:48:14Z flaviencrochard $
 *  
 * @category Patients
 * @package  Mediboard
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version  $Revision: 26555 $
 * @link     http://www.mediboard.org
 */
CCanDo::checkAdmin();
$path = str_replace("..", "", CValue::post("path"));
$timed_picture_id = CValue::post("timed_picture_id");
if (is_file($path) && strpos(CSupervisionTimedPicture::PICTURES_ROOT, $path) !== 0) {
    $timed_picture = new CSupervisionTimedPicture();
    $timed_picture->load($timed_picture_id);
    $file = new CFile();
    $file->setObject($timed_picture);
    $file->fillFields();
    $file->file_name = basename($path);
    $file->doc_size = filesize($path);
    $file->file_type = CMbPath::guessMimeType($path);
    $file->moveFile($path, false, true);
    if ($msg = $file->store()) {
        CAppUI::setMsg($msg, UI_MSG_WARNING);
    } else {
        CAppUI::setMsg("Image enregistrée");
    }
}
echo CAppUI::getMsg();
CApp::rip();
        }
    }
}
//text link
if ($text_html || $text_plain) {
    $content_type = "text/plain";
    if ($text_html) {
        $text = new CContentHTML();
        $text->load($text_html);
        $content_type = "text/html";
    } else {
        $text = new CContentAny();
        $text->load($text_plain);
    }
    $file = new CFile();
    $file->setObject($object);
    $file->author_id = CAppUI::$user->_id;
    $file->file_name = "sans_titre";
    $file->file_category_id = $category_id;
    if ($mail->subject) {
        $file->file_name = $mail->subject;
    }
    if ($rename_text) {
        $file->file_name = $rename_text;
    }
    $file->file_type = $content_type;
    $file->fillFields();
    $file->putContent($text->content);
    if ($str = $file->store()) {
        CAppUI::stepAjax($str, UI_MSG_ERROR);
    } else {
Esempio n. 9
0
 /**
  * PDF conversion of a file
  *
  * @param string $file_path path to the file
  * @param string $pdf_path  path the pdf file
  *
  * @return bool
  */
 function convertToPDF($file_path = null, $pdf_path = null)
 {
     global $rootName;
     // Vérifier si openoffice est lancé
     if (!CFile::openofficeLaunched()) {
         return 0;
     }
     // Vérifier sa charge en mémoire
     CFile::openofficeOverload();
     if (!$file_path && !$pdf_path) {
         $file = new CFile();
         $file->setObject($this);
         $file->private = $this->private;
         $file->file_name = $this->file_name . ".pdf";
         $file->file_type = "application/pdf";
         $file->author_id = CAppUI::$user->_id;
         $file->fillFields();
         $file->updateFormFields();
         $file->forceDir();
         $save_name = $this->_file_path;
         if ($msg = $file->store()) {
             CAppUI::setMsg($msg, UI_MSG_ERROR);
             return 0;
         }
         $file_path = $this->_file_path;
         $pdf_path = $file->_file_path;
     }
     // Requête post pour la conversion.
     // Cela permet de mettre un time limit afin de garder le contrôle de la conversion.
     ini_set("default_socket_timeout", 10);
     $fileContents = base64_encode(file_get_contents($file_path));
     $url = CAppUI::conf("base_url") . "/index.php?m=dPfiles&a=ajax_ooo_convert&suppressHeaders=1";
     $data = array("file_data" => $fileContents, "pdf_path" => $pdf_path);
     // Fermeture de la session afin d'écrire dans le fichier de session
     CSessionHandler::writeClose();
     // Le header Connection: close permet de forcer a couper la connexion lorsque la requête est effectuée
     $ctx = stream_context_create(array('http' => array('method' => 'POST', 'header' => "Content-type: application/x-www-form-urlencoded charset=UTF-8\r\n" . "Connection: close\r\n" . "Cookie: mediboard=" . session_id() . "\r\n", 'content' => http_build_query($data))));
     // La requête post réouvre la session
     $res = file_get_contents($url, false, $ctx);
     if (isset($file) && $res == 1) {
         $file->doc_size = filesize($pdf_path);
         if ($msg = $file->store()) {
             CAppUI::setMsg($msg, UI_MSG_ERROR);
             return 0;
         }
     }
     // Si la conversion a échoué
     // on relance le service s'il ne répond plus.
     if ($res != 1) {
         CFile::openofficeOverload(1);
     }
     return $res;
 }
Esempio n. 10
0
CCanDo::checkAdmin();
$extract_passages_id = CValue::get("extract_passages_id");
if (isset($extractPassages) && $extractPassages->_id) {
    $extract_passages_id = $extractPassages->_id;
}
$attente = 1;
$extractPassages = new CExtractPassages();
// Appel de la fonction d'extraction du RPUSender
$rpuSender = $extractPassages->getRPUSender();
if ($extract_passages_id) {
    $extractPassages->load($extract_passages_id);
    if (!$extractPassages->_id) {
        CAppUI::stepAjax("Impossible de charger le document XML.", UI_MSG_ERROR);
    }
    $file = new CFile();
    $file->setObject($extractPassages);
    $file->loadMatchingObject();
    if (!$file->_id) {
        CAppUI::stepAjax("Impossible de récupérer le document.", UI_MSG_ERROR);
    }
    $tentative = 5;
    if ($extractPassages->type == "activite") {
        while ($tentative-- && $rpuSender->transmitActivite($extractPassages)) {
            sleep($attente);
        }
    } else {
        while ($tentative-- && $rpuSender->transmit($extractPassages)) {
            sleep($attente);
        }
    }
} else {
Esempio n. 11
0
             }
             $content = $compte_rendu->loadHTMLcontent($content, $mode, $margins, CCompteRendu::$fonts[$compte_rendu->font], $compte_rendu->size, true, $type, $header, $sizeheader, $footer, $sizefooter, $preface, $ending);
     }
 } else {
     $content = $compte_rendu->loadHTMLcontent($content, $mode, $margins, CCompteRendu::$fonts[$compte_rendu->font], $compte_rendu->size);
 }
 // Traitement du format de la page
 if ($page_format == "") {
     $page_width = round(72 / 2.54 * $page_width, 2);
     $page_height = round(72 / 2.54 * $page_height, 2);
     $page_format = array(0, 0, $page_width, $page_height);
 }
 // Création du CFile si inexistant
 if (!$file->_id) {
     $file = new CFile();
     $file->setObject($compte_rendu);
     $file->file_type = "application/pdf";
     $file->author_id = $user_id;
     $file->fillFields();
     $file->updateFormFields();
     $file->forceDir();
 }
 if ($file->_id && !file_exists($file->_file_path)) {
     $file->forceDir();
 }
 $file->file_name = $compte_rendu->nom . ".pdf";
 $c1 = preg_replace("!\\s!", '', $save_content);
 $c2 = preg_replace("!\\s!", '', $compte_rendu->_source);
 // Si la source envoyée et celle présente en base sont différentes, on regénère le PDF
 // Suppression des espaces, tabulations, retours chariots et sauts de lignes pour effectuer le md5
 if ($compte_rendu->valide || md5($c1) != md5($c2) || !$file->_id || !file_exists($file->_file_path) || file_get_contents($file->_file_path) == "") {
Esempio n. 12
0
if ($del) {
    if ($msg = $file->delete()) {
        CAppUI::stepAjax($msg, UI_MSG_ERROR);
    } else {
        CAppUI::stepAjax("CFile-msg-delete", UI_MSG_OK);
    }
} else {
    $file->file_type = "image/fabricjs";
    if ($export) {
        $svg = new CFile();
        $svg->file_name = $file->file_name;
        $svg->file_type = "image/svg+xml";
        $svg->author_id = $file->author_id;
        $svg->loadMatchingObject();
        $svg->fillFields();
        $svg->setObject($file->_ref_object);
        $svg->updateFormFields();
        if (strpos($svg->file_name, ".") === false) {
            $svg->file_name = $svg->file_name . ".svg";
        }
        if (strpos($svg->file_name, ".fjs") !== false) {
            $svg->file_name = str_replace(".fjs", ".svg", $svg->file_name);
        }
        // @TODO : replace url by datauri
        $content = str_replace(array("&a=fileviewer", "&file_id", "&suppressHeaders"), array("&amp;a=fileviewer", "&amp;file_id", "&amp;suppressHeaders"), $content);
        if ($result = $svg->putContent(stripslashes($content))) {
            if ($msg = $svg->store()) {
                CAppUI::stepAjax($msg, UI_MSG_ERROR);
            } else {
                CAppUI::stepAjax("Dessin exporté avec succès", UI_MSG_OK);
            }
Esempio n. 13
0
 /**
  * Make a PDF document archive of the sejour (based on soins/print_dossier_soins)
  *
  * @param string $title   File title
  * @param bool   $replace Replace existing file
  *
  * @return bool
  * @throws CMbException
  */
 function makePDFarchive($title = "Dossier complet", $replace = false)
 {
     if (!CModule::getActive("soins")) {
         return false;
     }
     $query = array("m" => "soins", "a" => "print_dossier_soins", "sejour_id" => $this->_id, "dialog" => 1, "offline" => 1, "limit" => 10000, "_aio" => 1, "_aio_ignore_scripts" => 1);
     $base = $_SERVER["SCRIPT_NAME"] . "?" . http_build_query($query, "", "&");
     $result = CApp::serverCall("http://127.0.0.1{$base}");
     $content = $result["body"];
     $file = new CFile();
     $file->setObject($this);
     $file->file_name = "{$title}.pdf";
     $file->file_type = "application/pdf";
     /*if ($file->loadMatchingObject()) {
           if ($replace) {
             $file->delete();
     
             // New file
             $file = new CFile();
             $file->setObject($this);
             $file->file_name = "$title.pdf";
             $file->file_type = "application/pdf";
           }
         }*/
     $file->fillFields();
     $file->updateFormFields();
     $file->forceDir();
     $file->author_id = CAppUI::$user->_id;
     $compte_rendu = new CCompteRendu();
     $compte_rendu->_orientation = "portrait";
     $format = CCompteRendu::$_page_formats["a4"];
     $page_width = round(72 / 2.54 * $format[0], 2);
     $page_height = round(72 / 2.54 * $format[1], 2);
     $compte_rendu->_page_format = array(0, 0, $page_width, $page_height);
     $content = str_replace("<!DOCTYPE html>", "", $content);
     CHtmlToPDFConverter::init("CWkHtmlToPDFConverter");
     //CHtmlToPDFConverter::init("CPrinceXMLConverter");
     $pdf = CHtmlToPDFConverter::convert($content, $compte_rendu->_page_format, $compte_rendu->_orientation);
     $file->putContent($pdf);
     if ($msg = $file->store()) {
         throw new CMbException($msg);
     }
     return true;
 }
Esempio n. 14
0
        $file->file_type = $attachment->getType($attachment->type, $attachment->subtype);
        $file->fillFields();
        $file->putContent($file_pop);
        if ($str = $file->store()) {
            CAppUI::setMsg($str, UI_MSG_ERROR);
        } else {
            CAppUI::setMsg("CMailAttachments-msg-attachmentsaved", UI_MSG_OK);
        }
        $pop->close();
    }
} else {
    //je récupère TOUTES les pièces jointes
    $mail->loadRefsFwd();
    foreach ($mail->_attachments as $_att) {
        $file = new CFile();
        $file->setObject($_att);
        $file->author_id = $user->_id;
        $file->loadMatchingObject();
        if (!$file->_id) {
            $pop = new CPop($log_pop);
            $pop->open();
            $file_pop = $pop->decodeMail($_att->encoding, $pop->openPart($mail->uid, $_att->getpartDL()));
            $file->file_name = $_att->name;
            $file->file_type = $_att->getType($_att->type, $_att->subtype);
            $file->fillFields();
            $file->putContent($file_pop);
            if ($str = $file->store()) {
                CAppUI::setMsg($str, UI_MSG_ERROR);
            } else {
                CAppUI::setMsg("CMailAttachments-msg-attachmentsaved", UI_MSG_OK);
            }
Esempio n. 15
0
    $footer->loadContent();
    $facture->fillTemplate($template_footer);
    $template_footer->renderDocument($footer->_source);
    if ($footer->height) {
        $footer_height = $footer->height;
    }
}
$style = file_get_contents("style/mediboard/tables.css");
$smarty = new CSmartyDP();
$smarty->assign("style", $style);
$smarty->assign("facture", $facture);
$smarty->assign("header_height", $header_height);
$smarty->assign("footer_height", $footer_height);
$smarty->assign("header", $template_header->document);
$smarty->assign("footer", $template_footer->document);
$smarty->assign("body_height", 550 - $template_footer->document - $template_header->document);
$content = $smarty->fetch("print_facture.tpl");
$file = new CFile();
$file->file_name = "Impression de la facture.pdf";
$file->setObject($facture);
$file->file_type = "application/pdf";
$file->author_id = CMediusers::get()->_id;
$file->fillFields();
$file->updateFormFields();
$file->forceDir();
$file->store();
$htmltopdf = new CHtmlToPDF("CDomPDFConverter");
$cr = new CCompteRendu();
$cr->_page_format = "a4";
$cr->_orientation = "portrait";
$htmltopdf->generatePDF($content, 1, $cr, $file);
 /**
  * OBX Segment with reference pointer to external report
  *
  * @param DOMNode   $OBX    DOM node
  * @param CMbObject $object object
  * @param String    $name   name
  *
  * @return bool
  */
 function getReferencePointerToExternalReport(DOMNode $OBX, CMbObject $object, $name)
 {
     $exchange_hl7v2 = $this->_ref_exchange_hl7v2;
     $sender = $exchange_hl7v2->_ref_sender;
     //Récupération de l'emplacement et du type du fichier (full path)
     $observation = $this->getObservationValue($OBX);
     $rp = explode("^", $observation);
     $pointer = CMbArray::get($rp, 0);
     $type = CMbArray::get($rp, 2);
     // Création d'un lien Hypertext sur l'objet
     if ($type == "HTML") {
         $hyperlink = new CHyperTextLink();
         $hyperlink->setObject($object);
         $hyperlink->name = $name;
         $hyperlink->link = $pointer;
         $hyperlink->loadMatchingObject();
         if ($msg = $hyperlink->store()) {
             $this->codes[] = "E343";
             return false;
         }
         return true;
     }
     // Chargement des objets associés à l'expéditeur
     /** @var CInteropSender $sender_link */
     $object_links = $sender->loadRefsObjectLinks();
     if (!$object_links) {
         $this->codes[] = "E340";
         return false;
     }
     $sender_link = new CInteropSender();
     $files_category = new CFilesCategory();
     // On récupère toujours une seule catégorie, et une seule source associée à l'expéditeur
     foreach ($object_links as $_object_link) {
         if ($_object_link->_ref_object instanceof CFilesCategory) {
             $files_category = $_object_link->_ref_object;
         }
         if ($_object_link->_ref_object instanceof CInteropSender) {
             $sender_link = $_object_link->_ref_object;
             continue 1;
         }
     }
     // Aucun expéditeur permettant de récupérer les fichiers
     if (!$sender_link->_id) {
         $this->codes[] = "E340";
         return false;
     }
     $authorized_sources = array("CSenderFileSystem", "CSenderFTP");
     // L'expéditeur n'est pas prise en charge pour la réception de fichiers
     if (!CMbArray::in($sender_link->_class, $authorized_sources)) {
         $this->codes[] = "E341";
         return false;
     }
     $sender_link->loadRefsExchangesSources();
     // Aucune source permettant de récupérer les fichiers
     if (!$sender_link->_id) {
         $this->codes[] = "E342";
         return false;
     }
     $source = $sender_link->getFirstExchangesSources();
     $path = str_replace("\\", "/", $pointer);
     $path = basename($path);
     if ($source instanceof CSourceFileSystem) {
         $path = $source->getFullPath() . "/{$path}";
     }
     // Exception déclenchée sur la lecture du fichier
     try {
         $content = $source->getData("{$path}");
     } catch (Exception $e) {
         $this->codes[] = "E345";
         return false;
     }
     if (!$type) {
         $type = CMbPath::getExtension($path);
     }
     $file_type = $this->getFileType($type);
     $file_name = $this->getObservationFilename($OBX);
     // Gestion du CFile
     $file = new CFile();
     $file->setObject($object);
     $file->file_name = $file_name ? $file_name : $name;
     $file->file_type = $file_type;
     $file->loadMatchingObject();
     if ($files_category->_id && $sender->_configs["associate_category_to_a_file"]) {
         $file->file_category_id = $files_category->_id;
     }
     $file->file_date = "now";
     $file->doc_size = strlen($content);
     $file->fillFields();
     $file->updateFormFields();
     $file->putContent($content);
     if ($msg = $file->store()) {
         $this->codes[] = "E343";
     }
     $this->codes[] = "I340";
     return true;
 }
Esempio n. 17
0
 /**
  * load files linked to the present attachment
  *
  * @return CFile
  */
 function loadFiles()
 {
     //a file is already linked and we have the id
     $file = new CFile();
     if ($this->file_id) {
         $file->load($this->file_id);
         $file->loadRefsFwd();
         //TODO : fix this
     } else {
         $file->setObject($this);
         $file->loadMatchingObject();
     }
     $file->updateFormFields();
     return $this->_file = $file;
 }
 /**
  * Traitement des retours en erreur d'xml d'un praticien
  *
  * @param int $chir_id praticien de la consultation
  *
  * @return void|string
  */
 static function traitementDossier($chir_id)
 {
     $files = array();
     $fs_source_reception = CExchangeSource::get("reception-tarmed-CMediusers-{$chir_id}", "file_system", true, null, false);
     if (!$fs_source_reception->_id || !$fs_source_reception->active) {
         return null;
     }
     $count_files = CMbPath::countFiles($fs_source_reception->host);
     if ($count_files < 100) {
         try {
             $files = $fs_source_reception->receive();
         } catch (CMbException $e) {
             return CAppUI::tr($e->getMessage());
         }
     }
     $delfile_read_reject = CAppUI::conf("dPfacturation Other delfile_read_reject", CGroups::loadCurrent());
     foreach ($files as $_file) {
         $fs = new CSourceFileSystem();
         $rejet = new self();
         $rejet->praticien_id = $chir_id;
         $rejet->file_name = basename($_file);
         if ($msg = $rejet->store()) {
             return $msg;
         }
         $rejet->readXML($fs->getData($_file));
         //Sauvegarde du XML en CFile
         $new_file = new CFile();
         $new_file->setObject($rejet);
         $new_file->file_name = basename($_file);
         $new_file->file_type = "application/xml";
         $new_file->author_id = CAppUI::$user->_id;
         $new_file->fillFields();
         $new_file->updateFormFields();
         $new_file->forceDir();
         $new_file->putContent(trim($fs->getData($_file)));
         if ($msg = $new_file->store()) {
             mbTrace($msg);
         }
         //Suppression du fichier selon configuration
         if ($delfile_read_reject) {
             $fs->delFile($_file);
         }
     }
     return null;
 }
Esempio n. 19
0
            if (strpos($_file->file_type, "image/") === false || $_file->file_type == "image/fabricjs" || $_file->annule) {
                unset($object->_ref_files[$file_id]);
            }
        }
    }
}
// creation
if (!$draw->_id) {
    // author = self
    $draw->author_id = $user->_id;
    $draw->_ref_author = $user;
    $draw->file_type = "image/svg+xml";
    $draw->file_name = "Sans titre";
    // context
    if ($object && $object->_id) {
        $draw->setObject($object);
    } else {
        $draw->setObject($user);
    }
    $draw->loadTargetObject();
}
$file_categories = CFilesCategory::listCatClass($draw->_class);
$category = new CDrawingCategory();
$where = array("user_id" => " = '{$user->_id}'");
$categories_user = $category->loadList($where);
$where = array("function_id" => " = '{$user->function_id}'");
$categories_function = $category->loadList($where);
$where = array("group_id" => " = '{$user->_ref_function}->group_id'");
$categories_group = $category->loadList($where);
/** @var CDrawingCategory[] $categories */
$categories = $categories_user + $categories_function + $categories_group;
 /**
  * Store the file
  *
  * @param String  $prefix    Prefix for the name of file
  * @param String  $file_name Name of file
  * @param String  $file_type Type file
  * @param CSejour $sejour    Sejour
  * @param Array   &$erreur   Error
  *
  * @return bool
  */
 function storeFile($prefix, $file_name, $file_type, $sejour, &$erreur)
 {
     /** @var CInteropSender $sender */
     $sender = $this->_ref_sender;
     $exchange_hpr = $this->_ref_exchange_hpr;
     $file = false;
     $object_links = $sender->loadRefsObjectLinks();
     foreach ($object_links as $_object_link) {
         /** @var CInteropSender $sender_link */
         $sender_link = $_object_link->loadRefObject();
         $sender_link->loadRefsExchangesSources();
         foreach ($sender_link->_ref_exchanges_sources as $_source) {
             $path = $_source->getFullPath($file_name);
             /** @var CExchangeSource $_source */
             $data = $_source->getData($path);
             if (!$data) {
                 continue;
             }
             $file = new CFile();
             $file->file_name = "{$prefix} {$file_name}";
             $file->file_type = $file_type;
             $file->fillFields();
             $file->setObject($sejour);
             $file->putContent($data);
             if ($msg = $file->store()) {
                 $erreur[] = new CHPrimSanteError($exchange_hpr, "P", "17", array("OBX", $this->loop, $this->identifier_patient), "10.6", CMbString::removeAllHTMLEntities($msg));
                 continue;
             }
         }
     }
     if (!$file) {
         $erreur[] = new CHPrimSanteError($exchange_hpr, "P", "18", array("OBX", $this->loop, $this->identifier_patient), "10.6");
         return false;
     }
     return true;
 }