/**
  * @Title: index
  * @Description: todo(重写CommonAction的index方法,展示列表)
  * @return string
  * @author 杨希
  * @date 2013-5-31 下午3:59:44
  * @throws
  */
 public function index()
 {
     // 获取流程号
     $model2 = D("ProcessInfo");
     $procelist = $model2->where("status=1")->getField("id,name");
     $this->assign("procelist", $procelist);
     //获取调整单据类型
     $OrderTypes = D("MisOrderTypes");
     $OrderTypesList = $OrderTypes->where("type='11' and status=1")->getField("id,name");
     $this->assign('aduList', $OrderTypesList);
     //获取采购申请单据类型
     $OrderTypesList = $OrderTypes->where("type='05' and status=1")->getField("id,name");
     $this->assign('appList', $OrderTypesList);
     //获取销售退货审核后生成物料入库单据类型
     //物料入库之采购入库
     $OrderTypesList = $OrderTypes->where("type='08' and status=1")->getField("id,name");
     $this->assign('intoList', $OrderTypesList);
     //销售退货生成入库单默认仓库
     $whmodel = D('MisInventoryWarehouse');
     $whmap['status'] = 1;
     $whlist = $whmodel->where($whmap)->getField("id,name");
     $this->assign('whlist', $whlist);
     //采购退货完成自动生成出库单类型  //物料出库单据之销售出库
     $OrderTypesList = $OrderTypes->where("type='09' and status=1")->getField("id,name");
     $this->assign('outList', $OrderTypesList);
     //容积和重量单位
     $smap['status'] = 1;
     $list = getOptionList('mis_product_unit', $smap);
     $this->assign('unitlist', $list);
     //获取配置文件内容
     $ConfigListModel = D('SystemConfigList');
     $list = $ConfigListModel->GetAllValue();
     $this->assign("list", $list);
     $this->display();
 }
