Location: PHPKode > projects > PhpBMS > phpbms/modules/bms/invoices_lineitem_ajax.php
<?php
/*
 $Rev: 702 $ | $LastChangedBy: brieb $
 $LastChangedDate: 2010-01-01 15:14:57 -0700 (Fri, 01 Jan 2010) $
 +-------------------------------------------------------------------------+
 | Copyright (c) 2004 - 2010, Kreotek LLC                                  |
 | All rights reserved.                                                    |
 +-------------------------------------------------------------------------+
 |                                                                         |
 | Redistribution and use in source and binary forms, with or without      |
 | modification, are permitted provided that the following conditions are  |
 | met:                                                                    |
 |                                                                         |
 | - Redistributions of source code must retain the above copyright        |
 |   notice, this list of conditions and the following disclaimer.         |
 |                                                                         |
 | - Redistributions in binary form must reproduce the above copyright     |
 |   notice, this list of conditions and the following disclaimer in the   |
 |   documentation and/or other materials provided with the distribution.  |
 |                                                                         |
 | - Neither the name of Kreotek LLC nor the names of its contributore may |
 |   be used to endorse or promote products derived from this software     |
 |   without specific prior written permission.                            |
 |                                                                         |
 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS     |
 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT       |
 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A |
 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT      |
 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,   |
 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT        |
 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,   |
 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY   |
 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT     |
 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE   |
 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.    |
 |                                                                         |
 +-------------------------------------------------------------------------+
*/
session_cache_limiter('private');

include("../../include/session.php");

class productLookup{

	function productLookup($db){

		$this->db = $db;

	}//end method - init


	function meetsPrereq($productid, $clientid){

		// This method return true if the client/product
		// combination return no prerequisites or
		// if all prerequisites products have been
		// at least ordered by the client.

		$querystatement = "
			SELECT
				childid
			FROM
				prerequisites
			WHERE
				parentid = '".mysql_real_escape_string($productid)."'
		";

		$queryresult = $this->db->query($querystatement);

		if($this->db->numRows($queryresult)){

			$whereclause = "";
			while($therecord = $this->db->fetchArray($queryresult))
				$whereclause .= " OR lineitems.productid = '".$therecord["childid"]."'";

			$whereclause = substr($whereclause, 4);

			$checkstatement = "
				SELECT
					invoices.id
				FROM
					invoices INNER JOIN lineitems ON lineitems.invoiceid = invoices.id
				WHERE
					invoices.clientid = '".mysql_real_escape_string($clientid)."'
					AND invoices.type != 'Void'
					AND invoices.type != 'Quote'
					AND (".$whereclause.")
				";

			if($this->db->numRows($this->db->query($checkstatement)) > 0 || $clientid == "");
				return false;

		}//endif - numRows

		return true;

	}//end method - checkPrereq


	function getInfo($productid){

		$querystatement = "
			SELECT
				*
			FROM
				products
			WHERE
				uuid = '".mysql_real_escape_string($productid)."'
		";

		return $this->db->fetchArray($this->db->query($querystatement));

	}//end method - getInfo


	function display($record){

		$output = "{ prereqMet: ";
		if($record){

			$record["memo"] = str_replace("\r", "", str_replace("\n", " ", $record["memo"]));
			$output .= "true, record: {";

			foreach($record as $key=>$value)
				$output .= $key.": '".str_replace("'","\\'",htmlQuotes($value))."',";

			$output = substr($output,0,-1)."}";

		} else {

			$output .= "false";

		}//endif - record

		$output .= "}";

		header("Content-type: text/plain");
		echo $output;

	}//end method display

}//end class - productLookup


//processing
//=========================================================================
if(isset($_GET["cid"]) && isset($_GET["id"])){

	$lookup = new productLookup($db);

	if($lookup->meetsPrereq($_GET["id"], $_GET["cid"]))
		$therecord = $lookup->getInfo($_GET["id"]);
	else
		$therecord = false;

	$lookup->display($therecord);

}//end if
Return current item: PhpBMS