addSelectColumn(DynaformPeer::DYN_VERSION); $a->add(DynaformPeer::DYN_UID, "{dynaformUid}", Criteria::EQUAL); $a = ProcessPeer::doSelectRS($a); $a->setFetchmode(ResultSet::FETCHMODE_ASSOC); $a->next(); $row = $a->getRow(); $swpmdynaform = isset($row) && $row["DYN_VERSION"] == 2; if ($swpmdynaform) { $pmdynaform = $_POST["form"]; } $oForm = new Form("{processUid}" . "/" . "{dynaformUid}", PATH_DYNAFORM); $oForm->validatePost(); ws_open(); if ($swpmdynaform) { $result = ws_newCase("{processUid}", "{taskUid}", convertFormToWSObjects($pmdynaform)); } else { $result = ws_newCase("{processUid}", "{taskUid}", convertFormToWSObjects($_POST["form"])); } if ($result->status_code == 0) { $caseId = $result->caseId; $caseNr = $result->caseNumber; {USR_VAR} if ($USR_UID == -1) { G::LoadClass("sessions"); global $sessionId; $sessions = new Sessions(); $session = $sessions->getSessionUser($sessionId); $USR_UID = $session["USR_UID"]; } //Save files if (isset($_FILES["form"]["name"]) && count($_FILES["form"]["name"]) > 0) { $arrayField = array(); $arrayFileName = array(); $arrayFileTmpName = array(); $arrayFileError = array(); $i = 0; foreach ($_FILES["form"]["name"] as $fieldIndex => $fieldValue) { if (is_array($fieldValue)) { foreach ($fieldValue as $index => $value) { if (is_array($value)) { foreach ($value as $grdFieldIndex => $grdFieldValue) { $arrayField[$i]["grdName"] = $fieldIndex; $arrayField[$i]["grdFieldName"] = $grdFieldIndex; $arrayField[$i]["index"] = $index; $arrayFileName[$i] = $_FILES["form"]["name"][$fieldIndex][$index][$grdFieldIndex]; $arrayFileTmpName[$i] = $_FILES["form"]["tmp_name"][$fieldIndex][$index][$grdFieldIndex]; $arrayFileError[$i] = $_FILES["form"]["error"][$fieldIndex][$index][$grdFieldIndex]; $i = $i + 1; } } } } else { $arrayField[$i] = $fieldIndex; $arrayFileName[$i] = $_FILES["form"]["name"][$fieldIndex]; $arrayFileTmpName[$i] = $_FILES["form"]["tmp_name"][$fieldIndex]; $arrayFileError[$i] = $_FILES["form"]["error"][$fieldIndex]; $i = $i + 1; } } if (count($arrayField) > 0) { for ($i = 0; $i <= count($arrayField) - 1; $i++) { if ($arrayFileError[$i] == 0) { $indocUid = null; $fieldName = null; if (is_array($arrayField[$i])) { if (isset($_POST["INPUTS"][$arrayField[$i]["grdName"]][$arrayField[$i]["grdFieldName"]]) && !empty($_POST["INPUTS"][$arrayField[$i]["grdName"]][$arrayField[$i]["grdFieldName"]]) ) { $indocUid = $_POST["INPUTS"][$arrayField[$i]["grdName"]][$arrayField[$i]["grdFieldName"]]; } $fieldName = $arrayField[$i]["grdName"] . "_" . $arrayField[$i]["index"] . "_" . $arrayField[$i]["grdFieldName"]; } else { if (isset($_POST["INPUTS"][$arrayField[$i]]) && !empty($_POST["INPUTS"][$arrayField[$i]]) ) { $indocUid = $_POST["INPUTS"][$arrayField[$i]]; } $fieldName = $arrayField[$i]; } $filePath = G::sys_get_temp_dir() . PATH_SEP . $arrayFileName[$i]; file_put_contents($filePath, file_get_contents($arrayFileTmpName[$i])); if ($indocUid != null) { //Input file type ws_sendFile($filePath, $USR_UID, $caseId, 1, $indocUid, $fieldName); } else { //Attached file type ws_sendFile($filePath, $USR_UID, $caseId, 1, null, $fieldName); } } } } } $result = ws_routeCase($caseId, 1); $assign = $result->message; $aMessage["MESSAGE"] = "
Case created in ProcessMaker
Case Number: $caseNr
Case Id: $caseId
Case derivated to: $assign"; } else { $aMessage["MESSAGE"] = " An error occurred while the application was being processed.
Error code: " . $result->status_code . "
Error message: " . $result->message . "


Please contact to your system administrator."; } /** * By default show the case info, for the recently created case * you can change it or redirect to another page * i.e. G::header("Location: http://www.processmaker.com"); */ /*----------------------------------********---------------------------------*/ $_POST['__notValidateThisFields__'] = (isset( $_POST['__notValidateThisFields__'] ) && $_POST['__notValidateThisFields__'] != '') ? $_POST['__notValidateThisFields__'] : $_POST['DynaformRequiredFields']; if ($missing_req_values = $oForm->validateRequiredFields( $_POST['form'], Bootstrap::json_decode( stripslashes( $_POST['__notValidateThisFields__'] ) ) )) { $fieldsRequired = Bootstrap::json_decode(str_replace(array("%27", "%39"), array("\"", "'"), $_POST["DynaformRequiredFields"])); foreach ($fieldsRequired as $key1 => $value1) { foreach ($missing_req_values as $key2 => $value2) { if ($value1->name == $value2) { $missing_req_values[$key2] = $value1->label; } } } $_POST['next_step']['PAGE'] = ""; $_POST['previous_step']['PAGE'] = $_SERVER['HTTP_REFERER']; $_POST['req_val'] = $missing_req_values; global $G_PUBLISH; $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent( 'view', 'cases/missRequiredFields' ); G::RenderPage( 'publish', 'blank' ); exit( 0 ); } /*----------------------------------********---------------------------------*/ $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent("xmlform", "xmlform", "login/showInfo", "", $aMessage); G::RenderPage("publish", "blank"); } catch (Exception $e) { $G_PUBLISH = new Publisher(); $suggest_message = "This web entry should be regenerated, please contact to your system administrator."; $aMessage["MESSAGE"] = "
" . $e->getMessage() . "
" . $suggest_message . "
"; $G_PUBLISH->AddContent("xmlform", "xmlform", "login/showMessage", "", $aMessage); G::RenderPage("publish", "blank"); }