コード例 #1
0
ファイル: upload.php プロジェクト: rodrigoivan/processmaker
     }
     if (isset($_POST["APP_DOC_TYPE"])) {
         $aFields["APP_DOC_TYPE"] = $_POST["APP_DOC_TYPE"];
     }
     $aFields["APP_DOC_CREATE_DATE"] = date("Y-m-d H:i:s");
     $aFields["APP_DOC_COMMENT"] = isset($_POST["COMMENT"]) ? $_POST["COMMENT"] : "";
     $aFields["APP_DOC_TITLE"] = isset($_POST["TITLE"]) ? $_POST["TITLE"] : "";
     //$aFields["FOLDER_UID"] = $folderId,
     //$aFields["APP_DOC_TAGS"] = $fileTags
     $aFields["APP_DOC_FIELDNAME"] = $_POST["APP_DOC_FIELDNAME"];
 } else {
     //New record
     $aFields = array("APP_UID" => $_POST["APPLICATION"], "DEL_INDEX" => $_POST["INDEX"], "USR_UID" => $_POST["USR_UID"], "DOC_UID" => $_POST["DOC_UID"], "APP_DOC_TYPE" => $_POST["APP_DOC_TYPE"], "APP_DOC_CREATE_DATE" => date("Y-m-d H:i:s"), "APP_DOC_COMMENT" => isset($_POST["COMMENT"]) ? $_POST["COMMENT"] : "", "APP_DOC_TITLE" => isset($_POST["TITLE"]) ? $_POST["TITLE"] : "", "APP_DOC_FILENAME" => isset($_FILES["ATTACH_FILE"]["name"]) ? $_FILES["ATTACH_FILE"]["name"] : "", "FOLDER_UID" => $folderId, "APP_DOC_TAGS" => $fileTags, "APP_DOC_FIELDNAME" => $_POST["APP_DOC_FIELDNAME"]);
 }
 $oAppDocument->create($aFields);
 $sAppUid = $oAppDocument->getAppUid();
 $sAppDocUid = $oAppDocument->getAppDocUid();
 $iDocVersion = $oAppDocument->getDocVersion();
 $info = pathinfo($oAppDocument->getAppDocFilename());
 $ext = isset($info["extension"]) ? $info["extension"] : "";
 //Save the file
 echo $sPathName = PATH_DOCUMENT . $sAppUid . PATH_SEP;
 echo $sFileName = $sAppDocUid . "_" . $iDocVersion . "." . $ext;
 print G::uploadFile($_FILES["ATTACH_FILE"]["tmp_name"], $sPathName, $sFileName);
 print "* The file " . $_FILES["ATTACH_FILE"]["name"] . " was uploaded successfully in case " . $sAppUid . " as input document..\n";
 //Get current Application Fields
 $application = new Application();
 $appFields = $application->Load($_POST["APPLICATION"]);
 $appFields = unserialize($appFields["APP_DATA"]);
 $_SESSION["APPLICATION"] = $appFields["APPLICATION"];
 $_SESSION["PROCESS"] = $appFields["PROCESS"];
