Merge remote-tracking branch 'upstream/3.0.1.6' into 3.0.1.6-Gmail
This commit is contained in:
@@ -467,47 +467,46 @@ class Consolidated
|
||||
$xmlfrm->fields = array();
|
||||
foreach ($fieldsDyna as $key => $value) {
|
||||
foreach ($value as $val) {
|
||||
if ($val->type == 'title' || $val->type == 'submit' || $val->type == 'panel' || $val->type == 'image' || $val->type == 'button' || $val->type == 'grid' || $val->type == 'checkgroup' || $val->type == 'radiogroup' || $val->type == 'radio' || $val->type == 'hidden' || $val->type == 'link' || $val->type == 'file' || $val->type == 'subform' || $val->type == 'label') {
|
||||
continue;
|
||||
}
|
||||
$temp = new \stdclass();
|
||||
$temp->type = $val->type;
|
||||
$temp->label = $val->label;
|
||||
$temp->name = $val->name;
|
||||
$temp->required = (isset($val->required)) ? $val->required : 0;
|
||||
$temp->mode = (isset($val->mode)) ? $val->mode : 'edit';
|
||||
if (isset($val->type) && ($val->type == 'text' || $val->type == 'textarea' || $val->type == 'dropdown' || $val->type == 'checkbox' || $val->type == 'datetime')) {
|
||||
$temp = new \stdclass();
|
||||
$temp->type = $val->type;
|
||||
$temp->label = $val->label;
|
||||
$temp->name = $val->name;
|
||||
$temp->required = (isset($val->required)) ? $val->required : 0;
|
||||
$temp->mode = (isset($val->mode)) ? $val->mode : 'edit';
|
||||
|
||||
if ((isset($val->options) && !empty($val->options)) || (isset($val->optionsSql) && !empty($val->optionsSql))) {
|
||||
$temp->storeData = '[';
|
||||
if ((isset($val->options) && !empty($val->options)) || (isset($val->optionsSql) && !empty($val->optionsSql))) {
|
||||
$temp->storeData = '[';
|
||||
|
||||
if (isset($val->options) && !empty($val->options)) {
|
||||
foreach ($val->options as $valueOption) {
|
||||
if(isset($valueOption->value)){
|
||||
$temp->storeData .= '["' . $valueOption->value . '", "' . $valueOption->label . '"],';
|
||||
}else{
|
||||
$temp->storeData .= '["' . $valueOption['value'] . '", "' . $valueOption['label'] . '"],';
|
||||
if (isset($val->options) && !empty($val->options)) {
|
||||
foreach ($val->options as $valueOption) {
|
||||
if (isset($valueOption->value)) {
|
||||
$temp->storeData .= '["' . $valueOption->value . '", "' . $valueOption->label . '"],';
|
||||
} else {
|
||||
$temp->storeData .= '["' . $valueOption['value'] . '", "' . $valueOption['label'] . '"],';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($val->optionsSql) && !empty($val->optionsSql)) {
|
||||
foreach ($val->optionsSql as $valueOption) {
|
||||
if(isset($valueOption->value)){
|
||||
$temp->storeData .= '["' . $valueOption->value . '", "' . $valueOption->label . '"],';
|
||||
}else{
|
||||
$temp->storeData .= '["' . $valueOption['value'] . '", "' . $valueOption['label'] . '"],';
|
||||
if (isset($val->optionsSql) && !empty($val->optionsSql)) {
|
||||
foreach ($val->optionsSql as $valueOption) {
|
||||
if (isset($valueOption->value)) {
|
||||
$temp->storeData .= '["' . $valueOption->value . '", "' . $valueOption->label . '"],';
|
||||
} else {
|
||||
$temp->storeData .= '["' . $valueOption['value'] . '", "' . $valueOption['label'] . '"],';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$temp->storeData = substr($temp->storeData, 0, -1);
|
||||
$temp->storeData .= ']';
|
||||
}
|
||||
|
||||
$temp->storeData = substr($temp->storeData,0,-1);
|
||||
$temp->storeData .= ']';
|
||||
}
|
||||
|
||||
$temp->readOnly = ($temp->mode == 'view') ? "1" : "0";
|
||||
$temp->colWidth = 200;
|
||||
$xmlfrm->fields[] = $temp;
|
||||
$temp->readOnly = ($temp->mode == 'view') ? "1" : "0";
|
||||
$temp->colWidth = 200;
|
||||
$xmlfrm->fields[] = $temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$filename = $pro_uid . PATH_SEP . $dyn_uid . ".xml";
|
||||
|
||||
@@ -402,10 +402,16 @@ class Light
|
||||
{
|
||||
try {
|
||||
$oCase = new \Cases();
|
||||
$Fields = $oCase->loadCase( $app_uid );
|
||||
$_SESSION["APPLICATION"] = $app_uid;
|
||||
$_SESSION["PROCESS"] = $Fields['PRO_UID'];
|
||||
$_SESSION["TASK"] = $tas_uid;
|
||||
$_SESSION["INDEX"] = $del_index;
|
||||
$_SESSION["USER_LOGGED"] = $usr_uid;
|
||||
$_SESSION["USR_USERNAME"] = isset($Fields['APP_DATA']['USR_USERNAME'])?$Fields['APP_DATA']['USR_USERNAME']:'';
|
||||
|
||||
$triggers = $oCase->loadTriggers( $tas_uid, 'ASSIGN_TASK', '-1', 'BEFORE');
|
||||
if (isset($triggers)){
|
||||
$Fields = $oCase->loadCase( $app_uid );
|
||||
$Fields['APP_DATA'] = array_merge( $Fields['APP_DATA'], G::getSystemConstants() );
|
||||
$Fields['APP_DATA'] = $oCase->ExecuteTriggers( $tas_uid, 'DYNAFORM', '-1', 'BEFORE', $Fields['APP_DATA'] );
|
||||
$oCase->updateCase( $app_uid, $Fields );
|
||||
|
||||
@@ -1927,5 +1927,23 @@ class Task
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function getValidateSelfService($data)
|
||||
{
|
||||
$data = array_change_key_case($data, CASE_LOWER);
|
||||
$sTaskUID = $data['act_uid'];
|
||||
$response = new \stdclass();
|
||||
$oCriteria = new \Criteria();
|
||||
$oCriteria->add(\AppDelegationPeer::DEL_THREAD_STATUS, "OPEN");
|
||||
$oCriteria->add(\AppDelegationPeer::TAS_UID, $sTaskUID);
|
||||
$oCriteria->add(\AppDelegationPeer::USR_UID, "");
|
||||
$oApplication = \AppDelegationPeer::doSelectOne($oCriteria);
|
||||
$response->result = true;
|
||||
if(!empty($oApplication)) {
|
||||
$response->result = false;
|
||||
$response->message = G::LoadTranslation('ID_CURRENT_ASSING_TYPE_WITH_CASES');
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -135,6 +135,7 @@ class Variable
|
||||
$dbConnection = \DbSourcePeer::retrieveByPK($variable->getVarDbconnection(), $variable->getPrjUid());
|
||||
|
||||
$oldVariable = array(
|
||||
"VAR_UID" => $variable->getVarUid(),
|
||||
"VAR_NAME" => $variable->getVarName(),
|
||||
"VAR_FIELD_TYPE" => $variable->getVarFieldType(),
|
||||
"VAR_DBCONNECTION" => $variable->getVarDbconnection(),
|
||||
@@ -182,6 +183,7 @@ class Variable
|
||||
//update dynaforms
|
||||
$dbConnection = \DbSourcePeer::retrieveByPK($variable->getVarDbconnection(), $variable->getPrjUid());
|
||||
$newVariable = array(
|
||||
"VAR_UID" => $variable->getVarUid(),
|
||||
"VAR_NAME" => $variable->getVarName(),
|
||||
"VAR_FIELD_TYPE" => $variable->getVarFieldType(),
|
||||
"VAR_DBCONNECTION" => $variable->getVarDbconnection(),
|
||||
@@ -685,50 +687,21 @@ class Variable
|
||||
$stmt = $cnn->createStatement();
|
||||
|
||||
$replaceFields = G::replaceDataField($variableSql, $arrayVariable);
|
||||
|
||||
$a = strtolower($replaceFields);
|
||||
$a = str_replace("\n", " ", $a);
|
||||
$a = str_replace("\t", " ", $a);
|
||||
$ai = strpos($a, "select ");
|
||||
$aj = strpos($a, " from ");
|
||||
$sw = strrpos($a, " order ");
|
||||
$sw2 = strrpos($a, " where ");
|
||||
|
||||
$b = substr($replaceFields, $ai + 6, $aj - ($ai + 6));
|
||||
$b = explode(",", $b);
|
||||
$b = isset($b[1]) ? $b[1] : $b[0];
|
||||
|
||||
$c = strtolower($b);
|
||||
$ci = strpos($c, " as ");
|
||||
$c = $ci > 0 ? substr($b, $ci + 4) : $b;
|
||||
|
||||
|
||||
$filter = "";
|
||||
if (isset($arrayVariable["filter"])) {
|
||||
if ($sw2 !== false && $sw2 < $aj) {
|
||||
$sw2 = false;
|
||||
}
|
||||
$filter = ($sw2 === false ? " WHERE " : " AND ") . $c . " LIKE '%" . $arrayVariable["filter"] . "%'";
|
||||
$filter = $arrayVariable["filter"];
|
||||
}
|
||||
|
||||
$order = " ORDER BY " . $c . " ASC";
|
||||
if (isset($arrayVariable["order"])) {
|
||||
$order = " ORDER BY " . $c . " " . $arrayVariable["order"];
|
||||
}
|
||||
if ($sw) {
|
||||
$order = substr($replaceFields, $sw);
|
||||
$replaceFields = substr($replaceFields, 0, $sw);
|
||||
}
|
||||
|
||||
$start = 0;
|
||||
if (isset($arrayVariable["start"])) {
|
||||
$start = $arrayVariable["start"];
|
||||
}
|
||||
$limit = "";
|
||||
if (isset($arrayVariable["limit"])) {
|
||||
$limit = " LIMIT " . $start . "," . $arrayVariable["limit"];
|
||||
$limit = $arrayVariable["limit"];
|
||||
}
|
||||
|
||||
$replaceFields = $replaceFields . $filter . $order . $limit;
|
||||
$parser = new \PHPSQLParser($replaceFields);
|
||||
$replaceFields = $this->queryModified($parser->parsed, $filter, "*searchtype*", $start, $limit);
|
||||
|
||||
$rs = $stmt->executeQuery($replaceFields, \ResultSet::FETCHMODE_NUM);
|
||||
|
||||
@@ -747,5 +720,157 @@ class Variable
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function queryModified($sqlParsed, $inputSel = "", $searchType, $start, $limit)
|
||||
{
|
||||
if (!empty($sqlParsed['SELECT'])) {
|
||||
$sqlSelectOptions = (isset($sqlParsed["OPTIONS"]) && count($sqlParsed["OPTIONS"]) > 0) ? implode(" ", $sqlParsed["OPTIONS"]) : null;
|
||||
|
||||
$sqlSelect = "SELECT $sqlSelectOptions ";
|
||||
$aSelect = $sqlParsed["SELECT"];
|
||||
|
||||
$sFieldSel = (count($aSelect) > 1 ) ? $aSelect[1]['base_expr'] : $aSelect[0]['base_expr'];
|
||||
foreach ($aSelect as $key => $value) {
|
||||
if ($key != 0)
|
||||
$sqlSelect .= ", ";
|
||||
$sAlias = str_replace("`", "", $aSelect[$key]['alias']);
|
||||
$sBaseExpr = $aSelect[$key]['base_expr'];
|
||||
switch ($aSelect[$key]['expr_type']) {
|
||||
case 'colref' : if ($sAlias === $sBaseExpr)
|
||||
$sqlSelect .= $sAlias;
|
||||
else
|
||||
$sqlSelect .= $sBaseExpr . ' AS ' . $sAlias;
|
||||
break;
|
||||
case 'expression' : if ($sAlias === $sBaseExpr)
|
||||
$sqlSelect .= $sBaseExpr;
|
||||
else
|
||||
$sqlSelect .= $sBaseExpr . ' AS ' . $sAlias;
|
||||
break;
|
||||
case 'subquery' : if (strpos($sAlias, $sBaseExpr, 0) != 0)
|
||||
$sqlSelect .= $sAlias;
|
||||
else
|
||||
$sqlSelect .= $sBaseExpr . " AS " . $sAlias;
|
||||
break;
|
||||
case 'operator' : $sqlSelect .= $sBaseExpr;
|
||||
break;
|
||||
default : $sqlSelect .= $sBaseExpr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$sqlFrom = " FROM ";
|
||||
if (!empty($sqlParsed['FROM'])) {
|
||||
$aFrom = $sqlParsed['FROM'];
|
||||
if (count($aFrom) > 0) {
|
||||
foreach ($aFrom as $key => $value) {
|
||||
if ($key == 0) {
|
||||
$sqlFrom .= $aFrom[$key]['table'] . (($aFrom[$key]['table'] == $aFrom[$key]['alias']) ? "" : " " . $aFrom[$key]['alias']);
|
||||
} else {
|
||||
$sqlFrom .= " " . (($aFrom[$key]['join_type'] == 'JOIN') ? "INNER" : $aFrom[$key]['join_type']) . " JOIN " . $aFrom[$key]['table']
|
||||
. (($aFrom[$key]['table'] == $aFrom[$key]['alias']) ? "" : " " . $aFrom[$key]['alias']) . " " . $aFrom[$key]['ref_type'] . " " . $aFrom[$key]['ref_clause'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$sqlConditionLike = "LIKE '%" . $inputSel . "%'";
|
||||
|
||||
switch ($searchType) {
|
||||
case "searchtype*":
|
||||
$sqlConditionLike = "LIKE '" . $inputSel . "%'";
|
||||
break;
|
||||
case "*searchtype":
|
||||
$sqlConditionLike = "LIKE '%" . $inputSel . "'";
|
||||
break;
|
||||
}
|
||||
|
||||
if (!empty($sqlParsed['WHERE'])) {
|
||||
$sqlWhere = " WHERE ";
|
||||
$aWhere = $sqlParsed['WHERE'];
|
||||
foreach ($aWhere as $key => $value) {
|
||||
$sqlWhere .= $value['base_expr'] . " ";
|
||||
}
|
||||
$sqlWhere .= " AND " . $sFieldSel . " " . $sqlConditionLike;
|
||||
} else {
|
||||
$sqlWhere = " WHERE " . $sFieldSel . " " . $sqlConditionLike;
|
||||
}
|
||||
|
||||
$sqlGroupBy = "";
|
||||
if (!empty($sqlParsed['GROUP'])) {
|
||||
$sqlGroupBy = "GROUP BY ";
|
||||
$aGroup = $sqlParsed['GROUP'];
|
||||
foreach ($aGroup as $key => $value) {
|
||||
if ($key != 0)
|
||||
$sqlGroupBy .= ", ";
|
||||
if ($value['direction'] == 'ASC')
|
||||
$sqlGroupBy .= $value['base_expr'];
|
||||
else
|
||||
$sqlGroupBy .= $value['base_expr'] . " " . $value['direction'];
|
||||
}
|
||||
}
|
||||
|
||||
$sqlHaving = "";
|
||||
if (!empty($sqlParsed['HAVING'])) {
|
||||
$sqlHaving = "HAVING ";
|
||||
$aHaving = $sqlParsed['HAVING'];
|
||||
foreach ($aHaving as $key => $value) {
|
||||
$sqlHaving .= $value['base_expr'] . " ";
|
||||
}
|
||||
}
|
||||
|
||||
$sqlOrderBy = "";
|
||||
if (!empty($sqlParsed['ORDER'])) {
|
||||
$sqlOrderBy = "ORDER BY ";
|
||||
$aOrder = $sqlParsed['ORDER'];
|
||||
foreach ($aOrder as $key => $value) {
|
||||
if ($key != 0)
|
||||
$sqlOrderBy .= ", ";
|
||||
if ($value['direction'] == 'ASC')
|
||||
$sqlOrderBy .= $value['base_expr'];
|
||||
else
|
||||
$sqlOrderBy .= $value['base_expr'] . " " . $value['direction'];
|
||||
}
|
||||
} else {
|
||||
$sqlOrderBy = " ORDER BY " . $sFieldSel;
|
||||
}
|
||||
|
||||
$sqlLimit = "";
|
||||
if ($start >= 0) {
|
||||
$sqlLimit = " LIMIT " . $start;
|
||||
}
|
||||
if ($limit !== "") {
|
||||
$sqlLimit = " LIMIT " . $start . "," . $limit;
|
||||
}
|
||||
if (!empty($sqlParsed['LIMIT'])) {
|
||||
$sqlLimit = " LIMIT " . $sqlParsed['LIMIT']['start'] . ", " . $sqlParsed['LIMIT']['end'];
|
||||
}
|
||||
|
||||
return $sqlSelect . $sqlFrom . $sqlWhere . $sqlGroupBy . $sqlHaving . $sqlOrderBy . $sqlLimit;
|
||||
}
|
||||
if (!empty($sqlParsed['CALL'])) {
|
||||
$sCall = "CALL ";
|
||||
$aCall = $sqlParsed['CALL'];
|
||||
foreach ($aCall as $key => $value) {
|
||||
$sCall .= $value . " ";
|
||||
}
|
||||
return $sCall;
|
||||
}
|
||||
if (!empty($sqlParsed['EXECUTE'])) {
|
||||
$sCall = "EXECUTE ";
|
||||
$aCall = $sqlParsed['EXECUTE'];
|
||||
foreach ($aCall as $key => $value) {
|
||||
$sCall .= $value . " ";
|
||||
}
|
||||
return $sCall;
|
||||
}
|
||||
if (!empty($sqlParsed[''])) {
|
||||
$sCall = "";
|
||||
$aCall = $sqlParsed[''];
|
||||
foreach ($aCall as $key => $value) {
|
||||
$sCall .= $value . " ";
|
||||
}
|
||||
return $sCall;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user