示例#2
0
function get_AnyFile_suffixes()
{
    $mysetoptions = array();
    $alloptionlist = getOptionList();
    foreach ($alloptionlist as $key => $option) {
        if (strpos($key, 'AnyFile_file_list_') === 0) {
            if ($option) {
                $mysetoptions[] = str_replace('AnyFile_file_list_', '', $key);
            } else {
                purgeOption($key);
            }
        }
    }
    return $mysetoptions;
}
示例#3
0
}
$tutor = $tutor_code;
//echo $_REQUEST['prjtg_id']."<br/>\n";
if (isset($_REQUEST['prjtg_id'])) {
    $prjtg_id = validate($_REQUEST['prjtg_id'], 'integer', $_SESSION['prjtg_id']);
}
$_SESSION['prj_id'] = $prj_id;
$_SESSION['milestone'] = $milestone;
$_SESSION['prjm_id'] = $prjm_id;
$_SESSION['prjtg_id'] = $prjtg_id;
$scripts = file_get_contents('js/balloonscript.html');
pagehead2('groupphotos', $scripts);
$prjSel->setSubmitOnChange(false);
$prj_id_selector = $prjSel->getSelector();
$grpList = '<select name="prjtg_id" onChange="submit()">' . "\n\t";
$grpList .= getOptionList($dbConn, "select distinct pt.grp_num||' (tutor: '||tutor||')'" . "||coalesce(', group name: '||grp_name ,'') as name,\n" . "pt.prjtg_id as value,\n" . "pt.grp_num " . " from prj_tutor pt \n" . " join tutor t on(userid=tutor_id)\n" . " left join grp_alias using( prjtg_id )\n" . " where pt.prjm_id={$prjm_id} order by pt.grp_num", $prjtg_id, array());
$grpList .= "</select>\n";
$sql = "SELECT * from all_prj_tutor";
if (isset($prjtg_id)) {
    $sql .= "\n where prjtg_id={$prjtg_id} ";
}
$sql .= "\nlimit 1 \n";
$resultSet = $dbConn->Execute($sql);
if ($resultSet === false) {
    die("<br>Cannot get projectdata with \"" . $sql . '", cause ' . $dbConn->ErrorMsg() . "<br>");
}
if (!$resultSet->EOF) {
    extract($resultSet->fields);
}
if (!isset($alias)) {
    $alias = '';
示例#4
0
 function getSelector()
 {
     $asubmit = $this->auto_submit ? 'onchange=\'submit()\'' : '';
     $result = "\t<select name='{$this->selector_name}' {$asubmit}>\n" . ($this->groupedSelector ? getOptionListGrouped($this->dbConn, $this->getQuery(), $this->selected) : getOptionList($this->dbConn, $this->getQuery(), $this->selected)) . "\n\t</select>\n";
     return $result;
 }
示例#5
0
omgaan met de primary key velden van de (onderliggende database-)tabel. </p>
Dat kan door de betreffende bijvoorbeeld als niet muteerbare invoervelden te definieren.<br/>
<form name="gettable" method="GET" action="<?php 
echo $PHP_SELF;
?>
">
<table>
<tr>
<td>Tabel of view</td>
<td>prefix</td><td>&nbsp;</td>
</tr>
<tr>
<td>
<select name="table_name">
  <?php 
echo getOptionList($dbConn, $sql2, $table_name);
?>
</select>
</td>
<td><input type="text" name="veld_naam" value="veld"></td>
<td><input class="button" type="submit" name="submit" value="Genereer"></td>
</tr>
</table>
</form>
<hr>
<?php 
if ($table_name != '') {
    $result = '<fieldset>
<legend>Menu</legend>
<table>';
    $sql = "select column_name from information_schema.columns where table_name='{$table_name}' order by ordinal_position";
示例#6
0
    $voorvoegsel = "<input type='text' name='voorvoegsel' value=\"{$voorvoegsel}\" size='10'/>";
    $voorletters = "<input type='text' name='voorletters' value='{$voorletters}' size='8'/>";
    $straat = "<input type='text' name='straat' value='{$straat}' size='20'/>";
    $huisnr = "<input type='text' name='huisnr' value='{$huisnr}' size='5' />";
    $plaats = "<input type='text' name='plaats' value='{$plaats}' size='20' />";
    $pcode = "<input type='text' name='pcode' value='{$pcode}' size='8'/>";
    $pcn = "<input type='text' name='pcn' value='{$pcn}' size='6'/>";
    $cohort = "<input type='text' name='pcn' value='{$cohort}' size='4'/>";
    $class_id = "<select name='class_id'>" . getOptionListGrouped($dbConn, "select distinct rtrim(faculty_short)||':'||rtrim(sclass) as name,\n" . "c.class_id as value,sclass,faculty_short as namegrp\n" . " from student_class c join class_size cs on(c.class_id=cs.class_id) " . "join faculty f on(c.faculty_id=f.faculty_id) \n" . "order by namegrp,name,value", $class_id) . "</select>";
    $faculteit = "<select name='faculty_id'>\n" . getOptionList($dbConn, "select distinct faculty_id||': '||rtrim(faculty.full_name) as name,faculty_id as value\n" . " from faculty \n" . "order by name,value ", $faculty_id) . "</select>";
    $course_description = "<select name='opl'>" . getOptionListGrouped($dbConn, "select distinct rtrim(course_description) as name,\n" . "course as value,\n" . "i.faculty_short as namegrp\n" . " from fontys_course " . "join faculty i using(faculty_id) \n" . "order by namegrp,name,value ", $opl) . "</select>";
    $nationaliteit = "<select name='nationaliteit'>" . getOptionList($dbConn, "select name,value from nationality", $nationaliteit) . "</select>";
    //$hoofdgrp="<input type='text' name='hoofdgrp' value='$hoofdgrp' size='6' />";
    $hoofdgrp = "<select name='hoofdgrp'>" . getOptionListGrouped($dbConn, "select distinct rtrim(hoofdgrp) as name,\n" . "rtrim(hoofdgrp) as value,f.faculty_short as namegrp\n" . " from student s left join \n" . "student_class c on (hoofdgrp=sclass) " . "join faculty f on(c.faculty_id=f.faculty_id) \n" . "order by namegrp,name,value ", $hoofdgrp) . "</select>";
    $email1f = "<input type='text' name='email1' value='{$email1}' size='50' />";
    $lang = "<select name='lang'>" . getOptionList($dbConn, "select language as name,lang_code as value from uilang", $lang) . "</select>";
}
if (isset($tweede_opl)) {
    $tweede_opl = "<tr><th align='left'>Tweede opl</th><td>" . $tweede_opl . "</td></tr>\n";
} else {
    $tweede_opl = '';
}
ob_start();
?>
<div style='padding:1em'>
<fieldset><legend>These email addresses will be used for notifications</legend>
<form name='email' method='post' action='<?php 
echo $PHP_SELF;
?>
'>
<table summary='email address'>
示例#7
0
    <script src="js/jquery.tablesorter.js"></script>            
    <script type="text/javascript">                                         
      $(document).ready(function() {
      // do stuff when DOM is ready 
           $("#groupresult").tablesorter({ }); 
      });

    </script>
    <link rel=\'stylesheet\' type=\'text/css\' href=\'' . SITEROOT . '/style/tablesorterstyle.css\'/>
';
pagehead2('groupresult', $scripts);
$prj_id_selector = $prjSel->getSelector();
$prj_data = $prjSel->getSelectionDetails();
extract($prjSel->getSelectedData());
$grpList = '<select name="prjtg_id" onchange="submit()">' . "\n";
$grpList .= getOptionList($dbConn, "select distinct grp_num||' ('||tutor||')'||coalesce(': '||alias ,'')" . "||' (#'||prjtg_id||')' as name,\n" . " prjtg_id as value,case when prj_tutor_open=true then 'background:#fee' else 'font-weight:bold;background:#efe' end as style,grp_num\n" . " from all_prj_tutor \n" . " where prjm_id={$prjm_id} order by grp_num ", $prjtg_id);
$grpList .= "\n</select>\n";
$page_opening = "Group results for {$afko} \"{$description}\" {$year} prj_id {$prj_id} mil {$milestone} ({$prjm_id})";
$nav = new Navigation($tutor_navtable, basename($PHP_SELF), $page_opening);
$nav->setInterestMap($tabInterestCount);
$prj_widget = $prjSel->getWidget();
$spreadSheetWidget = $spreadSheetWriter->getWidget();
$remarkList = remarkList($dbConn, $prjtg_id);
echo $nav->show();
?>
<div id='navmain' style='padding:1em;'>
    <?php 
echo $prj_widget;
?>
    <?php 
if ($isTutorOwner) {
示例#8
0
$page = new PageContainer();
$page->setTitle('Personal settings and time book-keeping');
$script = "function splitter(task_timer_id,new_task_timer_id) {\n" . "window.open('timesplitter.php?task_timer_id='+task_timer_id+'&new_task_timer_id='+new_task_timer_id,'_blank','width=800,height=670,scrollbars')" . "}";
$scriptContainer = new HtmlContainer("<script id='tasktimerstarter' type='text/javascript'>");
$scriptContainer->add(new Component($script));
$page->addHeadComponent($scriptContainer);
$nav = new Navigation($tutor_navtable, basename($PHP_SELF), $page_opening);
$nav->setInterestMap($tabInterestCount);
$nav->addLeftNavText(file_get_contents('news.html'));
ob_start();
tutorHelper($dbConn, $isTutor);
$page->addBodyComponent(new Component(ob_get_clean()));
$page->addBodyComponent($nav);
ob_start();
$sqltt = "select distinct rtrim(afko)||':M'||milestone||':'||rtrim(task_description) as name\n" . ", prj_id||':'||milestone||':'||task_id as value,prj_id,milestone,task_id\n" . "from project_tasks join all_prj_tutor using(prj_id) join prj_grp using(snummer,prjtg_id) where snummer={$peer_id}\n" . "order by prj_id,milestone,task_id";
$taskSelector = "\n<select name='new_task_timer' title='select task to time'>\n" . getOptionList($dbConn, $sqltt, $new_task_timer) . "\n</select>\n";
$timebookTable = "";
$sql = "select afko as project,description as project_title ,task_description,task_id,id as task_timer_id,prj_id,milestone,\n" . "to_char(start_time,'YYYY-MM-DD HH24:MI:SS')::text as start_time,\n" . "to_char(stop_time,'YYYY-MM-DD HH24:MI:SS')::text as stop_time,\n" . "from_ip,\n" . "date_trunc('seconds',stop_time-start_time) as time_diff,\n" . "tsum.task_time as total_time,\n" . "psum.project_time as project_time,\n" . "time_tag,\n" . "case when start_time=time_tag then 'P' else 'Q' end as validity,\n" . "extract(month from start_time) as month\n" . "from project_tasks join project using(prj_id)\n" . "join task_timer using (snummer,prj_id,task_id) \n" . "join task_timer_sum tsum using (snummer,prj_id,milestone,task_id)\n" . "join task_timer_project_sum psum using (snummer,prj_id,milestone)\n" . "where snummer={$snummer}\n";
if ($timeorder == 'Y') {
    $sql .= " order by start_time desc";
} else {
    $sql .= " order by prj_id desc, milestone desc,task_id,start_time desc";
}
//echo $sql;
//$dbConn->log($sql);
$resultSet = $dbConn->Execute($sql);
if ($resultSet === false) {
    $timebookTable = "cannot get task timer data with <pre>{$sql}</pre>, error " . $dbConn->ErrorMsg();
    die("help");
}
$hasTimeBook = !$resultSet->EOF;
示例#9
0
}
$studentListQuery = "SELECT apt.grp_num||': '||achternaam||', '||roepnaam||' '||" . "coalesce(voorvoegsel,'')||';'||coalesce(cl.sclass,'null-class')::text AS name,\n" . "st.snummer as value,'cohort='||cohort as title,\n" . "apt.grp_num||', '||tutor||coalesce(':'||grp_name,'')||' '\n" . "||(case when apt.prj_tutor_open=true then 'open' else 'closed' end) as namegrp,\n" . " apt.grp_num,nationaliteit\n" . " from (select prjtg_id,prjm_id,grp_num,prj_tutor_open,tutor_id,grp_name from prj_tutor where prjm_id={$prjm_id}) apt\n" . "  join prj_grp pg using(prjtg_id) join student st using (snummer)\n" . " join student_class cl using(class_id) \n" . " join tutor t on(userid=tutor_id)" . " left join grp_alias using(prjtg_id)" . " WHERE apt.prjm_id={$prjm_id}\n" . " order by grp_num,achternaam,roepnaam";
$dbConn->log($studentListQuery);
$studentList = getOptionListGrouped($dbConn, $studentListQuery, $grp_num, 'grp_num');
$isAdmin = hasCap(CAP_SYSTEM) ? 'true' : 'false';
$sql = "select tutor,tutor_id from prj_tutor join tutor on(prj_tutor.tutor_id=tutor.userid)" . " where prjm_id={$prjm_id} and grp_num='{$grp_num}'";
$resultSet = $dbConn->Execute($sql);
if ($resultSet === false) {
    print 'error selecting: ' . $dbConn->ErrorMsg() . '<br> with ' . $sql . ' <br/>';
}
if (!$resultSet->EOF) {
    $tutor = $resultSet->fields['tutor'];
}
$sql = "select grp_num||' '||coalesce(grp_name,'g'||grp_num)||': '||achternaam||', '||roepnaam||' '" . "||coalesce(voorvoegsel,'')||' ('||faculty.faculty_short||':'" . "||tutor.tutor||';'||tutor.userid||')' as name,\n" . " grp_num as value" . " from prj_tutor join tutor on(tutor.userid=prj_tutor.tutor_id)\n" . " join student on (userid=snummer)\n" . " join faculty on (faculty.faculty_id=tutor.faculty_id)\n" . " natural left join grp_alias \n " . " where prjm_id={$prjm_id} order by grp_num";
//$dbConn->log($sql);
$grpList = getOptionList($dbConn, $sql, $grp_num);
// test to see if the tables are already filled with data
$sql = "select count(*) as rowcount from assessment a join prj_tutor pt on (a.prjtg_id=pt.prjtg_id) where pt.prjm_id={$prjm_id} and grade != 0";
$resultSet = $dbConn->Execute($sql);
if ($resultSet === false) {
    print 'cannot get row count: ' . $dbConn->ErrorMsg() . '<br> with' . $sql . '<br>';
}
$rowcount = $resultSet->fields['rowcount'];
$fillButton = $clearButton = '&nbsp;';
$sql = "select count(*) as filled_count from assessment a join prj_tutor pt on (a.prjtg_id=pt.prjtg_id) where pt.prjm_id={$prjm_id} ";
$resultSet = $dbConn->Execute($sql);
if ($resultSet === false) {
    print "<br>Cannot get project data with <pre>{$sql}</pre>, cause" . $dbConn->ErrorMsg() . "<br>";
}
$filled_count = $resultSet->fields['filled_count'];
$filled = $resultSet->fields['filled_count'] ? 'filled' : '<span style=\'color:yellow;\'>not</span> filled';
示例#10
0
          <thead><tr><th>Project</th><th>Task description</th><th>id</th></tr></thead>
          <?php 
$sql = "select afko||':'||description as project ,prj_id,task_id,task_description\n" . "from project_tasks join project using(prj_id)\n" . "where snummer={$snummer} order by prj_id,task_id";
$row = 0;
$resultSet = $dbConn->Execute($sql);
if ($resultSet === false) {
    echo "cannot get task timer data with <pre>{$sql}</pre>, error " . $dbConn->ErrorMsg();
}
while (!$resultSet->EOF) {
    extract($resultSet->fields);
    echo "\t<tr><td>{$project}</td>\n" . "\t\t<td><input type='text' name='task_description[]' value='{$task_description}' size='40' title='short (sub) task decription'/></td>\n" . "\t\t<td align='right'>{$prj_id}:{$task_id}</td>" . "<td align='center'><button type='submit' name='update_task_description' " . "value='{$row}'>Update</button><input type='hidden' name='update_task[]' value='" . $prj_id . ':' . $task_id . ':' . $row . "'/></td>\n" . "</tr>\n";
    $resultSet->moveNext();
    $row++;
}
$sql = "select distinct afko||'('||year||'):'||description as name, prj_id||':'||milestone as value " . " from prj_grp join all_prj_tutor using(prjtg_id) where snummer={$snummer}";
$prj_selector = "<select name='task_prj_id_milestone'>" . getOptionList($dbConn, $sql, $task_prj_id_milestone) . "</select>";
?>
          <thead><tr><td><?php 
echo $prj_selector;
?>
</td>
              <td><input type='text' name='task_name' value='' size='40'/></td>
              <td align='right'>&nbsp;</td>
              <td align='center'><button type='submit' name='newtask' value='new'>new</button></td></tr></thead>
        </table>
      </form>
    </fieldset>
  </div>
</div>
<!-- db_name=<?php 
echo $db_name;
示例#11
0
$page_opening = "Time spent on projects by {$roepnaam} {$voorvoegsel} {$achternaam} ({$snummer})";
$nav = new Navigation($tutor_navtable, basename($PHP_SELF), $page_opening);
ob_start();
tutorHelper($dbConn, $isTutor);
$page->addBodyComponent(new Component(ob_get_clean()));
$page->addBodyComponent($nav);
ob_start();
$today = date('Y-m-d');
$page_opening = "Time records of the group(s) of {$roepnaam} {$voorvoegsel} {$achternaam} ({$snummer}) on {$today}";
$sql = "SELECT distinct prj_id::text||':'||milestone::text as value,\n" . "afko::text||': '||description||', \n" . "milestone '||milestone::text||' ('||coalesce(project_time,'00:00:00'::interval)||')' as name,\n" . "prj_id,milestone,afko,description \n" . "from " . "all_prj_tutor p join prj_grp g using(prjtg_id) left join task_timer_group_sum using(prj_id,milestone,grp_num)\n" . "WHERE (prj_id,milestone,grp_num) in (select distinct prj_id,milestone,grp_num from prj_grp\n" . "where snummer={$snummer} and prj_id > 1) order by afko";
$prjList = $prjSel->getSelector();
$sqltt = "SELECT snummer,roepnaam||coalesce(' '||voorvoegsel,'')||' '||achternaam as name, afko,\n" . "milestone,description,grp_num as group,task_id,task_description,\n" . "date_trunc('seconds',start_time) as start_time,date_trunc('seconds',stop_time) as stop_time,\n" . "from_ip,\n" . "date_trunc('seconds',time_tag) as time_tag,\n" . "case when start_time=time_tag then 'P' else 'Q' end as validity,\n" . "stop_time-start_time as task_time,\n" . "tts.task_time as task_time_sum,\n" . "ttps.project_time as project_time,\n" . "ttgt.project_total as project_total,\n" . "extract(year from start_time) as year,\n" . "extract(month from start_time) as month\n" . "FROM task_timer join project_tasks using(snummer,prj_id,task_id)\n" . "join (select snummer,prj_id,milestone,task_id,sum(stop_time-start_time) \n" . "       as task_time from task_timer\n" . "  where start_time between '{$first_second}' and '{$last_second}' group by snummer,prj_id,milestone,task_id ) tts using(snummer,prj_id,milestone,task_id)\n" . "join (select snummer,prj_id,milestone,sum(stop_time-start_time) \n" . "       as project_time from task_timer\n" . "  where start_time between '{$first_second}' and '{$last_second}' group by snummer,prj_id,milestone) ttps using(snummer,prj_id,milestone)\n" . "join prj_grp using(snummer,prj_id,milestone)\n" . "join (select prj_id,milestone,grp_num,sum(stop_time-start_time) \n" . "       as project_total from task_timer join prj_grp using(prj_id,milestone,snummer)\n" . "  where start_time between '{$first_second}' and '{$last_second}' group by prj_id,milestone,grp_num) ttgt using(prj_id,milestone,grp_num)\n" . " join project using(prj_id) join student using(snummer)\n" . "where prj_id={$prj_id} and milestone={$milestone} and grp_num='{$grp_num}' and prj_id> 1\n" . " and task_timer.start_time between '{$first_second}' and '{$last_second}'\n" . "order by achternaam,milestone,task_id";
//echo "<pre>$sqltt</pre>\n";
//echo "$prj_id, $milestone,$grp_num</br>";
$sqlym = "select year_month as name,year||':'||month as value,year,month from task_timer_year_month order by year,month";
$yearMonthList = "<select name='year_month' onchange='submit()'>\n" . getOptionList($dbConn, $sqlym, $year . ':' . $month) . "</select>\n";
?>
<div id='content'>
    <form method='get' name='project' action='<?php 
echo $PHP_SELF;
?>
'>
        <table>
            <tr><th>Project, milestone</th><td><?php 
echo $prjList;
?>
                    <input type='hidden' name='peerdata' value='prj_id_milestone'/>
                    <span style='font-size:8pt;'>Project_id <?php 
echo $prj_id;
?>
 milestone <?php 
示例#12
0
            eval("\$subject=\"{$formsubject}\";");
            domail($toAddress, $subject, $message, $headers);
            // no mail on personal docs.
        }
    } else {
        $pp['uploadMessage'] = "<span style='color:red;font-weight:bold;'>Upload failed, " . "possibly empty file ({$user_upload_path}) or Version limit ({$vesr} &gt; {$version_limit}) exceeded, file not uploaded</span><br/>\n";
    }
}
//$dbConn->log("2 prj_id=$prj_id, milestone=$milestone\n");
$sql = "select description as name, doctype as value,rights \n" . "from uploaddocumenttypes udt join prj_milestone pm using(prj_id) join project_deliverables pd using(prjm_id,doctype)\n" . "where pm.prjm_id={$prjm_id} and version_limit > 0 order by due asc";
$resultSet = $dbConn->Execute($sql);
if ($resultSet === false) {
    print "error fetching document types with {$sql} : " . $dbConn->ErrorMsg() . "<br/>\n";
}
$preload = array('0' => array('name' => '&nbsp;', 'value' => '1:1'));
$pp['doctypeSelect'] = "<select name='doctype'>\n" . getOptionList($dbConn, $sql, $doctype) . "\n</select>\n";
// collect the rights in an array and pass it to javascript.
$resultSet = $dbConn->execute($sql);
$rightsArray = array();
$rr = 0;
while (!$resultSet->EOF) {
    extract($resultSet->fields);
    $rightsArray[$rr] = $rights;
    $rr++;
    $resultSet->moveNext();
}
//$dbConn->log("3 prj_id=$prj_id, milestone=$milestone prj_id_milestone=$prj_id_milestone\n");
$sql = "SELECT distinct prj_id||':'||milestone as value, \n" . "afko||': '||description||'('||year::text||')'||' milestone '||milestone as name\n" . ", prj_id,milestone,afko,  year as namegrp,year, description,grp_num,prj_grp_open,prj_id \n" . "FROM prj_grp join all_prj_tutor using(prjtg_id) join project_deliverables using(prjm_id)\n" . " where snummer={$snummer}  and valid_until > now()::date order by year desc,afko";
//$dbConn->log($sql);
$pp['prjList'] = $prjSel->getSelector();
// get some default prj_id
示例#13
0
    $_SESSION['doctype'] = $doctype = validate($_REQUEST['doctype'], 'integer', 1);
}
if (!isset($_SESSION['doctype'])) {
    $sql = "select min(doctype) as doctype from uploads where prjm_id={$prjm_id} ";
    $resultSet = $dbConn->Execute($sql);
    if (!$resultSet->EOF) {
        extract($resultSet->fields);
    } else {
        $doctype = 1;
    }
}
$_SESSION['doctype'] = $doctype;
$prjSel->setJoin('has_uploads using (prj_id,milestone)');
$prj_id_selector = $prjSel->getSelector();
$docListSql = "select description||' ('||coalesce(dtc.doc_count,0)||' document'||\n" . "(case when coalesce(dtc.doc_count,0) <> 1 then 's' else ''end)||')' as name,doctype as value\n" . " from prj_milestone join uploaddocumenttypes using(prj_id) left join \n" . "  (select count(upload_id) as doc_count,prjm_id,doctype \n" . "  from uploads where prjm_id={$prjm_id} group by prjm_id,doctype) dtc\n" . " using(prjm_id,doctype)  where prjm_id={$prjm_id}";
$docList = "<select name='doctype' onChange='submit()'>\n" . getOptionList($dbConn, $docListSql, $doctype) . "</select>";
$sql = "select count(*) as doccount from uploads where prjm_id={$prjm_id} ";
$resultSet = $dbConn->Execute($sql);
$doccount = 0;
if ($resultSet === false) {
    echo 'Error: ' . $dbConn->ErrorMsg() . ' with ' . $sql;
} else {
    extract($resultSet->fields);
}
pagehead('Upload viewer for tutors');
$page_opening = "Documents handed in by a group";
$nav = new Navigation($tutor_navtable, basename($PHP_SELF), $page_opening);
$nav->setInterestMap($tabInterestCount);
$sql = "select sum(filesize) as zip_filesize from uploads where prjm_id={$prjm_id} group by prjm_id";
$resultSet = $dbConn->Execute($sql);
if ($resultSet === false) {
示例#14
0
    $sql = "select start_time,('{$split_time}'::timestamp - start_time) as pre_split,\n" . " (stop_time-'{$split_time}'::timestamp) as post_split,stop_time from task_timer where id={$task_timer_id}";
    $resultSet = $dbConn->Execute($sql);
    if ($resultSet === false) {
        echo "cannot get task timer data with <pre>{$sql}</pre>, error " . $dbConn->ErrorMsg();
        $split_time = $stop_time;
    }
    if (!$resultSet->EOF) {
        extract($resultSet->fields);
    } else {
        die('barst');
    }
}
// get task_id selectors
$sqltt = "select distinct rtrim(afko)||':M'||milestone||':'||rtrim(task_description) as name\n" . ", prj_id||':'||milestone||':'||task_id as value,prj_id,milestone,task_id\n" . "from project_tasks join all_prj_tutor using(prj_id) join prj_grp using(snummer,prjtg_id) where snummer={$snummer}\n" . "order by prj_id,milestone,task_id";
$head_task_sel = "<select name='head_task' title='select first head task'>" . getOptionList($dbConn, $sqltt, $head_task) . "</select>";
$tail_task_sel = "<select name='tail_task' title='select second (tail) task'>" . getOptionList($dbConn, $sqltt, $tail_task) . "</select>";
?>
<div class='navopening'>
  <h3 class='normal' align='center'>Split your time
    <button onClick='javascript:bye()'>Close</button>
  </h3>
