<?php /** * Read FTP files * * @category FTP * @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(); $sender_ftp_id = CValue::get("sender_ftp_id"); $sender_ftp = new CSenderFTP(); $senders_ftp = array(); if ($sender_ftp_id) { $sender_ftp->load($sender_ftp_id); $sender_ftp->loadRefsExchangesSources(); $senders_ftp[] = $sender_ftp->actif ? $sender_ftp : array(); } else { // Chargement de la liste des expéditeurs d'intégration $where = array(); $where["actif"] = " = '1'"; $senders_ftp = $sender_ftp->loadList($where); foreach ($senders_ftp as $_sender_ftp) { $_sender_ftp->loadRefsExchangesSources(); } } foreach ($senders_ftp as $_sender_ftp) { echo CApp::fetch("ftp", "ajax_dispatch_files", array("sender_ftp_guid" => $_sender_ftp->_guid));
$ftp->init($exchange_source); try { $ftp->connect(); } catch (CMbException $e) { CAppUI::stepAjax($e->getMessage(), UI_MSG_WARNING); } $list = array(); try { $list = $ftp->getListFiles($ftp->fileprefix); } catch (CMbException $e) { 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();