コード例 #1
0
ファイル: pedido.php プロジェクト: OliverUrones/individual
 public function llenar($datos)
 {
     parent::llenar($datos);
     //Usar el llenado de la clase padre y como "lineas" o "cliente" son
     //atributos publicos de la clase, si vienen dentro del array "$datos"
     //se van a copiar tal cual, con lo que hay que hacer un repaso de sus
     //contenidos para asegurar que son modelos de datos y no otra cosa.
     //----------
     //Si los datos vienen de la base de datos no aparece "lineas" o "cliente",
     //con lo que el proceso siguiente no se realiza.
     //Ignorar el atributo "lineas" que no sea array.
     if (!is_array($this->lineas)) {
         $this->lineas = null;
     }
     if (is_array($this->lineas)) {
         //Repasar las lineas creando los modelos asociados.
         foreach ($this->lineas as $i => $regLinea) {
             //Si ya es un objeto, no se toca.
             if (!is_object($regLinea)) {
                 $linea = new pedidolin();
                 //Si hay ID de linea, se intenta coger de la BD la linea original.
                 if (isset($regLinea['idLinea'])) {
                     $linea->cargar($regLinea['idLinea']);
                 }
                 //Si se coge de la BD, ya esta el modelo con los datos originales,
                 //pero pueden haberse modificado, con lo que se llenan igualmente
                 //con los datos que vienen dados.
                 $linea->llenar($regLinea);
                 $this->lineas[$i] = $linea;
             }
             //if
         }
         //foreach
     }
     //if
     //Ignorar el atributo "cliente" que no sea array u objeto.
     if (!is_array($this->cliente) && !is_object($this->cliente)) {
         $this->cliente = null;
     }
     //Si "cliente" ya es un objeto, no se toca.
     if (is_array($this->cliente)) {
         $cliente = new cliente();
         //Si hay ID de cliente, se intenta coger de la BD el original.
         if (isset($this->cliente['referencia'])) {
             $cliente->cargar($this->cliente['referencia']);
         }
         //Si se coge de la BD, ya esta el modelo con los datos originales,
         //pero pueden haberse modificado, con lo que se llenan igualmente
         //con los datos que vienen dados, aunque luego no se utilicen.
         $cliente->llenar($this->cliente);
         $this->cliente = $cliente;
     }
     //if
 }
コード例 #2
0
ファイル: clientes.php プロジェクト: OliverUrones/individual
 public function accion_editardemo()
 {
     $bien = false;
     //----------
     //Simular la modificacion de los datos de cliente... En concreto la clave primaria...
     $modelo = new cliente();
     $id1 = 'ZA000001';
     $id2 = 'VA000001';
     $bien = $modelo->cargar($id1);
     if (!$bien) {
         $id3 = $id1;
         $id1 = $id2;
         $id2 = $id3;
         $bien = $modelo->cargar($id1);
     }
     //if
     if ($bien) {
         depurar(array('modelo.cargado' => print_r($modelo, true)));
         $modelo->referencia = $id2;
         if ($modelo->guardar()) {
             $info = 'Modelo actualizado correctamente.';
         } else {
             $info = 'Modelo no actualizado.';
         }
         //if
         depurar(array('info' => $info, 'modelo.guardado' => print_r($modelo, true)));
     } else {
         echo 'No se ha podido cargar ninguna de las pruebas.';
     }
     //if
 }