Merge branch 'master' of github.com:colosa/processmaker

This commit is contained in:
Erik Amaru Ortiz
2013-09-30 09:13:30 -04:00
8 changed files with 104 additions and 4 deletions

View File

@@ -488,6 +488,7 @@ class workspaceTools
$triggers[] = $appCache->triggerAppDelegationUpdate($lang, $checkOnly);
$triggers[] = $appCache->triggerApplicationUpdate($lang, $checkOnly);
$triggers[] = $appCache->triggerApplicationDelete($lang, $checkOnly);
$triggers[] = $appCache->triggerSubApplicationInsert($lang, $checkOnly);
$triggers[] = $appCache->triggerContentUpdate($lang, $checkOnly);
if ($fill) {

View File

@@ -1547,6 +1547,46 @@ class AppCacheView extends BaseAppCacheView
return G::LoadTranslation('ID_EXIST');
}
public function triggerSubApplicationInsert($lang, $recreate = false)
{
$cnn = Propel::getConnection("workflow");
$stmt = $cnn->createStatement();
$rs = $stmt->executeQuery("SHOW TRIGGERS", ResultSet::FETCHMODE_ASSOC);
$found = false;
while ($rs->next()) {
$row = $rs->getRow();
if (strtolower($row["Trigger"] == "SUB_APPLICATION_INSERT") && strtoupper($row["Table"]) == "SUB_APPLICATION") {
$found = true;
}
}
if ($recreate) {
$rs = $stmt->executeQuery("DROP TRIGGER IF EXISTS SUB_APPLICATION_INSERT");
$found = false;
}
if (!$found) {
$filenameSql = $this->pathToAppCacheFiles . "triggerSubApplicationInsert.sql";
if (!file_exists($filenameSql)) {
throw (new Exception("file triggerSubApplicationInsert.sql doesn't exist"));
}
$sql = file_get_contents($filenameSql);
$sql = str_replace("{lang}", $lang, $sql);
$stmt->executeQuery($sql);
return G::LoadTranslation("ID_CREATED");
}
return G::LoadTranslation("ID_EXIST");
}
/**
* Retrieve the SQL code to create the APP_CACHE_VIEW triggers.
*
@@ -1559,6 +1599,7 @@ class AppCacheView extends BaseAppCacheView
'triggerApplicationUpdate.sql',
'triggerAppDelegationUpdate.sql',
'triggerAppDelegationInsert.sql',
"triggerSubApplicationInsert.sql",
'triggerContentUpdate.sql'
);

View File

@@ -753,7 +753,9 @@ class Installer extends Controller
$this->mysqlQuery( @file_get_contents( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql' ) );
$this->mysqlQuery( @file_get_contents( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerApplicationUpdate.sql' ) );
$this->mysqlQuery( @file_get_contents( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerApplicationDelete.sql' ) );
$this->mysqlQuery(@file_get_contents(PATH_HOME . "engine/methods/setup/setupSchemas/triggerSubApplicationInsert.sql"));
$this->mysqlQuery( @file_get_contents( PATH_HOME . 'engine/methods/setup/setupSchemas/triggerContentUpdate.sql' ) );
$this->mysqlQuery( "INSERT INTO `CONFIGURATION` (
`CFG_UID`,
`CFG_VALUE`
@@ -827,6 +829,9 @@ class Installer extends Controller
//APPLICATION DELETE
$res = $appCache->triggerApplicationDelete( $lang, true );
//SUB_APPLICATION INSERT
$res = $appCache->triggerSubApplicationInsert($lang, false);
//CONTENT UPDATE
$res = $appCache->triggerContentUpdate( $lang, true );
@@ -1038,6 +1043,7 @@ class Installer extends Controller
$this->mssqlQuery( @file_get_contents( PATH_HOME . 'engine/plugins/enterprise/data/triggerAppDelegationUpdate.sql' ) );
$this->mssqlQuery( @file_get_contents( PATH_HOME . 'engine/plugins/enterprise/data/triggerApplicationUpdate.sql' ) );
$this->mssqlQuery( @file_get_contents( PATH_HOME . 'engine/plugins/enterprise/data/triggerApplicationDelete.sql' ) );
$this->mysqlQuery(@file_get_contents(PATH_HOME . "engine/methods/setup/setupSchemas/triggerSubApplicationInsert.sql"));
$this->mssqlQuery( @file_get_contents( PATH_HOME . 'engine/plugins/enterprise/data/triggerContentUpdate.sql' ) );
$this->mssqlQuery( "INSERT INTO CONFIGURATION (
CFG_UID,
@@ -1366,7 +1372,7 @@ class Installer extends Controller
$value = array(
'login_defaultLanguage' => "pt-BR",
"dateFormat" => 'd \d\e F \d\e Y'
);
);
$value = serialize($value);
$query = "INSERT INTO CONFIGURATION (CFG_UID, CFG_VALUE) VALUES ('ENVIRONMENT_SETTINGS', '".mysql_real_escape_string($value)."')";

View File

@@ -178,6 +178,9 @@ switch ($request) {
$res = $appCache->triggerApplicationDelete( $lang, false );
$result->info[] = array ('name' => G::LoadTranslation ( 'ID_CACHE_BUILDER_TRIGGER_APPLICATION_DELETE' ),'value' => $res);
//SUB_APPLICATION INSERT
$res = $appCache->triggerSubApplicationInsert($lang, false);
//CONTENT UPDATE
$res = $appCache->triggerContentUpdate( $lang, false );
$result->info[] = array ("name" => G::LoadTranslation ( 'ID_CACHE_BUILDER_TRIGGER_CONTENT_UPDATE' ),"value" => $res);
@@ -237,12 +240,13 @@ switch ($request) {
$res = $appCache->triggerApplicationDelete( $lang, true );
//$result->info[] = array ('name' => 'Trigger APPLICATION DELETE', 'value'=> $res);
//SUB_APPLICATION INSERT
$res = $appCache->triggerSubApplicationInsert($lang, false);
//CONTENT UPDATE
$res = $appCache->triggerContentUpdate( $lang, true );
//$result->info[] = array("name" => "Trigger CONTENT UPDATE", "value" => $res);
//build using the method in AppCacheView Class
$res = $appCache->fillAppCacheView( $lang );
//$result->info[] = array ('name' => 'build APP_CACHE_VIEW', 'value'=> $res);

View File

@@ -42,7 +42,17 @@ SELECT
APPLICATION.APP_NUMBER,
APPLICATION.APP_STATUS,
APP_DELEGATION.USR_UID,
APP_LAST_USER.USR_UID,
IF (
APP_DELEGATION.DEL_PREVIOUS = 0 AND (SELECT SUBAPP.APP_UID FROM SUB_APPLICATION AS SUBAPP WHERE SUBAPP.APP_UID = APP_DELEGATION.APP_UID LIMIT 1) IS NOT NULL,
(SELECT APPDEL2.USR_UID
FROM SUB_APPLICATION AS SUBAPP, APP_DELEGATION AS APPDEL1, APP_DELEGATION AS APPDEL2
WHERE SUBAPP.APP_UID = APP_DELEGATION.APP_UID AND
SUBAPP.APP_PARENT = APPDEL1.APP_UID AND SUBAPP.DEL_INDEX_PARENT = APPDEL1.DEL_INDEX AND
APPDEL1.APP_UID = APPDEL2.APP_UID AND APPDEL1.DEL_PREVIOUS = APPDEL2.DEL_INDEX
LIMIT 1
),
APP_LAST_USER.USR_UID
) AS PREVIOUS_USR_UID,
APP_DELEGATION.TAS_UID,
APP_DELEGATION.PRO_UID,
substring(APP_DELEGATION.DEL_DELEGATE_DATE,1,19),

View File

@@ -0,0 +1,29 @@
CREATE TRIGGER SUB_APPLICATION_INSERT BEFORE INSERT ON SUB_APPLICATION
FOR EACH ROW
BEGIN
DECLARE PREVIOUS_USR_UID VARCHAR(32);
SET @PREVIOUS_USR_UID = '';
SET @PREVIOUS_USR_UID = (
SELECT APPDEL2.USR_UID
FROM APP_DELEGATION AS APPDEL1, APP_DELEGATION AS APPDEL2
WHERE APPDEL1.APP_UID = NEW.APP_PARENT AND APPDEL1.DEL_INDEX = NEW.DEL_INDEX_PARENT AND
APPDEL1.APP_UID = APPDEL2.APP_UID AND APPDEL1.DEL_PREVIOUS = APPDEL2.DEL_INDEX
LIMIT 1
);
IF (@PREVIOUS_USR_UID IS NULL) THEN
SET @PREVIOUS_USR_UID = '';
END IF;
-- Update record in APP_CACHE_VIEW
UPDATE APP_CACHE_VIEW
SET PREVIOUS_USR_UID = @PREVIOUS_USR_UID
WHERE APP_UID = NEW.APP_UID AND DEL_INDEX = (SELECT APPDEL.DEL_INDEX
FROM APP_DELEGATION AS APPDEL
WHERE APPDEL.APP_UID = NEW.APP_UID AND APPDEL.DEL_PREVIOUS = 0
LIMIT 1
);
END