Merge remote-tracking branch 'upstream/3.0.1.6-Gmail' into 3.0.1.6-Gmail

This commit is contained in:
Marco A. Nina Mena
2015-11-13 09:37:30 -04:00
21 changed files with 552 additions and 212 deletions

View File

@@ -92,6 +92,8 @@ class labelsGmail
//The Subject to search the email
$subject = "[PM] " .$proName. " Case: ". $appNumber;
require_once PATH_TRUNK . 'vendor' . PATH_SEP . 'google' . PATH_SEP . 'apiclient' . PATH_SEP . 'src' . PATH_SEP . 'Google' . PATH_SEP . 'autoload.php';
require_once (PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.pmGoogleApi.php");
$pmGoogle = new PMGoogleApi();
$pmGoogle->setUser($mail);

View File

@@ -509,6 +509,9 @@ class pmDynaform
private function getValuesDependentFields($json)
{
if (!isset($this->record["DYN_CONTENT"])) {
return array();
}
$data = array();
if (isset($json->dbConnection) && isset($json->sql)) {
$salida = array();

View File

@@ -914,7 +914,8 @@ class wsBase
$aAttachment = null,
$showMessage = true,
$delIndex = 0,
$config = array()
$config = array(),
$gmail = 0
) {
try {
if (!class_exists('System')) {
@@ -969,8 +970,11 @@ class wsBase
$oCase = new Cases();
$oldFields = $oCase->loadCase( $caseId );
$pathEmail = PATH_DATA_SITE . 'mailTemplates' . PATH_SEP . $oldFields['PRO_UID'] . PATH_SEP;
if($gmail == 1){
$pathEmail = PATH_DATA_SITE . 'mailTemplates' . PATH_SEP;
}else {
$pathEmail = PATH_DATA_SITE . 'mailTemplates' . PATH_SEP . $oldFields['PRO_UID'] . PATH_SEP;
}
$fileTemplate = $pathEmail . $sTemplate;
G::mk_dir( $pathEmail, 0777, true );

View File

@@ -264,6 +264,7 @@ class AppDelegation extends BaseAppDelegation
$c->addSelectColumn( AppDelegationPeer::DEL_INIT_DATE );
$c->addSelectColumn( AppDelegationPeer::DEL_TASK_DUE_DATE );
$c->addSelectColumn( AppDelegationPeer::DEL_FINISH_DATE );
$c->addSelectColumn( AppDelegationPeer::DEL_PREVIOUS );
$c->add( AppDelegationPeer::DEL_THREAD_STATUS, 'OPEN' );
$c->add( AppDelegationPeer::APP_UID, $AppUid );
@@ -287,6 +288,7 @@ class AppDelegation extends BaseAppDelegation
$case['DEL_INIT_DATE'] = $row['DEL_INIT_DATE'];
$case['DEL_TASK_DUE_DATE'] = $row['DEL_TASK_DUE_DATE'];
$case['DEL_FINISH_DATE'] = $row['DEL_FINISH_DATE'];
$case['DEL_PREVIOUS'] = $row['DEL_PREVIOUS'];
$aCases[] = $case;
$rs->next();
$row = $rs->getRow();

View File

@@ -729,5 +729,28 @@ class Dynaform extends BaseDynaform
}
return $flag;
}
/**
* verify if a dynaform is assigned some dynaform
*
* @param string $proUid the uid of the process
* @param string $dynUid the uid of the dynaform
*
* @return array
*/
public function verifyDynaformAssignDynaform ($dynUid, $proUid)
{
$res = array();
$oCriteria = new Criteria();
$oCriteria->addSelectColumn(DynaformPeer::DYN_UID);
$oCriteria->add(DynaformPeer::PRO_UID, $proUid);
$oCriteria->add(DynaformPeer::DYN_UID, $dynUid, Criteria::NOT_EQUAL);
$oCriteria->add(DynaformPeer::DYN_CONTENT, "%" . $dynUid . "%", Criteria::LIKE);
$oDataset = DynaformPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($oDataset->next()) {
$res[] = $oDataset->getRow();
}
return $res;
}
}

View File

@@ -1,5 +1,28 @@
<?php
class EmailServer extends BaseEmailServer
{
/**
* Get the evn_description column value.
*
* @return string
*/
public function loadDefaultAccount ()
{
$c = new Criteria( 'workflow' );
$del = DBAdapter::getStringDelimiter();
$c->clearSelectColumns();
$c->addSelectColumn( EmailServerPeer::MESS_ACCOUNT );
$c->add( EmailServerPeer::MESS_DEFAULT, 1 );
$rs = EmailServerPeer::doSelectRS( $c, Propel::getDBConnection('workflow_ro') );
$rs->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$rs->next();
$row = $rs->getRow();
$response=$row;
return $response;
}
}

View File

@@ -923,6 +923,9 @@ class Process extends BaseProcess
$webBotTrigger = '';
switch ($action) {
case 'OPEN':
$var = ProcessPeer::PRO_TRI_OPEN;
break;
case 'DELETED':
$var = ProcessPeer::PRO_TRI_DELETED;
break;

View File

@@ -93,6 +93,12 @@ abstract class BaseProcess extends BaseObject implements Persistent
*/
protected $pro_subprocess = 0;
/**
* The value for the pro_tri_open field.
* @var string
*/
protected $pro_tri_open = '';
/**
* The value for the pro_tri_deleted field.
* @var string
@@ -366,6 +372,17 @@ abstract class BaseProcess extends BaseObject implements Persistent
return $this->pro_subprocess;
}
/**
* Get the [pro_tri_open] column value.
*
* @return string
*/
public function getProTriOpen()
{
return $this->pro_tri_open;
}
/**
* Get the [pro_tri_deleted] column value.
*
@@ -897,6 +914,28 @@ abstract class BaseProcess extends BaseObject implements Persistent
} // setProSubprocess()
/**
* Set the value of [pro_tri_open] column.
*
* @param string $v new value
* @return void
*/
public function setProTriOpen($v)
{
// Since the native PHP type for this column is string,
// we will cast the input to a string (if it is not).
if ($v !== null && !is_string($v)) {
$v = (string) $v;
}
if ($this->pro_tri_open !== $v || $v === '') {
$this->pro_tri_open = $v;
$this->modifiedColumns[] = ProcessPeer::PRO_TRI_OPEN;
}
} // setProTriOpen()
/**
* Set the value of [pro_tri_deleted] column.
*
@@ -1450,58 +1489,60 @@ abstract class BaseProcess extends BaseObject implements Persistent
$this->pro_subprocess = $rs->getInt($startcol + 10);
$this->pro_tri_deleted = $rs->getString($startcol + 11);
$this->pro_tri_open = $rs->getString($startcol + 11);
$this->pro_tri_canceled = $rs->getString($startcol + 12);
$this->pro_tri_deleted = $rs->getString($startcol + 12);
$this->pro_tri_paused = $rs->getString($startcol + 13);
$this->pro_tri_canceled = $rs->getString($startcol + 13);
$this->pro_tri_reassigned = $rs->getString($startcol + 14);
$this->pro_tri_paused = $rs->getString($startcol + 14);
$this->pro_tri_unpaused = $rs->getString($startcol + 15);
$this->pro_tri_reassigned = $rs->getString($startcol + 15);
$this->pro_type_process = $rs->getString($startcol + 16);
$this->pro_tri_unpaused = $rs->getString($startcol + 16);
$this->pro_show_delegate = $rs->getInt($startcol + 17);
$this->pro_type_process = $rs->getString($startcol + 17);
$this->pro_show_dynaform = $rs->getInt($startcol + 18);
$this->pro_show_delegate = $rs->getInt($startcol + 18);
$this->pro_category = $rs->getString($startcol + 19);
$this->pro_show_dynaform = $rs->getInt($startcol + 19);
$this->pro_sub_category = $rs->getString($startcol + 20);
$this->pro_category = $rs->getString($startcol + 20);
$this->pro_industry = $rs->getInt($startcol + 21);
$this->pro_sub_category = $rs->getString($startcol + 21);
$this->pro_update_date = $rs->getTimestamp($startcol + 22, null);
$this->pro_industry = $rs->getInt($startcol + 22);
$this->pro_create_date = $rs->getTimestamp($startcol + 23, null);
$this->pro_update_date = $rs->getTimestamp($startcol + 23, null);
$this->pro_create_user = $rs->getString($startcol + 24);
$this->pro_create_date = $rs->getTimestamp($startcol + 24, null);
$this->pro_height = $rs->getInt($startcol + 25);
$this->pro_create_user = $rs->getString($startcol + 25);
$this->pro_width = $rs->getInt($startcol + 26);
$this->pro_height = $rs->getInt($startcol + 26);
$this->pro_title_x = $rs->getInt($startcol + 27);
$this->pro_width = $rs->getInt($startcol + 27);
$this->pro_title_y = $rs->getInt($startcol + 28);
$this->pro_title_x = $rs->getInt($startcol + 28);
$this->pro_debug = $rs->getInt($startcol + 29);
$this->pro_title_y = $rs->getInt($startcol + 29);
$this->pro_dynaforms = $rs->getString($startcol + 30);
$this->pro_debug = $rs->getInt($startcol + 30);
$this->pro_derivation_screen_tpl = $rs->getString($startcol + 31);
$this->pro_dynaforms = $rs->getString($startcol + 31);
$this->pro_cost = $rs->getFloat($startcol + 32);
$this->pro_derivation_screen_tpl = $rs->getString($startcol + 32);
$this->pro_unit_cost = $rs->getString($startcol + 33);
$this->pro_cost = $rs->getFloat($startcol + 33);
$this->pro_unit_cost = $rs->getString($startcol + 34);
$this->resetModified();
$this->setNew(false);
// FIXME - using NUM_COLUMNS may be clearer.
return $startcol + 34; // 34 = ProcessPeer::NUM_COLUMNS - ProcessPeer::NUM_LAZY_LOAD_COLUMNS).
return $startcol + 35; // 35 = ProcessPeer::NUM_COLUMNS - ProcessPeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) {
throw new PropelException("Error populating Process object", $e);
@@ -1739,72 +1780,75 @@ abstract class BaseProcess extends BaseObject implements Persistent
return $this->getProSubprocess();
break;
case 11:
return $this->getProTriDeleted();
return $this->getProTriOpen();
break;
case 12:
return $this->getProTriCanceled();
return $this->getProTriDeleted();
break;
case 13:
return $this->getProTriPaused();
return $this->getProTriCanceled();
break;
case 14:
return $this->getProTriReassigned();
return $this->getProTriPaused();
break;
case 15:
return $this->getProTriUnpaused();
return $this->getProTriReassigned();
break;
case 16:
return $this->getProTypeProcess();
return $this->getProTriUnpaused();
break;
case 17:
return $this->getProShowDelegate();
return $this->getProTypeProcess();
break;
case 18:
return $this->getProShowDynaform();
return $this->getProShowDelegate();
break;
case 19:
return $this->getProCategory();
return $this->getProShowDynaform();
break;
case 20:
return $this->getProSubCategory();
return $this->getProCategory();
break;
case 21:
return $this->getProIndustry();
return $this->getProSubCategory();
break;
case 22:
return $this->getProUpdateDate();
return $this->getProIndustry();
break;
case 23:
return $this->getProCreateDate();
return $this->getProUpdateDate();
break;
case 24:
return $this->getProCreateUser();
return $this->getProCreateDate();
break;
case 25:
return $this->getProHeight();
return $this->getProCreateUser();
break;
case 26:
return $this->getProWidth();
return $this->getProHeight();
break;
case 27:
return $this->getProTitleX();
return $this->getProWidth();
break;
case 28:
return $this->getProTitleY();
return $this->getProTitleX();
break;
case 29:
return $this->getProDebug();
return $this->getProTitleY();
break;
case 30:
return $this->getProDynaforms();
return $this->getProDebug();
break;
case 31:
return $this->getProDerivationScreenTpl();
return $this->getProDynaforms();
break;
case 32:
return $this->getProCost();
return $this->getProDerivationScreenTpl();
break;
case 33:
return $this->getProCost();
break;
case 34:
return $this->getProUnitCost();
break;
default:
@@ -1838,29 +1882,30 @@ abstract class BaseProcess extends BaseObject implements Persistent
$keys[8] => $this->getProShowMap(),
$keys[9] => $this->getProShowMessage(),
$keys[10] => $this->getProSubprocess(),
$keys[11] => $this->getProTriDeleted(),
$keys[12] => $this->getProTriCanceled(),
$keys[13] => $this->getProTriPaused(),
$keys[14] => $this->getProTriReassigned(),
$keys[15] => $this->getProTriUnpaused(),
$keys[16] => $this->getProTypeProcess(),
$keys[17] => $this->getProShowDelegate(),
$keys[18] => $this->getProShowDynaform(),
$keys[19] => $this->getProCategory(),
$keys[20] => $this->getProSubCategory(),
$keys[21] => $this->getProIndustry(),
$keys[22] => $this->getProUpdateDate(),
$keys[23] => $this->getProCreateDate(),
$keys[24] => $this->getProCreateUser(),
$keys[25] => $this->getProHeight(),
$keys[26] => $this->getProWidth(),
$keys[27] => $this->getProTitleX(),
$keys[28] => $this->getProTitleY(),
$keys[29] => $this->getProDebug(),
$keys[30] => $this->getProDynaforms(),
$keys[31] => $this->getProDerivationScreenTpl(),
$keys[32] => $this->getProCost(),
$keys[33] => $this->getProUnitCost(),
$keys[11] => $this->getProTriOpen(),
$keys[12] => $this->getProTriDeleted(),
$keys[13] => $this->getProTriCanceled(),
$keys[14] => $this->getProTriPaused(),
$keys[15] => $this->getProTriReassigned(),
$keys[16] => $this->getProTriUnpaused(),
$keys[17] => $this->getProTypeProcess(),
$keys[18] => $this->getProShowDelegate(),
$keys[19] => $this->getProShowDynaform(),
$keys[20] => $this->getProCategory(),
$keys[21] => $this->getProSubCategory(),
$keys[22] => $this->getProIndustry(),
$keys[23] => $this->getProUpdateDate(),
$keys[24] => $this->getProCreateDate(),
$keys[25] => $this->getProCreateUser(),
$keys[26] => $this->getProHeight(),
$keys[27] => $this->getProWidth(),
$keys[28] => $this->getProTitleX(),
$keys[29] => $this->getProTitleY(),
$keys[30] => $this->getProDebug(),
$keys[31] => $this->getProDynaforms(),
$keys[32] => $this->getProDerivationScreenTpl(),
$keys[33] => $this->getProCost(),
$keys[34] => $this->getProUnitCost(),
);
return $result;
}
@@ -1926,72 +1971,75 @@ abstract class BaseProcess extends BaseObject implements Persistent
$this->setProSubprocess($value);
break;
case 11:
$this->setProTriDeleted($value);
$this->setProTriOpen($value);
break;
case 12:
$this->setProTriCanceled($value);
$this->setProTriDeleted($value);
break;
case 13:
$this->setProTriPaused($value);
$this->setProTriCanceled($value);
break;
case 14:
$this->setProTriReassigned($value);
$this->setProTriPaused($value);
break;
case 15:
$this->setProTriUnpaused($value);
$this->setProTriReassigned($value);
break;
case 16:
$this->setProTypeProcess($value);
$this->setProTriUnpaused($value);
break;
case 17:
$this->setProShowDelegate($value);
$this->setProTypeProcess($value);
break;
case 18:
$this->setProShowDynaform($value);
$this->setProShowDelegate($value);
break;
case 19:
$this->setProCategory($value);
$this->setProShowDynaform($value);
break;
case 20:
$this->setProSubCategory($value);
$this->setProCategory($value);
break;
case 21:
$this->setProIndustry($value);
$this->setProSubCategory($value);
break;
case 22:
$this->setProUpdateDate($value);
$this->setProIndustry($value);
break;
case 23:
$this->setProCreateDate($value);
$this->setProUpdateDate($value);
break;
case 24:
$this->setProCreateUser($value);
$this->setProCreateDate($value);
break;
case 25:
$this->setProHeight($value);
$this->setProCreateUser($value);
break;
case 26:
$this->setProWidth($value);
$this->setProHeight($value);
break;
case 27:
$this->setProTitleX($value);
$this->setProWidth($value);
break;
case 28:
$this->setProTitleY($value);
$this->setProTitleX($value);
break;
case 29:
$this->setProDebug($value);
$this->setProTitleY($value);
break;
case 30:
$this->setProDynaforms($value);
$this->setProDebug($value);
break;
case 31:
$this->setProDerivationScreenTpl($value);
$this->setProDynaforms($value);
break;
case 32:
$this->setProCost($value);
$this->setProDerivationScreenTpl($value);
break;
case 33:
$this->setProCost($value);
break;
case 34:
$this->setProUnitCost($value);
break;
} // switch()
@@ -2062,95 +2110,99 @@ abstract class BaseProcess extends BaseObject implements Persistent
}
if (array_key_exists($keys[11], $arr)) {
$this->setProTriDeleted($arr[$keys[11]]);
$this->setProTriOpen($arr[$keys[11]]);
}
if (array_key_exists($keys[12], $arr)) {
$this->setProTriCanceled($arr[$keys[12]]);
$this->setProTriDeleted($arr[$keys[12]]);
}
if (array_key_exists($keys[13], $arr)) {
$this->setProTriPaused($arr[$keys[13]]);
$this->setProTriCanceled($arr[$keys[13]]);
}
if (array_key_exists($keys[14], $arr)) {
$this->setProTriReassigned($arr[$keys[14]]);
$this->setProTriPaused($arr[$keys[14]]);
}
if (array_key_exists($keys[15], $arr)) {
$this->setProTriUnpaused($arr[$keys[15]]);
$this->setProTriReassigned($arr[$keys[15]]);
}
if (array_key_exists($keys[16], $arr)) {
$this->setProTypeProcess($arr[$keys[16]]);
$this->setProTriUnpaused($arr[$keys[16]]);
}
if (array_key_exists($keys[17], $arr)) {
$this->setProShowDelegate($arr[$keys[17]]);
$this->setProTypeProcess($arr[$keys[17]]);
}
if (array_key_exists($keys[18], $arr)) {
$this->setProShowDynaform($arr[$keys[18]]);
$this->setProShowDelegate($arr[$keys[18]]);
}
if (array_key_exists($keys[19], $arr)) {
$this->setProCategory($arr[$keys[19]]);
$this->setProShowDynaform($arr[$keys[19]]);
}
if (array_key_exists($keys[20], $arr)) {
$this->setProSubCategory($arr[$keys[20]]);
$this->setProCategory($arr[$keys[20]]);
}
if (array_key_exists($keys[21], $arr)) {
$this->setProIndustry($arr[$keys[21]]);
$this->setProSubCategory($arr[$keys[21]]);
}
if (array_key_exists($keys[22], $arr)) {
$this->setProUpdateDate($arr[$keys[22]]);
$this->setProIndustry($arr[$keys[22]]);
}
if (array_key_exists($keys[23], $arr)) {
$this->setProCreateDate($arr[$keys[23]]);
$this->setProUpdateDate($arr[$keys[23]]);
}
if (array_key_exists($keys[24], $arr)) {
$this->setProCreateUser($arr[$keys[24]]);
$this->setProCreateDate($arr[$keys[24]]);
}
if (array_key_exists($keys[25], $arr)) {
$this->setProHeight($arr[$keys[25]]);
$this->setProCreateUser($arr[$keys[25]]);
}
if (array_key_exists($keys[26], $arr)) {
$this->setProWidth($arr[$keys[26]]);
$this->setProHeight($arr[$keys[26]]);
}
if (array_key_exists($keys[27], $arr)) {
$this->setProTitleX($arr[$keys[27]]);
$this->setProWidth($arr[$keys[27]]);
}
if (array_key_exists($keys[28], $arr)) {
$this->setProTitleY($arr[$keys[28]]);
$this->setProTitleX($arr[$keys[28]]);
}
if (array_key_exists($keys[29], $arr)) {
$this->setProDebug($arr[$keys[29]]);
$this->setProTitleY($arr[$keys[29]]);
}
if (array_key_exists($keys[30], $arr)) {
$this->setProDynaforms($arr[$keys[30]]);
$this->setProDebug($arr[$keys[30]]);
}
if (array_key_exists($keys[31], $arr)) {
$this->setProDerivationScreenTpl($arr[$keys[31]]);
$this->setProDynaforms($arr[$keys[31]]);
}
if (array_key_exists($keys[32], $arr)) {
$this->setProCost($arr[$keys[32]]);
$this->setProDerivationScreenTpl($arr[$keys[32]]);
}
if (array_key_exists($keys[33], $arr)) {
$this->setProUnitCost($arr[$keys[33]]);
$this->setProCost($arr[$keys[33]]);
}
if (array_key_exists($keys[34], $arr)) {
$this->setProUnitCost($arr[$keys[34]]);
}
}
@@ -2208,6 +2260,10 @@ abstract class BaseProcess extends BaseObject implements Persistent
$criteria->add(ProcessPeer::PRO_SUBPROCESS, $this->pro_subprocess);
}
if ($this->isColumnModified(ProcessPeer::PRO_TRI_OPEN)) {
$criteria->add(ProcessPeer::PRO_TRI_OPEN, $this->pro_tri_open);
}
if ($this->isColumnModified(ProcessPeer::PRO_TRI_DELETED)) {
$criteria->add(ProcessPeer::PRO_TRI_DELETED, $this->pro_tri_deleted);
}
@@ -2374,6 +2430,8 @@ abstract class BaseProcess extends BaseObject implements Persistent
$copyObj->setProSubprocess($this->pro_subprocess);
$copyObj->setProTriOpen($this->pro_tri_open);
$copyObj->setProTriDeleted($this->pro_tri_deleted);
$copyObj->setProTriCanceled($this->pro_tri_canceled);

View File

@@ -25,7 +25,7 @@ abstract class BaseProcessPeer
const CLASS_DEFAULT = 'classes.model.Process';
/** The total number of columns. */
const NUM_COLUMNS = 34;
const NUM_COLUMNS = 35;
/** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0;
@@ -64,6 +64,9 @@ abstract class BaseProcessPeer
/** the column name for the PRO_SUBPROCESS field */
const PRO_SUBPROCESS = 'PROCESS.PRO_SUBPROCESS';
/** the column name for the PRO_TRI_OPEN field */
const PRO_TRI_OPEN = 'PROCESS.PRO_TRI_OPEN';
/** the column name for the PRO_TRI_DELETED field */
const PRO_TRI_DELETED = 'PROCESS.PRO_TRI_DELETED';
@@ -144,10 +147,10 @@ abstract class BaseProcessPeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('ProUid', 'ProParent', 'ProTime', 'ProTimeunit', 'ProStatus', 'ProTypeDay', 'ProType', 'ProAssignment', 'ProShowMap', 'ProShowMessage', 'ProSubprocess', 'ProTriDeleted', 'ProTriCanceled', 'ProTriPaused', 'ProTriReassigned', 'ProTriUnpaused', 'ProTypeProcess', 'ProShowDelegate', 'ProShowDynaform', 'ProCategory', 'ProSubCategory', 'ProIndustry', 'ProUpdateDate', 'ProCreateDate', 'ProCreateUser', 'ProHeight', 'ProWidth', 'ProTitleX', 'ProTitleY', 'ProDebug', 'ProDynaforms', 'ProDerivationScreenTpl', 'ProCost', 'ProUnitCost', ),
BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID, ProcessPeer::PRO_PARENT, ProcessPeer::PRO_TIME, ProcessPeer::PRO_TIMEUNIT, ProcessPeer::PRO_STATUS, ProcessPeer::PRO_TYPE_DAY, ProcessPeer::PRO_TYPE, ProcessPeer::PRO_ASSIGNMENT, ProcessPeer::PRO_SHOW_MAP, ProcessPeer::PRO_SHOW_MESSAGE, ProcessPeer::PRO_SUBPROCESS, ProcessPeer::PRO_TRI_DELETED, ProcessPeer::PRO_TRI_CANCELED, ProcessPeer::PRO_TRI_PAUSED, ProcessPeer::PRO_TRI_REASSIGNED, ProcessPeer::PRO_TRI_UNPAUSED, ProcessPeer::PRO_TYPE_PROCESS, ProcessPeer::PRO_SHOW_DELEGATE, ProcessPeer::PRO_SHOW_DYNAFORM, ProcessPeer::PRO_CATEGORY, ProcessPeer::PRO_SUB_CATEGORY, ProcessPeer::PRO_INDUSTRY, ProcessPeer::PRO_UPDATE_DATE, ProcessPeer::PRO_CREATE_DATE, ProcessPeer::PRO_CREATE_USER, ProcessPeer::PRO_HEIGHT, ProcessPeer::PRO_WIDTH, ProcessPeer::PRO_TITLE_X, ProcessPeer::PRO_TITLE_Y, ProcessPeer::PRO_DEBUG, ProcessPeer::PRO_DYNAFORMS, ProcessPeer::PRO_DERIVATION_SCREEN_TPL, ProcessPeer::PRO_COST, ProcessPeer::PRO_UNIT_COST, ),
BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'PRO_PARENT', 'PRO_TIME', 'PRO_TIMEUNIT', 'PRO_STATUS', 'PRO_TYPE_DAY', 'PRO_TYPE', 'PRO_ASSIGNMENT', 'PRO_SHOW_MAP', 'PRO_SHOW_MESSAGE', 'PRO_SUBPROCESS', 'PRO_TRI_DELETED', 'PRO_TRI_CANCELED', 'PRO_TRI_PAUSED', 'PRO_TRI_REASSIGNED', 'PRO_TRI_UNPAUSED', 'PRO_TYPE_PROCESS', 'PRO_SHOW_DELEGATE', 'PRO_SHOW_DYNAFORM', 'PRO_CATEGORY', 'PRO_SUB_CATEGORY', 'PRO_INDUSTRY', 'PRO_UPDATE_DATE', 'PRO_CREATE_DATE', 'PRO_CREATE_USER', 'PRO_HEIGHT', 'PRO_WIDTH', 'PRO_TITLE_X', 'PRO_TITLE_Y', 'PRO_DEBUG', 'PRO_DYNAFORMS', 'PRO_DERIVATION_SCREEN_TPL', 'PRO_COST', 'PRO_UNIT_COST', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, )
BasePeer::TYPE_PHPNAME => array ('ProUid', 'ProParent', 'ProTime', 'ProTimeunit', 'ProStatus', 'ProTypeDay', 'ProType', 'ProAssignment', 'ProShowMap', 'ProShowMessage', 'ProSubprocess', 'ProTriOpen', 'ProTriDeleted', 'ProTriCanceled', 'ProTriPaused', 'ProTriReassigned', 'ProTriUnpaused', 'ProTypeProcess', 'ProShowDelegate', 'ProShowDynaform', 'ProCategory', 'ProSubCategory', 'ProIndustry', 'ProUpdateDate', 'ProCreateDate', 'ProCreateUser', 'ProHeight', 'ProWidth', 'ProTitleX', 'ProTitleY', 'ProDebug', 'ProDynaforms', 'ProDerivationScreenTpl', 'ProCost', 'ProUnitCost', ),
BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID, ProcessPeer::PRO_PARENT, ProcessPeer::PRO_TIME, ProcessPeer::PRO_TIMEUNIT, ProcessPeer::PRO_STATUS, ProcessPeer::PRO_TYPE_DAY, ProcessPeer::PRO_TYPE, ProcessPeer::PRO_ASSIGNMENT, ProcessPeer::PRO_SHOW_MAP, ProcessPeer::PRO_SHOW_MESSAGE, ProcessPeer::PRO_SUBPROCESS, ProcessPeer::PRO_TRI_OPEN, ProcessPeer::PRO_TRI_DELETED, ProcessPeer::PRO_TRI_CANCELED, ProcessPeer::PRO_TRI_PAUSED, ProcessPeer::PRO_TRI_REASSIGNED, ProcessPeer::PRO_TRI_UNPAUSED, ProcessPeer::PRO_TYPE_PROCESS, ProcessPeer::PRO_SHOW_DELEGATE, ProcessPeer::PRO_SHOW_DYNAFORM, ProcessPeer::PRO_CATEGORY, ProcessPeer::PRO_SUB_CATEGORY, ProcessPeer::PRO_INDUSTRY, ProcessPeer::PRO_UPDATE_DATE, ProcessPeer::PRO_CREATE_DATE, ProcessPeer::PRO_CREATE_USER, ProcessPeer::PRO_HEIGHT, ProcessPeer::PRO_WIDTH, ProcessPeer::PRO_TITLE_X, ProcessPeer::PRO_TITLE_Y, ProcessPeer::PRO_DEBUG, ProcessPeer::PRO_DYNAFORMS, ProcessPeer::PRO_DERIVATION_SCREEN_TPL, ProcessPeer::PRO_COST, ProcessPeer::PRO_UNIT_COST, ),
BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'PRO_PARENT', 'PRO_TIME', 'PRO_TIMEUNIT', 'PRO_STATUS', 'PRO_TYPE_DAY', 'PRO_TYPE', 'PRO_ASSIGNMENT', 'PRO_SHOW_MAP', 'PRO_SHOW_MESSAGE', 'PRO_SUBPROCESS', 'PRO_TRI_OPEN', 'PRO_TRI_DELETED', 'PRO_TRI_CANCELED', 'PRO_TRI_PAUSED', 'PRO_TRI_REASSIGNED', 'PRO_TRI_UNPAUSED', 'PRO_TYPE_PROCESS', 'PRO_SHOW_DELEGATE', 'PRO_SHOW_DYNAFORM', 'PRO_CATEGORY', 'PRO_SUB_CATEGORY', 'PRO_INDUSTRY', 'PRO_UPDATE_DATE', 'PRO_CREATE_DATE', 'PRO_CREATE_USER', 'PRO_HEIGHT', 'PRO_WIDTH', 'PRO_TITLE_X', 'PRO_TITLE_Y', 'PRO_DEBUG', 'PRO_DYNAFORMS', 'PRO_DERIVATION_SCREEN_TPL', 'PRO_COST', 'PRO_UNIT_COST', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, )
);
/**
@@ -157,10 +160,10 @@ abstract class BaseProcessPeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/
private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'ProParent' => 1, 'ProTime' => 2, 'ProTimeunit' => 3, 'ProStatus' => 4, 'ProTypeDay' => 5, 'ProType' => 6, 'ProAssignment' => 7, 'ProShowMap' => 8, 'ProShowMessage' => 9, 'ProSubprocess' => 10, 'ProTriDeleted' => 11, 'ProTriCanceled' => 12, 'ProTriPaused' => 13, 'ProTriReassigned' => 14, 'ProTriUnpaused' => 15, 'ProTypeProcess' => 16, 'ProShowDelegate' => 17, 'ProShowDynaform' => 18, 'ProCategory' => 19, 'ProSubCategory' => 20, 'ProIndustry' => 21, 'ProUpdateDate' => 22, 'ProCreateDate' => 23, 'ProCreateUser' => 24, 'ProHeight' => 25, 'ProWidth' => 26, 'ProTitleX' => 27, 'ProTitleY' => 28, 'ProDebug' => 29, 'ProDynaforms' => 30, 'ProDerivationScreenTpl' => 31, 'ProCost' => 32, 'ProUnitCost' => 33, ),
BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID => 0, ProcessPeer::PRO_PARENT => 1, ProcessPeer::PRO_TIME => 2, ProcessPeer::PRO_TIMEUNIT => 3, ProcessPeer::PRO_STATUS => 4, ProcessPeer::PRO_TYPE_DAY => 5, ProcessPeer::PRO_TYPE => 6, ProcessPeer::PRO_ASSIGNMENT => 7, ProcessPeer::PRO_SHOW_MAP => 8, ProcessPeer::PRO_SHOW_MESSAGE => 9, ProcessPeer::PRO_SUBPROCESS => 10, ProcessPeer::PRO_TRI_DELETED => 11, ProcessPeer::PRO_TRI_CANCELED => 12, ProcessPeer::PRO_TRI_PAUSED => 13, ProcessPeer::PRO_TRI_REASSIGNED => 14, ProcessPeer::PRO_TRI_UNPAUSED => 15, ProcessPeer::PRO_TYPE_PROCESS => 16, ProcessPeer::PRO_SHOW_DELEGATE => 17, ProcessPeer::PRO_SHOW_DYNAFORM => 18, ProcessPeer::PRO_CATEGORY => 19, ProcessPeer::PRO_SUB_CATEGORY => 20, ProcessPeer::PRO_INDUSTRY => 21, ProcessPeer::PRO_UPDATE_DATE => 22, ProcessPeer::PRO_CREATE_DATE => 23, ProcessPeer::PRO_CREATE_USER => 24, ProcessPeer::PRO_HEIGHT => 25, ProcessPeer::PRO_WIDTH => 26, ProcessPeer::PRO_TITLE_X => 27, ProcessPeer::PRO_TITLE_Y => 28, ProcessPeer::PRO_DEBUG => 29, ProcessPeer::PRO_DYNAFORMS => 30, ProcessPeer::PRO_DERIVATION_SCREEN_TPL => 31, ProcessPeer::PRO_COST => 32, ProcessPeer::PRO_UNIT_COST => 33, ),
BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'PRO_PARENT' => 1, 'PRO_TIME' => 2, 'PRO_TIMEUNIT' => 3, 'PRO_STATUS' => 4, 'PRO_TYPE_DAY' => 5, 'PRO_TYPE' => 6, 'PRO_ASSIGNMENT' => 7, 'PRO_SHOW_MAP' => 8, 'PRO_SHOW_MESSAGE' => 9, 'PRO_SUBPROCESS' => 10, 'PRO_TRI_DELETED' => 11, 'PRO_TRI_CANCELED' => 12, 'PRO_TRI_PAUSED' => 13, 'PRO_TRI_REASSIGNED' => 14, 'PRO_TRI_UNPAUSED' => 15, 'PRO_TYPE_PROCESS' => 16, 'PRO_SHOW_DELEGATE' => 17, 'PRO_SHOW_DYNAFORM' => 18, 'PRO_CATEGORY' => 19, 'PRO_SUB_CATEGORY' => 20, 'PRO_INDUSTRY' => 21, 'PRO_UPDATE_DATE' => 22, 'PRO_CREATE_DATE' => 23, 'PRO_CREATE_USER' => 24, 'PRO_HEIGHT' => 25, 'PRO_WIDTH' => 26, 'PRO_TITLE_X' => 27, 'PRO_TITLE_Y' => 28, 'PRO_DEBUG' => 29, 'PRO_DYNAFORMS' => 30, 'PRO_DERIVATION_SCREEN_TPL' => 31, 'PRO_COST' => 32, 'PRO_UNIT_COST' => 33, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, )
BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'ProParent' => 1, 'ProTime' => 2, 'ProTimeunit' => 3, 'ProStatus' => 4, 'ProTypeDay' => 5, 'ProType' => 6, 'ProAssignment' => 7, 'ProShowMap' => 8, 'ProShowMessage' => 9, 'ProSubprocess' => 10, 'ProTriOpen' => 11, 'ProTriDeleted' => 12, 'ProTriCanceled' => 13, 'ProTriPaused' => 14, 'ProTriReassigned' => 15, 'ProTriUnpaused' => 16, 'ProTypeProcess' => 17, 'ProShowDelegate' => 18, 'ProShowDynaform' => 19, 'ProCategory' => 20, 'ProSubCategory' => 21, 'ProIndustry' => 22, 'ProUpdateDate' => 23, 'ProCreateDate' => 24, 'ProCreateUser' => 25, 'ProHeight' => 26, 'ProWidth' => 27, 'ProTitleX' => 28, 'ProTitleY' => 29, 'ProDebug' => 30, 'ProDynaforms' => 31, 'ProDerivationScreenTpl' => 32, 'ProCost' => 33, 'ProUnitCost' => 34, ),
BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID => 0, ProcessPeer::PRO_PARENT => 1, ProcessPeer::PRO_TIME => 2, ProcessPeer::PRO_TIMEUNIT => 3, ProcessPeer::PRO_STATUS => 4, ProcessPeer::PRO_TYPE_DAY => 5, ProcessPeer::PRO_TYPE => 6, ProcessPeer::PRO_ASSIGNMENT => 7, ProcessPeer::PRO_SHOW_MAP => 8, ProcessPeer::PRO_SHOW_MESSAGE => 9, ProcessPeer::PRO_SUBPROCESS => 10, ProcessPeer::PRO_TRI_OPEN => 11, ProcessPeer::PRO_TRI_DELETED => 12, ProcessPeer::PRO_TRI_CANCELED => 13, ProcessPeer::PRO_TRI_PAUSED => 14, ProcessPeer::PRO_TRI_REASSIGNED => 15, ProcessPeer::PRO_TRI_UNPAUSED => 16, ProcessPeer::PRO_TYPE_PROCESS => 17, ProcessPeer::PRO_SHOW_DELEGATE => 18, ProcessPeer::PRO_SHOW_DYNAFORM => 19, ProcessPeer::PRO_CATEGORY => 20, ProcessPeer::PRO_SUB_CATEGORY => 21, ProcessPeer::PRO_INDUSTRY => 22, ProcessPeer::PRO_UPDATE_DATE => 23, ProcessPeer::PRO_CREATE_DATE => 24, ProcessPeer::PRO_CREATE_USER => 25, ProcessPeer::PRO_HEIGHT => 26, ProcessPeer::PRO_WIDTH => 27, ProcessPeer::PRO_TITLE_X => 28, ProcessPeer::PRO_TITLE_Y => 29, ProcessPeer::PRO_DEBUG => 30, ProcessPeer::PRO_DYNAFORMS => 31, ProcessPeer::PRO_DERIVATION_SCREEN_TPL => 32, ProcessPeer::PRO_COST => 33, ProcessPeer::PRO_UNIT_COST => 34, ),
BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'PRO_PARENT' => 1, 'PRO_TIME' => 2, 'PRO_TIMEUNIT' => 3, 'PRO_STATUS' => 4, 'PRO_TYPE_DAY' => 5, 'PRO_TYPE' => 6, 'PRO_ASSIGNMENT' => 7, 'PRO_SHOW_MAP' => 8, 'PRO_SHOW_MESSAGE' => 9, 'PRO_SUBPROCESS' => 10, 'PRO_TRI_OPEN' => 11, 'PRO_TRI_DELETED' => 12, 'PRO_TRI_CANCELED' => 13, 'PRO_TRI_PAUSED' => 14, 'PRO_TRI_REASSIGNED' => 15, 'PRO_TRI_UNPAUSED' => 16, 'PRO_TYPE_PROCESS' => 17, 'PRO_SHOW_DELEGATE' => 18, 'PRO_SHOW_DYNAFORM' => 19, 'PRO_CATEGORY' => 20, 'PRO_SUB_CATEGORY' => 21, 'PRO_INDUSTRY' => 22, 'PRO_UPDATE_DATE' => 23, 'PRO_CREATE_DATE' => 24, 'PRO_CREATE_USER' => 25, 'PRO_HEIGHT' => 26, 'PRO_WIDTH' => 27, 'PRO_TITLE_X' => 28, 'PRO_TITLE_Y' => 29, 'PRO_DEBUG' => 30, 'PRO_DYNAFORMS' => 31, 'PRO_DERIVATION_SCREEN_TPL' => 32, 'PRO_COST' => 33, 'PRO_UNIT_COST' => 34, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, )
);
/**
@@ -283,6 +286,8 @@ abstract class BaseProcessPeer
$criteria->addSelectColumn(ProcessPeer::PRO_SUBPROCESS);
$criteria->addSelectColumn(ProcessPeer::PRO_TRI_OPEN);
$criteria->addSelectColumn(ProcessPeer::PRO_TRI_DELETED);
$criteria->addSelectColumn(ProcessPeer::PRO_TRI_CANCELED);

View File

@@ -851,6 +851,7 @@
<column name="PRO_SHOW_MAP" type="TINYINT" required="true" default="1"/>
<column name="PRO_SHOW_MESSAGE" type="TINYINT" required="true" default="1"/>
<column name="PRO_SUBPROCESS" type="TINYINT" required="true" default="0"/>
<column name="PRO_TRI_OPEN" type="VARCHAR" size="32" required="true" default=""/>
<column name="PRO_TRI_DELETED" type="VARCHAR" size="32" required="true" default=""/>
<column name="PRO_TRI_CANCELED" type="VARCHAR" size="32" required="true" default=""/>
<column name="PRO_TRI_PAUSED" type="VARCHAR" size="32" required="true" default=""/>

View File

@@ -411,6 +411,7 @@ CREATE TABLE `PROCESS`
`PRO_SHOW_MAP` TINYINT default 1 NOT NULL,
`PRO_SHOW_MESSAGE` TINYINT default 1 NOT NULL,
`PRO_SUBPROCESS` TINYINT default 0 NOT NULL,
`PRO_TRI_OPEN` VARCHAR(32) default '' NOT NULL,
`PRO_TRI_DELETED` VARCHAR(32) default '' NOT NULL,
`PRO_TRI_CANCELED` VARCHAR(32) default '' NOT NULL,
`PRO_TRI_PAUSED` VARCHAR(32) default '' NOT NULL,

View File

@@ -175,14 +175,7 @@ try {
unset( $_SESSION['bNoShowSteps'] );
/* Execute Before Triggers for first Task*/
$oStep = new Step;
$oStep = $oStep->loadByProcessTaskPosition($_SESSION['PROCESS'], $_SESSION['TASK'], 1);
if($oStep) {
$aFields['APP_DATA'] = array_merge( $aFields['APP_DATA'], G::getSystemConstants() );
$triggerFields["APP_DATA"] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $oStep->getStepTypeObj(), $oStep->getStepUidObj(), 'BEFORE', $aFields['APP_DATA'] );
$oCase->updateCase( $_SESSION['APPLICATION'], $triggerFields );
$_SESSION['beforeTriggersExecuted'] = true;
}
$oCase->getExecuteTriggerProcess($sAppUid, 'OPEN');
/*end Execute Before Triggers for first Task*/
$aNextStep = $oCase->getNextStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] );

