package it.acxent.art; import it.acxent.anag.Clifor; import it.acxent.db.ApplParmFull; import it.acxent.db.DBAdapter; import it.acxent.db.ResParm; import it.acxent.db.WcString; import it.acxent.util.StringTokenizer; import it.acxent.util.Vectumerator; import java.io.Serializable; import java.sql.PreparedStatement; import java.sql.SQLException; public class ArticoloCliente extends DBAdapter implements Serializable { private static final long serialVersionUID = 1607681273276L; private long id_articoloCliente; private long id_clifor; private long id_articolo; private long id_articoloVariante; private long id_tipo; private String indiciTipo; private Clifor clifor; private Articolo articolo; private ArticoloVariante articoloVariante; private Tipo tipo; public ArticoloCliente(ApplParmFull newApplParmFull) { super(newApplParmFull); } public ArticoloCliente() {} public void setId_articoloCliente(long newId_articoloCliente) { this.id_articoloCliente = newId_articoloCliente; } public void setId_clifor(long newId_clifor) { this.id_clifor = newId_clifor; setClifor(null); } public void setId_articolo(long newId_articolo) { this.id_articolo = newId_articolo; setArticolo(null); } public void setId_articoloVariante(long newId_articoloVariante) { this.id_articoloVariante = newId_articoloVariante; setArticoloVariante(null); } public void setId_tipo(long newId_tipo) { this.id_tipo = newId_tipo; setTipo(null); } public long getId_articoloCliente() { return this.id_articoloCliente; } public long getId_clifor() { return this.id_clifor; } public long getId_articolo() { return this.id_articolo; } public long getId_articoloVariante() { return this.id_articoloVariante; } public long getId_tipo() { return this.id_tipo; } public void setClifor(Clifor newClifor) { this.clifor = newClifor; } public Clifor getClifor() { this.clifor = (Clifor)getSecondaryObject(this.clifor, Clifor.class, getId_clifor()); return this.clifor; } public void setArticolo(Articolo newArticolo) { this.articolo = newArticolo; } public Articolo getArticolo() { this.articolo = (Articolo)getSecondaryObject(this.articolo, Articolo.class, getId_articolo()); return this.articolo; } public void setArticoloVariante(ArticoloVariante newArticoloVariante) { this.articoloVariante = newArticoloVariante; } public ArticoloVariante getArticoloVariante() { this.articoloVariante = (ArticoloVariante)getSecondaryObject(this.articoloVariante, ArticoloVariante.class, getId_articoloVariante()); return this.articoloVariante; } public void setTipo(Tipo newTipo) { this.tipo = newTipo; } public Tipo getTipo() { this.tipo = (Tipo)getSecondaryObject(this.tipo, Tipo.class, getId_tipo()); return this.tipo; } protected ResParm checkDeleteCascade() { return new ResParm(true); } protected void deleteCascade() {} public Vectumerator findByCR(ArticoloClienteCR CR, int pageNumber, int pageRows) { String s_Sql_Find = "select A.* from ARTICOLO_CLIENTE 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 String getDescrizioneCompleta() { if (getId_tipo() > 0L) return "Tipo: " + getTipo().getDescrizioneCompletaSpaces("it"); if (getId_articolo() > 0L) return "Articolo: " + getArticolo().getDescrizioneCompleta(); if (getId_articoloVariante() > 0L) return "Variante: " + getArticoloVariante().getDescrizioneCompleta(); return "Errore!!"; } public Vectumerator findByClifor(long l_id_clifor) { String s_Sql_Find = "select A.* from ARTICOLO_CLIENTE AS A LEFT JOIN TIPO AS T ON A.id_tipo=T.id_tipo left join ARTICOLO as AR on A.id_articolo=AR.id_articolo left join ARTICOLO_VARIANTE as AV on A.id_articoloVariante=AV.id_articoloVariante"; String s_Sql_Order = " order by T.descrizione, AR.nome, AV.nomeV\t"; WcString wc = new WcString(); wc.addWc("A.id_clifor=" + l_id_clifor); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); return findRows(stmt); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public ResParm save() { ResParm rp = super.save(); if (rp.getStatus()) if (getId_tipo() > 0L && !getTipo().isFoglia()) { Vectumerator vec = getTipo().findFigli(0, 0); while (vec.hasMoreElements()) { Tipo row = (Tipo)vec.nextElement(); ArticoloCliente ac = new ArticoloCliente(getApFull()); ac.setId_clifor(getId_clifor()); ac.setId_tipo(row.getId_tipo()); ac.save(); } } return rp; } protected void prepareSave(PreparedStatement ps) throws SQLException { if (getId_tipo() > 0L) { setId_articolo(0L); setId_articoloVariante(0L); setIndiciTipo(getTipo().getIndici()); } else if (getId_articolo() > 0L) { setId_articoloVariante(0L); } super.prepareSave(ps); } public String getIndiciTipo() { return (this.indiciTipo == null) ? "" : this.indiciTipo; } public void setIndiciTipo(String indiciTipo) { this.indiciTipo = indiciTipo; } }