Exemple #1
0
 public function accion_creardemo()
 {
     $bien = false;
     //----------
     //Simular la creacion de varios pedidos...
     for ($i = 1; $i <= 25; $i++) {
         $modelo = new pedido();
         //nueva instancia de pedido para crear en la bd.
         $modelo->serie = date('Y');
         //año actual
         $modelo->numero = $i;
         $modelo->fecha = date('Y-m-d');
         //fecha actual
         $modelo->refCli = 'ZA000002';
         //uno que puede existir o no, pero bueno.
         $modelo->domEnvio = 'domicilio de envio del pedido "' . $modelo->serie . '/' . sprintf('%05d', $modelo->numero) . '".';
         $modelo->estado = rand(0, count(pedido::listaEstados()) - 1);
         //uno de los posibles valores de estado.
         $modelo->notas = null;
         //sprintf( 'notas %06d', $i);
         //Añadir varias lineas a este pedido, aunque aún no exista en la BD.
         $modelo->lineas = array();
         $linTotal = rand(1, 25);
         //Numero de lineas a generar en el pedido.
         for ($lin = 1; $lin <= $linTotal; $lin++) {
             $linea = new pedidolin();
             //Nueva instancia de linea de pedido para crearla.
             //--$linea->idLinea= ...;//Es AUTONUMERICO con lo que se rellena solo al insertarlo en la BD.
             $linea->serie = $modelo->serie;
             $linea->numero = $modelo->numero;
             $linea->orden = $lin;
             $linea->refArt = sprintf('ART%06d', rand(1, 40));
             //generar un codigo de articulo que puede que no exista (25 si, 15 no).
             if ($linea->cargarArticulo()) {
                 echo '<pre>' . print_r($linea->articulo, true) . '</pre>';
                 //Si se carga bien, se coge el texto.
                 $linea->texto = $linea->articulo->texto;
                 $linea->precio = $linea->articulo->precio;
                 $linea->iva = $linea->articulo->iva;
             } else {
                 //Si no se carga bien, se genera como una linea libre
                 //y se elimina la referencia.
                 $linea->texto = 'Linea libre para el articulo "' . $linea->refArt . '"';
                 $linea->refArt = null;
                 $linea->precio = rand(5, 10000) / 100;
                 $linea->iva = 21.0;
             }
             //if
             $linea->cantidad = rand(1, 100);
             $linea->importeBase = 9753.1;
             //Comprobar que se recalcula antes de almacenar en la BD.
             $linea->cuotaIva = 123.45;
             //Comprobar que se recalcula antes de almacenar en la BD.
             //Añadir la linea manualmente a la lista de lineas del pedido.
             $linea->pedido =& $this;
             //Referencia al pedido asociado.
             $modelo->lineas[] = $linea;
         }
         //for
         //Guardar el modelo y sus lineas asociadas.
         $modelo->guardar();
     }
     //for
     //--echo 'voy a redirigir la pagina...'; flush();//probar a generar contenido HTML antes de redirigir.
     //vista::redirigir( array('pedidos','admin'));
     echo '<hr/>';
     echo 'Fin';
     echo '<hr/>';
 }
Exemple #2
0
 public function cargarLineas()
 {
     $res = true;
     $this->lineas = array();
     $sql = $this->sqlLineasPedido();
     if ($sql !== null) {
         $registros = basedatos::obtenerTodos($sql);
         if ($registros !== false) {
             foreach ($registros as $registro) {
                 $linea = new pedidolin();
                 //Importante indicar el llenado del modelo con datos que vienen de la BD.
                 $linea->cargarRegistro($registro);
                 $linea->pedido =& $this;
                 //Referencia al modelo del pedido al que pertenece.
                 $this->lineas[] = $linea;
             }
             //foreach
             $res = true;
         }
         //if
     }
     //if
     return $res;
 }