</div>
<div style='padding:0px 5px'>
  <p>It is easier than splitting atoms.<img src='<?php 
echo IMAGEROOT;
?>
/tongue_n.gif' alt=':-)' border='0'></p>
  <p>You can correct your time bookkeeping in that you split up records in two records and than set a new task to one or both parts. Note that the task(s) 
    you want to use for the new parts has to be defined beforehand.
    You can enter the split point with minutes precision. The format of the split time is <i>yyy-mm-dd hh:mm:ss</i>.</p>
示例#15
0
>Cap</th><th <?php 
echo $tdattrib;
?>
>New Role</th></tr>
                            <?php 
$sqltut = "select s.snummer,achternaam,roepnaam,voorvoegsel,\n" . "pr.rolenum,role,pr.capabilities as capabilities \n" . "from prj_grp pg join student s using(snummer) \n" . " join prj_tutor pt on(pg.prjtg_id=pt.prjtg_id)\n" . " join prj_milestone pm on(pm.prjm_id=pt.prjm_id)\n" . " left join student_role sr on(sr.prjm_id=pt.prjm_id and sr.snummer=pg.snummer)\n" . " left join project_roles pr on(sr.rolenum=pr.rolenum and pr.prj_id=pm.prj_id)\n" . " where pt.prjm_id={$prjm_id} and pt.grp_num={$grp_num}\n" . " order by achternaam asc,roepnaam asc";
//$dbConn->log($sqltut);
$resultSet = $dbConn->Execute($sqltut);
if ($resultSet === false) {
    die("<br>Cannot get groups with \"<pre>" . $sqltut . '</pre>", cause ' . $dbConn->ErrorMsg() . "<br>");
}
//echo "<pre>$sqltut</pre>";
while (!$resultSet->EOF) {
    extract($resultSet->fields);
    if ($isGroupTutor || $isTutorOwner) {
        $roleList = "<select name='rolenum[]' style='background:#FF8'>\n" . getOptionList($dbConn, "select rolenum as value, role as name from project_roles\n" . " where prj_id={$prj_id} order by rolenum", $rolenum) . "\n</select>\n";
    } else {
        $roleList = $role;
    }
    echo "\t<tr>\n" . "\t\t<td {$tdattrib}>{$snummer}</td>\n" . "\t\t<td {$tdattrib}>{$achternaam},{$roepnaam} {$voorvoegsel}</td>\n" . "\t\t<td {$tdattrib}>{$role}</td>\n" . "\t\t<td {$tdattrib}>{$capabilities}</td>\n" . "\t\t<td {$tdattrib}>" . $roleList . "<input type='hidden' name='sactor[]' value='{$snummer}'/></td>" . "\n\t</tr>\n";
    $resultSet->moveNext();
}
if ($isGroupTutor || $isTutorOwner) {
    $submitButton = "<input type='submit' name='broles' value='set roles' />";
} else {
    $submitButton = '&nbsp';
}
?>
                        </table>
                        <input type='hidden' name='grp_num' value='<?php 