View File

@@ -216,11 +216,7 @@ if ($flagExecuteBeforeTriggers) {
if (! isset( $_SESSION['_NO_EXECUTE_TRIGGERS_'] )) {
//Execute before triggers - Start
if (!isset($_SESSION['beforeTriggersExecuted']) || $triggers) {
$Fields['APP_DATA'] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $_GET['TYPE'], $_GET['UID'], 'BEFORE', $Fields['APP_DATA'] );
} else {
unset($_SESSION['beforeTriggersExecuted']);
}
$Fields['APP_DATA'] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $_GET['TYPE'], $_GET['UID'], 'BEFORE', $Fields['APP_DATA'] );
//Execute before triggers - End
} else {
unset( $_SESSION['_NO_EXECUTE_TRIGGERS_'] );

View File

@@ -1,19 +1,14 @@
<?php
use Gulliver\core\ServiceContainer;
$sc = ServiceContainer::getInstance();
$session = $sc->make('session.store');
$licensedFeatures = & PMLicensedFeatures::getSingleton();
if (!$licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) {
G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
G::header( 'location: ../login/login' );
die;
}
$caseId = $session->get('APPLICATION');
$usrUid = $session->get('USER_LOGGED');
$usrName = $session->get('USR_FULLNAME');
$actualIndex = $session->get('INDEX');
$caseId = $_SESSION['APPLICATION'];
$usrUid = $_SESSION['USER_LOGGED'];
$usrName = $_SESSION['USR_FULLNAME'];
$actualIndex = $_SESSION['INDEX'];
$cont = 0;
use \ProcessMaker\Services\Api;
@@ -23,6 +18,7 @@ $actualThread = $appDel->Load($caseId, $actualIndex);
$actualLastIndex = $actualThread['DEL_PREVIOUS'];
$appDelPrev = $appDel->LoadParallel($caseId);
if($appDelPrev == array()){
$appDelPrev['0'] = $actualThread;
}
@@ -34,11 +30,12 @@ foreach ($appDelPrev as $app){
}
}
require_once (PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.labelsGmail.php");
$oLabels = new labelsGmail();
$oResponse = $oLabels->setLabels($caseId, $actualIndex, $actualLastIndex, false);
if( $session->get('gmail') === 1 ){
//$session->set('gmail', 0);
$mUrl = '/sys'. $session->get('WORKSPACE') .'/en/neoclassic/cases/cases_Open?APP_UID='.$caseId.'&DEL_INDEX='.$actualIndex.'&action=sent';
if( $_SESSION['gmail'] === 1 ){
//$_SESSION['gmail'] = 0;
$mUrl = '/sys'. $_SESSION['WORKSPACE'] .'/en/neoclassic/cases/cases_Open?APP_UID='.$caseId.'&DEL_INDEX='.$actualIndex.'&action=sent';
} else{
$mUrl = 'casesListExtJs';
}

View File

@@ -227,10 +227,19 @@ class DynaForm
$messageCaseTracker = "($countSteps) Depends in case traker";
}
$dynaformDepends = \Dynaform::verifyDynaformAssignDynaform($dynUid, $proUid);
$messageDynaform = '(0) Depends in case traker';
if (!empty($dynaformDepends)) {
$flagDepend = true;
$countSteps = count($dynaformDepends);
$messageDynaform = "($countSteps) Depends in dynaform";
}
if ($flagDepend) {
$message = "You can not delete the dynaform '$dynUid', because it has the following dependencies: \n\n";
$message .= $messageSteps . ".\n" . $messageStepsSupervisors . ".\n";
$message .= $messageObjectPermission . ".\n" . $messageCaseTracker;
$message .= $messageObjectPermission . ".\n" . $messageCaseTracker . "\n";
$message .= $messageDynaform;
return $message;
}
return '';
@@ -1138,4 +1147,63 @@ class DynaForm
throw $e;
}
}
/**
* Get data of a DynaForm History
*
* @param string $dynaFormUid Unique id of DynaForm
*
* return array Return an array with data of a DynaForm History
*/
public function getDynaFormHistory($prj_uid, $dynaFormUid, array $arrayData = array())
{
try {
$filter = "";
if (isset($arrayData["filter"])) {
$filter = $arrayData["filter"];
}
$start = 0;
if (isset($arrayData["start"])) {
$start = $arrayData["start"];
}
$limit = 50;
if (isset($arrayData["limit"])) {
$limit = $arrayData["limit"];
}
$this->throwExceptionIfNotExistsDynaForm($dynaFormUid, "", $this->arrayFieldNameForException["dynaFormUid"]);
$criteria = new \Criteria("workflow");
$subcriteria = $criteria->getNewCriterion(\AppHistoryPeer::HISTORY_DATE, "%" . $filter . "%", \Criteria::LIKE);
$criteria->addSelectColumn(\AppHistoryPeer::DYN_UID);
$criteria->addSelectColumn(\AppHistoryPeer::HISTORY_DATA);
$criteria->addSelectColumn(\AppHistoryPeer::HISTORY_DATE);
$criteria->addAnd(\AppHistoryPeer::DYN_UID, $dynaFormUid, \Criteria::EQUAL);
$criteria->addAnd(\AppHistoryPeer::OBJ_TYPE, "DYNAFORM", \Criteria::EQUAL);
$criteria->addAnd(\AppHistoryPeer::HISTORY_DATA, "%DYN_CONTENT_HISTORY%", \Criteria::LIKE);
$criteria->addAnd($subcriteria);
$criteria->addDescendingOrderByColumn(\AppHistoryPeer::HISTORY_DATE);
$criteria->setOffset($start);
$criteria->setLimit($limit);
$rsCriteria = \AppHistoryPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$data = array();
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$d = @unserialize($row["HISTORY_DATA"]);
$data[] = array(
"history_date" => $row["HISTORY_DATE"],
"dyn_uid" => $row["DYN_UID"],
"dyn_content_history" => isset($d["DYN_CONTENT_HISTORY"]) ? $d["DYN_CONTENT_HISTORY"] : ""
);
}
return $data;
} catch (\Exception $e) {
throw $e;
}
}
}

