Advertisement
KaeruCT

pedido actualizado

Jul 15th, 2011
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.04 KB | None | 0 0
  1.  
  2. <?php
  3.  
  4. /*
  5.     Autor: Ernesto Villarreal, Daniela Brizuela
  6.     Fecha de creación: 09/07/2011
  7.     Fecha de última actualización: 15/07/2011
  8. */
  9.  
  10.     include('DataAccess.php');
  11.    
  12.     class Pedido
  13.     {
  14.         // nombre de la tabla de pedidos en la base de datos
  15.         private $nombreTablaPedido;
  16.         // lista de atributos
  17.         private $listaAtributos;
  18.        
  19.         private $id;
  20.         private $idUsuario;
  21.         private $estado;
  22.         private $cotizacion;
  23.         private $fechaSolicitado;
  24.         private $fechaAprobado;
  25.         private $fechaEntregado;
  26.        
  27.         public function __construct()
  28.         {
  29.             $this->nombreTabla = 'pedido';
  30.             $listaAtributos = array(
  31.                 'id',
  32.                 'idUsuario',
  33.                 'estado',
  34.                 'cotizacion',
  35.                 'fechaSolicitado',
  36.                 'fechaAprobado',
  37.                 'fechaEntregado'
  38.             );
  39.         }
  40.        
  41.         public function getNombreTablaPedidos() { return $this->nombreTablaPedidos}
  42.         public function getId() { return $this->id; }
  43.         public function getIdUsuario() { return $this->idUsuario; }
  44.         public function getEstado() { return $this->estado; }
  45.         public function getCotizacion() { return $this->cotizacion; }
  46.         public function getFechaSolicitado() { return $this->fechaSolicitado; }
  47.         public function getFechaAprobado() { return $this->fechaAprobado; }
  48.         public function getFechaEntregado() { return $this->fechaEntregado; }
  49.         public function setId($x) { $this->id = $x; }
  50.         public function setIdUsuario($x) { $this->idUsuario = $x; }
  51.         public function setEstado($x) { $this->estado = $x; }
  52.         public function setCotizacion($x) { $this->cotizacion = $x; }
  53.         public function setFechaSolicitado($x) { $this->fechaSolicitado = $x; }
  54.         public function setFechaAprobado($x) { $this->fechaAprobado = $x; }
  55.         public function setFechaEntregado($x) { $this->fechaEntregado = $x; }
  56.            
  57.         /*
  58.         public function agregarPedido
  59.         Propósito:
  60.             Funcion para agregar un nuevo pedido.
  61.         */
  62.         {
  63.         public function registrarPedido()
  64.             $data = new dataAccess();
  65.             $lista_valores = array();
  66.            
  67.             // iterar por cada valor para filtrarlo
  68.             foreach($this->listaAtributos as $atributo)
  69.             {
  70.                 // filtrar el dato correspondiente y ponerlo entre comillas
  71.                 $lista_valores[] = '"' . $data->escape($this->{$atributo}) . '"';
  72.             }
  73.  
  74.             $sql = 'INSERT INTO '. $this->getNombreTablaPedido()
  75.             .' ('. $this->getListaAtributos() .')'
  76.             .' VALUES ('. implode(',', $valores) .')';
  77.  
  78.             //ejecutar la consulta
  79.             $data->query($sql);
  80.         }
  81.        
  82.         /*
  83.         public function guardarEstado
  84.         Propósito:
  85.             Funcion para guardar un pedido existente.
  86.         */
  87.        
  88.         public function guardarPedido()
  89.         {
  90.             $data = new dataAccess();
  91.            
  92.             $lista_set = '';
  93.            
  94.             foreach($this->listaAtributosPedido as $atributo)
  95.             {
  96.                 $valor = $this->{$atributo};
  97.                
  98.                 // agregar campo si el valor correspondiente fue enviado
  99.                 // el id y el idUsuario no se deben cambiar
  100.                 // tampoco se debe actualizar el campo si esta vacio
  101.                 if($valor != 'id' && $valor != 'idUsuario' && isset($valor))
  102.                 {
  103.                     $valor = $data->escape($valor);
  104.                     // agregar el campo y el valor a la lista del SET
  105.                     $lista_set .= ($lista_set ? ', ' : '').$atributo .' = "' . $valor . '"';
  106.                 }
  107.             }
  108.  
  109.             $sql = 'UPDATE '. $this->getNombreTablaPedido()
  110.             .' SET '. $lista_set
  111.             .' WHERE id = '. $this->getId();
  112.  
  113.             //ejecutar la consulta
  114.             $data->query($sql);
  115.         }
  116.        
  117.         /*
  118.         public function getPedido
  119.         Propósito:
  120.             Funcion que hace que el objeto cargue los atributos
  121.             del pedido correspondiente (por id) de la base de datos
  122.             para asi obtenerlos por medio de get
  123.         */
  124.         public function getPedido()
  125.         {
  126.             $data = new dataAccess();
  127.  
  128.             $sql = 'SELECT '. $this->getListaAtributos()
  129.             .' FROM '. $this->getNombreTablaPedido()
  130.             .' WHERE id = '. $this->getId();
  131.  
  132.             $consulta = $data->query($sql);
  133.             $datosPedido = $data->fetchArreglo($consulta);
  134.            
  135.             foreach($this->listaAtributosPedido as $atributo)
  136.             {
  137.                 // cambiar el valor de cada atributo por el del pedido correspondiente
  138.                 $this->{$atributo} = $datosPedidos[$atributo];
  139.             }
  140.         }
  141.        
  142.         /*
  143.         public function getPedidos
  144.         Propósito:
  145.             Funcion que devuelve todos los pedidos.
  146.             hay que poner 'while($pedido = $data->fetchArreglo($pedidos))'
  147.             para procesar todos los pedidos devueltos.
  148.             $inicio y $cant se pueden especificar para devolver todos los
  149.             pedidos en un rango (para hacer paginas)
  150.         Parámetros:
  151.             -$inicio: indica el registro inicial (minimo 0).
  152.                 seria $registros_por_pagina*$num_pagina_actual
  153.             -$cant: indica la cantidad de registros a mostrar a partir del inicial
  154.                 seria $registros_por_pagina
  155.         Retorna:
  156.             recurso MySQL con todos los pedidos en el rango especificado
  157.             si no se especifico un rango, devuelve todos los pedidos
  158.         */
  159.         public function getPedidos($inicio = -1, $cant = 0)
  160.         {
  161.             $data = new dataAccess();
  162.  
  163.             $sql = 'SELECT '. $this->getListaAtributos()
  164.             .' FROM '. $this->getNombreTabla();
  165.  
  166.             // si se enviaron parametros $inicio y $cant, limitar los resultados
  167.             if(is_numeric($inicio) && is_numeric($cant) && $inicio > -1 && $cant >= 1)
  168.             {
  169.                 $sql .= ' LIMIT '. $inicio .', '. $cant;
  170.             }
  171.  
  172.             return $data->query($sql);
  173.         }
  174.        
  175.         /*
  176.         public function buscarPedidos
  177.         Propósito:
  178.             Funcion que devuelve los usuarios en los que $campo se aproxime a $valor.
  179.         Parámetros:
  180.             -$inicio: indica el registro inicial (minimo 0).
  181.                 seria $registros_por_pagina*$num_pagina_actual
  182.             -$cant: indica la cantidad de registros a mostrar a partir del inicial
  183.                 seria $registros_por_pagina
  184.             -$campo: el campo a buscar
  185.             -$valor: el valor aproximado del campo buscado
  186.         Retorna:
  187.             Un arreglo con los datos de los pedidos
  188.        
  189.             Esto es para hacer listas con paginas
  190.             -$inicio seria $registros_por_pagina*$num_pagina_actual
  191.             -$cant seria $num_pagina_actual
  192.         */
  193.         public function buscarPedidos($campo, $valor, $inicio = -1, $cant = 0)
  194.         {
  195.             $data = new dataAccess();
  196.            
  197.             $valor = $data->escape($valor);
  198.  
  199.             $sql = 'SELECT '. $this->getListaAtributos()
  200.             .' FROM '. $this->getNombreTablaPedido()
  201.             .' WHERE '. $campo .' LIKE "%'. $valor .'%"';
  202.            
  203.             // si se enviaron parametros $inicio y $cant, limitar los resultados
  204.             if(is_numeric($inicio) && is_numeric($cant) && $inicio > -1 && $cant >= 1)
  205.             {
  206.                 $sql .= ' LIMIT '. $inicio .', '. $cant;
  207.             }
  208.  
  209.             return $data->query($sql);
  210.         }
  211.        
  212.         /*
  213.         public function numFilas
  214.         Propósito:
  215.             Funcion que devuelve el numero de filas que devuelve una consulta
  216.             Para contar cuantos pedidos devolvio la consulta
  217.             Ej: $num_pedidos = $pedido->numFilas($result);
  218.         Parámetros:
  219.             $result es el resultado de una consulta MySQL
  220.         Retorna:
  221.             Un entero que indica el numero de filas
  222.         */
  223.         public function numFilas($result)
  224.         {
  225.             $data = new dataAccess();
  226.             return $data->numFilas($result);
  227.         }
  228.        
  229.         /*
  230.         private function getListaAtributos
  231.         Propósito:
  232.             Funcion que devuelve los atributos de un pedido separados por coma
  233.             para utilizarlos en una consulta MySQL
  234.         Retorna:
  235.             Un string con los atributos separados por coma
  236.         */
  237.         private function getListaAtributos()
  238.         {
  239.             return implode(', ', $this->listaAtributos);
  240.         }
  241.     }
  242. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement