BUG-11786 Al actualizar el proceso las notificaciones configuradas se setean. SOLVED

Descripcion: Se tiene configurado en todas las tareas del proceso el envio de notificaciones con ProcessMaker donde el "tipo de contenido" es una plantilla. Despues de actualizar el proceso esto se desconfigura y se setean los valores seleccionados.

Solucion: Cuando se realiza la exportacion de un proceso, ahora se obtiene la informacion extra de la configuracion en las tareas. Posteriormente tambien se crea los registros relacionados a la configuracion extra de las tareas a partir del archivo pm generado en la exportacion.
Resuelto para la version PM 2.5.2
This commit is contained in:
Omar Suca
2013-08-21 15:52:30 -04:00
parent 1c2a27e601
commit 8168e5edca
2 changed files with 37 additions and 6 deletions

View File

@@ -3222,14 +3222,18 @@ class Processes
*/
public function createTaskExtraPropertiesRows ($aTaskExtraProperties)
{
foreach ($aTaskExtraProperties as $key => $row) {
if (count($aTaskExtraProperties) > 0) {
$oConfig = new Configuration();
if ($oConfig->exists( $row['CFG_UID'], $row['OBJ_UID'], $row['PRO_UID'], $row['USR_UID'], $row['APP_UID']) ) {
$oConfig->remove( $row['CFG_UID'], $row['OBJ_UID'], $row['PRO_UID'], $row['USR_UID'], $row['APP_UID'] );
foreach ($aTaskExtraProperties as $key => $row) {
if ($oConfig->exists( $row['CFG_UID'], $row['OBJ_UID'], $row['PRO_UID'], $row['USR_UID'], $row['APP_UID']) ) {
$oConfig->remove( $row['CFG_UID'], $row['OBJ_UID'], $row['PRO_UID'], $row['USR_UID'], $row['APP_UID'] );
$oConfig->setDeleted(false);
}
$res = $oConfig->create( $row );
$oConfig->setNew(true);
$oConfig->setProperties();
}
$res = $oConfig->create( $row );
}
}
return;
}
@@ -3509,6 +3513,12 @@ class Processes
//Delete the TaskExtraProperties of the process
$oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn( ConfigurationPeer::CFG_UID );
$oCriteria->addSelectColumn( ConfigurationPeer::OBJ_UID );
$oCriteria->addSelectColumn( ConfigurationPeer::CFG_VALUE );
$oCriteria->addSelectColumn( TaskPeer::PRO_UID );
$oCriteria->addSelectColumn( ConfigurationPeer::USR_UID );
$oCriteria->addSelectColumn( ConfigurationPeer::APP_UID );
$oCriteria->add( TaskPeer::PRO_UID, $sProUid );
$oCriteria->add( ConfigurationPeer::CFG_UID, 'TAS_EXTRA_PROPERTIES' );
$oCriteria->addJoin( ConfigurationPeer::OBJ_UID, TaskPeer::TAS_UID );
@@ -3915,6 +3925,12 @@ class Processes
try {
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn( ConfigurationPeer::CFG_UID );
$oCriteria->addSelectColumn( ConfigurationPeer::OBJ_UID );
$oCriteria->addSelectColumn( ConfigurationPeer::CFG_VALUE );
$oCriteria->addSelectColumn( ConfigurationPeer::PRO_UID );
$oCriteria->addSelectColumn( ConfigurationPeer::USR_UID );
$oCriteria->addSelectColumn( ConfigurationPeer::APP_UID );
$oCriteria->add( TaskPeer::PRO_UID, $proId );
$oCriteria->add( ConfigurationPeer::CFG_UID, 'TAS_EXTRA_PROPERTIES' );
$oCriteria->addJoin( ConfigurationPeer::OBJ_UID, TaskPeer::TAS_UID );

View File

@@ -823,5 +823,20 @@ abstract class BaseConfiguration extends BaseObject implements Persistent
}
return self::$peer;
}
/**
* Set properties related to Configuration table
*
* @return void
*/
public function setProperties()
{
$this->cfg_uid = '';
$this->obj_uid = '';
$this->cfg_value = '';
$this->pro_uid = '';
$this->usr_uid = '';
$this->app_uid = '';
}
}