<?php
/**
 * ****************************************************************
 * Project:      
 * Copyright:    Copyright (c) 2006
 * ****************************************************************
 * $Workfile:   DataHelper.php  $
 * ****************************************************************
 * Description:  helper class for data objects
 * ****************************************************************
 * ****************************************************************/
class DataHelper {
	/*****************************************************************
	 * constructor
	 *****************************************************************/
	public function __construct() {
		
		
	}

	/*****************************************************************
	 * converts amount values into display format
	 *****************************************************************/
	public function convertAmount($_number) {
		return number_format($_number, 0, ".", ".");
	}

	/*****************************************************************
	 * converts percentage values into display format with optionally
	 * the percentage sign and the positive operator
	 *****************************************************************/
	public function convertPercentage($_number, $displayPercSign = false, $displayOperator = false, $_checkNull = true) {
		if(is_numeric($_number))
		{
			$result = number_format($_number * 100, 2, ",", "");

			if($displayOperator && $_number > 0)
					$result = "+" . $result;

			if($displayPercSign)
				$result = $result . "%";

			return $result;
		}
		else if($_checkNull && !$_number) // $_number = NULL
			return "-";
		else
			return $_number;
	}

	/*****************************************************************
	 * converts a date from YYYY-mm-dd to dd.mm.YYYY format
	 *****************************************************************/
	public function convertDate($_date, $_checkNull = false) {
		if($_checkNull && !$_date)
			return "-";

		return implode(".", array_reverse(explode("-", $_date)));
	}

	/*****************************************************************
	 * converts a date from dd.mm.YYYY h:i:s to YYYY-dd-mm h:i:s format
	 *****************************************************************/
	public function convertToDBDate($_date, $_withSeconds = TRUE, $_withTime = TRUE)
	{
	  if (strlen($_date) > 10)
	  {
	    $dtTmp = explode(" ", $_date);
	    $date  = explode(".", $dtTmp[0]);
	    $time  = explode(":", $dtTmp[1]);
	  }
	  else
	  {
	    $date = explode(".", $_date);
	    $time = array("00","00","00");
	  }

	  return $date[2] . '-' . $date[1] . '-' . $date[0] . ($_withTime ? ' ' . $time[0] . ':' . $time[1] . ($_withSeconds ? ':' . $time[2] : '') : '');
	}

	/*****************************************************************
	 * converts the delivered db date or datetime to timestamp for the frontend
	 * delivered dateformat y.M.d h:i:s
	 *****************************************************************/
	public function convertDBDate($_date, $_withSeconds = TRUE, $_withTime = TRUE)
	{
	  if(empty($_date) OR (strcmp($_date, '0000-00-00')==0 OR strcmp($_date, '0000-00-00 00:00:00')==0))
	    return null;

	  if(strlen($_date) > 10)
	  {
	    $dtTmp = explode(" ", $_date);
	    $date  = explode("-", $dtTmp[0]);
	    $time  = explode(":", $dtTmp[1]);
	  }
	  else
	  {
	    $date = explode("-", $_date);
	    $time = array("00","00","00");
	  }

	  if(strlen($_date) > 10)
	  {
	    if ($_withTime)
	    {
	      if($_withSeconds)
	      	return $date[2].".".$date[1].".".$date[0]." ".$time[0].":".$time[1].":".$time[2];
	      else
	        return $date[2].".".$date[1].".".$date[0]." ".$time[0].":".$time[1];
	    }
	    else
	    {
	      return $date[2] . '.' . $date[1] . '.' . $date[0];
	    }
	  }
	  else
	    return $date[2].".".$date[1].".".$date[0];
	}

  /*****************************************************************
   *  converts the deliverd time to timestamp in seconds
   *****************************************************************/
  public function convertTime($_val)
  {
    $_val = explode(" ", $_val);
    $d   = explode("-", $_val[0]);
    $t   = explode(":", $_val[1]);

    return mktime($t[0],$t[1],$t[2],$d[1],$d[2],$d[0]);
  }

	/*****************************************************************
	 * zero-pad a number
	 *****************************************************************/
	public function zeroPad($_number, $_count) {
		return sprintf("%0${_count}d", $_number);
	}

	/*****************************************************************
	 * rounds value
	 *****************************************************************/
	public function getRoundedValue($_val, $_doTh = true) {
	  $result = $_val;
	  if ($_doTh) {
			$result = $result / 1000;
	  }
	  $result = number_format($result, 0, ',', '');
	  return $result;
	}

	/*****************************************************************
	 *  converts currency to currency-code
	 *****************************************************************/
	function convertCurrency($_string)
	{
	  if(substr_count($_string, "USD") > 0)
	    return "US$";
	  else
	    return "&euro;";
	}
	
}
?>