View File

@@ -105,13 +105,33 @@ class Pmgmail {
*/
public function getDraftApp($app_uid, $index=1)
{
$response = \AppCacheViewQuery::create()
->filterByAppUid($app_uid)
->filterByDelIndex($index)
->find()
->toArray(null, false, \BasePeer::TYPE_FIELDNAME);
$c = new \Criteria( 'workflow' );
$c->clearSelectColumns();
$c->addSelectColumn( \AppCacheViewPeer::APP_NUMBER );
$c->addSelectColumn( \AppCacheViewPeer::APP_STATUS );
$c->addSelectColumn( \AppCacheViewPeer::DEL_INDEX );
$c->addSelectColumn( \AppCacheViewPeer::APP_DEL_PREVIOUS_USER );
$c->addSelectColumn( \AppCacheViewPeer::DEL_DELEGATE_DATE );
$c->addSelectColumn( \AppCacheViewPeer::USR_UID );
$c->addSelectColumn( \AppCacheViewPeer::PRO_UID );
$c->addSelectColumn( \AppCacheViewPeer::APP_PRO_TITLE );
$c->addSelectColumn( \AppCacheViewPeer::APP_TAS_TITLE );
$c->addSelectColumn( \AppCacheViewPeer::DEL_THREAD_STATUS );
$c->addSelectColumn( \AppCacheViewPeer::TAS_UID );
$c->addSelectColumn( \AppCacheViewPeer::DEL_LAST_INDEX );
$c->add( \AppCacheViewPeer::APP_UID, $app_uid );
$c->add( \AppCacheViewPeer::DEL_INDEX, $index );
return $response;
$rs = \AppCacheViewPeer::doSelectRS( $c );
$rs->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
$rows = Array ();
while ($rs->next()) {
$rows[] = $rs->getRow();
}
return $rows;
}
/**

View File

@@ -1298,6 +1298,25 @@ class Workflow extends Handler
$arrayWorkflowData = (array)($workflowData);
foreach ($arrayWorkflowData["dynaforms"] as $key => $value) {
if ($arrayWorkflowData["dynaforms"][$key]["DYN_CONTENT"] != "") {
$dynaFormContent = $arrayWorkflowData["dynaforms"][$key]["DYN_CONTENT"];
foreach ($arrayWorkflowData["uid"] as $value2) {
$arrayAux = $value2;
foreach ($arrayAux as $key3 => $value3) {
$uidOld = $key3;
$uid = $value3;
$dynaFormContent = str_replace($uidOld, $uid, $dynaFormContent);
}
}
$arrayWorkflowData["dynaforms"][$key]["DYN_CONTENT"] = $dynaFormContent;
}
}
//Workflow files
foreach ($arrayWorkflowFile as $key => $value) {
$arrayFile = $value;

View File

@@ -751,11 +751,11 @@ class Light extends Api
$dynaForm = new \ProcessMaker\BusinessModel\DynaForm();
$dynaForm->setFormatFieldNameInUppercase(false);
\G::LoadClass("pmDynaform");
$pmDynaForm = new \pmDynaform();
$_SESSION['PROCESS'] = $prj_uid;
$return = array();
foreach ($request_data['formId'] as $dyn_uid) {
$response = $dynaForm->getDynaForm($dyn_uid);
$pmDynaForm = new \pmDynaform(array("CURRENT_DYNAFORM" => $dyn_uid));
$result = $this->parserDataDynaForm($response);
$result['formContent'] = (isset($result['formContent']) && $result['formContent'] != null)?json_decode($result['formContent']):"";
$pmDynaForm->jsonr($result['formContent']);

View File

@@ -181,4 +181,25 @@ class DynaForm extends Api
}
}
/**
* @url POST /:prj_uid/dynaform/:dyn_uid/history
*
* @param string $dyn_uid {@min 32}{@max 32}
* @param string $prj_uid {@min 32}{@max 32}
* @param array $request_data
*/
public function doGetDynaFormHistory($dyn_uid, $prj_uid, $request_data)
{
try {
$dynaForm = new \ProcessMaker\BusinessModel\DynaForm();
$dynaForm->setFormatFieldNameInUppercase(false);
$response = $dynaForm->getDynaFormHistory($prj_uid, $dyn_uid, $request_data);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
}

View File

@@ -1,26 +1,22 @@
<?php
require_once(dirname(__FILE__) . '/../../../gulliver/init.php');
use Gulliver\core\ServiceContainer;
$sc = ServiceContainer::getInstance();
$session = $sc->make('session.store');
$request = $sc->make('request');
require_once (dirname(__FILE__) . '/../../../gulliver/system/class.bootstrap.php');
$gmailToken = $request->query->get('gmailToken');
$gmail = $request->query->get('gmail');
$pmtoken = $request->query->get('pmtoken');
$pmws = $request->query->get('pmws');
$appUid = $request->query->get('appUid');
$delIndex = $request->query->get('delIndex');
$action = $request->query->get('action');
$proUid = $request->query->has('proUid') ? $request->query->get('proUid') : '';
$server = $request->query->get('server');
$gmailToken = $_GET['gmailToken'];
$gmail = $_GET['gmail'];
$pmtoken = $_GET['pmtoken'];
$pmws = $_GET['pmws'];
$appUid = $_GET['appUid'];
$delIndex = $_GET['delIndex'];
$action = $_GET['action'];
$proUid = $_GET['proUid'];
$server = isset($_GET['server']) ? $_GET['server'] : '';
//First check if the feature is enabled in the license.
$gCurl = curl_init( 'https://' . $server . '/api/1.0/' . $pmws . '/gmailIntegration/verifyGmailfeature/' );
curl_setopt( $gCurl, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $pmtoken ) );
curl_setopt( $gCurl, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $gCurl, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt( $gCurl, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt( $gCurl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt( $gCurl, CURLOPT_CONNECTTIMEOUT, 0);
$gCurl_response = curl_exec( $gCurl );
curl_close($gCurl);
@@ -37,7 +33,7 @@ $curl = curl_init( 'https://' . $server . '/api/1.0/' . $pmws . '/gmailIntegrati
curl_setopt( $curl, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $pmtoken ) );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt( $curl, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt( $curl, CURLOPT_CONNECTTIMEOUT, 0);
$curl_response = curl_exec( $curl );
curl_close($curl);
@@ -49,7 +45,7 @@ if(count($decodedResp) > 1){
}
//validationg if there is an actual PM session
if( !$session->has('USER_LOGGED') || $session->get('USER_LOGGED') != $decodedResp['0']->USR_UID){
if( !isset($_SESSION['USER_LOGGED']) || $_SESSION['USER_LOGGED'] != $decodedResp['0']->USR_UID){
$url = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token='.$gmailToken;
// init curl object
@@ -72,32 +68,28 @@ if( !$session->has('USER_LOGGED') || $session->get('USER_LOGGED') != $decodedRes
//If the email corresponds I get the username and with the gmail user_id the session is created.
if($decodedResp['0']->USR_STATUS == "ACTIVE"){
//User Active! lets create the Session
$request = $sc->make('request');
$session = $sc->make('session.store');
$session->setId($request->cookies->get($session->getName()));
$session->start();
setcookie($session->getName(), $session->getId(), 0, '/');
$request->setSession($session);
@session_destroy();
session_start();
session_regenerate_id();
if (PHP_VERSION < 5.2) {
setcookie("workspaceSkin", "neoclasic", time() + (24 * 60 * 60), "/sys" . "neoclasic", "; HttpOnly");
} else {
setcookie("workspaceSkin", "neoclasic", time() + (24 * 60 * 60), "/sys" . "neoclasic", null, false, true);
}
$session->set('__EE_INSTALLATION__', 2);
$session->set('__EE_SW_PMLICENSEMANAGER__', 1);
$session->set('phpLastFileFound', '');
$session->set('USERNAME_PREVIOUS1', 'admin');
$session->set('USERNAME_PREVIOUS2', 'admin');
$session->set('WORKSPACE', $pmws);
$session->set('USER_LOGGED', $decodedResp['0']->USR_UID);
$session->set('USR_USERNAME', $decodedResp['0']->USR_USERNAME);
$session->set('USR_FULLNAME', $decodedResp['0']->USR_FIRSTNAME. ' ' .$decodedResp['0']->USR_LASTNAME);
$session->set('__sw__', 1);
$session->save();
//session created
$_SESSION = array();
$_SESSION['__EE_INSTALLATION__'] = 2;
$_SESSION['__EE_SW_PMLICENSEMANAGER__'] = 1;
$_SESSION['phpLastFileFound'] = '';
$_SESSION['USERNAME_PREVIOUS1'] = 'admin';
$_SESSION['USERNAME_PREVIOUS2'] = 'admin';
$_SESSION['WORKSPACE'] = $pmws;
$_SESSION['USER_LOGGED'] = $decodedResp['0']->USR_UID;
$_SESSION['USR_USERNAME'] = $decodedResp['0']->USR_USERNAME;
$_SESSION['USR_FULLNAME'] = $decodedResp['0']->USR_FIRSTNAME. ' ' .$decodedResp['0']->USR_LASTNAME;
$_SESSION['__sw__'] = 1;
//session created
} else {
echo Bootstrap::LoadTranslation( 'ID_USER_NOT_ACTIVE' );
die;
@@ -115,7 +107,7 @@ if ($action == "draft"){
curl_setopt( $curlApp, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt( $curlApp, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $curlApp, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt( $curlApp, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt( $curlApp, CURLOPT_CONNECTTIMEOUT, 0);
$curl_response_app = curl_exec( $curlApp );
curl_close( $curlApp );
@@ -124,20 +116,12 @@ if ($action == "draft"){
header( 'location:' . $mainUrl );
die;
}
$session->set('server', 'https://' . $server . '/sys'. $pmws .'/en/neoclassic/');
$session->set('PMCase', 'cases/cases_Open?APP_UID='.$appUid.'&DEL_INDEX='.$delIndex.'&action='.$action.'&gmail=1');
$_SESSION['server'] = 'https://' . $server . '/sys'. $pmws .'/en/neoclassic/';
$_SESSION['PMCase'] = 'cases/cases_Open?APP_UID='.$appUid.'&DEL_INDEX='.$delIndex.'&action='.$action.'&gmail=1';
$_SESSION['PMProcessmap'] = 'designer?prj_uid=' . $proUid . '&prj_readonly=true&app_uid=' . $appUid;
$_SESSION['PMUploadedDocuments'] = 'cases/ajaxListener?action=uploadedDocuments';
$_SESSION['PMGeneratedDocuments'] = 'cases/casesGenerateDocumentPage_Ajax.php?actionAjax=casesGenerateDocumentPage';
$session->set('PMProcessmap', 'designer?prj_uid=' . $proUid . '&prj_readonly=true&app_uid=' . $appUid);
$session->set('PMCasesHistory', 'cases/ajaxListener?action=caseHistory');
$session->set('PMHistoryDynaform', 'cases/casesHistoryDynaformPage_Ajax?actionAjax=historyDynaformPage');
$session->set('PMUploadedDocuments', 'cases/ajaxListener?action=uploadedDocuments');
$session->set('PMGeneratedDocuments', 'cases/casesGenerateDocumentPage_Ajax.php?actionAjax=casesGenerateDocumentPage');
ob_end_flush();
$session->save();
header( 'location:' . 'templateForm.php' );

View File

@@ -0,0 +1,117 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Interface Processmaker</title>
<script type="text/javascript" src="/lib/js/jquery-1.10.2.min.js"></script>
<link rel="stylesheet" href="/lib/pmUI/pmui.min.css">
<script type="text/javascript" >
jQuery(document).ready(function() {
var tid;
var addLoading = function (host, panel, message) {
panel = panel || 'PMContent';
message = message || 'Loading...';
var divLoading = document.createElement('div');
var span = document.createElement('span');
var text = document.createTextNode(message);
divLoading.setAttribute('id', 'PMGmailLoad');
divLoading.setAttribute('style', 'position:absolute; left: 0px;top: 0px;width: 100%;height: 100%;z-index: 9999;background: url('+host+'../../../lib/img/loading.gif) 50% 50% no-repeat #f9f9f9;');
span.setAttribute('style', ' margin-top: 50%; margin-left: 44%; position: absolute; font-weight: bold; font-size: 12px; margin-right: auto;');
span.appendChild(text);
divLoading.appendChild(span);
document.getElementById(panel).appendChild(divLoading);
};
var removeLoading = function () {
document.getElementById('PMGmailLoad').remove();
};
var resizePMDynadorm = function () {
var iframe = document.getElementById('iframePM');
var content = iframe.contentDocument;
if (content != null){
clearInterval(tid);
}
};
jQuery('.pmui-tab-ref').on('click', function(e) {
var currentAttrValue = jQuery(this).attr('href');
jQuery(this).parent('li').addClass('pmui-active').siblings().removeClass('pmui-active');
//url iframe
currentAttrValue = jQuery(this).attr('linkPM');
addLoading(jQuery(this).attr('PMServer'));
$('#iframePM').attr('src', currentAttrValue);
e.preventDefault();
});
$('#iframePM').load( function () {
tid = setInterval(function(){ resizePMDynadorm() }, 500);
removeLoading();
});
var currentAttrValue = jQuery('.pmui-tab-ref');
addLoading(currentAttrValue[0].attributes[3].value);
$('#iframePM').attr('src',currentAttrValue[0].attributes[2].value);
});
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
eventer(messageEvent,function(e) {
parent.parent.postMessage(e.data, 'https://mail.google.com');
},false);
</script>
</head>
<body>
<?php
session_start();
if (!defined('SYS_SYS')) {
define('SYS_SYS', 'jenws');
}
?>
<div class="pmui-tabpanel-tabs_container" style="display: block; height: 40px;">
<ul class="pmui-tabpanel-tabs" style="display:block; float:left;">
<li class="pmui pmui-tabitem pmui-active" style="left: 0px; top: 0px; width: auto; height: auto; position: relative; z-index: auto; display: inline-block;">
<i class="pmui-tab-icon"> </i>
<a class="pmui-tab-ref" href="#PMCases" linkPM="<?php echo $_SESSION['server'] . $_SESSION['PMCase'] ?>" PMServer="<?php echo $_SESSION['server'] ?>">
Form
</a>
</li>
<li class="pmui pmui-tabitem" style="left: 0px; top: 0px; width: auto; height: auto; position: relative; z-index: auto; display: inline-block;">
<i class="pmui-tab-icon"> </i>
<a class="pmui-tab-ref" href="#PMProcessmap" linkPM="<?php echo $_SESSION['server'] . $_SESSION['PMProcessmap'] ?>" PMServer="<?php echo $_SESSION['server'] ?>">
Processmap
</a>
</li>
<li class="pmui pmui-tabitem" style="left: 0px; top: 0px; width: auto; height: auto; position: relative; z-index: auto; display: inline-block;">
<i class="pmui-tab-icon"> </i>
<a class="pmui-tab-ref" href="#PMUploadedDocuments" linkPM="<?php echo $_SESSION['server'] . $_SESSION['PMUploadedDocuments'] ?>" PMServer="<?php echo $_SESSION['server'] ?>">
Uploaded
</a>
</li>
<li class="pmui pmui-tabitem" style="left: 0px; top: 0px; width: auto; height: auto; position: relative; z-index: auto; display: inline-block;">
<i class="pmui-tab-icon"> </i>
<a class="pmui-tab-ref" href="#PMGeneratedDocuments" linkPM="<?php echo $_SESSION['server'] . $_SESSION['PMGeneratedDocuments'] ?>" PMServer="<?php echo $_SESSION['server'] ?>">
Generated
</a>
</li>
</ul>
<div class="tab-content">
<div class="tab active" id="PMContent">
<iframe id="iframePM" src="" width="100%" height="530" style="overflow:hidden;"></iframe>
</div>
</div>
</div>
</body>
</html>