package optipalette.ui.model; import com.ownyx.table.ORTableModel; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Query; import optipalette.entities.Client; import optipalette.entities.Echange; import optipalette.entities.TypePalette; /** * * @author mr */ public class StatClientModel extends ORTableModel { List echanges = fetchList(null, null); String[] cols = {"Date", "N° Ordre", "Référence", "Type palette", "Enlevées", "Laissées", "Chèque", "N° Chèque", "Validité"}; public StatClientModel() { super(); echanges = fetchList(null, null); List columnsClass = new ArrayList(); setColumnsClass(columnsClass); for (int i = 0; i < cols.length; i++) { columnsClass.add(Object.class); } columnsClass.set(0, Date.class); columnsClass.set(7, Date.class); } public void updateTable(Client client, TypePalette typePalette) { echanges = fetchList(client, typePalette); fireTableDataChanged(); } public int getRowCount() { if (echanges != null) { return echanges.size(); } else { return 0; } } public int getColumnCount() { return cols.length; } @Override public String getColumnName(int column) { return cols[column]; } public Object getValueAt(int rowIndex, int columnIndex) { Echange echange = (Echange) echanges.get(rowIndex); switch (columnIndex) { case 0: return echange.getMouvement().getDateMouvement(); case 1: return echange.getMouvement().getOrdre(); case 2: return echange.getMouvement().getReference(); case 3: return echange.getTypePalette().getNom(); case 4: return echange.getNombrePaletteEnlevee(); case 5: return echange.getNombrePaletteLaissee(); case 6: if (echange.getMouvement().getChequeCollection().iterator().hasNext()) { return echange.getMouvement().getChequeCollection().iterator().next().getNombrePalette(); } case 7: if (echange.getMouvement().getChequeCollection().iterator().hasNext()) { return echange.getMouvement().getChequeCollection().iterator().next().getNumero(); } case 8: if (echange.getMouvement().getChequeCollection().iterator().hasNext()) { return echange.getMouvement().getChequeCollection().iterator().next().getValidite(); } default: return ""; } } public List fetchList(Client client, TypePalette typePalette) { List list = null; EntityManagerFactory emf = javax.persistence.Persistence.createEntityManagerFactory("OptiPalettePU"); EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); try { if (!(client == null || typePalette == null)) { Query query = em.createQuery( "select e from Echange e " + "where e.client = :client " + "and e.typePalette = :type_palette " + "order by e.mouvement.dateMouvement desc"); query.setParameter("client", client); query.setParameter("type_palette", typePalette); list = query.getResultList(); } } catch (Exception e) { e.printStackTrace(); em.getTransaction().rollback(); } finally { em.close(); } return list; } }