Example #1
0
require "../../includes/kspi.php";
// ==================
// = handle request =
// ==================
switch ($axAction) {
    // =========================
    // = record an event AGAIN =
    // =========================
    case 'record':
        if (isset($kga['customer'])) {
            die;
        }
        if (get_rec_state($kga['usr']['usr_ID'])) {
            stopRecorder($kga['usr']['usr_ID']);
        }
        $zefData = zef_get_data($id);
        $zefData['in'] = time();
        $zefData['out'] = 0;
        $zefData['diff'] = 0;
        // copied from check_zef_data and inverted assignments
        $zefData['pct_ID'] = $zefData['zef_pctID'];
        $zefData['evt_ID'] = $zefData['zef_evtID'];
        $zefData['zlocation'] = $zefData['zef_location'];
        $zefData['trackingnr'] = $zefData['zef_trackingnr'];
        $zefData['comment'] = $zefData['zef_comment'];
        $zefData['comment_type'] = $zefData['zef_comment_type'];
        $zefData['rate'] = $zefData['zef_rate'];
        $zefData['cleared'] = $zefData['zef_cleared'];
        $newZefId = zef_create_record($kga['usr']['usr_ID'], $zefData);
        $usrData = array();
        $usrData['lastRecord'] = $newZefId;
Example #2
0
/**
 * edit zef entry 
 *
 * @param integer $id ID of record
 * @global array $kga kimai-global-array
 * @param integer $data  array with new record data
 * @author th
 */
function zef_edit_record($id, $data)
{
    global $kga, $conn;
    logfile(serialize($data));
    $data = clean_data($data);
    $original_array = zef_get_data($id);
    $new_array = array();
    foreach ($original_array as $key => $value) {
        if (isset($data[$key]) == true) {
            $new_array[$key] = $data[$key];
        } else {
            $new_array[$key] = $original_array[$key];
        }
    }
    logfile(serialize($new_array));
    $values['zef_comment'] = MySQL::SQLValue($new_array['zef_comment']);
    $values['zef_location'] = MySQL::SQLValue($new_array['zef_location']);
    if ($new_array['zef_trackingnr'] == '') {
        $values['zef_trackingnr'] = 'NULL';
    } else {
        $values['zef_trackingnr'] = MySQL::SQLValue($new_array['zef_trackingnr']);
    }
    $values['zef_pctID'] = MySQL::SQLValue($new_array['zef_pctID'], MySQL::SQLVALUE_NUMBER);
    $values['zef_evtID'] = MySQL::SQLValue($new_array['zef_evtID'], MySQL::SQLVALUE_NUMBER);
    $values['zef_comment_type'] = MySQL::SQLValue($new_array['zef_comment_type'], MySQL::SQLVALUE_NUMBER);
    $values['zef_in'] = MySQL::SQLValue($new_array['zef_in'], MySQL::SQLVALUE_NUMBER);
    $values['zef_out'] = MySQL::SQLValue($new_array['zef_out'], MySQL::SQLVALUE_NUMBER);
    $values['zef_time'] = MySQL::SQLValue($new_array['zef_time'], MySQL::SQLVALUE_NUMBER);
    $values['zef_rate'] = MySQL::SQLValue($new_array['zef_rate'], MySQL::SQLVALUE_NUMBER);
    $values['zef_cleared'] = MySQL::SQLValue($new_array['zef_cleared'] ? 1 : 0, MySQL::SQLVALUE_NUMBER);
    $filter['zef_ID'] = MySQL::SQLValue($id, MySQL::SQLVALUE_NUMBER);
    $table = $kga['server_prefix'] . "zef";
    $query = MySQL::BuildSQLUpdate($table, $values, $filter);
    $success = true;
    if (!$conn->Query($query)) {
        $success = false;
    }
    if ($success) {
        if (!$conn->TransactionEnd()) {
            $conn->Kill();
        }
    } else {
        if (!$conn->TransactionRollback()) {
            $conn->Kill();
        }
    }
    return $success;
    // $data['pct_ID']
    // $data['evt_ID']
    // $data['comment']
    // $data['comment_type']
    // $data['erase']
    // $data['in']
    // $data['out']
    // $data['diff']
    // if wrong time values have been entered in the edit window
    // the following 3 variables arrive as zeros - like so:
    // $data['in']   = 0;
    // $data['out']  = 0;
    // $data['diff'] = 0;
    // in this case the record has to be edited WITHOUT setting new time values
    // @oleg: ein zef-eintrag muss auch ohne die zeiten aktualisierbar sein weil die ggf. bei der prüfung durchfallen.
}
Example #3
0
/**
 * edit zef entry 
 *
 * @param integer $id ID of record
 * @global array $kga kimai-global-array
 * @param integer $data  array with new record data
 * @author th
 */
function zef_edit_record($id, $data)
{
    global $kga, $pdo_conn;
    $p = $kga['server_prefix'];
    $original_array = zef_get_data($id);
    $new_array = array();
    foreach ($original_array as $key => $value) {
        if (isset($data[$key]) == true) {
            $new_array[$key] = $data[$key];
        } else {
            $new_array[$key] = $original_array[$key];
        }
    }
    $pdo_query = $pdo_conn->prepare("UPDATE {$p}zef SET\n    zef_pctID = ?,\n    zef_evtID = ?,\n    zef_location = ?,\n    zef_trackingnr = ?,\n    zef_comment = ?,\n    zef_comment_type = ?,\n    zef_in = ?,\n    zef_out = ?,\n    zef_time = ?,\n    zef_rate = ?,\n    zef_cleared= ?\n    WHERE zef_ID = ?;");
    $result = $pdo_query->execute(array((int) $new_array['zef_pctID'], (int) $new_array['zef_evtID'], $new_array['zef_location'], $new_array['zef_trackingnr'] == '' ? null : $new_array['zef_trackingnr'], $new_array['zef_comment'], (int) $new_array['zef_comment_type'], (int) $new_array['zef_in'], (int) $new_array['zef_out'], (int) $new_array['zef_time'], (int) $new_array['zef_rate'], (int) $new_array['zef_cleared'], $id));
    if ($result == false) {
        $err = $pdo_query->errorInfo();
        error_log("ERROR: " . $err[2]);
        return $result;
    }
    logfile("editrecord:result:" . $result);
    // $data['pct_ID']
    // $data['evt_ID']
    // $data['comment']
    // $data['comment_type']
    // $data['erase']
    // $data['in']
    // $data['out']
    // $data['diff']
    // if wrong time values have been entered in the edit window
    // the following 3 variables arrive as zeros - like so:
    // $data['in']   = 0;
    // $data['out']  = 0;
    // $data['diff'] = 0;
    // in this case the record has to be edited WITHOUT setting new time values
    // @oleg: ein zef-eintrag muss auch ohne die zeiten aktualisierbar sein weil die ggf. bei der prüfung durchfallen.
}