Beispiel #1
0
 private function getArchiveDocumentContent(&$id)
 {
     global $mtlda;
     $document = new \Mtlda\Models\DocumentModel(array('idx' => $id->id, 'guid' => $id->guid));
     if (!$document) {
         static::raiseError("Unable to load a DocumentModel!");
         return false;
     }
     $storage = new StorageController();
     if (!($file = $storage->retrieveFile($document))) {
         static::raiseError("StorageController::retrieveFile() returned false");
         return false;
     }
     if (!isset($file) || empty($file) || !is_array($file) || !isset($file['hash'], $file['content']) || empty($file['hash']) || empty($file['content'])) {
         static::raiseError("StorageController::retireveFile() returned an invalid file");
         return false;
     }
     if (strlen($file['content']) != $document->getFileSize()) {
         static::raiseError("File size of retrieved file does not match archive record!");
         return false;
     }
     if ($file['hash'] != $document->getFileHash()) {
         static::raiseError("File hash of retrieved file does not match archive record!");
         return false;
     }
     return $file['content'];
 }
require_once 'XmlCharts/Simple/XmlSimpleSeries.php';
require_once 'Configs/SimpleSeriesConfig.php';
?>

<?php 
$period = 0;
if (isset($_GET['period'])) {
    if ($_GET['period'] == null) {
        $period = 6;
    } else {
        $period = $_GET['period'];
    }
} else {
    $period = 6;
}
$quotationCode = $_GET['quotation'];
$storage = new StorageDao(Connection::connect());
$controller = new StorageController($storage);
$config = new SimpleSeriesConfig();
$cotations = $controller->getStorageQuotations($quotationCode, $period);
if ($cotations != null) {
    $config->config($cotations);
    $config->setTitle($quotationCode);
    $xml = "arq_line" . $quotationCode . ".xml";
    $xmlResponse = $config->getChartXml()->buildXml("core/Charts/xml/" . $xml);
    $jsonResponse = new JsonResponse();
    print_r($jsonResponse->response(true, null)->addValue("xml", str_replace("\"", "'", $xmlResponse))->serialize());
} else {
    $jsonResponse = new JsonResponse();
    print_r($jsonResponse->response(false, "Nenhum valor encontrado neste período")->serialize());
}
Beispiel #3
0
 private function attachAuditLogToDocument($document)
 {
     global $audit;
     if (!isset($document) || empty($document) || !is_a($document, 'Mtlda\\Models\\DocumentModel')) {
         static::raiseError(__METHOD__ . ' can only work with DocmentModels!');
         return false;
     }
     if (($fqfn = $document->getFilePath()) === false) {
         static::raiseError(get_class($document) . '::getFilePath() returned false!');
         return false;
     }
     try {
         $pdf = new \FPDI();
     } catch (\Exception $e) {
         static::raiseError(__METHOD__ . '(), failed to load FPDI!', false, $e);
         return false;
     }
     try {
         $storage = new StorageController();
     } catch (\Exception $e) {
         static::raiseError(__METHOD__ . '(), failed to load StorageController!', false, $e);
         return false;
     }
     try {
         $page_count = $pdf->setSourceFile($fqfn);
     } catch (\Exception $e) {
         static::raiseError(get_class($pdf) . '::setSourceFile() has thrown an exception!', false, $e);
         return false;
     }
     for ($page_no = 1; $page_no <= $page_count; $page_no++) {
         // import a page
         $templateId = $pdf->importPage($page_no);
         // get the size of the imported page
         $size = $pdf->getTemplateSize($templateId);
         // create a page (landscape or portrait depending on the imported page size)
         if ($size['w'] > $size['h']) {
             $pdf->AddPage('L', array($size['w'], $size['h']));
         } else {
             $pdf->AddPage('P', array($size['w'], $size['h']));
         }
         // use the imported page
         $pdf->useTemplate($templateId);
     }
     if (($audittxt = $audit->retrieveAuditLog($document->getGuid())) === false) {
         static::raiseError(get_class($audit) . '::retrieveAuditLog() returned false!');
         return false;
     }
     if (empty($audittxt)) {
         static::raiseError(__METHOD__ . ' audit log is empty!');
         return false;
     }
     if (($tmpdir = $storage->createTempDir('auditlog_')) === false) {
         static::raiseError(get_class($storage) . '::createTempDir() returned false!');
         return false;
     }
     $auditlog = $tmpdir . '/AuditLog.txt';
     if (file_exists($auditlog)) {
         static::raiseError('Strangle there is already an AuditLog.txt in my temporary directory! ' . $auditlog);
         return false;
     }
     if (!file_put_contents($auditlog, $audittxt)) {
         static::raiseError('file_put_contents() returned false!');
         return false;
     }
     try {
         $pdf->Annotation(10, 10, 5, 7, 'AuditLog.txt', array('Subtype' => 'FileAttachment', 'Name' => 'PushPin', 'FS' => $auditlog));
     } catch (\Exception $e) {
         unlink($auditlog);
         rmdir($tmpdir);
         static::raiseError(get_class($pdf) . '::Annotation() has thrown an exception!', false, $e);
         return false;
     }
     unlink($auditlog);
     rmdir($tmpdir);
     try {
         $pdf->Output($fqfn, 'F');
     } catch (\Exception $e) {
         static::raiseError(get_class($pdf) . '::Output() has thrown an exception!', false, $e);
         return false;
     }
     try {
         @$pdf->cleanUp();
     } catch (\Exception $e) {
         static::raiseError(get_class($pdf) . '::cleanUp() has thrown an exception!', false, $e);
         return false;
     }
     if (!$document->refresh()) {
         static::raiseError(get_class($document) . '::refresh() returned false!');
         return false;
     }
     return true;
 }
