public TPedido obtenerPedido() {

    TPedido tpedido = new TPedido();

    JTable tbpedidos = getTbPedidos();
    int fila_sel = tbpedidos.getSelectedRow();

    tpedido.setId_pedido((int) tbpedidos.getValueAt(fila_sel, 0));
    tpedido.setId_proveedor((int) tbpedidos.getValueAt(fila_sel, 1));
    tpedido.setFechaRealizado((String) tbpedidos.getValueAt(fila_sel, 2));
    tpedido.setFechaEntregado((String) tbpedidos.getValueAt(fila_sel, 3));
    tpedido.setFechaCancelado((String) tbpedidos.getValueAt(fila_sel, 4));

    JTable tbproductos = getTbProductos();

    int filas = tbproductos.getRowCount();

    List<TProductoDePedido> listaproductos = new ArrayList<TProductoDePedido>();
    for (int i = 0; i < filas; i++) // recorre toda la tabla productos del pedido fila a fila
    {
      TProductoDePedido tproducto = new TProductoDePedido();
      tproducto.setProducto((int) tbproductos.getValueAt(i, 0));
      tproducto.setPedido((int) tbpedidos.getValueAt(fila_sel, 0));
      tproducto.setPrecio((double) tbproductos.getValueAt(i, 1));
      tproducto.setCantidad((int) tbproductos.getValueAt(i, 2));

      listaproductos.add(tproducto);
    }

    tpedido.setListaProductosPedido(listaproductos);

    return tpedido;
  }
  public void rellenarTablaPedidos(Object object) {

    tabla = new Tabla();

    tabla.addColumn("ID_PED");
    tabla.addColumn("ID_PROV");
    tabla.addColumn("REALIZ.");
    tabla.addColumn("ENTREG.");
    tabla.addColumn("CANCEL.");

    if (object != null) {

      List<TPedido> lista = (List<TPedido>) object;

      for (TPedido tpedido : lista) {

        fila = new Vector();

        fila.add(tpedido.getId_pedido());
        fila.add(tpedido.getId_proveedor());
        fila.add(tpedido.getFechaRealizado());
        fila.add(tpedido.getFechaEntregado());
        fila.add(tpedido.getFechaCancelado());

        tabla.addRow(fila);
      }
    }

    tbPedidos.setModel(tabla);

    tbPedidos.getColumnModel().getColumn(0).setMaxWidth(60); // ajusta el ancho de las columnas ID
    tbPedidos.getColumnModel().getColumn(1).setMaxWidth(60);

    repaint();
  }
  @Override
  public RespuestaCMD ejecuta(Object objeto) {
    SAPedido serviciosPedido = FactoriaNegocio.obtenerInstancia().generaSAPedido();
    RespuestaCMD respuestaComando = null;

    if (new ValidarTPedido().pedidoCorrecto((TPedido) objeto)) {
      TPedido tPedido = (TPedido) objeto;

      if (tPedido.getFechaEntregado().equals("---") && tPedido.getFechaCancelado().equals("---")) {
        try {

          if (serviciosPedido.almacenarPedido(tPedido)) {
            respuestaComando =
                new RespuestaCMD(
                    EnumComandos.CORRECTO_PEDIDO,
                    "Se ha almacenado el nuevo Pedido, y actualizado el Stock de los productos");
          } else
            respuestaComando =
                new RespuestaCMD(
                    EnumComandos.ERROR, "Error al almacenar pedido. Error al insertar los datos.");

        } catch (Exception e) {
          respuestaComando = new RespuestaCMD(EnumComandos.ERROR, e.getMessage());
          e.printStackTrace();
        }
      } else
        respuestaComando =
            new RespuestaCMD(
                EnumComandos.ERROR,
                "No se puede almacenar un pedido que ya ha sido almacenado/cancelado");
    } else
      respuestaComando =
          new RespuestaCMD(
              EnumComandos.ERROR, "No se puede almacenar el pedido. Los datos son incorrectos.");

    return respuestaComando;
  }