Location: PHPKode > projects > TEMS -Time and Expense Management System > tems/baseclass/DataValidator.php
<?php

/* * *******************************************************************************
 * TES is a Time and Expense Management program developed by
 * Initechs, LLC. Copyright (C) 2009 - 2010 Initechs LLC.
 *
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License version 3 as published by the
 * Free Software Foundation with the addition of the following permission added
 * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
 * IN WHICH THE COPYRIGHT IS OWNED BY INITECHS, INITECHS DISCLAIMS THE WARRANTY
 * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, see http://www.gnu.org/licenses or write to the Free
 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 * 02110-1301 USA.
 *
 * You can contact Initechs headquarters at 1841 Piedmont Road, Suite 301,
 * Marietta, GA, USA. or at email address hide@address.com
 *
 * The interactive user interfaces in modified source and object code versions
 * of this program must display Appropriate Legal Notices, as required under
 * Section 5 of the GNU General Public License version 3.
 *
 * In accordance with Section 7(b) of the GNU General Public License version 3,
 * these Appropriate Legal Notices must retain the display od the "Initechs" logo.
 * If the display of the logo is not reasonably feasible for technical reasons,
 * the Appropriate Legal Notices must display the words "Powered by Initechs".

 * ****************************************************************************** */

$basedir = dirname(__FILE__) . '/..';
require_once("$basedir/baseclass/RequestHandler.php");
require_once("$basedir/baseclass/DBCommonFunctions.php");

class dbObj extends DBCommonFunctions {}

abstract class DataValidator extends RequestHandler {

    protected function chkMandatory($var) {
        if (!isset($_POST[$var])
            or trim($_POST[$var]) == '') {
                $this->issueError($var, 'er0011');
                return false;
        }
        return true;
    }

    protected function chkDate($var) {
        if (!$this->chkMandatory($var))
            return false;

        $dateFormat = getUserDateFormat();

        // TODO Check date should not change the value of the post data - Kallol

        $date = convertdate($_SESSION['postdata'][$var], $dateFormat, 'ymd');
        if ($date <> null)
            $_SESSION['postdata'][$var] = $date;

        if (!isValidDate(trim($_POST[$var]), $dateFormat)) {
            $this->issueError($var, 'er0009');
            return false;
        }
        return true;
    }

    protected function chkValidEntry($var, $table, $whereclause, $errorid ='er0013') {
        $dbConn = new dbObj();
        $RowData = $dbConn->fetchRowbyWhereClause($table, $whereclause);
        If ($RowData == Null) {
            $this->issueError($var, $errorid);
            return false;
        }
        return true;
    }

    protected function chkNumeric($var, $decimal) {
        if ($_POST[$var] == '')
            return true;

        if (!is_numeric($_POST[$var])) {
            $this->issueError($var, 'er0083');
            return false;
        }

        //Validate for decimals

        $num1 = trim(($_POST[$var]));
        $decpos = strpos($num1, '.');
        if ($decpos == false)
            return true;
        $decipart = substr($num1, $decpos + 1);
        $decilen = strlen($decipart);

        if ($decilen > $decimal) {
            $this->issueError($var, 'er0083');
            return false;
        }
        return true;
    }

    protected function chkWeekendDate($var, $weekendday) {
        if (!$this->chkMandatory($var))
            return false;

        if (!chkWeekendDate($_POST[$var], $weekendday)) {  // This calls the function resides in teseban/DateFunction.php
            $this->issueError($var, 'er0021');
            return false;
        }
        return true;
    }

}

?>
Return current item: TEMS -Time and Expense Management System