Beispiel #4
0
 public function handleQueue()
 {
     global $mtlda, $config, $audit, $mbus;
     if ($config->isCreatePreviewImageOnImport()) {
         try {
             $imagectrl = new \Mtlda\Controllers\ImageController();
         } catch (\Exception $e) {
             static::raiseError(__METHOD__ . '(), unable to load ImageController!');
             return false;
         }
     }
     if ($config->isPdfSigningEnabled() && ($sign_pos = $config->getPdfSigningIconPosition()) === false) {
         static::raiseError(__METHOD__ . '(), PDF-Signing is enabled but no signing-icon-position is defined!');
         return false;
     }
     try {
         $storage = new StorageController();
     } catch (\Exception $e) {
         static::raiseError(__METHOD__ . ', failed to load StorageController!');
         return false;
     }
     $files = array();
     if ($this->scanDirectory(self::INCOMING_DIRECTORY, $files) === false) {
         static::raiseError(__CLASS__ . '::scanDirectory() returned false!');
         return false;
     }
     if (!isset($files) || empty($files)) {
         return true;
     }
     $start = 10;
     $end = 90;
     $cnt = 0;
     $total = count($files);
     $steps = ($end - $start) / $total;
     foreach ($files as $file) {
         $cnt += 1;
         $lockfile = "{$file['fqpn']}.lock";
         $mbus->sendMessageToClient('import-reply', "Importing file {$cnt} of {$total}.", floor($start + $cnt * $steps) . '%');
         // if file has vanished in the meantime.
         if (!file_exists($file['fqpn'])) {
             continue;
         }
         if (file_exists($lockfile)) {
             if (($timestamp = file_get_contents($lockfile)) === false) {
                 static::raiseError(__METHOD__ . "(), failed to read {$lockfile}!");
                 return false;
             }
             if (!isset($timestamp) || empty($timestamp) || !is_numeric($timestamp)) {
                 static::raiseError(__METHOD__ . "(), {$lockfile} does not contain a timestamp!");
                 return false;
             }
             if (time() < $timestamp + 5 * 60) {
                 continue;
             }
         }
         if (file_put_contents($lockfile, time()) === false) {
             static::raiseError(__METHOD__ . "(), failed to write timestamp into {$lockfile}!");
             return false;
         }
         if (($guid = $mtlda->createGuid()) === false) {
             static::raiseError(get_class($mtlda) . '::createGuid() returned false!');
             return false;
         }
         try {
             $queueitem = new \Mtlda\Models\QueueItemModel();
         } catch (\Exception $e) {
             static::raiseError(__METHOD__ . '(), failed to load QueueItemModel!');
             return false;
         }
         try {
             $queueitem->setGuid($guid);
             $queueitem->setFileName($file['filename']);
             $queueitem->setFileSize($file['size']);
             $queueitem->setFileHash($file['hash']);
             $queueitem->setState('new');
             $queueitem->setTime(microtime(true));
             $queueitem->setProcessingFlag(false);
             if ($config->isPdfSigningEnabled()) {
                 $queueitem->setSigningIconPosition($sign_pos);
             }
         } catch (\Exception $e) {
             static::raiseError('Failed to prepare QueueItemModel! ', false, $e);
             return false;
         }
         $in_file = $file['fqpn'];
         $in_dir = dirname($in_file);
         if (!file_exists($in_file)) {
             static::raiseError(__METHOD__ . "(), file {$in_file} does not exist!");
             return false;
         }
         if (($dsc_file = preg_replace('/\\.pdf$/i', '.dsc', $in_file)) === false) {
             static::raiseError(__METHOD__ . '(), preg_replace() returned false!');
             return false;
         }
         if (($work_file = $queueitem->getFilePath()) === false) {
             static::raiseError(get_class($queueitem) . '::getFilePath() returned false!');
             return false;
         }
         if (isset($dsc_file) && !empty($dsc_file) && file_exists($dsc_file)) {
             if (($description = file_get_contents($dsc_file)) === false) {
                 static::raiseError(__METHOD__ . "(), file_get_contents({$dsc_file}) returned false!");
                 return false;
             }
             if (!$queueitem->setDescription($description)) {
                 static::raiseError(get_class($queueitem) . '::setDescription() returned false!');
                 return false;
             }
         }
         // create the target directory structure
         if (!$storage->createDirectoryStructure(dirname($work_file))) {
             static::raiseError(get_class($storage) . '::createDirectoryStructure() returned false!');
             return false;
         }
         if (copy($in_file, $work_file) === false) {
             static::raiseError(__METHOD__ . "(), copy({$in_file}, {$work_file}) returned false!");
             return false;
         }
         if (!$queueitem->save()) {
             $queueitem->delete();
             static::raiseError(get_class($queueitem) . '::save() returned false!');
             return false;
         }
         if (!unlink($in_file)) {
             static::raiseError(__METHOD__ . "(), unlink({$in_file}) failed!");
             return false;
         }
         if (isset($dsc_file) && !empty($dsc_file) && file_exists($dsc_file)) {
             if (!unlink($dsc_file)) {
                 static::raiseError(__METHOD__ . "(), unlink({$dsc_file}) failed!");
                 return false;
             }
         }
         if ($in_dir != self::INCOMING_DIRECTORY) {
             if (!$this->unlinkDirectory($in_dir)) {
                 static::raiseError(__CLASS__ . '::unlinkDirectory() returned false!');
                 return false;
             }
         }
         $json_str = json_encode(array('file_name' => $file['filename'], 'file_size' => $file['size'], 'file_hash' => $file['hash'], 'state' => 'new'));
         if (!$json_str) {
             $queueitem->delete();
             static::raiseError(__METHOD__ . '(), json_encode() returned false!');
             return false;
         }
         try {
             $audit->log($json_str, "import", "queue", $guid);
         } catch (\Exception $e) {
             $queueitem->delete();
             static::raiseError(get_class($audit) . '::log() returned false!');
             return false;
         }
         if ($config->isCreatePreviewImageOnImport()) {
             if (!$imagectrl->createPreviewImage($queueitem, false)) {
                 static::raiseError(get_class($imagectrl) . '::savePreviewImage() returned false!');
                 return false;
             }
         }
         if (file_exists($lockfile) && !unlink($lockfile)) {
             static::raiseError(__METHOD__ . "(), unlink({$lockfile}) failed!");
             return false;
         }
     }
     return true;
 }
<?php

error_reporting(E_ALL);
ini_set('display_errors', '1');
require_once 'core/Cotation/CotacoesRefactor/Classifier/DateMap.php';
require_once 'core/Cotation/CotacoesRefactor/Classifier/Cotation.php';
require_once 'core/Cotation/CotacoesRefactor/Classifier/Classifier.php';
require_once 'StorageDao.php';
require_once 'StorageController.php';
require_once 'core/Charts/XmlCharts/XmlChart.php';
require_once 'core/Charts/XmlCharts/Simple/XmlSimpleSeries.php';
require_once 'core/Charts/Configs/SimpleSeriesConfig.php';
?>

<?php 
$quotationCode = $_GET['quotation'];
$storage = new StorageDao(Connection::connect());
$controller = new StorageController($storage);
header('Content-type: application/json');
echo $controller->getStorageQuotationsToJson($quotationCode);