echo $grp_num;
示例#16
0
}
$form1->add($form1Form);
$form2Form = new HtmlContainer("<form id='contacts' method='post' name='contacts' action='{$PHP_SELF}'>");
$form2Table = new HtmlContainer("<table id='contact_table' style='border-collapse:collapse' border='1' summary='contacts table'>");
$form2Table->addText("<tr><th colspan='3'>Grp,tutor</th><th colspan='3'>Current contact</th><th>New contact</th></tr>\n" . "<tr><th>Grp</th>" . "<th>Alias</th>" . "<th>Tutor</th>" . "<th>name</th>" . "<th>number</th>" . "<th>email</th>" . "<th>select</th>" . "</tr>");
$sql = "select pt.grp_num,pt.prjtg_id,alias,\n" . "cs.achternaam as cs_achternaam,cs.voorvoegsel as cs_voorvoegsel,cs.roepnaam as cs_roepnaam,cs.snummer as contact,\n" . "rtrim(cs.email1) as cs_email1,pt.grp_num,\n" . "ts.achternaam||', '||ts.roepnaam||coalesce(' '||ts.voorvoegsel,'') as tutor_naam, tut.tutor\n" . "  from prj_tutor pt join tutor tut on(pt.tutor_id=tut.userid) join student ts on(userid=snummer)\n" . " left join grp_alias ga using(prjtg_id)\n" . " left join prj_contact pc using(prjtg_id)\n" . " left join student cs on (pc.snummer=cs.snummer)\n" . " where prjm_id={$prjm_id} order by pt.grp_num";
//$dbConn->log($sql);
$resultSet = $dbConn->Execute($sql);
$rowStyle = array("style='background:#FFC;'", "style='background:#CFF'");
$rowNr = 0;
if ($resultSet === false) {
    echo "cannot get contact data with<pre> {$sql}</pre>, reason: " . $dbConn->ErrorMsg() . "<BR>\n";
} else {
    if (!$resultSet->EOF) {
        while (!$resultSet->EOF) {
            extract($resultSet->fields);
            $sql = "select rtrim(achternaam)||', '||rtrim(roepnaam)||coalesce(' '||voorvoegsel,'') as name," . "prjtg_id||':'||snummer as value from prj_grp join prj_tutor using(prjtg_id) join student using(snummer)\n" . " where prjtg_id={$prjtg_id}\n" . "order by achternaam, roepnaam";
            $tdStyle = $rowStyle[$rowNr % 2];
            $contact_selector = "<select name='contact[]' style='width:20em' {$tdStyle}>\n" . getOptionList($dbConn, $sql, $prjtg_id . ':' . $contact) . "\n</select>\n";
            $row = "<tr><td {$tdStyle}>{$grp_num}</td>" . "<td {$tdStyle}>{$alias}</td>" . "<td {$tdStyle}>{$tutor_naam}</td>" . "<td {$tdStyle}>{$cs_roepnaam} {$cs_voorvoegsel} {$cs_achternaam}</td>\n" . "<td {$tdStyle}>{$contact}</td>" . "<td {$tdStyle}><a href='mailto:{$cs_email1}'>{$cs_email1}</a></td>" . "<td {$tdStyle}>" . $contact_selector . "</td>\n" . "</tr>\n";
            $form2Table->addText($row);
            $resultSet->moveNext();
            $rowNr++;
        }
    }
}
$form2Form->add($form2Table);
$form2Form->addText("To set these contacts, press <input type='submit' name='bsubmit' value='Apply'/> or <input type='reset'/>" . "<input type='hidden' name='prj_id_milestone' value='{$prj_id}:{$milestone}'/>");
$form1->add($form2Form);
$page->addBodyComponent($form1);
$page->show();
示例#17
0
 public function getDomain()
 {
     $map['status'] = '1';
     $list = getOptionList('Mis_inventory_domain', $map);
     $json = json_encode($list);
     echo $json;
 }