コード例 #2
0
ファイル: AppDocument.php プロジェクト: rrsc/processmaker
    /**
     * Create the application document registry
     *
     * @param array $aData
     * @return string
     *
     */
    public function create ($aData)
    {
        $oConnection = Propel::getConnection( AppDocumentPeer::DATABASE_NAME );
        try {
            $oAppDocument = new AppDocument();

            if (! isset( $aData['APP_DOC_UID'] )) {
                $sUID = G::generateUniqueID();
                $docVersion = 1;
            } else {
                $sUID = $aData['APP_DOC_UID'];
                $docVersion = $this->getLastAppDocVersion( $aData['APP_DOC_UID'], $oAppDocument->getAppUid() );
                $oAppDocument->load( $aData['APP_DOC_UID'], $docVersion );
                switch ($oAppDocument->getAppDocType()) {
                    case "OUTPUT": //Output versioning
                        $o = new OutputDocument();
                        $oOutputDocument = $o->load( $oAppDocument->getDocUid() );

                        if (! $oOutputDocument['OUT_DOC_VERSIONING']) {
                            throw (new Exception( 'The Output document has not versioning enabled!' ));
                        }
                        break;
                    case "INPUT": // Input versioning
                        $o = new InputDocument();
                        $oInputDocument = $o->load( $oAppDocument->getDocUid() );
                        if (! $oInputDocument['INP_DOC_VERSIONING']) {
                            throw (new Exception( 'This Input document does not have the versioning enabled, for this reason this operation cannot be completed' ));
                        }
                        break;
                    default: //Not a valid type
                        throw (new Exception( 'The document is not of a valid Type' ));
                        break;
                }

                $docVersion ++;
            }

            $oAppDocument->fromArray( $aData, BasePeer::TYPE_FIELDNAME );
            $oAppDocument->setDocVersion( $docVersion );

            $oAppDocument->setAppDocUid( $sUID );
            $oAppDocument->setAppDocIndex( $this->getLastIndex( $oAppDocument->getAppUid() ) + 1 );
            if ($oAppDocument->validate()) {
                $oConnection->begin();
                if (isset( $aData['APP_DOC_TITLE'] )) {
                    $oAppDocument->setAppDocTitle( $aData['APP_DOC_TITLE'] );
                }
                if (isset( $aData['APP_DOC_COMMENT'] )) {
                    $oAppDocument->setAppDocComment( $aData['APP_DOC_COMMENT'] );
                }
                if (isset( $aData['APP_DOC_FILENAME'] )) {
                    $oAppDocument->setAppDocFilename( $aData['APP_DOC_FILENAME'] );
                }
                $iResult = $oAppDocument->save();
                $oConnection->commit();
                $this->fromArray( $oAppDocument->toArray( BasePeer::TYPE_FIELDNAME ), BasePeer::TYPE_FIELDNAME );
                return $sUID;
            } else {
                $sMessage = '';
                $aValidationFailures = $oAppDocument->getValidationFailures();
                foreach ($aValidationFailures as $oValidationFailure) {
                    $sMessage .= $oValidationFailure->getMessage() . '<br />';
                }
                throw (new Exception( 'The registry cannot be created!<br />' . $sMessage ));
            }
        } catch (Exception $oError) {
            $oConnection->rollback();
            throw ($oError);
        }
    }
コード例 #3
0
 /**
  * Validates all modified columns of given AppDocument object.
  * If parameter $columns is either a single column name or an array of column names
  * than only those columns are validated.
  *
  * NOTICE: This does not apply to primary or foreign keys for now.
  *
  * @param      AppDocument $obj The object to validate.
  * @param      mixed $cols Column name or array of column names.
  *
  * @return     mixed TRUE if all columns are valid or the error message of the first invalid column.
  */
 public static function doValidate(AppDocument $obj, $cols = null)
 {
     $columns = array();
     if ($cols) {
         $dbMap = Propel::getDatabaseMap(AppDocumentPeer::DATABASE_NAME);
         $tableMap = $dbMap->getTable(AppDocumentPeer::TABLE_NAME);
         if (!is_array($cols)) {
             $cols = array($cols);
         }
         foreach ($cols as $colName) {
             if ($tableMap->containsColumn($colName)) {
                 $get = 'get' . $tableMap->getColumn($colName)->getPhpName();
                 $columns[$colName] = $obj->{$get}();
             }
         }
     } else {
         if ($obj->isNew() || $obj->isColumnModified(AppDocumentPeer::APP_DOC_UID)) {
             $columns[AppDocumentPeer::APP_DOC_UID] = $obj->getAppDocUid();
         }
         if ($obj->isNew() || $obj->isColumnModified(AppDocumentPeer::APP_UID)) {
             $columns[AppDocumentPeer::APP_UID] = $obj->getAppUid();
         }
         if ($obj->isNew() || $obj->isColumnModified(AppDocumentPeer::DEL_INDEX)) {
             $columns[AppDocumentPeer::DEL_INDEX] = $obj->getDelIndex();
         }
         if ($obj->isNew() || $obj->isColumnModified(AppDocumentPeer::DOC_UID)) {
             $columns[AppDocumentPeer::DOC_UID] = $obj->getDocUid();
         }
         if ($obj->isNew() || $obj->isColumnModified(AppDocumentPeer::USR_UID)) {
             $columns[AppDocumentPeer::USR_UID] = $obj->getUsrUid();
         }
         if ($obj->isNew() || $obj->isColumnModified(AppDocumentPeer::APP_DOC_TYPE)) {
             $columns[AppDocumentPeer::APP_DOC_TYPE] = $obj->getAppDocType();
         }
         if ($obj->isNew() || $obj->isColumnModified(AppDocumentPeer::APP_DOC_CREATE_DATE)) {
             $columns[AppDocumentPeer::APP_DOC_CREATE_DATE] = $obj->getAppDocCreateDate();
         }
         if ($obj->isNew() || $obj->isColumnModified(AppDocumentPeer::APP_DOC_STATUS)) {
             $columns[AppDocumentPeer::APP_DOC_STATUS] = $obj->getAppDocStatus();
         }
     }
     return BasePeer::doValidate(AppDocumentPeer::DATABASE_NAME, AppDocumentPeer::TABLE_NAME, $columns);
 }