@Override
    public boolean modificarCliente(TCliente cliente) 
    {
        
      boolean correcto = false;
      TransactionManager.obtenerInstanacia().nuevaTransaccion();
      
       try
       {
            TransactionManager.obtenerInstanacia().getTransaccion().start();
      
      TCliente tCliente = FactoriaDAO.obtenerInstancia().getDAOCliente().mostrarCliente(cliente.getId());
     
      if(tCliente !=null  && !tCliente.equals(cliente))
      {
          
          
          if(FactoriaDAO.obtenerInstancia().getDAOCliente().modificarCliente(cliente))
          {
          
          try
          {
              TransactionManager.obtenerInstanacia().getTransaccion().commit();
              correcto = true;
          
          }//si falla el commit
          catch(Exception e){
          
              TransactionManager.obtenerInstanacia().getTransaccion().rollback();
              correcto = false;
              
          }
                    
          }
            
      }
      else{
      
      //echamos para atras la transaccion
          
          TransactionManager.obtenerInstanacia().getTransaccion().rollback();
          correcto = false;
      
      }
      
      //Eliminamos la transaccion
      TransactionManager.obtenerInstanacia().eliminaTransaccion();
      
      
      }
      catch(Exception e ){
          try {
              TransactionManager.obtenerInstanacia().getTransaccion().rollback();
          } catch (Exception ex) {
              ex.printStackTrace();
          }
          TransactionManager.obtenerInstanacia().eliminaTransaccion();
          correcto = false;
      
      }
       return correcto;
    }