<?php

class Conexion  // se declara una clase para hacer la conexion con la base de datos
{
	var $con;
	function Conexion()
		   	 
	{
		// se definen los datos del servidor de base de datos 
		$conection['server']="localhost";  //host
		$conection['user']="root";         //  usuario
		$conection['pass']="buttons";		//password
		$conection['base']="marbella_egocar";			//base de datos
		
		
		// crea la conexion pasandole el servidor , usuario y clave
		$conect= mysql_pconnect($conection['server'],$conection['user'],$conection['pass']);


			
		if ($conect) // si la conexion fue exitosa , selecciona la base
		{
			mysql_select_db($conection['base']);			
			$this->con=$conect;
		}
	}
	function getConexion() // devuelve la conexion
	{
		return $this->con;
	}
	function Close()  // cierra la conexion
	{
		mysql_close($this->con);
	}	

}


class sQuery   // se declara una clase para poder ejecutar las consultas, esta clase llama a la clase anterior
{

	var $pconeccion;
	var $pconsulta;
	var $resultados;
	function sQuery()  // constructor, solo crea una conexion usando la clase "Conexion"
	{
		$this->pconeccion= new Conexion();
	}
	function executeQuery($cons)  // metodo que ejecuta una consulta y la guarda en el atributo $pconsulta
	{
		$this->pconsulta= mysql_query($cons,$this->pconeccion->getConexion());
		return $this->pconsulta;
	}	
	function getResults()   // retorna la consulta en forma de result.
	{return $this->pconsulta;}	
	
	function Close()		// cierra la conexion
	{$this->pconeccion->Close();}	
	
	function Clean() // libera la consulta
	{mysql_free_result($this->pconsulta);}
	
	function getResultados() // debuelve la cantidad de registros encontrados
	{return mysql_affected_rows($this->pconeccion->getConexion()) ;}
	
	function getAffect() // devuelve las cantidad de filas afectadas
	{return mysql_affected_rows($this->pconeccion->getConexion()) ;}
}




class Venta
{
	var $nombreproducto;     //se declaran los atributos de la clase, que son los atributos del cliente
	var $preciounitario;
	var $id_producto;
	var $id_cliente;
	var $nombrecliente;
	var $apellidocliente;
	var $cantidad;
	var $id_venta;
	
	function Venta($nro=0) 
	{
		if ($nro!=0)
		{
			$obj_venta=new sQuery();
			$result=$obj_venta->executeQuery("SELECT * FROM clientes c1 INNER JOIN ventaproductos v2 ON v2.id_cliente = c1.id_cliente LEFT JOIN productos p3 ON p3.id_producto = v2.id_producto where id_venta = $nro");  
			$row=mysql_fetch_array($result);
			$this->id_producto=$row['id_producto'];
			$this->nombreproducto=$row['nombreproducto'];
			$this->preciounitario=$row['preciounitario'];
			$this->id_cliente=$row['id_cliente'];
			$this->nombrecliente=$row['nombrecliente'];
			$this->apellidocliente=$row['apellidocliente'];
			$this->cantidad=$row['cantidad'];
			$this->id_venta	=$row['id_venta'];
			
			
		}
	}
	function getVentas() // este metodo podria no estar en esta clase, se incluye para simplificar el codigo, lo que hace es traer todos los clientes 
		{
			$obj_venta=new sQuery();
			//$result=$obj_producto->executeQuery("select * from productos ORDER BY id_producto DESC");
			$result=$obj_venta->executeQuery("SELECT * FROM clientes c1 INNER JOIN ventaproductos v2 ON v2.id_cliente = c1.id_cliente LEFT JOIN productos p3 ON p3.id_producto = v2.id_producto");
			return $result; // retorna todos los alumnos
		}
		
		// metodos que devuelven valores
	function getID()
	 { return $this->id_venta;}
	function getNombreProducto()
	 { return $this->nombreproducto;}
	function getPrecioUnitario()
	 { return $this->preciounitario;}
	 function getIDCliente()
	 { return $this->id_cliente;}
	function getNombreCliente()
	 { return $this->nombrecliente;}	
	function getApellidoCliente()
	 { return $this->apellidocliente;}
	function getCantidad()
	 { return $this->cantidad;}
	function getIDProducto()
	 { return $this->id_producto;}
	
	 
		// metodos que setean los valores
	function setNombreProducto($val)
	 { $this->nombreproducto=$val;}
 	function setPrecioUnitario($val)
     {  $this->preciounitario=$val;}
    
    function setIDCliente($val)
         {  $this->id_cliente=$val;}
    function setNombreCliente($val)
         {  $this->nombrecliente=$val;}
    function setApellidoCliente($val)
         {  $this->apellidocliente=$val;}
    function setCantidad($val)
         {  $this->cantidad=$val;}
    function setIDProducto($val)
         {  $this->id_producto=$val;}
    
		

	function insertVenta()	// inserta el alumno cargado en los atributos
	{
			$obj_venta=new sQuery();
			$query="INSERT INTO ventaproductos(
			cantidad, 
			id_cliente,
			id_producto
			)
			VALUES(
			'$this->cantidad',
			'$this->id_cliente',
			'$this->id_producto'	
			)";
			
			$obj_venta->executeQuery($query); // ejecuta la consulta para traer al alumno
			return $query .'<br/>Registros afectados: '.$obj_venta->getAffect(); // retorna todos los registros afectados

			
			
		}	
		
	function deleteVenta($val)	// elimina el alumno
	{
			$obj_venta=new sQuery();
			$query="DELETE FROM ventaproductos WHERE id_venta=$val";
			$obj_venta->executeQuery($query); // ejecuta la consulta para  borrar el alumno
			return $query .'<br/>Registros afectados: '.$obj_venta->getAffect(); // retorna todos los registros afectados
	
	}	
	
		
	
	
	
}


?>