Almacen.consultaPartidaOrden.java Source code

Java tutorial

Introduction

Here is the source code for Almacen.consultaPartidaOrden.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Almacen;

import Hibernate.Util.HibernateUtil;
import Hibernate.entidades.Almacen;
import Hibernate.entidades.Movimiento;
import Hibernate.entidades.Orden;
import Hibernate.entidades.Partida;
import Hibernate.entidades.PartidaExterna;
import Hibernate.entidades.Usuario;
import Integral.FormatoEditor;
import java.awt.Color;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import org.hibernate.Query;
import org.hibernate.Session;
import Integral.FormatoTabla;
import Integral.Herramientas;
import Integral.Render1;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author ESPECIALIZADO TOLUCA
 */
public class consultaPartidaOrden extends javax.swing.JDialog {
    public static final List RET_CANCEL = null;
    Orden orden;
    Herramientas h;
    String sessionPrograma;
    Usuario usr;
    consultaPartidaOrden.MyModel model;
    FormatoTabla formato;
    String[] columnas = new String[] { "N", "#", "N Parte", "Descripcin", "Medida", "Autorizados", "X Surtir",
            "Cantidad" };

    /**
     * Creates new form consultaPartidaPedido
     */
    public consultaPartidaOrden(java.awt.Frame parent, boolean modal, Orden ord, Usuario usuario) {
        super(parent, modal);
        initComponents();
        getRootPane().setDefaultButton(ok);
        orden = ord;
        usr = usuario;
        Class[] types = new Class[] { java.lang.String.class, java.lang.String.class, java.lang.String.class,
                java.lang.String.class, java.lang.String.class, java.lang.Double.class, java.lang.Double.class,
                java.lang.Double.class, java.lang.Double.class, java.lang.Double.class };
        model = new MyModel(0, columnas, types);
        t_datos.setModel(model);
        t_datos.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        formato = new FormatoTabla();
    }

public void formatoTabla()
{
    Color c1 = new java.awt.Color(2, 135, 242);   
    for(int x=0; x<t_datos.getColumnModel().getColumnCount(); x++)
    {
        t_datos.getColumnModel().getColumn(x).setHeaderRenderer(new Render1(c1));
    }
    tabla_tamaos();
    t_datos.setShowVerticalLines(true);
    t_datos.setShowHorizontalLines(true);
        
    t_datos.setDefaultRenderer(Double.class, formato); 
    t_datos.setDefaultRenderer(Integer.class, formato);
    t_datos.setDefaultRenderer(String.class, formato);
    t_datos.setDefaultRenderer(Boolean.class, formato);
}

    private void doClose(List o) {
        returnStatus = o;
        setVisible(false);
        dispose();
    }

    public List getReturnStatus() {
        return returnStatus;
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        t_orden = new javax.swing.JTextField();
        jScrollPane4 = new javax.swing.JScrollPane();
        t_datos = new javax.swing.JTable();
        ok = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Bsqueda Partida Orden");

        jPanel1.setBackground(new java.awt.Color(250, 250, 250));
        jPanel1.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));

        jLabel1.setText("N O.T.: ");

        t_orden.setEnabled(false);

        t_datos.setModel(new javax.swing.table.DefaultTableModel(new Object[][] {

        }, new String[] { "N", "#", "N Parte", "Descripcin", "Pedido", "Medida", "X Surtir", "Cantidad",
                "Costo c/u", "Total" }));
        t_datos.setAutoscrolls(false);
        t_datos.setCellSelectionEnabled(false);
        t_datos.setRowSelectionAllowed(true);
        t_datos.getTableHeader().setReorderingAllowed(false);
        t_datos.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                t_datosKeyPressed(evt);
            }
        });
        jScrollPane4.setViewportView(t_datos);
        t_datos.getColumnModel().getSelectionModel()
                .setSelectionMode(javax.swing.ListSelectionModel.SINGLE_INTERVAL_SELECTION);

        ok.setBackground(new java.awt.Color(2, 135, 242));
        ok.setMnemonic('s');
        ok.setText("Seleccionar");
        ok.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                okActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(jPanel1Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 899,
                                        Short.MAX_VALUE)
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING,
                                        jPanel1Layout.createSequentialGroup().addComponent(jLabel1)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(t_orden, javax.swing.GroupLayout.PREFERRED_SIZE, 88,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addGap(0, 0, Short.MAX_VALUE))
                                .addGroup(jPanel1Layout.createSequentialGroup().addGap(0, 0, Short.MAX_VALUE)
                                        .addComponent(ok)))
                        .addContainerGap()));
        jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel1).addComponent(t_orden, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 296,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(ok)
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jPanel1,
                        javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE,
                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(
                jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                Short.MAX_VALUE));

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void okActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okActionPerformed
        // TODO add your handling code here:
        if (t_datos.getSelectedRows().length >= 0) {
            List datos = new ArrayList();
            int renglones[] = t_datos.getSelectedRows();
            for (int x = 0; x < renglones.length; x++) {
                List aux = new ArrayList();
                for (int c = 0; c < t_datos.getColumnCount(); c++) {
                    aux.add(t_datos.getValueAt(renglones[x], c));
                }
                datos.add(aux);
            }
            doClose(datos);
        } else
            JOptionPane.showMessageDialog(null, "No hay una Partida seleccionada!");
    }//GEN-LAST:event_okActionPerformed

    private void t_datosKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_t_datosKeyPressed
        // TODO add your handling code here:
        int code = evt.getKeyCode();
        if (code == KeyEvent.VK_ENTER) {
            t_datos.getInputMap(t_datos.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
                    .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), "selectColumnCell");
            this.ok.requestFocus();
        }
    }//GEN-LAST:event_t_datosKeyPressed

    /**
     * @param args the command line arguments
     */
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JButton ok;
    private javax.swing.JTable t_datos;
    public javax.swing.JTextField t_orden;
    // End of variables declaration//GEN-END:variables
    private List returnStatus = RET_CANCEL;

    public void busca(String tipo, String valor, String movimiento, String complemento, String complemento2) {
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            session.beginTransaction().begin();
            if (tipo.compareTo("Compaa") == 0) {
                Class[] types = new Class[] { java.lang.String.class, java.lang.String.class,
                        java.lang.String.class, java.lang.String.class, java.lang.String.class,
                        java.lang.String.class, java.lang.Double.class, java.lang.Double.class,
                        java.lang.Double.class };
                if (t_orden.getText().compareTo("") != 0) {
                    if (movimiento.compareTo("Entrada") == 0) {
                        String[] columnas = new String[] { "Id", "N", "#", "N Parte", "Descripcin", "Medida",
                                "Autorizados", "X Surtir", "Entrada" };
                        Query query = session.createQuery(
                                "SELECT DISTINCT part FROM Partida part " + "where part.ordenByIdOrden.idOrden="
                                        + Integer.parseInt(t_orden.getText()) + " and part.so=" + true);
                        List partidas = query.list();

                        model = new MyModel(partidas.size(), columnas, types);
                        t_datos.setModel(model);
                        for (int a = 0; a < partidas.size(); a++) {
                            Partida par = (Partida) partidas.get(a);
                            Movimiento[] mov = (Movimiento[]) par.getMovimientos().toArray(new Movimiento[0]);
                            double entradas = 0, devoluciones = 0;
                            for (int b = 0; b < mov.length; b++) {
                                Almacen alm = mov[b].getAlmacen();
                                if (alm.getTipoMovimiento() == 1 && alm.getOperacion() == 4)
                                    entradas += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 2 && alm.getOperacion() == 4)
                                    devoluciones += mov[b].getCantidad();
                            }
                            double total_almacen = entradas - devoluciones;
                            double total = par.getCantidadAut() - total_almacen;
                            model.setValueAt(par.getIdPartida(), a, 0);
                            model.setValueAt(par.getIdEvaluacion(), a, 1);
                            model.setValueAt(par.getSubPartida(), a, 2);
                            if (par.getEjemplar() != null)
                                model.setValueAt(par.getEjemplar().getIdParte(), a, 3);
                            else
                                model.setValueAt("", a, 3);
                            model.setValueAt(par.getCatalogo().getNombre(), a, 4);
                            model.setValueAt(par.getMed(), a, 5);
                            model.setValueAt(par.getCantidadAut(), a, 6);
                            model.setValueAt(total, a, 7);
                            model.setValueAt(0.0d, a, 8);
                        }
                    }
                    if (movimiento.compareTo("Salida") == 0) {
                        String[] columnas = new String[] { "Id", "N", "#", "N Parte", "Descripcin", "Medida",
                                "Autorizados", "En almacen", "Devolucin" };
                        Query query = session.createQuery("SELECT DISTINCT part FROM Partida part "
                                + "LEFT JOIN FETCH part.movimientos movPart " + "LEFT JOIN movPart.almacen alm "
                                + "where alm.operacion=4 and part.ordenByIdOrden.idOrden="
                                + Integer.parseInt(t_orden.getText()));
                        List partidas = query.list();
                        model = new MyModel(partidas.size(), columnas, types);
                        t_datos.setModel(model);
                        for (int a = 0; a < partidas.size(); a++) {
                            Partida par = (Partida) partidas.get(a);
                            Movimiento[] mov = (Movimiento[]) session.createCriteria(Movimiento.class)
                                    .add(Restrictions.eq("partida.idPartida", par.getIdPartida())).list()
                                    .toArray(new Movimiento[0]);
                            double entradas = 0, devoluciones = 0, entregadas = 0, devueltas = 0;
                            ;
                            for (int b = 0; b < mov.length; b++) {
                                Almacen alm = mov[b].getAlmacen();
                                if (alm.getTipoMovimiento() == 1 && alm.getOperacion() == 4)
                                    entradas += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 2 && alm.getOperacion() == 4)
                                    devoluciones += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 1 && alm.getOperacion() == 5)
                                    devueltas += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 2 && alm.getOperacion() == 5)
                                    entregadas += mov[b].getCantidad();
                            }
                            double total_Pedido = entradas - devoluciones;
                            double total_operario = entregadas - devueltas;
                            double total = total_Pedido - total_operario;
                            model.setValueAt(par.getIdPartida(), a, 0);
                            model.setValueAt(par.getIdEvaluacion(), a, 1);
                            model.setValueAt(par.getSubPartida(), a, 2);
                            if (par.getEjemplar() != null)
                                model.setValueAt(par.getEjemplar().getIdParte(), a, 3);
                            else
                                model.setValueAt("", a, 3);
                            model.setValueAt(par.getCatalogo().getNombre(), a, 4);
                            model.setValueAt(par.getMed(), a, 5);
                            model.setValueAt(par.getCantidadAut(), a, 6);
                            model.setValueAt(total, a, 7);
                            model.setValueAt(0.0d, a, 8);
                        }
                    }
                }
            }
            if (tipo.compareTo("Operarios") == 0) {
                if (t_orden != null) {
                    if (movimiento.compareTo("Entrada") == 0) {
                        Class[] types = new Class[] { java.lang.String.class, java.lang.String.class,
                                java.lang.String.class, java.lang.String.class, java.lang.String.class,
                                java.lang.String.class, java.lang.String.class, java.lang.Double.class,
                                java.lang.Double.class };
                        String[] columnas = new String[] { "Id", "Partida", "Tipo", "N Parte", "Descripcin",
                                "Medida", "Operario", "Entregadas" };
                        /*Query query = session.createQuery("SELECT DISTINCT part FROM Partida part "
                            + "LEFT JOIN FETCH part.movimientos movPart "
                            + "LEFT JOIN movPart.almacen alm "
                            + "where alm.operacion=5 and part.ordenByIdOrden.idOrden="+Integer.parseInt(t_orden.getText()));
                        List partidas = query.list();
                            
                        Query query1 = session.createQuery("SELECT DISTINCT partEx FROM PartidaExterna partEx "
                            + "LEFT JOIN FETCH partEx.movimientos movEx "
                            + "LEFT JOIN movEx.almacen alm "
                            + "where alm.operacion=5 and partEx.pedido.partida.ordenByIdOrden.idOrden="+Integer.parseInt(t_orden.getText()));
                        List partidasExternas = query1.list();*/
                        String q1 = "SELECT DISTINCT part FROM Partida part "
                                + "LEFT JOIN FETCH part.movimientos movPart " + "LEFT JOIN movPart.almacen alm "
                                + "where alm.operacion=5 and part.ordenByIdOrden.idOrden="
                                + Integer.parseInt(t_orden.getText()) + complemento;

                        /*String q2="SELECT DISTINCT partEx FROM PartidaExterna partEx "
                            + "LEFT JOIN FETCH partEx.movimientos movEx "
                            + "LEFT JOIN movEx.almacen alm "
                            + "where alm.operacion=5 and partEx.pedido.partida.ordenByIdOrden.idOrden="+Integer.parseInt(t_orden.getText())+complemento2;*/
                        String q2 = "SELECT DISTINCT partEx FROM PartidaExterna partEx "
                                + "LEFT JOIN FETCH partEx.movimientos movEx " + "LEFT JOIN movEx.almacen alm "
                                + "where alm.operacion in (3, 5) and partEx.pedido.orden.idOrden="
                                + Integer.parseInt(t_orden.getText()) + complemento2;

                        Query query = session.createQuery(q1);
                        List partidas = query.list();

                        Query query1 = session.createQuery(q2);
                        List partidasExternas = query1.list();

                        model = new MyModel(partidas.size() + partidasExternas.size(), columnas, types);
                        t_datos.setModel(model);

                        for (int a = 0; a < partidas.size(); a++) {
                            Partida par = (Partida) partidas.get(a);
                            Movimiento[] mov = (Movimiento[]) par.getMovimientos().toArray(new Movimiento[0]);
                            double entregadas = 0, devueltas = 0;
                            for (int b = 0; b < mov.length; b++) {
                                Almacen alm = mov[b].getAlmacen();
                                if (alm.getTipoMovimiento() == 1 && alm.getOperacion() == 5)
                                    devueltas += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 2 && alm.getOperacion() == 5)
                                    entregadas += mov[b].getCantidad();
                            }
                            double total = entregadas - devueltas;
                            model.setValueAt(par.getIdPartida(), a, 0);
                            model.setValueAt(par.getIdEvaluacion() + "-" + par.getSubPartida(), a, 1);
                            if (par.getPedido() == null)
                                model.setValueAt("COM.", a, 2);
                            else
                                model.setValueAt("PED.", a, 2);
                            if (par.getEjemplar() != null)
                                model.setValueAt(par.getEjemplar().getIdParte(), a, 3);
                            else
                                model.setValueAt("", a, 3);
                            model.setValueAt(par.getCatalogo().getNombre(), a, 4);
                            model.setValueAt(par.getMed(), a, 5);
                            model.setValueAt(total, a, 6);
                            model.setValueAt(0.0d, a, 7);
                        }

                        for (int a = 0; a < partidasExternas.size(); a++) {
                            PartidaExterna par = (PartidaExterna) partidasExternas.get(a);
                            Movimiento[] mov = (Movimiento[]) par.getMovimientos().toArray(new Movimiento[0]);
                            double entregadas = 0, devueltas = 0;
                            for (int b = 0; b < mov.length; b++) {
                                Almacen alm = mov[b].getAlmacen();
                                if (alm.getTipoMovimiento() == 1 && alm.getOperacion() == 5)
                                    devueltas += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 2 && alm.getOperacion() == 5)
                                    entregadas += mov[b].getCantidad();
                            }
                            double total = entregadas - devueltas;
                            model.setValueAt(par.getIdPartidaExterna(), a + partidas.size(), 0);
                            //model.setValueAt(par.getPedido().getPartida().getIdEvaluacion()+"-"+par.getPedido().getPartida().getSubPartida(), a+partidas.size(), 1);
                            model.setValueAt("-", a + partidas.size(), 1);
                            model.setValueAt("ADI.", a + partidas.size(), 2);
                            if (par.getNoParte() != null)
                                model.setValueAt(par.getNoParte(), a + partidas.size(), 3);
                            else
                                model.setValueAt("", a + partidas.size(), 3);
                            //model.setValueAt(par.getPedido().getPartida().getCatalogo().getNombre()+"/"+par.getDescripcion(), a+partidas.size(), 4);
                            model.setValueAt(par.getDescripcion(), a + partidas.size(), 4);
                            model.setValueAt(par.getUnidad(), a + partidas.size(), 5);
                            model.setValueAt(total, a + partidas.size(), 6);
                            model.setValueAt(0.0d, a + partidas.size(), 7);
                        }
                    }
                    if (movimiento.compareTo("Salida") == 0) {
                        Class[] types = new Class[] { java.lang.String.class, java.lang.String.class,
                                java.lang.String.class, java.lang.String.class, java.lang.String.class,
                                java.lang.String.class, java.lang.Double.class, java.lang.Double.class,
                                java.lang.Double.class, java.lang.Boolean.class };
                        String[] columnas = new String[] { "Id", "Partida", "Tipo", "N Parte", "Descripcin",
                                "Medida", "Existencias", "Operario", "Entregadas", "Solicita" };
                        /*Query query = session.createQuery("SELECT DISTINCT part FROM Partida part "
                            + "LEFT JOIN FETCH part.movimientos movPart "
                            + "LEFT JOIN movPart.almacen alm "
                            + "where part.ordenByIdOrden.idOrden="+Integer.parseInt(t_orden.getText())
                            + " and alm!="+null);
                        List partidas = query.list();
                            
                        Query query1 = session.createQuery("SELECT DISTINCT partEx FROM PartidaExterna partEx "
                            + "LEFT JOIN FETCH partEx.movimientos movEx "
                            + "LEFT JOIN movEx.almacen alm "
                            + "where alm.operacion in (3, 5) and partEx.pedido.partida.ordenByIdOrden.idOrden="+Integer.parseInt(t_orden.getText()));
                        List partidasExternas = query1.list();*/

                        String q1 = "SELECT DISTINCT part FROM Partida part "
                                + "LEFT JOIN FETCH part.movimientos movPart " + "LEFT JOIN movPart.almacen alm "
                                + "where part.ordenByIdOrden.idOrden=" + Integer.parseInt(t_orden.getText())
                                + " and alm!=" + null + complemento;

                        /*String q2="SELECT DISTINCT partEx FROM PartidaExterna partEx "
                            + "LEFT JOIN FETCH partEx.movimientos movEx "
                            + "LEFT JOIN movEx.almacen alm "
                            + "where alm.operacion in (3, 5) and partEx.pedido.partida.ordenByIdOrden.idOrden="+Integer.parseInt(t_orden.getText())+complemento2;*/
                        String q2 = "SELECT DISTINCT partEx FROM PartidaExterna partEx "
                                + "LEFT JOIN FETCH partEx.movimientos movEx " + "LEFT JOIN movEx.almacen alm "
                                + "where alm.operacion in (3, 5) and partEx.pedido.orden.idOrden="
                                + Integer.parseInt(t_orden.getText()) + complemento2;

                        Query query = session.createQuery(q1);
                        List partidas = query.list();

                        Query query1 = session.createQuery(q2);
                        List partidasExternas = query1.list();

                        model = new MyModel(partidas.size() + partidasExternas.size(), columnas, types);
                        t_datos.setModel(model);
                        for (int a = 0; a < partidas.size(); a++) {
                            Partida par = (Partida) partidas.get(a);
                            Movimiento[] mov = (Movimiento[]) par.getMovimientos().toArray(new Movimiento[0]);
                            double entradas = 0, devoluciones = 0, entregadas = 0, devueltas = 0;
                            for (int b = 0; b < mov.length; b++) {
                                Almacen alm = mov[b].getAlmacen();
                                //Entradas por pedido interno
                                if (alm.getTipoMovimiento() == 1 && alm.getOperacion() == 1)
                                    entradas += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 2 && alm.getOperacion() == 1)
                                    devoluciones += mov[b].getCantidad();
                                //entrada por compaia
                                if (alm.getTipoMovimiento() == 1 && alm.getOperacion() == 4)
                                    entradas += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 2 && alm.getOperacion() == 4)
                                    devoluciones += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 1 && alm.getOperacion() == 5)
                                    devueltas += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 2 && alm.getOperacion() == 5)
                                    entregadas += mov[b].getCantidad();
                            }
                            double total_Pedido = entradas - devoluciones;
                            double total_operario = entregadas - devueltas;
                            double total = total_Pedido - total_operario;
                            model.setValueAt(par.getIdPartida(), a, 0);
                            model.setValueAt(par.getIdEvaluacion() + "-" + par.getSubPartida(), a, 1);
                            if (par.getPedido() == null)
                                model.setValueAt("COM.", a, 2);
                            else
                                model.setValueAt("PED.", a, 2);
                            if (par.getEjemplar() != null)
                                model.setValueAt(par.getEjemplar().getIdParte(), a, 3);
                            else
                                model.setValueAt("", a, 3);
                            model.setValueAt(par.getCatalogo().getNombre(), a, 4);
                            model.setValueAt(par.getMed(), a, 5);
                            model.setValueAt(total, a, 6);
                            model.setValueAt(total_operario, a, 7);
                            model.setValueAt(0.0d, a, 8);
                            //model.setValueAt(par.getPerdidases().size(), a, 9);
                            model.setValueAt(par.getOp(), a, 9);
                        }
                        for (int a = 0; a < partidasExternas.size(); a++) {
                            PartidaExterna par = (PartidaExterna) partidasExternas.get(a);
                            Movimiento[] mov = (Movimiento[]) par.getMovimientos().toArray(new Movimiento[0]);
                            double entradas = 0, devoluciones = 0, entregadas = 0, devueltas = 0;
                            for (int b = 0; b < mov.length; b++) {
                                Almacen alm = mov[b].getAlmacen();
                                if (alm.getTipoMovimiento() == 1 && alm.getOperacion() == 3)
                                    entradas += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 2 && alm.getOperacion() == 3)
                                    devoluciones += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 1 && alm.getOperacion() == 5)
                                    devueltas += mov[b].getCantidad();
                                if (alm.getTipoMovimiento() == 2 && alm.getOperacion() == 5)
                                    entregadas += mov[b].getCantidad();
                            }
                            double total_Pedido = entradas - devoluciones;
                            double total_operario = entregadas - devueltas;
                            double total = total_Pedido - total_operario;
                            model.setValueAt(par.getIdPartidaExterna(), a + partidas.size(), 0);
                            //model.setValueAt(par.getPedido().getPartida().getIdEvaluacion()+"-"+par.getPedido().getPartida().getSubPartida(), a+partidas.size(), 1);
                            model.setValueAt("-", a + partidas.size(), 1);
                            model.setValueAt("ADI.", a + partidas.size(), 2);
                            if (par.getNoParte() != null)
                                model.setValueAt(par.getNoParte(), a + partidas.size(), 3);
                            else
                                model.setValueAt("", a + partidas.size(), 3);
                            //model.setValueAt(par.getPedido().getPartida().getCatalogo().getNombre()+"/"+par.getDescripcion(), a+partidas.size(), 4);
                            model.setValueAt(par.getDescripcion(), a + partidas.size(), 4);
                            model.setValueAt(par.getUnidad(), a + partidas.size(), 5);
                            model.setValueAt(total, a + partidas.size(), 6);
                            model.setValueAt(total_operario, a + partidas.size(), 7);
                            model.setValueAt(0.0d, a + partidas.size(), 8);
                            //model.setValueAt(0, a+partidas.size(), 9);
                            model.setValueAt(par.getOp(), a + partidas.size(), 9);
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (session != null)
            if (session.isOpen())
                session.close();
        formatoTabla();
    }

private void tabla_tamaos()
{
    TableColumnModel col_model = t_datos.getColumnModel();
    DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();
    tcr.setHorizontalAlignment(SwingConstants.RIGHT);
    FormatoEditor fe=new FormatoEditor();
    t_datos.setDefaultEditor(Double.class, fe);
    for (int i=0; i<t_datos.getColumnCount(); i++)
    {
        TableColumn column = col_model.getColumn(i);
        switch(i)
        {
            case 0:
                column.setPreferredWidth(10);
                break;
            case 1:
                column.setPreferredWidth(10);
                break;
            case 2:
                column.setPreferredWidth(10);
                break;
            case 3:
                column.setPreferredWidth(100);
                break;
            case 4:               
                column.setPreferredWidth(350);
                break;
            case 5:               
                column.setPreferredWidth(50);
                break;
            case 6:               
                column.setPreferredWidth(50);
                break;
            case 7:               
                column.setPreferredWidth(50);
                break;
            case 8:               
                column.setPreferredWidth(50);
                break;
            default:
                column.setPreferredWidth(50);
                break; 
        }
    }
    JTableHeader header = t_datos.getTableHeader();
    header.setBackground(new java.awt.Color(90,66,126));
    header.setForeground(Color.white);
}

    public class MyModel extends DefaultTableModel {
        Class[] types;
        int ren = 0;
        int col = 0;
        private List celdaEditable;

        public MyModel(int renglones, String columnas[], Class[] tipos) {
            types = tipos;
            ren = renglones;
            col = columnas.length;
            celdaEditable = new ArrayList();
            for (int x = 0; x < renglones; x++) {
                List aux = new ArrayList();
                for (int y = 0; y < types.length; y++)
                    aux.add(false);
                celdaEditable.add(aux);
            }
            setDataVector(new Object[renglones][columnas.length], columnas);
        }
    }
}