PM-1222 "Trigger - Error de validacion al crear un PMFNewCase" SOLVED
Issue:
Trigger - Error de validacion al crear un PMFNewCase
Cause:
Error al contar elementos en un valor de tipo array, esto
en el trigger-wizard
Solution:
Se ha mejorado el conteo de elementos de un array
para un determinado campo
This commit is contained in:
@@ -213,23 +213,23 @@ class Process
|
||||
if ($arrayFieldDefinition[$fieldName]["empty"] && $fieldValue . "" == "") {
|
||||
//
|
||||
} else {
|
||||
$eregDate = "[1-9]\d{3}\-(?:0[1-9]|1[012])\-(?:[0][1-9]|[12][0-9]|3[01])";
|
||||
$eregHour = "(?:[0-1]\d|2[0-3])\:(?:[0-5]\d)(?:\:[0-5]\d)?";
|
||||
$eregDatetime = $eregDate . "\s" . $eregHour;
|
||||
$regexpDate = "[1-9]\d{3}\-(?:0[1-9]|1[012])\-(?:[0][1-9]|[12][0-9]|3[01])";
|
||||
$regexpHour = "(?:[0-1]\d|2[0-3])\:(?:[0-5]\d)(?:\:[0-5]\d)?";
|
||||
$regexpDatetime = $regexpDate . "\s" . $regexpHour;
|
||||
|
||||
switch ($arrayFieldDefinition[$fieldName]["type"]) {
|
||||
case "date":
|
||||
if (!preg_match("/^" . $eregDate . "$/", $fieldValue)) {
|
||||
if (!preg_match("/^" . $regexpDate . "$/", $fieldValue)) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE", array($fieldNameAux)));
|
||||
}
|
||||
break;
|
||||
case "hour":
|
||||
if (!preg_match("/^" . $eregHour . "$/", $fieldValue)) {
|
||||
if (!preg_match("/^" . $regexpHour . "$/", $fieldValue)) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE", array($fieldNameAux)));
|
||||
}
|
||||
break;
|
||||
case "datetime":
|
||||
if (!preg_match("/^" . $eregDatetime . "$/", $fieldValue)) {
|
||||
if (!preg_match("/^" . $regexpDatetime . "$/", $fieldValue)) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE", array($fieldNameAux)));
|
||||
}
|
||||
break;
|
||||
@@ -239,9 +239,12 @@ class Process
|
||||
case 2:
|
||||
switch ($arrayFieldDefinition[$fieldName]["type"]) {
|
||||
case "array":
|
||||
$regexpArray1 = "\s*array\s*\(";
|
||||
$regexpArray2 = "\)\s*";
|
||||
|
||||
//type
|
||||
if (!is_array($fieldValue)) {
|
||||
if ($fieldValue != "" && !preg_match("/^\s*array\s*\(.*\)\s*$/", $fieldValue)) {
|
||||
if ($fieldValue != "" && !preg_match("/^" . $regexpArray1 . ".*" . $regexpArray2 . "$/", $fieldValue)) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_THIS_MUST_BE_ARRAY", array($fieldNameAux)));
|
||||
}
|
||||
}
|
||||
@@ -255,7 +258,13 @@ class Process
|
||||
}
|
||||
|
||||
if (is_string($fieldValue) && trim($fieldValue) . "" != "") {
|
||||
eval("\$arrayAux = $fieldValue;");
|
||||
//eval("\$arrayAux = $fieldValue;");
|
||||
|
||||
if (preg_match("/^" . $regexpArray1 . "(.*)" . $regexpArray2 . "$/", $fieldValue, $arrayMatch)) {
|
||||
if (trim($arrayMatch[1], " ,") != "") {
|
||||
$arrayAux = array(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (count($arrayAux) == 0) {
|
||||
|
||||
Reference in New Issue
Block a user