function filterImageUploads($types)
{
    $options = getOptionList();
    foreach ($options as $option => $value) {
        if (strpos($option, 'filter_file_searches_images_') !== false) {
            if ($value) {
                $key = array_search(substr($option, 28), $types);
                if ($key !== false) {
                    unset($types[$key]);
                }
            }
        }
    }
    return $types;
}
示例#19
0
 public function advancedsubsearch()
 {
     $name = $_REQUEST['model'];
     $dmStep = $_REQUEST['dmStep'];
     $model = D('SystemConfigDetail');
     //系统配置文件模型
     $detailList = $model->getSubDetail($name, false, '', 'searchsortnum');
     //获取searchby.inc.php文件内容
     if ($_REQUEST['domain']) {
         // 维度
         $dmmap = array('type' => '01', 'status' => '1');
         $dmlist = getOptionList('mis_inventory_domain', $dmmap);
         foreach ($dmlist as $k => $v) {
             if ($v['refertable']) {
                 $searchField = 'dd' . $v['id'] . '.' . $v['referfield'];
                 $name = 'dd' . $v['id'] . $v['referfield'];
             } else {
                 $searchField = 'd' . $v['id'] . '.content';
                 $name = 'd' . $v['id'] . 'content';
             }
             $detailList[] = array('name' => $name, 'searchField' => $searchField, 'showname' => $v['name'], 'type' => 'text', 'issearch' => 1, 'isallsearch' => 1, 'status' => 1);
         }
     }
     foreach ($detailList as $k => $v) {
         // 判断是否为快捷查询条件
         if ($v['issearch'] != '1' || $v['status'] < 0) {
             unset($detailList[$k]);
             continue;
         }
         // 获取当前查询对象的HTML值
         $detailList[$k]['html'] = $this->quickSearchToHtml($v['type'], 'advanced' . $v['name'], $v['showname'], $v['table'], $v['field'], $v['conditions']);
     }
     $this->assign("detailList", $detailList);
     $this->display();
 }
