Example #1
0
     $statusmsg = "{$form_name} Draft Updated";
     $status = 0;
 } else {
     $statusmsg = "{$form_name} has been created";
     $status = 1;
     if ($processid > 0 and $taskid > 0) {
         // Check if custom workflow handler function being requested - used for inline action forms
         if (isset($_POST['custom_handler']) and function_exists($_POST['custom_handler'])) {
             $custom_handler = COM_applyFilter($_POST['custom_handler']);
             if ($CONF_NF['debug']) {
                 COM_errorLog("{$form_name} form submitted - using custom handler function {$custom_handler}");
             }
             $prj_id = COM_applyFilter($_POST['projectid']);
             $custom_handler($processid, $taskid, $usermodeuid, $prj_id);
         } else {
             $nfclass->complete_task($taskid);
             if ($CONF_NF['debug']) {
                 COM_errorLog("{$form_name} form submitted - completed taskid: {$taskid}");
             }
             DB_query("UPDATE {$_TABLES['nf_projecttaskhistory']} SET date_completed = UNIX_TIMESTAMP() WHERE task_id='{$taskid}'");
         }
     }
 }
 DB_query("UPDATE {$_TABLES['nf_projectforms']} SET status = '{$status}' WHERE id='{$project_formid}'");
 if ($newproject) {
     /* Update the project fields with information if known */
     $sql = "SELECT results_id FROM {$_TABLES['nf_projectforms']} ";
     $sql .= "WHERE project_id='{$project_id}' AND form_id='{$form_id}' ";
     $query = DB_query($sql);
     if (DB_numRows($query) == 1) {
         list($newresult_id) = DB_fetchArray($query);
function nf_testsuite_setvar1_posthandler($processid, $taskid, $userid, $projectid)
{
    if ($processid > 0 and $taskid > 0) {
        $nfclass = new nexflow($processid, $userid);
        $nfclass->set_currentTaskid($taskid);
        $msg = $nfclass->get_taskOptionalParm();
        $var1 = COM_applyFilter($_POST['var1'], true);
        $nfclass->set_processVariable('VAR1', $var1);
        $nfclass->complete_task($taskid);
        nf_changeLog("You set VAR1 to {$var1}.  Verify the following messages line up!");
    }
}
function nf_approveEditForm_posthandler($processid, $taskid, $userid, $projectid)
{
    global $_CONF, $_TABLES, $_DB_table_prefix;
    $nfclass = new nexflow($processid);
    if ($projectid == '' or $projectid == 0) {
        $projectid = $nfclass->get_processVariable('PID');
    }
    $actionopt = COM_applyFilter($_POST['actionopt']);
    $taskid = COM_applyFilter($_POST['taskid']);
    $formid = COM_applyFilter($_POST['formid']);
    $processid = COM_applyFilter($_POST['processid']);
    if ($projectid > 0) {
        $prj_formid = DB_getItem($_TABLES['nf_projectforms'], 'id', "project_id='{$projectid}' AND form_id='{$formid}'");
    }
    $status = DB_getItem($_TABLES['nf_projectforms'], 'status', "id='{$prj_formid}'");
    if (DB_count($_TABLES['nf_project_approvals'], array('uid', 'form_id', 'process_id'), array($userid, $prj_formid, $processid)) == 0) {
        DB_query("INSERT INTO {$_TABLES['nf_project_approvals']} (process_id,form_id,uid) VALUES ('{$processid}','{$prj_formid}','{$userid}')");
    }
    if ($actionopt == 'accept') {
        DB_query("UPDATE {$_TABLES['nf_project_approvals']} SET status='3', date_updated=UNIX_TIMESTAMP() WHERE uid='{$userid}' AND form_id='{$prj_formid}'");
    } elseif ($actionopt == 'reject') {
        DB_query("UPDATE {$_TABLES['nf_project_approvals']} SET status='6', date_updated=UNIX_TIMESTAMP() WHERE uid='{$userid}' AND form_id='{$prj_formid}'");
    }
    if (trim($_POST['notes']) != '') {
        $notes = ppPrepareForDB($_POST['notes']);
        if (DB_count($_TABLES['nf_projectcomments'], array('project_id', 'task_id'), array($projectid, $taskid)) == 0) {
            $sql = "INSERT INTO {$_TABLES['nf_projectcomments']} (project_id, task_id, uid, timestamp, comment) ";
            $sql .= "VALUES ('{$projectid}','{$taskid}','{$userid}',UNIX_TIMESTAMP(),'{$notes}')";
        } else {
            $sql = "UPDATE {$_TABLES['nf_projectcomments']} SET comment='{$notes}', timestamp=UNIX_TIMESTAMP() ";
            $sql .= "WHERE project_id='{$projectid}' AND task_id='{$taskid}' ";
        }
        DB_query($sql);
    }
    $formtype = DB_getItem($_TABLES['nf_projectforms'], 'formtype', "id='{$prj_formid}'");
    if ($_POST['taskaction'] == 'Complete Task') {
        if ($processid > 0 and $taskid > 0) {
            $nfclass = new nexflow($processid, $userid);
            if ($actionopt == 'accept') {
                $statusmsg = "{$formtype} approved";
                nf_updateStatusLog($projectid, $prj_formid, $statusmsg);
                $status = DB_getItem($_TABLES['nf_projectforms'], 'status', "id='{$prj_formid}'");
                $nfclass = new nexflow($processid, $userid);
                // Set Process Variable to true which may be checked in the workflow
                $nfclass->set_ProcessVariable('Review_Approval', 0);
                $nfclass->complete_task($taskid);
                // If the form has not yet been rejected by another member then mark it accepted
                if ($status != 6) {
                    DB_query("UPDATE {$_TABLES['nf_projectforms']} SET status='3' WHERE id='{$prj_formid}'");
                }
            } elseif ($actionopt == 'reject') {
                DB_query("UPDATE {$_TABLES['nf_projectforms']} SET status='6' WHERE id='{$prj_formid}'");
                $statusmsg = "{$formtype} Rejected";
                nf_updateStatusLog($projectid, $prj_formid, $statusmsg);
                // Set Process Variable to false which may be checked in the workflow
                $nfclass->set_ProcessVariable('Review_Approval', 1);
                $nfclass->cancel_task($taskid);
            } else {
                return "Need to check 'Reject' or 'Accept' to complete the task";
            }
        }
    }
}