Example #1
0
File: change.php Project: mmr/b1n
<?php

/* $Id: change.php,v 1.13 2004/09/28 22:35:22 mmr Exp $ */
$disable_etd_dt = false;
$colspan = 3;
// Checking if that is the first time
if (empty($reg_data['leg_etd_dt']) || empty($reg_data['leg_etd_dt']['year'])) {
    $reg_data['leg_etd_dt'] = b1n_formatDateHourFromDb($reg_data['leg_keeptrack_dt']);
}
// Checking if last leg has groundtime
$query = "\n    SELECT\n        leg_id as last_leg_id,\n        leg_groundtime_i IS NOT NULL AS have_groundtime\n    FROM\n        \"leg\"\n    WHERE\n        leg_keeptrack_dt < '" . b1n_inBd(b1n_formatDateHour($reg_data['leg_etd_dt'])) . "'\n    ORDER BY\n        leg_keeptrack_dt DESC";
$rs = $sql->singleQuery($query);
if ($rs && is_array($rs)) {
    $reg_data['last_leg_id'] = $rs['last_leg_id'];
    if ($rs['have_groundtime'] == 't') {
        // Yes, it has, disable etd_dt select box
        $disable_etd_dt = true;
    }
} else {
    // Prolly very first leg, so, ETD is mandatory
    $reg_config['ETD']['mand'] = true;
}
// Seeing if we have to check for leg similarity
if ($action0 == 'similarleg' && b1n_checkNumeric($reg_data['apt_id_depart'], true) && b1n_checkNumeric($reg_data['apt_id_arrive'], true)) {
    $aux = b1n_regDefaultLegSearchSimilar($sql, $reg_data['apt_id_depart'], $reg_data['apt_id_arrive']);
    if ($aux) {
        list($reg_data['leg_ete_i'], $reg_data['leg_distance'], $reg_data['leg_fuel']) = explode('|', $aux);
        unset($aux);
        if ($reg_data['leg_fuel'] === 0) {
            $reg_data['leg_fuel'] = '';
        }
Example #2
0
File: leg.lib.php Project: mmr/b1n
function b1n_regCheckLeg($sql, &$ret_msgs, &$reg_data, $reg_config)
{
    $ret = b1n_regCheck($sql, $ret_msgs, $reg_data, $reg_config);
    // Checking CrewMembers
    if ($ret) {
        $ret = b1n_regCheckLegCmb($sql, $ret_msgs, $reg_data);
    }
    if ($ret) {
        $ret = false;
        // Do we have a valid ETD?
        if (b1n_checkDateHour($reg_data['leg_etd_dt']["month"], $reg_data['leg_etd_dt']["day"], $reg_data['leg_etd_dt']["year"], $reg_data['leg_etd_dt']["hour"], $reg_data['leg_etd_dt']["min"], true)) {
            // Yes, we do, use it as KeepTrack
            $reg_data['leg_keeptrack_dt'] = b1n_formatDateHour($reg_data['leg_etd_dt']);
            $ret = true;
        } elseif (!empty($reg_data['last_leg_id']) && b1n_checkNumeric($reg_data['last_leg_id'])) {
            // The KeepTrack of the current leg is equal to the KeepTrack of the last Leg, Plus its ETE, Plus its groundtime.
            $rs = $sql->singleQuery("\n                SELECT\n                    leg_keeptrack_dt::timestamp +\n                    CASE WHEN (leg_ete_i IS NULL) THEN\n                        '00:00'::interval\n                    ELSE\n                        leg_ete_i::interval\n                    END +\n                    CASE WHEN (leg_groundtime_i IS NULL) THEN\n                        '00:00'::interval\n                    ELSE\n                        leg_groundtime_i::interval\n                    END AS leg_keeptrack_dt\n                FROM\n                    \"leg\"\n                WHERE\n                    leg_id = '" . b1n_inBd($reg_data['last_leg_id']) . "'");
            if ($rs && is_array($rs)) {
                $reg_data['leg_keeptrack_dt'] = $rs['leg_keeptrack_dt'];
                $ret = true;
            } else {
                b1n_retMsg($ret_msgs, b1n_FIZZLES, 'Could not keep track of last leg, something really nasty happened here.');
            }
        } else {
            b1n_retMsg($ret_msgs, b1n_FIZZLES, 'Could not keep track of last leg. Probably this is the very first leg, so, you HAVE to fill the <b>ETD</b> field.');
        }
    }
    return $ret;
}
Example #3
0
File: reg.lib.php Project: mmr/b1n
function b1n_regChange($sql, &$ret_msgs, $reg_data, $reg_config, $table, $msg, $module_function = "")
{
    $rs = $sql->query("BEGIN TRANSACTION");
    if ($rs) {
        $query = "SELECT * FROM \"" . $table . "\" WHERE " . $reg_config["ID"]["db"] . " = '" . b1n_inBd($reg_data['id']) . "'";
        $update = "";
        $old_values = $sql->singleQuery($query);
        foreach ($reg_config as $t => $r) {
            $value = $reg_data[$r['reg_data']];
            $aux = "";
            // Fields
            if ($r['db'] == 'none') {
                continue;
            }
            // Values
            switch ($r['type']) {
                case "select":
                    switch ($r['extra']['seltype']) {
                        case "date":
                        case "date_check_exp":
                        case "date_check_dob":
                            $aux = b1n_formatDate($value);
                            $old_values[$r['db']] = b1n_formatDate(b1n_formatDateFromDb($old_values[$r['db']]));
                            break;
                        case "date_hour":
                            $aux = b1n_formatDateHour($value);
                            $old_values[$r['db']] = b1n_formatDateHour(b1n_formatDateHourFromDb($old_values[$r['db']]));
                            break;
                        case "hour":
                            $aux = b1n_formatHour($value);
                            $old_values[$r['db']] = b1n_formatHour(b1n_formatHourFromDb($old_values[$r['db']]));
                            break;
                        default:
                            $aux = $value;
                            break;
                    }
                    break;
                case "password":
                    if (empty($value)) {
                        // For some reason, switch counts as a loop, so we need to use 'continue(2)' instead of just 'continue'
                        continue 2;
                    }
                    $aux = b1n_crypt($value);
                    break;
                default:
                    $aux = $value;
                    break;
            }
            // Only update if the values changed ($aux != $old...)
            if ($aux != $old_values[$r['db']]) {
                if (b1n_checkFilled($aux)) {
                    $aux = $r['db'] . " = '" . b1n_inBd($aux) . "'";
                } else {
                    $aux = $r['db'] . " = NULL";
                }
                // Setting update array
                $update[] = $aux;
            }
        }
        if (is_array($update)) {
            $update = implode(", ", $update);
            $query = "UPDATE \"" . $table . "\" SET " . $update . " WHERE " . $reg_config['ID']['db'] . " = '" . b1n_inBd($reg_data['id']) . "'";
            $rs = $sql->query($query);
        } else {
            $rs = true;
        }
        if ($rs) {
            $aux = true;
            if (!empty($module_function)) {
                $reg_data['old_values'] = $old_values;
                $aux = $module_function($sql, $ret_msgs, $reg_data, $reg_config);
            }
            if ($aux) {
                b1n_retMsg($ret_msgs, b1n_SUCCESS, $msg . ' changed successfully!');
                return $sql->query('COMMIT TRANSACTION');
            }
        }
    } else {
        b1n_retMsg($ret_msgs, b1n_FIZZLES, 'Could not begin transaction.');
    }
    $sql->query('ROLLBACK TRANSACTION');
    return false;
}