示例#20
0
 /**
  * expand the item into an <input...> or <select>...</select>
  */
 function expand()
 {
     global $validator;
     global $_SESSION;
     //global $page;
     global $login_snummer;
     $cssClass = $validator->validationClass($this->name);
     $result = '';
     $onChange = '';
     $alignText = ' style="text-align:left;"';
     $textSize = $this->item_length;
     $validClass = " class='{$cssClass}' ";
     switch (substr($this->data_type, 0, 1)) {
         case 'N':
             $textSize = $this->data_precision;
             $alignText = ' style="text-align:right;" ';
             break;
         default:
         case 'C':
             break;
     }
     $readText = hasCap($this->capability) ? '' : ' readonly="readonly"';
     $sizeText = $textSize > 0 ? ' size="' . $textSize . '"' : '';
     switch ($this->edit_type) {
         case 'A':
             $maxCols = 80;
             $cols = $textSize;
             $rows = 1;
             if ($textSize > $maxCols) {
                 $cols = $maxCols;
                 $rows = floor(($textSize + $maxCols) / $maxCols);
             }
             // HACK
             //	    $rows=12;$cols=72;
             $result .= '<textarea id="' . $this->name . '" name="' . $this->name . '" cols="' . $cols . '" rows="' . $rows . '">' . $this->value . '</textarea>';
             break;
             // informational, value only, no vardef.
         // informational, value only, no vardef.
         case 'b':
             $checkedTrue = isset($this->value) && $this->value == 't' ? 'selected' : '';
             $checkedFalse = isset($this->value) && $this->value == 'f' ? 'selected' : '';
             /* $result .= "<input type='checkbox' {$checked} name='{$this->name}'" */
             /*         . " value='{$this->placeholder}' " */
             /*         . "style='vertical-align:middle;'><span style='font-weight:bold'>" */
             /*                 .niceName($this->name) */
             /*                 ."</span></input>\n"; */
             $result .= "<label style='font-weigth:bold' for='{$this->name}'>{$this->name}</label><select name='{$this->name}' id='{$this->name}'>\n\t<option value=''></option>\n" . "\t<option " . $checkedFalse . " value='false'>False</options>\n" . "\t<option " . $checkedTrue . " value='true'>True</options>\n" . "</select>\n";
             break;
         case 'I':
             $result .= '<div class="informational"' . $alignText . $validClass . '>' . $this->value . '</div>&nbsp;' . "\n";
             break;
             /* hidden only */
         /* hidden only */
         case 'H':
             $result .= '<input type="hidden" id="' . $this->name . '" name="' . $this->name . '" value ="' . $this->value . '"/>' . "\n";
             break;
             /* Visible, not editable */
         /* Visible, not editable */
         case 'Q':
             $result .= '<input type="hidden" id="' . $this->name . '" name="' . $this->name . '" value ="' . $this->value . '"/>' . '<span class="sequence">&nbsp;' . $this->value . '</span>' . "\n";
             break;
         case 'V':
             $result .= '<input type="hidden" id="' . $this->name . '" name="' . $this->name . '" value ="' . $this->value . '"/><span class="visible"' . $alignText . '>' . $this->value . '</span>' . "\n";
             break;
         case 'P':
             // Image. wrap without border and alt text
             if (isset($this->value)) {
                 $pict = 'fotos/' . $this->value;
                 $result .= '<img src=\'' . $pict . '\' alt=\'' . $this->value . '\' border=\'0\' />';
             } else {
                 $result = '';
             }
             break;
         case 'C':
             // Creator-owner
         // Creator-owner
         case 'G':
             if (!empty($this->selectQuery)) {
                 $result .= '<select id="' . $this->name . '" name="' . $this->name . '" ' . "{$onChange}" . ' onkeypress="selectKeyPress();" onkeydown="selectKeyDown();" onblur="clr();" ' . 'onfocus="clr();">' . "\n";
                 extract($_SESSION);
                 $q = $this->selectQuery;
                 eval("\$q=\"{$q}\";");
                 $result .= getOptionListGrouped($this->dbConn, $q, $this->value, 'value', isset($this->optionPreloadList) ? $this->optionPreloadList : array('name' => '&nbsp;', 'value' => ''));
                 $result .= "\n" . '</select>' . "\n";
             } else {
                 $result .= '<input' . $alignText . $sizeText . $readText . $validClass . ' type="text" id="' . $this->name . '" name="' . $this->name . '" value="' . $this->value . '"/>' . "\n";
             }
             break;
         case 'M':
             $onChange = 'onChange="submit();"';
         case 'S':
             if (!empty($this->selectQuery)) {
                 $result .= '<select id="' . $this->name . '" name="' . $this->name . '" ' . "{$onChange}" . ' onkeypress="selectKeyPress();" onkeydown="selectKeyDown();" onblur="clr();" ' . 'onfocus="clr();">' . "\n";
                 extract($_SESSION);
                 $q = $this->selectQuery;
                 //echo "<pre style='color:blue'> {$_SESSION['prjm_id']}:{$q}</pre>";
                 eval("\$q=\"{$q}\";");
                 //echo "<pre style='color:green'>{$q}</pre>";
                 $result .= getOptionList($this->dbConn, $q, $this->value, isset($this->optionPreloadList) ? $this->optionPreloadList : array('name' => '&nbsp;', 'value' => ''));
                 $result .= "\n" . '</select>' . "\n";
             } else {
                 $result .= '<input' . $alignText . $sizeText . $readText . $validClass . ' type="text" id="' . $this->name . '" name="' . $this->name . '" value="' . $this->value . '"/>' . "\n";
             }
             break;
         case 'D':
             $result = "<!-- datepicker --><input type='text' placeholder='yyyy-mm-dd' style='text-align:left;' size='10' name='" . $this->name . "' id='" . $this->name . "' value='" . $this->value . "'/>\n";
             $this->page->addScriptResource('js/jquery-1.7.1.min.js')->addScriptResource('js/jquery-ui-1.8.17.custom.min.js')->addFileContentsOnce('templates/simpledatepicker.html')->addJqueryFragment("\$('#" . $this->name . "').datepicker(dpoptions);");
             break;
         case 't':
             $result = "<input type='time' placeholder='HH:MM' style='text-align:left;' size='8' name='" . $this->name . "' id='" . $this->name . "' value='" . $this->value . "'/>\n";
             break;
         case 'e':
             $result = "<input type='email' placeholder='" . $this->placeholder . "' style='text-align:left;' size='64' name='" . $this->name . "' id='" . $this->name . "' value='" . $this->value . "'/>\n";
             break;
         case 'd':
             $result = "<input type='number' placeholder='" . $this->placeholder . "' pattern='\\d+' style='text-align:right;' size='10' name='" . $this->name . "' id='" . $this->name . "' value='" . $this->value . "'/>\n";
             break;
         case 'p':
             // use peer_id of person logged in, unless it is a tutor.
             if (hasCap(CAP_TUTOR)) {
                 $result = "<input type='number' placeholder='2123456' pattern='\\d{7}' size='7' " . "name='" . $this->name . "' id='" . $this->name . "' value='" . $this->value . "'/>\n";
             } else {
                 $result = $login_snummer;
             }
             break;
             // intentional fallthrough
         // intentional fallthrough
         case 'X':
             /* data is editable (for search) but discarded on insert */
             $result = $this->value;
             break;
         case 'U':
             /* mutator is editable (for search) but discared on insert */
         /* mutator is editable (for search) but discared on insert */
         case 'T':
         default:
             $result .= '<input' . $alignText . $sizeText . $readText . $validClass . ' type="text" id="' . $this->name . '" name="' . $this->name . '" value="' . $this->value . '" placeholder="' . $this->placeholder . '"/>' . "\n";
             break;
         case 'C':
             $result .= '<input type=\'checkbox\' name=\'' . $this->name . '\' value=\'t\' ' . ($this->value == 't' ? 'checked' : '') . '/>&nbsp' . "\n";
             break;
         case 'Z':
             // to print out data in supp fields
             $result .= '<b>' . $this->value . '</b>';
             break;
     }
     //    var_dump($this); echo "<br>";
     return $result;
 }
