MT-10 fix export Report Table

This commit is contained in:
dheeyi
2016-03-29 19:11:23 -04:00
parent 48e4948492
commit e4f022997e

View File

@@ -61,8 +61,8 @@ class ReportTablesMigrator implements Importable, Exportable
{ {
try { try {
$oData = new \StdClass(); $oData = new \StdClass();
$oData->reportTables = $this->processes->getReportTables($prj_uid); $oDataReportTables = $this->processes->getReportTables($prj_uid);
$oData->reportTablesVars = $this->processes->getReportTablesVar($prj_uid); $oData->reportContent[0] = $this->getData($oDataReportTables);
$result = array( $result = array(
'workflow-definition' => (array)$oData 'workflow-definition' => (array)$oData
@@ -82,4 +82,74 @@ class ReportTablesMigrator implements Importable, Exportable
// TODO: Implement afterExport() method. // TODO: Implement afterExport() method.
} }
/**
* @param $oDataReportTables
* @return array
* @throws ExportException
*/
public function getData($oDataReportTables)
{
$oData = array();
$at = new \AdditionalTables();
try {
\G::LoadCLass('net');
$net = new \NET(\G::getIpAddress());
\G::LoadClass("system");
$META = " \n-----== ProcessMaker Open Source Private Tables ==-----\n" . " @Ver: 1.0 Oct-2009\n" . " @Processmaker version: " . \System::getVersion() . "\n" . " -------------------------------------------------------\n" . " @Export Date: " . date("l jS \of F Y h:i:s A") . "\n" . " @Server address: " . getenv('SERVER_NAME') . " (" . getenv('SERVER_ADDR') . ")\n" . " @Client address: " . $net->hostname . "\n" . " @Workspace: " . SYS_SYS . "\n" . " @Export trace back:\n\n";
$EXPORT_TRACEBACK = Array();
foreach ($oDataReportTables as $table) {
$tableRecord = $at->load($table['ADD_TAB_UID']);
$tableData = $at->getAllData($table['ADD_TAB_UID'], null, null, false);
$table['ADD_TAB_NAME'] = $tableRecord['ADD_TAB_NAME'];
$rows = $tableData['rows'];
$count = $tableData['count'];
array_push($EXPORT_TRACEBACK, Array('uid' => $table['ADD_TAB_UID'], 'name' => $table['ADD_TAB_NAME'],
'num_regs' => $tableData['count'], 'schema' => 'yes', 'data' => 'no'));
}
$sTrace = "TABLE UID TABLE NAME\tREGS\tSCHEMA\tDATA\n";
foreach ($EXPORT_TRACEBACK as $row) {
$sTrace .= "{$row['uid']}\t{$row['name']}\t\t{$row['num_regs']}\t{$row['schema']}\t{$row['data']}\n";
}
$META .= $sTrace;
$PUBLIC_ROOT_PATH = PATH_DATA . 'sites' . PATH_SEP . SYS_SYS . PATH_SEP . 'public' . PATH_SEP;
$filenameOnly = strtolower('SYS-' . SYS_SYS . "_" . date("Y-m-d") . '_' . date("Hi") . ".pmt");
$filename = $PUBLIC_ROOT_PATH . $filenameOnly;
$fp = fopen($filename, "wb");
$bytesSaved = 0;
$bufferType = '@META';
$fsData = sprintf("%09d", strlen($META));
$fsbufferType = sprintf("%09d", strlen($bufferType));
$bytesSaved += fwrite($fp, $fsbufferType);
$bytesSaved += fwrite($fp, $bufferType);
$bytesSaved += fwrite($fp, $fsData);
$bytesSaved += fwrite($fp, $META);
foreach ($oDataReportTables as $table) {
$oAdditionalTables = new \AdditionalTables();
$aData = $oAdditionalTables->load($table['ADD_TAB_UID'], true);
$bufferType = '@SCHEMA';
$SDATA = serialize($aData);
$fsUid = sprintf("%09d", strlen($table['ADD_TAB_UID']));
$fsData = sprintf("%09d", strlen($SDATA));
$fsbufferType = sprintf("%09d", strlen($bufferType));
$bytesSaved += fwrite($fp, $fsbufferType);
$bytesSaved += fwrite($fp, $bufferType);
$bytesSaved += fwrite($fp, $fsUid);
$bytesSaved += fwrite($fp, $table['ADD_TAB_UID']);
$bytesSaved += fwrite($fp, $fsData);
$bytesSaved += fwrite($fp, $SDATA);
}
$oData['REPORTDATA'] = file_get_contents($filename);
fclose($fp);
return $oData;
} catch (\Exception $e) {
$exception = new ExportException($e->getMessage());
$exception->setNameException($this->className);
throw($exception);
}
}
} }