From fe30b3b2d571f0431d7167ff76c7c9610799760d Mon Sep 17 00:00:00 2001 From: Alvaro Campos Date: Wed, 16 Feb 2011 21:44:56 +0000 Subject: [PATCH] versionamiento con ID sin compatibilidad de versionamiento anterior --- .../cases/cases_ShowOutputDocument.php | 20 +-- workflow/engine/methods/cases/cases_Step.php | 153 ++++++++++-------- 2 files changed, 98 insertions(+), 75 deletions(-) diff --git a/workflow/engine/methods/cases/cases_ShowOutputDocument.php b/workflow/engine/methods/cases/cases_ShowOutputDocument.php index 285741634..b544f5f17 100644 --- a/workflow/engine/methods/cases/cases_ShowOutputDocument.php +++ b/workflow/engine/methods/cases/cases_ShowOutputDocument.php @@ -1,10 +1,10 @@ . - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., + * + * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. - * + * */ /* * Created on 13-02-2008 @@ -31,7 +31,7 @@ require_once ( "classes/model/AppDocumentPeer.php" ); $oAppDocument = new AppDocument(); - $oAppDocument->Fields = $oAppDocument->load($_GET['a'],(isset($_GET['v']) )? $_GET['v'] : NULL ); + $oAppDocument->Fields = $oAppDocument->load($_GET['a'],isset($_GET['v']) ? $_GET['v'] : NULL ); $sAppDocUid = $oAppDocument->getAppDocUid(); $info = pathinfo( $oAppDocument->getAppDocFilename() ); @@ -47,7 +47,7 @@ } } $ver= (isset($_GET['v']) && $_GET['v']!='') ? '_'.$_GET['v'] : ''; - $realPath = PATH_DOCUMENT . $oAppDocument->Fields['APP_UID'] . '/outdocs/' . $info['basename'] .$ver. '.' . $ext ; - G::streamFile ( $realPath, true ); - + $realPath = PATH_DOCUMENT . $oAppDocument->Fields['APP_UID'] . '/outdocs/' . $sAppDocUid .$ver. '.' . $ext ; G::streamFile ( $realPath, true ); + // G::streamFile ( $realPath, true ,$info['basename'] .$ver. '.' . $ext ); + G::streamFile ( $realPath, true); ?> \ No newline at end of file diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index e3ff8945c..b88e6f492 100644 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -323,72 +323,7 @@ } //END: If there is a Break Step registered from Plugin - $sFilename = preg_replace('[^A-Za-z0-9_]', '_', G::replaceDataField($aOD['OUT_DOC_FILENAME'], $Fields['APP_DATA'])); - if ( $sFilename == '' ) $sFilename='_'; - $pathOutput = PATH_DOCUMENT . $_SESSION['APPLICATION'] . PATH_SEP . 'outdocs'. PATH_SEP ; - G::mk_dir ( $pathOutput ); - switch ( $aOD['OUT_DOC_TYPE'] ) { - case 'HTML' : - $oOutputDocument->generate( $_GET['UID'], $Fields['APP_DATA'], $pathOutput, - $sFilename, $aOD['OUT_DOC_TEMPLATE'], (boolean)$aOD['OUT_DOC_LANDSCAPE'], $aOD['OUT_DOC_GENERATE'] ); - break; - case 'JRXML' : - //creating the xml with the application data; - $xmlData = "\n"; - foreach ( $Fields['APP_DATA'] as $key => $val ) { - $xmlData .= " <$key>$val\n"; - } - $xmlData .= "\n"; - $iSize = file_put_contents ( $javaOutput . 'addressBook.xml' , $xmlData ); - G::LoadClass ('javaBridgePM'); - $JBPM = new JavaBridgePM(); - $JBPM->checkJavaExtension(); - - $util = new Java("com.processmaker.util.pmutils"); - $util->setInputPath( $javaInput ); - $util->setOutputPath( $javaOutput ); - - //$content = file_get_contents ( PATH_DYNAFORM . $aOD['PRO_UID'] . PATH_SEP . $aOD['OUT_DOC_UID'] . '.jrxml' ); - //$iSize = file_put_contents ( $javaInput . $aOD['OUT_DOC_UID'] . '.jrxml', $content ); - copy ( PATH_DYNAFORM . $aOD['PRO_UID'] . PATH_SEP . $aOD['OUT_DOC_UID'] . '.jrxml', $javaInput . $aOD['OUT_DOC_UID'] . '.jrxml' ); - - $outputFile = $javaOutput . $sFilename . '.pdf' ; - print $util->jrxml2pdf( $aOD['OUT_DOC_UID'] . '.jrxml' , basename($outputFile) ); - - //$content = file_get_contents ( $outputFile ); - //$iSize = file_put_contents ( $pathOutput . $sFilename . '.pdf' , $content ); - copy ( $outputFile, $pathOutput . $sFilename . '.pdf' ); - //die; - break; - case 'ACROFORM' : - //creating the xml with the application data; - $xmlData = "\n"; - foreach ( $Fields['APP_DATA'] as $key => $val ) { - $xmlData .= " <$key>$val\n"; - } - $xmlData .= "\n"; - //$iSize = file_put_contents ( $javaOutput . 'addressBook.xml' , $xmlData ); - - G::LoadClass ('javaBridgePM'); - $JBPM = new JavaBridgePM(); - $JBPM->checkJavaExtension(); - - $util = new Java("com.processmaker.util.pmutils"); - $util->setInputPath( $javaInput ); - $util->setOutputPath( $javaOutput ); - - copy ( PATH_DYNAFORM . $aOD['PRO_UID'] . PATH_SEP . $aOD['OUT_DOC_UID'] . '.pdf', $javaInput . $aOD['OUT_DOC_UID'] . '.pdf' ); - - $outputFile = $javaOutput . $sFilename . '.pdf' ; - print $util->writeVarsToAcroFields( $aOD['OUT_DOC_UID'] . '.pdf' , $xmlData ); - - copy ( $javaOutput. $aOD['OUT_DOC_UID'] . '.pdf', $pathOutput . $sFilename . '.pdf' ); - - break; - default : - throw ( new Exception ('invalid output document' )); - } require_once 'classes/model/AppFolder.php'; require_once 'classes/model/AppDocument.php'; @@ -469,6 +404,94 @@ } } + //$sFilename = ereg_replace('[^A-Za-z0-9_]', '_', G::replaceDataField($aOD['OUT_DOC_FILENAME'], $Fields['APP_DATA'])); + //if ( $sFilename == '' ) $sFilename='_'; + + $sFilename = $aFields['APP_DOC_UID']. "_".$lastDocVersion; + + $pathOutput = PATH_DOCUMENT . $_SESSION['APPLICATION'] . PATH_SEP . 'outdocs'. PATH_SEP ; + G::mk_dir ( $pathOutput ); + switch ( $aOD['OUT_DOC_TYPE'] ) { + case 'HTML' : + + $aProperties = array(); //maui + + if(!isset($aOD['OUT_DOC_MEDIA'])) + $aOD['OUT_DOC_MEDIA'] = 'Letter'; + if(!isset($aOD['OUT_DOC_LEFT_MARGIN'])) + $aOD['OUT_DOC_LEFT_MARGIN'] = '15'; + if(!isset($aOD['OUT_DOC_RIGHT_MARGIN'])) + $aOD['OUT_DOC_RIGHT_MARGIN'] = '15'; + if(!isset($aOD['OUT_DOC_TOP_MARGIN'])) + $aOD['OUT_DOC_TOP_MARGIN'] = '15'; + if(!isset($aOD['OUT_DOC_BOTTOM_MARGIN'])) + $aOD['OUT_DOC_BOTTOM_MARGIN'] = '15'; + + $aProperties['media']=$aOD['OUT_DOC_MEDIA']; + $aProperties['margins']=array('left' => $aOD['OUT_DOC_LEFT_MARGIN'], 'right' => $aOD['OUT_DOC_RIGHT_MARGIN'], 'top' => $aOD['OUT_DOC_TOP_MARGIN'], 'bottom' => $aOD['OUT_DOC_BOTTOM_MARGIN'],); + $oOutputDocument->generate( $_GET['UID'], $Fields['APP_DATA'], $pathOutput, + //$sFilename, $aOD['OUT_DOC_TEMPLATE'], (boolean)$aOD['OUT_DOC_LANDSCAPE'], $aOD['OUT_DOC_GENERATE'],$aProperties ); + $sFilename, $aOD['OUT_DOC_TEMPLATE'], (boolean)$aOD['OUT_DOC_LANDSCAPE'], $aOD['OUT_DOC_GENERATE'] ); + break; + case 'JRXML' : + //creating the xml with the application data; + $xmlData = "\n"; + foreach ( $Fields['APP_DATA'] as $key => $val ) { + $xmlData .= " <$key>$val\n"; + } + $xmlData .= "\n"; + $iSize = file_put_contents ( $javaOutput . 'addressBook.xml' , $xmlData ); + + G::LoadClass ('javaBridgePM'); + $JBPM = new JavaBridgePM(); + $JBPM->checkJavaExtension(); + + $util = new Java("com.processmaker.util.pmutils"); + $util->setInputPath( $javaInput ); + $util->setOutputPath( $javaOutput ); + + //$content = file_get_contents ( PATH_DYNAFORM . $aOD['PRO_UID'] . PATH_SEP . $aOD['OUT_DOC_UID'] . '.jrxml' ); + //$iSize = file_put_contents ( $javaInput . $aOD['OUT_DOC_UID'] . '.jrxml', $content ); + copy ( PATH_DYNAFORM . $aOD['PRO_UID'] . PATH_SEP . $aOD['OUT_DOC_UID'] . '.jrxml', $javaInput . $aOD['OUT_DOC_UID'] . '.jrxml' ); + + $outputFile = $javaOutput . $sFilename . '.pdf' ; + print $util->jrxml2pdf( $aOD['OUT_DOC_UID'] . '.jrxml' , basename($outputFile) ); + + //$content = file_get_contents ( $outputFile ); + //$iSize = file_put_contents ( $pathOutput . $sFilename . '.pdf' , $content ); + copy ( $outputFile, $pathOutput . $sFilename . '.pdf' ); + //die; + break; + case 'ACROFORM' : + //creating the xml with the application data; + $xmlData = "\n"; + foreach ( $Fields['APP_DATA'] as $key => $val ) { + $xmlData .= " <$key>$val\n"; + } + $xmlData .= "\n"; + //$iSize = file_put_contents ( $javaOutput . 'addressBook.xml' , $xmlData ); + + G::LoadClass ('javaBridgePM'); + $JBPM = new JavaBridgePM(); + $JBPM->checkJavaExtension(); + + $util = new Java("com.processmaker.util.pmutils"); + $util->setInputPath( $javaInput ); + $util->setOutputPath( $javaOutput ); + + copy ( PATH_DYNAFORM . $aOD['PRO_UID'] . PATH_SEP . $aOD['OUT_DOC_UID'] . '.pdf', $javaInput . $aOD['OUT_DOC_UID'] . '.pdf' ); + + $outputFile = $javaOutput . $sFilename . '.pdf' ; + print $util->writeVarsToAcroFields( $aOD['OUT_DOC_UID'] . '.pdf' , $xmlData ); + + copy ( $javaOutput. $aOD['OUT_DOC_UID'] . '.pdf', $pathOutput . $sFilename . '.pdf' ); + + break; + default : + throw ( new Exception ('invalid output document' )); + } + + //Execute after triggers - Start $Fields['APP_DATA'] = $oCase->ExecuteTriggers ( $_SESSION['TASK'], 'OUTPUT_DOCUMENT', $_GET['UID'], 'AFTER', $Fields['APP_DATA'] ); $Fields['DEL_INDEX']= $_SESSION['INDEX'];