示例#21
0
<?php

$sql = "select distinct afko||':'||description as name, prj_id as value,afko\n" . " from all_prj_tutor join prj_grp using(prjtg_id) where snummer={$snummer} and prj_grp_open=true order by afko";
$prjList = "<select name='presence_prj_id' onchange='submit()'>\n" . getOptionList($dbConn, $sql, $presence_prj_id) . "</select>\n";
$pdayList = "<select name='presence_day' onchange='submit()'>\n" . getOptionList($dbConn, "select shortname as name, day as value from weekdays where day in (1,2,3,4,5) order by day ", $presence_day) . "\n</select>\n";
$hourList = "<select name='hourcode' onchange='submit()'>\n" . getOptionList($dbConn, "select distinct hourcode as name, hourcode as value from timetableweek order by hourcode", $hourcode) . "</select>\n";
?>
<fieldset><legend>Presence in the current course period</legend>
<form method='get' name='coursehourform' action='<?php 
echo $PHP_SELF;
?>
'>
Project <?php 
echo $prjList;
?>
 day <?php 
echo $pdayList;
?>
 hour <?php 
echo $hourList;
?>
<input type='submit' name='bsubmit'/>
</form>
<?php 
$sql = "select snummer,sclass ,achternaam,roepnaam,voorvoegsel,course_week_no,\n" . "shortname,day,hourcode,date_trunc('seconds',since) as since,from_ip,\n" . "case when from_ip << '145.85/16' then 'P' else 'Q' end as location_ok" . " from participant_present_list join student using(snummer)\n" . " join student_class using(class_id)\n" . " join weekdays using(day) where prj_id={$presence_prj_id} and day={$presence_day} and hourcode={$hourcode}\n" . " order by sclass,achternaam,roepnaam,snummer,course_week_no";
$resultSet = $dbConn->Execute($sql);
if ($resultSet == false) {
    die("<br>Cannot get presence data with <pre>{$sql}</pre> cause" . $dbConn->ErrorMsg() . "<br>");
}
echo "<table border='1' style='border-collapse:collapse'>\n";
$snummer = $resultSet->fields['snummer'];
示例#22
0
if (!isset($data['thumb_select_images'])) {
    $data['thumb_select_images'] = getOption('thumb_select_images');
}
if (!isset($data['unprotected_pages'])) {
    $data['unprotected_pages'] = getOption('unprotected_pages');
}
if ($data['unprotected_pages']) {
    $unprotected = $data['unprotected_pages'];
} else {
    setOptionDefault('gallery_page_unprotected_register', 1);
    setOptionDefault('gallery_page_unprotected_contact', 1);
    $unprotected = array();
}
$_zp_options = NULL;
// get a fresh start
$optionlist = getOptionList();
foreach ($optionlist as $key => $option) {
    if ($option && strpos($key, 'gallery_page_unprotected_') === 0) {
        $unprotected[] = str_replace('gallery_page_unprotected_', '', $key);
    }
}
if (!isset($data['album_publish'])) {
    $set = getOption('album_default');
    if (is_null($set)) {
        $set = 1;
    }
    $data['album_publish'] = $set;
}
if (!isset($data['image_publish'])) {
    $set = getOption('image_default');
    if (is_null($set)) {
示例#23
0
        $dbConn->doOrDie($sql);
        // go to the dupped group.
        $prjSel->setPrjmId($new_prjm_id);
        extract($prjSel->getSelectedData());
        $_SESSION['prj_id'] = $prj_id;
        $_SESSION['prjm_id'] = $prjm_id;
        $_SESSION['milestone'] = $milestone;
    }
}
$prjm_id_selector = $prjSel->getWidget();
//getSelector();
$isAdmin = hasCap(CAP_SYSTEM) ? 'true' : 'false';
$sqlDup = "select p.afko||': '||p.description||'('||p.year||')'||' m'||pme.milestone||' (#'\n" . "||pme.prjm_id||')' as\n" . "name,\n\t pme.prjm_id as value" . " from project p\n" . "join prj_milestone pme on(pme.prj_id=p.prj_id) \n" . " where p.prj_id > 0 and '{$peer_id}'= owner_id and\n" . "( not exists (select * from prj_milestone pm \n" . "              join prj_tutor pt on (pm.prjm_id=pt.prjm_id) \n" . "           join prj_grp pg  on (pt.prjtg_id=pg.prjtg_id) \n" . "    where pm.prjm_id=pme.prjm_id))\n" . " and p.valid_until > now()::date" . " order by p.prj_id desc,pme.milestone";
// $dupSel=new PrjMilestoneSelector2($dbConn,$peer_id,$prjm_id);
// $dupSel->setWhere(" (not exists (select * from prj_grp where prjm_id=pm.prjm_id))" );
$dupPrjList = getOptionList($dbConn, $sqlDup, $prjm_id);
//$dbConn->log($sqlDup);
$sql = "select tutor,tutor_id from prj_tutor pt join tutor t on(t.userid=pt.tutor_id) where prjm_id={$prjm_id} and grp_num='{$grp_num}'";
$resultSet = $dbConn->Execute($sql);
if ($resultSet === false) {
    print 'error selecting: ' . $dbConn->ErrorMsg() . '<br> with ' . $sql . ' <br/>';
}
if (!$resultSet->EOF) {
    $tutor = $resultSet->fields['tutor'];
    $tutorid = $resultSet->fields['tutor_id'];
}
$page = new PageContainer();
$page_opening = "Copy project groupsfrom" . "<span style='font-size:8pt;'>prj_id {$prj_id} milestone {$milestone} prjm_id {$prjm_id}</span>";
$page->setTitle('Copy project groups');
$nav = new Navigation($tutor_navtable, basename($PHP_SELF), $page_opening);
extract(getTutorOwnerData2($dbConn, $prjm_id), EXTR_PREFIX_ALL, 'ot');