Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- Autor: Ernesto Villarreal, Daniela Brizuela
- Fecha de creación: 09/07/2011
- Fecha de última actualización: 15/07/2011
- */
- include('DataAccess.php');
- class Pedido
- {
- // nombre de la tabla de pedidos en la base de datos
- private $nombreTablaPedido;
- // lista de atributos
- private $listaAtributos;
- private $id;
- private $idUsuario;
- private $estado;
- private $cotizacion;
- private $fechaSolicitado;
- private $fechaAprobado;
- private $fechaEntregado;
- public function __construct()
- {
- $this->nombreTabla = 'pedido';
- $listaAtributos = array(
- 'id',
- 'idUsuario',
- 'estado',
- 'cotizacion',
- 'fechaSolicitado',
- 'fechaAprobado',
- 'fechaEntregado'
- );
- }
- public function getNombreTablaPedidos() { return $this->nombreTablaPedidos}
- public function getId() { return $this->id; }
- public function getIdUsuario() { return $this->idUsuario; }
- public function getEstado() { return $this->estado; }
- public function getCotizacion() { return $this->cotizacion; }
- public function getFechaSolicitado() { return $this->fechaSolicitado; }
- public function getFechaAprobado() { return $this->fechaAprobado; }
- public function getFechaEntregado() { return $this->fechaEntregado; }
- public function setId($x) { $this->id = $x; }
- public function setIdUsuario($x) { $this->idUsuario = $x; }
- public function setEstado($x) { $this->estado = $x; }
- public function setCotizacion($x) { $this->cotizacion = $x; }
- public function setFechaSolicitado($x) { $this->fechaSolicitado = $x; }
- public function setFechaAprobado($x) { $this->fechaAprobado = $x; }
- public function setFechaEntregado($x) { $this->fechaEntregado = $x; }
- /*
- public function agregarPedido
- Propósito:
- Funcion para agregar un nuevo pedido.
- */
- {
- public function registrarPedido()
- $data = new dataAccess();
- $lista_valores = array();
- // iterar por cada valor para filtrarlo
- foreach($this->listaAtributos as $atributo)
- {
- // filtrar el dato correspondiente y ponerlo entre comillas
- $lista_valores[] = '"' . $data->escape($this->{$atributo}) . '"';
- }
- $sql = 'INSERT INTO '. $this->getNombreTablaPedido()
- .' ('. $this->getListaAtributos() .')'
- .' VALUES ('. implode(',', $valores) .')';
- //ejecutar la consulta
- $data->query($sql);
- }
- /*
- public function guardarEstado
- Propósito:
- Funcion para guardar un pedido existente.
- */
- public function guardarPedido()
- {
- $data = new dataAccess();
- $lista_set = '';
- foreach($this->listaAtributosPedido as $atributo)
- {
- $valor = $this->{$atributo};
- // agregar campo si el valor correspondiente fue enviado
- // el id y el idUsuario no se deben cambiar
- // tampoco se debe actualizar el campo si esta vacio
- if($valor != 'id' && $valor != 'idUsuario' && isset($valor))
- {
- $valor = $data->escape($valor);
- // agregar el campo y el valor a la lista del SET
- $lista_set .= ($lista_set ? ', ' : '').$atributo .' = "' . $valor . '"';
- }
- }
- $sql = 'UPDATE '. $this->getNombreTablaPedido()
- .' SET '. $lista_set
- .' WHERE id = '. $this->getId();
- //ejecutar la consulta
- $data->query($sql);
- }
- /*
- public function getPedido
- Propósito:
- Funcion que hace que el objeto cargue los atributos
- del pedido correspondiente (por id) de la base de datos
- para asi obtenerlos por medio de get
- */
- public function getPedido()
- {
- $data = new dataAccess();
- $sql = 'SELECT '. $this->getListaAtributos()
- .' FROM '. $this->getNombreTablaPedido()
- .' WHERE id = '. $this->getId();
- $consulta = $data->query($sql);
- $datosPedido = $data->fetchArreglo($consulta);
- foreach($this->listaAtributosPedido as $atributo)
- {
- // cambiar el valor de cada atributo por el del pedido correspondiente
- $this->{$atributo} = $datosPedidos[$atributo];
- }
- }
- /*
- public function getPedidos
- Propósito:
- Funcion que devuelve todos los pedidos.
- hay que poner 'while($pedido = $data->fetchArreglo($pedidos))'
- para procesar todos los pedidos devueltos.
- $inicio y $cant se pueden especificar para devolver todos los
- pedidos en un rango (para hacer paginas)
- Parámetros:
- -$inicio: indica el registro inicial (minimo 0).
- seria $registros_por_pagina*$num_pagina_actual
- -$cant: indica la cantidad de registros a mostrar a partir del inicial
- seria $registros_por_pagina
- Retorna:
- recurso MySQL con todos los pedidos en el rango especificado
- si no se especifico un rango, devuelve todos los pedidos
- */
- public function getPedidos($inicio = -1, $cant = 0)
- {
- $data = new dataAccess();
- $sql = 'SELECT '. $this->getListaAtributos()
- .' FROM '. $this->getNombreTabla();
- // si se enviaron parametros $inicio y $cant, limitar los resultados
- if(is_numeric($inicio) && is_numeric($cant) && $inicio > -1 && $cant >= 1)
- {
- $sql .= ' LIMIT '. $inicio .', '. $cant;
- }
- return $data->query($sql);
- }
- /*
- public function buscarPedidos
- Propósito:
- Funcion que devuelve los usuarios en los que $campo se aproxime a $valor.
- Parámetros:
- -$inicio: indica el registro inicial (minimo 0).
- seria $registros_por_pagina*$num_pagina_actual
- -$cant: indica la cantidad de registros a mostrar a partir del inicial
- seria $registros_por_pagina
- -$campo: el campo a buscar
- -$valor: el valor aproximado del campo buscado
- Retorna:
- Un arreglo con los datos de los pedidos
- Esto es para hacer listas con paginas
- -$inicio seria $registros_por_pagina*$num_pagina_actual
- -$cant seria $num_pagina_actual
- */
- public function buscarPedidos($campo, $valor, $inicio = -1, $cant = 0)
- {
- $data = new dataAccess();
- $valor = $data->escape($valor);
- $sql = 'SELECT '. $this->getListaAtributos()
- .' FROM '. $this->getNombreTablaPedido()
- .' WHERE '. $campo .' LIKE "%'. $valor .'%"';
- // si se enviaron parametros $inicio y $cant, limitar los resultados
- if(is_numeric($inicio) && is_numeric($cant) && $inicio > -1 && $cant >= 1)
- {
- $sql .= ' LIMIT '. $inicio .', '. $cant;
- }
- return $data->query($sql);
- }
- /*
- public function numFilas
- Propósito:
- Funcion que devuelve el numero de filas que devuelve una consulta
- Para contar cuantos pedidos devolvio la consulta
- Ej: $num_pedidos = $pedido->numFilas($result);
- Parámetros:
- $result es el resultado de una consulta MySQL
- Retorna:
- Un entero que indica el numero de filas
- */
- public function numFilas($result)
- {
- $data = new dataAccess();
- return $data->numFilas($result);
- }
- /*
- private function getListaAtributos
- Propósito:
- Funcion que devuelve los atributos de un pedido separados por coma
- para utilizarlos en una consulta MySQL
- Retorna:
- Un string con los atributos separados por coma
- */
- private function getListaAtributos()
- {
- return implode(', ', $this->listaAtributos);
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement