Example #1
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 #2
0
File: reg.lib.php Project: mmr/b1n
function b1n_regCheck($sql, &$ret_msgs, $reg_data, $reg_config)
{
    $ret = true;
    foreach ($reg_config as $t => $r) {
        $aux = split("[[:space:]]?&&[[:space:]]?", $r['check']);
        foreach ($aux as $check) {
            $msg = "";
            switch ($check) {
                case "none":
                    if ($r['mand'] && empty($reg_data[$r['reg_data']])) {
                        $msg = "Please, fill the <b>" . $t . "</b> field.";
                    }
                    break;
                case "numeric":
                    if (!b1n_checkNumeric($reg_data[$r["reg_data"]], $r['mand'])) {
                        $msg = "Invalid <b>" . $t . "</b> (Only numbers are allowed).";
                    }
                    break;
                case "date":
                    if (isset($reg_data[$r["reg_data"]]["month"])) {
                        if (!b1n_checkDate($reg_data[$r["reg_data"]]["month"], $reg_data[$r["reg_data"]]["day"], $reg_data[$r["reg_data"]]["year"], $r['mand'])) {
                            $msg = "Invalid date in <b>" . $t . "</b>.";
                        }
                    } elseif ($r['mand']) {
                        $msg = "Invalid date in <b>" . $t . "</b>.";
                    }
                    break;
                case "date_hour":
                    if (isset($reg_data[$r["reg_data"]]["month"])) {
                        if (!b1n_checkDateHour($reg_data[$r["reg_data"]]["month"], $reg_data[$r["reg_data"]]["day"], $reg_data[$r["reg_data"]]["year"], $reg_data[$r["reg_data"]]["hour"], $reg_data[$r["reg_data"]]["min"], $r['mand'])) {
                            $msg = "Invalid Date/Hour in <b>" . $t . "</b>.";
                        }
                    } elseif ($r['mand']) {
                        $msg = "Invalid date in <b>" . $t . "</b>.";
                    }
                    break;
                case "email":
                    if (!b1n_checkEmail($reg_data[$r["reg_data"]])) {
                        $msg = "Invalid <b>" . $t . "</b> (Example: user@domain.org).";
                    }
                    break;
                case "length":
                    if (strlen(trim($reg_data[$r["reg_data"]])) > $r["extra"]["maxlen"]) {
                        $msg = "No more than '" . $r["extra"]["maxlen"] . "' characters (no leading blank spaces) are allowed in <b>" . $t . "</b>";
                    }
                    break;
                case "exactlength":
                    if (strlen(trim($reg_data[$r["reg_data"]])) != $r["extra"]["maxlen"]) {
                        $msg = "Exactly '" . $r["extra"]["maxlen"] . "' characters (no leading blank spaces) are allowed in <b>" . $t . "</b>";
                    }
                    break;
                case "radio":
                    if (!b1n_checkFilled($reg_data[$r["reg_data"]])) {
                        $msg = "Please, choose something on <b>" . $t . "</b>.";
                    }
                    break;
                case "boolean":
                    if (!b1n_checkBoolean($reg_data[$r["reg_data"]], $r['mand'])) {
                        $msg = "Please, choose something on <b>" . $t . "</b>.";
                    }
                    break;
                case "unique":
                    if ($r['mand'] && empty($reg_data[$r['reg_data']])) {
                        $msg = "Please, fill the <b>" . $t . "</b> field.";
                        break;
                    }
                    if (b1n_checkFilled($reg_data[$r['reg_data']])) {
                        $query = "SELECT " . $reg_config['ID']['db'] . " FROM \"" . $r['extra']['table'] . "\" WHERE " . $r['db'] . " = '" . b1n_inBd($reg_data[$r["reg_data"]]) . "'";
                        $rs = $sql->singleQuery($query);
                        if ($rs && is_array($rs)) {
                            global $page1_title;
                            $msg = "There is already one " . $page1_title . " with this <b>" . $t . "</b>.";
                            unset($page1_title);
                        }
                    }
                    break;
                case "fk":
                    if (is_array($reg_data[$r['reg_data']])) {
                        if ($r['mand'] && !sizeof($reg_data[$r['reg_data']])) {
                            $msg = "Please, select something in <b>" . $t . "</b>.";
                        }
                    } else {
                        if (!b1n_checkNumeric($reg_data[$r["reg_data"]], $r['mand'])) {
                            $msg = "Please, select something in <b>" . $t . "</b>.";
                        }
                    }
                    break;
                case "hour":
                    if (!b1n_checkHour($reg_data[$r["reg_data"]]["hour"], $reg_data[$r["reg_data"]]["min"], $r["mand"])) {
                        $msg = "Invalid Hour/Minute in <b>" . $t . "</b>.";
                    }
                    break;
            }
            if (!empty($msg)) {
                b1n_retMsg($ret_msgs, b1n_FIZZLES, $msg);
                $ret = false;
            }
        }
    }
    return $ret;
}