Exemplo n.º 1
0
 public function eliminar()
 {
     $res = false;
     if (!$this->nuevo) {
         $sql = $this->sqlEliminar();
         if ($sql !== false) {
             $res = basedatos::ejecutarSQL($sql);
             //log::mensajeLin( __METHOD__.' '.__LINE__.' SQL= '.print_r( $sql, true));
             //Si se ha ejecutado la SQL obtenida...
             if ($res === true) {
                 //comparar con "true" porque puede ser "false" u "objeto"...
                 //Tras el borrado, marcar la instancia como si fuera nueva, pues no
                 //existe en la base de datos ya.
                 $this->nuevo = true;
             } else {
                 //Si resulta "false" u "objeto", no ha ido bien, pues una SQL de
                 //insercion o actualizacion deben devolver "true".
                 $res = false;
             }
             //if
         }
         //if
     }
     //if
     return $res;
 }
Exemplo n.º 2
0
 public function eliminar()
 {
     $eraNuevo = $this->esNuevo();
     $res = parent::eliminar();
     //Al eliminar el pedido, se deben eliminar las lineas asociadas ya que
     //su existencia depende de la existencia del propio pedido.
     if ($res && !$eraNuevo) {
         if ($this->lineas !== null) {
             //Si tiene lineas cargadas, eliminarlas una a una.
             $fallos = 0;
             foreach ($this->lineas as $linea) {
                 if (!$linea->eliminar()) {
                     $fallos++;
                 }
                 //Descomentar la linea siguiente si no se quiere continuar la
                 //eliminacion de lineas si hay algún fallo en una de ellas.
                 //--if ($fallos > 0) break;//Salir si hay fallo de eliminacion.
             }
             //foreach
             $res = $fallos == 0;
             //si no hay fallos, ha eliminado bien.
         } else {
             //Si no tiene lineas cargadas, eliminarlas con una SQL directa.
             //Se aprovecha la orden de borrado de la propia clase cambiando el
             //nombre de la tabla afectada.
             $sql = str_replace('pedidos', 'pedidoslin', $this->sqlEliminar());
             $res = basedatos::ejecutarSQL($sql);
             //El resultado puede ser "false" u "objeto" si no ha ido bien.
             if ($res !== true) {
                 $res = false;
             }
         }
         //if
     }
     //if
     return $res;
 }