package it.acxent.tex.anag; import it.acxent.art.Componente; import it.acxent.db.ApplParmFull; import it.acxent.db.DBAdapter; import it.acxent.db.ResParm; import it.acxent.db.WcString; import it.acxent.util.DoubleOperator; import it.acxent.util.StringTokenizer; import it.acxent.util.Vectumerator; import java.io.Serializable; import java.sql.PreparedStatement; import java.sql.SQLException; public class ArticoloTessutoComponente extends DBAdapter implements Serializable { private static final long serialVersionUID = 1468228166638L; private long id_articoloTessutoComponente; private long id_componente; private long id_articoloTessuto; private double percentuale; private Componente componente; private ArticoloTessuto articoloTessuto; public ArticoloTessutoComponente(ApplParmFull newApplParmFull) { super(newApplParmFull); } public ArticoloTessutoComponente() {} public void setId_articoloTessutoComponente(long newId_articoloTessutoComponente) { this.id_articoloTessutoComponente = newId_articoloTessutoComponente; } public void setId_componente(long newId_componente) { this.id_componente = newId_componente; setComponente(null); } public void setId_articoloTessuto(long newId_articoloTessuto) { this.id_articoloTessuto = newId_articoloTessuto; setArticoloTessuto(null); } public void setPercentuale(double newPercentuale) { this.percentuale = newPercentuale; } public long getId_articoloTessutoComponente() { return this.id_articoloTessutoComponente; } public long getId_componente() { return this.id_componente; } public long getId_articoloTessuto() { return this.id_articoloTessuto; } public double getPercentuale() { return this.percentuale; } public void setComponente(Componente newComponente) { this.componente = newComponente; } public Componente getComponente() { this.componente = (Componente)getSecondaryObject(this.componente, Componente.class, getId_componente()); return this.componente; } public void setArticoloTessuto(ArticoloTessuto newArticoloTessuto) { this.articoloTessuto = newArticoloTessuto; } public ArticoloTessuto getArticoloTessuto() { this.articoloTessuto = (ArticoloTessuto)getSecondaryObject(this.articoloTessuto, ArticoloTessuto.class, getId_articoloTessuto()); return this.articoloTessuto; } protected ResParm checkDeleteCascade() { return new ResParm(true); } protected void deleteCascade() {} public Vectumerator findByCR(ArticoloTessutoComponenteCR CR, int pageNumber, int pageRows) { String s_Sql_Find = "select A.* from ARTICOLO_TESSUTO_COMPONENTE AS A"; String s_Sql_Order = ""; WcString wc = new WcString(); if (!CR.getSearchTxt().trim().isEmpty()) { StringTokenizer st = new StringTokenizer(CR.getSearchTxt().trim(), " "); StringBuffer txt = new StringBuffer("("); while (st.hasMoreTokens()) { String token = st.nextToken(); txt.append("(A.Cognome like '%" + token + "%' or A.Nome like '%" + token + "%')"); if (st.hasMoreTokens()) txt.append(" and "); } txt.append(")"); wc.addWc(txt.toString()); } try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); return findRows(stmt, pageNumber, pageRows); } catch (SQLException e) { removeCPConnection(); handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public double getTotPercentualeByArticoloTessuto(long l_id_articoloTessuto) { String s_Sql_Find = "select sum(percentuale) as _sum from ARTICOLO_TESSUTO_COMPONENTE AS A"; String s_Sql_Order = ""; WcString wc = new WcString(); wc.addWc(" A.id_articoloTessuto = " + l_id_articoloTessuto); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); return getSum(stmt); } catch (SQLException e) { removeCPConnection(); handleDebug(e); return 0.0D; } } public ResParm save() { ResParm rp = isSalvabile(); if (rp.getStatus()) return super.save(); return rp; } private ResParm isSalvabile() { boolean checkComponente = false; DoubleOperator dop = new DoubleOperator(); ArticoloTessutoComponente afc = new ArticoloTessutoComponente(getApFull()); if (getId_articoloTessuto() == 0L) return new ResParm(false, "ERRORE! Tessuto non valido!"); if (getPercentuale() == 0.0D) return new ResParm(false, "ERRORE! Percentuale non valida!"); Vectumerator vec = afc.findByArticoloTessuto(getId_articoloTessuto()); while (vec.hasMoreElements()) { afc = (ArticoloTessutoComponente)vec.nextElement(); if (afc.getId_componente() == getId_componente()) checkComponente = true; dop.add(afc.getPercentuale()); } dop.add(getPercentuale()); if (dop.getResult() <= 100.0D && !checkComponente) return new ResParm(true); if (dop.getResult() > 100.0D) return new ResParm(false, "ERRORE! Percentuale errata!"); return new ResParm(false, "ERRORE! Componente giĆ  selezionato!"); } public Vectumerator findByArticoloTessuto(long l_id_articoloTessuto) { String s_Sql_Find = "select A.* from ARTICOLO_TESSUTO_COMPONENTE AS A"; String s_Sql_Order = ""; WcString wc = new WcString(); wc.addWc(" A.id_articoloTessuto = " + l_id_articoloTessuto); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); return findRows(stmt, 0, 0); } catch (SQLException e) { removeCPConnection(); handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } }