Files
luos/workflow/engine/templates/processes/webentryPost.tpl

208 lines
9.5 KiB
Smarty
Raw Normal View History

2010-12-02 23:34:41 +00:00
<?php
/***********************************************************************************************
* --= Processmaker Web Entry Request handler =-- *
* *
* This file was autogenerated by Processmaker Open Source Rel-{version} *
***********************************************************************************************/
//@Dynaform : {dynaform}
//@Workspace : {ws}
//@Timestamp : {timestamp}
define("WS_WSDL_URL", "{wsdlUrl}");
define("WS_UPLOAD_URL", "{wsUploadUrl}");
define("WS_USER_ID", "{wsUser}");
define("WS_USER_PASS", "{wsPass}");
define("WS_ROUNDROBIN", "{wsRoundRobin}");
try {
@include_once ("wsClient.php");
if (!function_exists("ws_open")){
throw (new Exception("function ws_open() is not defined. File wsClient.php is missing"));
}
2015-04-27 14:36:09 -04:00
/*
* PMDynaform
* DYN_VERSION is 1: classic Dynaform,
* DYN_VERSION is 2: responsive form, Pmdynaform.
*/
$a = new Criteria("workflow");
$a->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;
2017-03-22 10:28:40 -04:00
2017-03-22 11:24:59 -04:00
//If no variables are submitted and the $_POST variable is empty
2017-03-22 10:28:40 -04:00
if (!isset($_POST['form'])) {
$_POST['form'] = array();
}
2015-04-27 14:36:09 -04:00
if ($swpmdynaform) {
$pmdynaform = $_POST["form"];
}
$oForm = new Form("{processUid}" . "/" . "{dynaformUid}", PATH_DYNAFORM);
2010-12-02 23:34:41 +00:00
$oForm->validatePost();
ws_open();
2015-04-27 14:36:09 -04:00
if ($swpmdynaform) {
2015-11-19 12:01:31 -04:00
$obj = new stdClass();
$obj->name = "__POST_VARIABLES__";
$obj->value = G::json_encode($pmdynaform);
$result = ws_newCase("{processUid}", "{taskUid}", array($obj));
2015-04-27 14:36:09 -04:00
} 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) {
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;
$fileSizeByField = 0;
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"];
if (isset($_FILES["form"]["size"][$arrayField[$i]["grdName"]][$arrayField[$i]["index"]][$arrayField[$i]["grdFieldName"]])) {
$fileSizeByField = $_FILES["form"]["size"][$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];
if (isset($_FILES["form"]["size"][$fieldName])) {
$fileSizeByField = $_FILES["form"]["size"][$fieldName];
}
}
$temDir = G::sys_get_temp_dir();
$uploadfile = $temDir . PATH_SEP . basename($arrayFileName[$i]);
$result = move_uploaded_file($arrayFileTmpName[$i], $uploadfile);
$filePath = $temDir . PATH_SEP . $arrayFileName[$i];
file_put_contents($filePath, file_get_contents($uploadfile));
$filename = $arrayFileName[$i];
if ($indocUid != null) {
//Input file type
ws_sendFile($uploadfile, $USR_UID, $caseId, 1, $indocUid, $fieldName, null, null, $filename);
} else {
//Attached file type
ws_sendFile($uploadfile, $USR_UID, $caseId, 1, null, $fieldName, null, null, $filename);
}
}
}
2010-12-02 23:34:41 +00:00
}
}
$result = ws_routeCase($caseId, 1);
$assign = $result->message;
2017-04-18 15:51:02 -04:00
$aMessage["MESSAGE"] = "<br />Case created in ProcessMaker<br />Case Number: $caseNr <br />Case Id: $caseId<br />Case routed to: $assign";
2010-12-02 23:34:41 +00:00
} else {
$aMessage["MESSAGE"] = "<font color=\"red\">
An error occurred while the application was being processed.<br />
Error code: " . $result->status_code . "<br />
Error message: " . $result->message . "
</font>
<br /><br />
<strong>Please contact to your system administrator.</strong>";
2010-12-02 23:34:41 +00:00
}
2010-12-02 23:34:41 +00:00
/**
* 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");
2010-12-02 23:34:41 +00:00
*/
/*----------------------------------********---------------------------------*/
$_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 );
}
/*----------------------------------********---------------------------------*/
2017-05-04 10:59:38 -04:00
$_SESSION["__webEntrySuccess__"] = $aMessage;
2017-05-05 10:18:04 -04:00
G::header("location:{weTitle}Info.php");
} catch (Exception $e) {
2010-12-02 23:34:41 +00:00
$suggest_message = "This web entry should be regenerated, please contact to your system administrator.";
$aMessage["MESSAGE"] = "<font color=\"red\"><pre>" . $e->getMessage() . "</pre>" . $suggest_message . "</font>";
2017-05-04 10:59:38 -04:00
$_SESSION["__webEntryError__"] = $aMessage;
2017-05-05 10:19:48 -04:00
G::header("location:{weTitle}Info.php");
}