package it.acxent.contab; import it.acxent.anag.Clifor; import it.acxent.anag.Iva; import it.acxent.anag.IvaInterface; import it.acxent.anag.MagFisico; import it.acxent.art.Articolo; import it.acxent.art.ArticoloCR; import it.acxent.art.ArticoloFornitore; import it.acxent.art.ArticoloProgettista; import it.acxent.art.ArticoloTaglia; import it.acxent.art.ArticoloUsato; import it.acxent.art.ArticoloVariante; import it.acxent.art.Reparto; import it.acxent.art.TipologiaArticolo; import it.acxent.cc.Attivita; import it.acxent.db.ApplParmFull; import it.acxent.db.DbInterface; import it.acxent.db.OrString; import it.acxent.db.ResParm; import it.acxent.db.WcString; import it.acxent.fattele.FEDettaglioLineeInterface; import it.acxent.fattele.FEScontoMaggiorazione; import it.acxent.fattele.FEScontoMaggiorazioneInterface; import it.acxent.mail.MailMessage; import it.acxent.newsletter.CodaMessaggi; import it.acxent.tex.anag.ArticoloArticoloTessuto; import it.acxent.tex.anag.ArticoloFilato; import it.acxent.tex.anag.ArticoloFilatoColore; import it.acxent.tex.anag.ArticoloFilatoColoreRitorto; import it.acxent.tex.anag.ArticoloTessuto; import it.acxent.tex.anag.ArticoloTessutoColore; import it.acxent.tex.anag.FaseLavorazione; import it.acxent.tex.anag.Pezza; import it.acxent.tex.anag.Telaio; import it.acxent.tex.conf.NumeroTeliRiga; import it.acxent.tex.lav.LavPezza; import it.acxent.util.AbMessages; import it.acxent.util.DoubleOperator; import it.acxent.util.FileWr; import it.acxent.util.StringTokenizer; import it.acxent.util.Vectumerator; import java.io.File; import java.io.Serializable; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; public class RigaDocumento extends _ContabAdapter implements Serializable, FEDettaglioLineeInterface, RigaDocumentoInterface { private static final long serialVersionUID = 5978813491971046901L; public static final long CODICE_RIGA_0_PRINCIPALE = 0L; public static final long CODICE_RIGA_1_SECONDARIA = 1L; public static final long CODICE_RIGA_100_DISPO_TAGLIO = 100L; public static final long TIPO_RICERCA_SOLO_MAGAZZINO = 0L; public static final long TIPO_RICERCA_MAGAZZINO_INTERNO = 1L; public static final long TIPO_RICERCA_MAGAZZINO_ESTERNO = 2L; public static final long TIPO_RICERCA_MAGAZZINO_INTERNO_E_ESTERNO = 3L; public static final long STATO_DA_ORDINARE = 0L; public static final long STATO_ORDINATO_TUTTO = 10L; public static final long STATO_ORDINATO_PARZIALE = 15L; public static final long STATO_ARRIVATO_PARZIALE = 20L; public static final long STATO_ARRIVATO_TUTTO = 30L; public static final long STATO_CHIUSO = 40L; private long id_rigaDocumento; private long id_documento; private long ordineRiga; private long id_articoloVariante; private long id_iva = getCodiceIvaVendStd(); private long id_magFisico; private long id_articoloTaglia; private String serialeSost; private double imponibile; private double sconto; private double quantita; private String descrizioneRiga; private String descrizioneCodiceRiga; private String notaBarcode; private Documento documento; private Articolo articolo; private ArticoloVariante articoloVariante; private Iva iva; private MagFisico magFisico; private ArticoloTaglia articoloTaglia; private double quantitaOld; private long flgRigaPrelevata; private double quantitaPrelevata; private double quantitaAssociata; private long flgSingleLineArt; private double prezzoPubblicoConIva; private Reparto reparto; private double importo; private long segnoMov; private long flgCodiceRiga; private long flgPrenotazioneArrivata; private String seriale; private Documento documentoPadre; private long id_documentoPadre; private long id_rigaDocumentoPadre; private long id_articolo; private String notaRigaDocumento; private long flgIgnoraPrenotazione; private double kg; private double mt; private double nr; private long qtaSlipStampate; private long statoPrenotazione; private double qtaSaldoMovimento; private CausaleMagazzino causaleMagazzino; private Clifor clifor; private long id_causaleMagazzino; private long id_clifor; private long flgReso; private long flgDaCancellare; private long flgStatoLavorazioneRiga; private long id_rigaDocumentoMov; private long id_rigaDocumentoPrelevata; private RigaDocumento rigaDocumentoPrelevata; private long id_articoloFilato; private long id_articoloFilatoColore; private ArticoloFilatoColore articoloFilatoColore; private ArticoloFilatoColoreRitorto articoloFilatoColoreRitorto; private long id_pezza; private Pezza pezza; private long id_faseLavorazione; private FaseLavorazione faseLavorazione; private long id_articoloTessuto; private ArticoloTessuto articoloTessuto; private long id_articoloPrecedente; private double percL1; private double percL2; private double percL3; private String codiceCartellinoIniziale; private double metriStacchi; private long rifTipoArticolo = 1L; private long id_reparto; private long stacchi; private String codiceCartellinoStart; private String codiceCartellinoStop; private long numColpiDM; private long flgUdm; private long colpoFinaleRiga; private long colpoInizialeRiga; private long id_articoloTessutoColore; private ArticoloTessutoColore articoloTessutoColore; private long capiPerTelo; private long id_telaio; private Telaio telaio; private Timestamp tsFineLavorazioneRiga; private Timestamp tsInizioLavorazioneRiga; private long numTeliRiga; private long flgMov; private NumeroTeliRiga numeroTeliRiga; private double nrOriginale; private String descrizioneRigaRaggruppamento; private String descrizioneRigaDettaglio; private String flgDescPadreGenerazioneRiga; private long ordine; private long id_articoloFilatoColoreRitorto; private long id_rigaDocumentoTessutoA; private RigaDocumento rigaDocumentoTessutoA; public String getDescrizioneCodiceRiga() { if (getId_articoloTaglia() > 0L) return getArticoloTaglia().getCodiceAT(); if (getId_articoloVariante() > 0L) return getArticoloVariante().getCodiceVariante(); if (getId_articolo() > 0L) return getArticolo().getCodice(); return (this.descrizioneCodiceRiga == null) ? "" : this.descrizioneCodiceRiga.trim(); } public void setDescrizioneCodiceRiga(String descrizioneCodiceRiga) { this.descrizioneCodiceRiga = descrizioneCodiceRiga; } public String getFlgDescPadreGenerazioneRiga() { return (this.flgDescPadreGenerazioneRiga == null) ? "" : this.flgDescPadreGenerazioneRiga.trim(); } public void setFlgDescPadreGenerazioneRiga(String flgDescPadreGenerazioneRiga) { this.flgDescPadreGenerazioneRiga = flgDescPadreGenerazioneRiga; } public long getCapiPerTelo() { return this.capiPerTelo; } public void setCapiPerTelo(long capiPerTelo) { this.capiPerTelo = capiPerTelo; } public long getNumColpiDM() { return this.numColpiDM; } public void setNumColpiDM(long numColpiMetro) { this.numColpiDM = numColpiMetro; } public RigaDocumento(ApplParmFull newApplParmFull) { super(newApplParmFull); } public void setId_rigaDocumento(long newId_rigaDocumento) { this.id_rigaDocumento = newId_rigaDocumento; } public void setId_documento(long newId_documento) { this.id_documento = newId_documento; setDocumento(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_iva(long newId_iva) { this.id_iva = newId_iva; setIva(null); } public void setId_magFisico(long newId_magFisico) { this.id_magFisico = newId_magFisico; setMagFisico(null); } public void setId_articoloTaglia(long newId_taglia) { this.id_articoloTaglia = newId_taglia; setArticoloTaglia(null); } public void setSeriale(String newSeriale) { this.seriale = newSeriale; } public void setImponibile(double newImponibile) { this.imponibile = newImponibile; } public void setFlgUdm(long newFlgUdm) { this.flgUdm = newFlgUdm; } public void setQuantita(double newQuantita) { if (getParm("USA_MAGAZZINO").isFalse()) { long l_flgUdm; if (getId_articoloVariante() > 0L || getId_articolo() > 0L) { l_flgUdm = getArticolo().getTipologiaArticolo().getFlgUdm(); } else if (getId_articoloFilatoColore() > 0L) { l_flgUdm = getArticoloFilatoColore().getTipologiaArticolo().getFlgUdm(); } else if (getId_articoloTessutoColore() > 0L) { l_flgUdm = getArticoloTessutoColore().getArticoloTessuto().getTipologiaArticolo().getFlgUdm(); } else if (getId_articoloTessuto() > 0L) { l_flgUdm = getArticoloTessuto().getTipologiaArticolo().getFlgUdm(); } else { l_flgUdm = 1L; } if (l_flgUdm == 1L) { setNr(newQuantita); } else if (l_flgUdm == 3L) { setMt(newQuantita); } else if (l_flgUdm == 2L) { setKg(newQuantita); } } this.quantita = newQuantita; } public void setDescrizioneRiga(String newDescrizioneRiga) { this.descrizioneRiga = newDescrizioneRiga; } public void setNotaRigaDocumento(String newNoteRiga) { this.notaRigaDocumento = newNoteRiga; } public long getId_rigaDocumento() { return this.id_rigaDocumento; } public long getId_documento() { return this.id_documento; } public long getId_articolo() { return this.id_articolo; } public long getId_articoloVariante() { return this.id_articoloVariante; } public long getId_iva() { return this.id_iva; } public long getId_magFisico() { return this.id_magFisico; } public long getId_articoloTaglia() { return this.id_articoloTaglia; } public String getSeriale() { return (this.seriale == null) ? "" : this.seriale.trim(); } public double getImponibile() { if (getFlgReso() == 1L) return -Math.abs(this.imponibile); return this.imponibile; } public long getFlgUdm() { long l_flgUdm = 0L; if (getId_articoloVariante() > 0L || getId_articolo() > 0L) { l_flgUdm = getArticolo().getTipologiaArticolo().getFlgUdm(); } else if (getId_articoloFilatoColore() > 0L) { l_flgUdm = getArticoloFilatoColore().getTipologiaArticolo().getFlgUdm(); } else if (getId_articoloTessutoColore() > 0L) { l_flgUdm = getArticoloTessutoColore().getArticoloTessuto().getTipologiaArticolo().getFlgUdm(); } else if (getId_articoloTessuto() > 0L) { l_flgUdm = getArticoloTessuto().getTipologiaArticolo().getFlgUdm(); } if (l_flgUdm == 0L) { if (this.flgUdm == 0L) return 1L; return this.flgUdm; } return l_flgUdm; } public String getQuantitaMagazzinoHtml() { if (getId_articoloVariante() == 0L) return getArticolo().getQuantitaMagazzinoMovimentoHtml(); return getArticoloVariante().getQuantitaMagazzinoMovimentoHtml(); } public String getQuantitaRigaHtml() { StringBuilder sb = new StringBuilder(); sb.append(getUdmQuantita()); if (getQuantitaAssociata() > 0.0D) { sb.append(" "); sb.append(getQuantitaAssociata()); sb.append(" "); } if (getQuantitaPrelevata() > 0.0D) { sb.append(" "); sb.append(getQuantitaPrelevata()); sb.append(" "); } return sb.toString(); } public String getDescrizioneRiga() { return (this.descrizioneRiga == null) ? "" : this.descrizioneRiga.trim(); } public String getDescrizioneRigaCompleta() { String star, sn; if (getId_articolo() != 0L || getId_articoloFilatoColore() != 0L) { star = ""; } else { star = ""; } if (getId_articoloFilatoColore() != 0L) { sn = " lotto: "; } else { sn = " s/n: "; } if (getSeriale().isEmpty()) return getDescrizioneRiga() + getDescrizioneRiga(); return getDescrizioneRiga() + getDescrizioneRiga() + star + sn; } public String getNotaRigaDocumento() { return (this.notaRigaDocumento == null) ? "" : this.notaRigaDocumento.trim(); } public void setDocumento(Documento newDocumento) { this.documento = newDocumento; } public Documento getDocumento() { this.documento = (Documento)getSecondaryObject(this.documento, Documento.class, getId_documento()); return this.documento; } 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 setIva(Iva newIva) { this.iva = newIva; } public Iva getIva() { this.iva = (Iva)getSecondaryObject(this.iva, Iva.class, getId_iva()); return this.iva; } public void setMagFisico(MagFisico newMagFisico) { this.magFisico = newMagFisico; } public MagFisico getMagFisico() { this.magFisico = (MagFisico)getSecondaryObject(this.magFisico, MagFisico.class, getId_magFisico()); return this.magFisico; } public void setArticoloTaglia(ArticoloTaglia newArticoloTaglia) { this.articoloTaglia = newArticoloTaglia; } public ArticoloTaglia getArticoloTaglia() { this.articoloTaglia = (ArticoloTaglia)getSecondaryObject(this.articoloTaglia, ArticoloTaglia.class, getId_articoloTaglia()); return this.articoloTaglia; } protected void deleteCascade() { if (getFlgCodiceRiga() == 0L) { delete("delete from NUMERO_TELI_RIGA where id_rigaDocumentoArticolo=" + getId_rigaDocumento()); update("update LAV_PEZZA set id_rigaDocumentoBolla=null where id_rigaDocumentoBolla=" + getId_rigaDocumento()); } else if (getFlgCodiceRiga() == 1L) { delete("delete from NUMERO_TELI_RIGA where id_rigaDocumentoTessuto=" + getId_rigaDocumento()); } new RigaDocumentoProgettista(getApFull()).deleteByRigaDocumento(getId_rigaDocumento()); ResParm rp = update("update RIGA_DOCUMENTO set id_rigaDocumentoPadre=null where id_rigaDocumentoPadre=" + getId_rigaDocumento()); rp = update("update RIGA_DOCUMENTO set id_rigaDocumentoMov=null where id_rigaDocumentoMov=" + getId_rigaDocumento()); rp = update("update RIGA_DOCUMENTO set id_rigaDocumentoPrelevata=null where id_rigaDocumentoPrelevata=" + getId_rigaDocumento()); rp = update("update LAV_PEZZA set id_rigaDocumentoBolla=null where id_rigaDocumentoBolla=" + getId_rigaDocumento()); } public Vectumerator findByCROld(RigaDocumentoCR CR, int pageNumber, int pageRows) { if (CR.getFlgTipoRicerca() == 1L) return findCompattaByCR(CR, pageNumber, pageRows); boolean flgOttimizzo = true; if (pageNumber == 0 && pageRows == 0) flgOttimizzo = false; StringBuffer s_Sql_Find = new StringBuffer("select A.* from RIGA_DOCUMENTO AS A INNER JOIN DOCUMENTO AS B ON A.id_documento=B.id_documento "); s_Sql_Find.append(" INNER JOIN TIPO_DOCUMENTO AS C ON B.id_tipoDocumento=C.id_tipoDocumento "); String s_Sql_Order = " order by B.dataDocumento desc, B.id_documentoFiglio desc "; if (CR.getFlgOrderBy() == 5L) s_Sql_Order = " order by B.dataDocumento asc "; WcString wc = new WcString(); findByCRCreateWC(CR, s_Sql_Find, wc); try { PreparedStatement stmt; if ((pageNumber == 0 && pageRows == 0) || !flgOttimizzo) { stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find) + wc.toString()); } else { if (pageNumber == 0) pageNumber = 1; int start = (pageNumber - 1) * pageRows; int stop = start + pageRows; stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find) + wc.toString() + " limit " + s_Sql_Order + "," + start); } findByCRCreateStmtDate(CR, stmt); if ((pageNumber == 0 && pageRows == 0) || !flgOttimizzo) { Vectumerator vectumerator = findRows(stmt, pageNumber, pageRows); if (!CR.getFlgReport().isEmpty()) creaFileCvs(vectumerator, CR); return vectumerator; } Vectumerator vec = findRows(stmt, 1, pageRows); vec.setPageNumber(pageNumber); vec.setTotNumberOfRecords(findByCRTotRecord(CR)); if (!CR.getFlgReport().isEmpty()) creaFileCvs(vec, CR); return vec; } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findByDocumentoPerSlip(long l_id_documento) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A left join ARTICOLO AS B on A.id_articolo=B.id_articolo "; String s_Sql_order = " order by A.id_rigaDocumento desc"; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); wc.addWc("A.quantita>coalesce(qtaSlipStampate,0)"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public double getTotImportoRM() { if (getIva().getFlgTipo().equals("R")) { if (getSconto() > 0.0D) { DoubleOperator temp = new DoubleOperator(100.0F); temp.setScale(4, 5); temp.subtract(getSconto()); temp.multiply(getTotImponibileRiga()); temp.divide(100.0F); temp.setScale(2, 5); return temp.getResult(); } return getTotImponibileRiga(); } return 0.0D; } public double getTotImportoRMRighe(long l_id_documento) { Vectumerator vec = findByDocumento(l_id_documento, 0L, "", 0, 0, 1); DoubleOperator temp = new DoubleOperator(); while (vec.hasMoreElements()) RigaDocumento row = (RigaDocumento)vec.nextElement(); return temp.getResult(); } public double getTotIvaRiga4() { DoubleOperator l_iva = new DoubleOperator(getTotImponibileRigaConSconto()); if (!getIva().getFlgTipo().equals("R")) { l_iva.setScale(4, 5); l_iva.multiply(getIva().getAliquota()); l_iva.divide(100.0F); } else { l_iva = new DoubleOperator(0.0F); } return l_iva.getResult(); } public double getTotCostoUsato() { DoubleOperator temp = new DoubleOperator(getArticolo().getCostoAcquisto()); temp.multiply(getQuantita()); temp.setScale(3, 5); return temp.getResult(); } public double getTotImponibileRigaConScontoOLD() { if (!getIva().getFlgTipo().equals("R")) { if (getSconto() == 0.0D && getPercL1() == 0.0D && getPercL2() == 0.0D && getPercL3() == 0.0D) return getTotImponibileRiga(); if (getSconto() > 0.0D) { DoubleOperator doubleOperator = new DoubleOperator(100.0F); doubleOperator.setScale(4, 5); doubleOperator.subtract(getSconto()); doubleOperator.multiply(getTotImponibileRiga()); doubleOperator.divide(100.0F); doubleOperator.setScale(2, 5); return doubleOperator.getResult(); } DoubleOperator temp = new DoubleOperator(100.0F); temp.setScale(4, 5); double imponibile = getTotImponibileRiga(); if (getPercL1() > 0.0D) { temp.subtract(getPercL1()); temp.multiply(imponibile); temp.divide(100.0F); imponibile = temp.getResult(); } if (getPercL2() > 0.0D) { temp = new DoubleOperator(100.0F); temp.subtract(getPercL2()); temp.multiply(imponibile); temp.divide(100.0F); imponibile = temp.getResult(); } if (getPercL3() > 0.0D) { temp = new DoubleOperator(100.0F); temp.subtract(getPercL3()); temp.multiply(imponibile); temp.divide(100.0F); } temp.setScale(2, 5); return temp.getResult(); } return getTotImponibileRiga(); } public double getSconto() { return this.sconto; } public void setSconto(double sconto) { this.sconto = sconto; } public static String getUdm(long l_flgUdm) { return TipologiaArticolo.getUdm(l_flgUdm); } public String getUdm() { return getUdm(getFlgUdm()); } public String getUdmQuantita() { return getUdm() + " " + getUdm(); } public ResParm deleteMov() { if (getId_rigaDocumentoMov() > 0L) return super.delete(); return new ResParm(false, "ERRORE! Tentativo di cancellare riga documento tramite deleteMov!!!"); } private static final synchronized ResParm deleteMagArticolo(RigaDocumento rd) { ResParm rp = new ResParm(true); rp = deleteUsato(rd); if (rp.getStatus()) { if (rd.getArticolo().usaMagazzino() && rd.getDocumento().getTipoDocumento().getFlgMovMagazzino() != 0L && rd.getDocumento().getFlgStato() == 1L && rd.getDocumento().getFlgStatoOrdineWww() != 99L) { DoubleOperator dop = new DoubleOperator((float)rd.getDocumento().getTipoDocumento().getFlgMovMagazzino()); dop.multiply(-1); dop.multiply(rd.getNr()); dop.add(rd.getArticolo().getQuantita()); rd.getArticolo().setQuantita(dop.getResult()); rd.getArticolo().handleQuantitaDebugBeforeSave("rigaDocumento.deleteMagArticolo"); rp = rd.getArticolo().superSave(); } if (rp.getStatus()) rp.append(rd.superDelete()); } return rp; } private static final synchronized ResParm deleteUsato(RigaDocumento rd) { ResParm rp = new ResParm(true); if (rd.getArticolo().getFlgUsato() > 0L) { Documento doc = rd.getDocumento(); long l_id_documento = rd.getId_documento(); if (doc.getTipoDocumento().getFlgUsato() == 1L) { if (rd.getArticolo().isArticoloUsatoVenduto()) { ArticoloUsato au = new ArticoloUsato(rd.getApFull()); Vectumerator vec = au.findByRigaDocumento(rd.getId_rigaDocumento()); while (vec.hasMoreElements()) { au = (ArticoloUsato)vec.nextElement(); if (au.getId_rigaDocumento() == rd.getId_rigaDocumento()) { Articolo articolo = au.getArticolo(); rp = au.delete(); if (rp.getStatus()) { articolo.setFlgEscludiWebArt(0L); articolo.save(); } continue; } rp.setStatus(false); rp.setMsg("ERRORE! Impossibile eliminare, esistono movimenti successivi dell'articolo " + rd.getId_articolo() + "!"); } } else { rp.setStatus(false); rp.setMsg("ERRORE! Impossibile eliminare, esistono movimenti successivi dell'articolo " + rd.getId_articolo() + "!"); } } else if (!rd.getArticolo().isArticoloUsatoVenduto()) { ArticoloUsato au = new ArticoloUsato(rd.getApFull()); Vectumerator vec = au.findByRigaDocumento(rd.getId_rigaDocumento()); while (vec.hasMoreElements()) { au = (ArticoloUsato)vec.nextElement(); if (au.getId_rigaDocumento() == rd.getId_rigaDocumento()) { Articolo articolo = au.getArticolo(); rp = au.delete(); if (rp.getStatus()) { articolo.setFlgEscludiWebArt(1L); articolo.save(); } continue; } rp.setStatus(false); rp.setMsg("ERRORE! Impossibile eliminare, esistono movimenti successivi dell'articolo " + rd.getId_articolo() + "!"); } } else { rp.setStatus(false); rp.setMsg("ERRORE! Impossibile eliminare, esistono movimenti successivi dell'articolo " + rd.getId_articolo() + "!"); } } return rp; } public ResParm delete() { if (getId_rigaDocumento() == 0L) return new ResParm(false, "ATTENZIONE! Tentativo di cancellare una riga documento nulla!!!"); ResParm rp = getDocumento().checkEMSTA(); if (!rp.getStatus()) return new ResParm(false, "ATTENZIONE! Tentativo di cancellare una riga documento: " + rp.getMsg()); if (getParm("USA_MAGAZZINO").isTrue()) return deleteMagArticolo(this); synchronized (this) { rp = deleteUsato(this); if (rp.getStatus()) { if (getId_articolo() > 0L && (getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoArrivo() > 0L || getDocumento().getTipoDocumento().getCausaleMagazzino().getFlgPartenzaInterno() == 1L || getDocumento().getTipoDocumento().getCausaleMagazzino().getFlgPartenzaLavorazione() == 1L)) { RigaDocumento rd = new RigaDocumento(getApFull()); if (rd.getDocumento().getTipoDocumento().getCausaleMagazzino().isMagArrivo()) { rd.findMagDisponibilitaPuntualeMagazziniInterni(getId_articolo(), getId_articoloVariante(), getId_articoloTaglia(), getSeriale(), 0L); if (rd.getQuantita() < getQuantita()) return new ResParm(false, "ERRORE RD! Quantità non più disponibile in magazzino. E' stato effettuato uno scarico!"); } rd = new RigaDocumento(getApFull()); rd.findRigaImpegnoBySeriale(getId_articolo(), getId_articoloVariante(), getSeriale()); if (rd.getDBState() == 1) return new ResParm(false, "ERRORE! Esiste una prenotazione per questo seriale!"); } RigaDocumento bean = (RigaDocumento)clone(); if (getDocumento().getTipoDocumento().getFlgTipologia() == 3L) { RigaDocumentoPM rdPM = new RigaDocumentoPM(getApFull()); rdPM.findByRigaDocumento(getId_rigaDocumento()); if (rdPM.getDBState() == 1) rdPM.delete(); } if (getDocumento().getTipoDocumento().getFlgTipologia() == 4L) { RigaDocumentoPM rdPM = new RigaDocumentoPM(getApFull()); Vectumerator vec = rdPM.findByRigaDocumentoPrelevata(getId_rigaDocumento()); while (vec.hasMoreElements()) { DbInterface row = (DbInterface)vec.nextElement(); row.delete(); } } if (getDocumento().getTipoDocumento().getFlgTipologia() == 0L && getDocumento() .getTipoDocumento().getFlgClienteFornitore().equals("C")) { LavPezza rowLP = new LavPezza(getApFull()); Vectumerator vecLP = rowLP.findByRigaDocumentoBolla(getId_rigaDocumento()); while (vecLP.hasMoreElements()) { LavPezza row = (LavPezza)vecLP.nextElement(); row.setId_rigaDocumentoBolla(0L); row.save(); } } if (getDocumento().isDocumentoFiglioCreabile()) { Vectumerator vecRDFigli = new RigaDocumento(getApFull()).findByDocumentoPadre(getId_documento(), 0, 0); while (vecRDFigli.hasMoreElements()) { RigaDocumento rowFiglio = (RigaDocumento)vecRDFigli.nextElement(); rowFiglio.setId_documentoPadre(0L); rowFiglio.setId_rigaDocumentoPadre(0L); rowFiglio.superSave(); } } String sql_delete_mov = "DELETE FROM RIGA_DOCUMENTO WHERE id_rigaDocumentoMov=" + getId_rigaDocumento(); rp = delete(sql_delete_mov); if (rp.getStatus()) { long l_id_articolo = getId_articolo(); long l_id_articoloVariante = getId_articoloVariante(); long l_id_articoloTaglia = getId_articoloTaglia(); long l_id_articoloFilatoColore = getId_articoloFilatoColore(); long l_id_articoloTessuto = getId_articoloTessuto(); long l_id_articoloTessutoColore = getId_articoloTessutoColore(); rp = super.delete(); setId_articolo(getId_articolo()); setId_articoloVariante(l_id_articoloVariante); setId_articoloTaglia(l_id_articoloTaglia); setId_articoloFilatoColore(l_id_articoloFilatoColore); setId_articoloTessuto(l_id_articoloTessuto); setId_articoloTessutoColore(l_id_articoloTessutoColore); rp = aggiornaDispo(); } if (rp.getStatus()) { if (bean.getId_rigaDocumentoPadre() != 0L) { RigaDocumento beanPadre = new RigaDocumento(getApFull()); beanPadre.findByPrimaryKey(bean.getId_rigaDocumentoPadre()); beanPadre.setFlgRigaPrelevata(0L); rp = beanPadre.superSave(); Documento doc = new Documento(getApFull()); doc.findByPrimaryKey(beanPadre.getId_documento()); doc.setDataChiusura(null); doc.setFlgDocumentoPrelevato(0L); doc.superSave(); } if (bean.getDocumento().getTipoDocumento().getId_causaleMagazzino() > 0L || bean.getDocumento().getTipoDocumento().getFlgTipologia() == 4L) bean.checkStatoPrenotazione(); } } return rp; } } public void calcolaStatoLavorazioneRiga() { if (getId_telaio() == 0L) { setFlgStatoLavorazioneRiga(0L); setTsInizioLavorazioneRiga(null); setTsFineLavorazioneRiga(null); setColpoFinaleRiga(0L); setColpoInizialeRiga(0L); } else { if (getColpoInizialeRiga() > 0L) { if (getTsInizioLavorazioneRiga() == null) setTsInizioLavorazioneRiga(getTimestamp()); } else { setTsInizioLavorazioneRiga(null); setTsFineLavorazioneRiga(null); setColpoFinaleRiga(0L); } if (getColpoInizialeRiga() > 0L && getColpoFinaleRiga() > 0L) { setFlgStatoLavorazioneRiga(100L); if (getTsFineLavorazioneRiga() == null) setTsFineLavorazioneRiga(getTimestamp()); } else if (getColpoInizialeRiga() > 0L) { setFlgStatoLavorazioneRiga(20L); } else { setFlgStatoLavorazioneRiga(10L); } } } public ResParm save() { ResParm rp = getDocumento().checkEMSTA(); if (!rp.getStatus()) { rp.setInfoMsg(rp.getMsg()); return rp; } long l_id_articoloPrecedente = getId_articoloPrecedente(); calcolaStatoLavorazioneRiga(); rp = synchroSave(this); if (rp.getStatus()) { rp = aggiornaDispo(); if (getDocumento().isFatturaONotaDiCredito()) { if (getId_rigaDocumento() > 0L) new RigaDocumentoProgettista(getApFull()).deleteByRigaDocumento(getId_rigaDocumento()); Vectumerator vecPro = getArticolo().getProgettistiArticolo(); while (vecPro.hasMoreElements()) { ArticoloProgettista rowAP = (ArticoloProgettista)vecPro.nextElement(); RigaDocumentoProgettista da = new RigaDocumentoProgettista(getApFull()); da.setId_rigaDocumento(getId_rigaDocumento()); da.setId_cliforRDA(rowAP.getId_progettista()); da.setPercRDA(rowAP.getPercProvvigione()); da.save(); } } if (getDocumento().getTipoDocumento().getFlgUsato() == 1L && getArticolo().getFlgUsato() > 0L) { ArticoloUsato au = new ArticoloUsato(getApFull()); Vectumerator vecAu = au.findByRigaDocumento(getId_rigaDocumento()); while (vecAu.hasMoreElements()) ((DbInterface)vecAu.nextElement()).delete(); au.setId_articolo(getId_articolo()); au.setDataDocumento(getDocumento().getDataDocumento()); au.setNumeroDocumento(getDocumento().getNumeroDocumento()); if (!getDocumento().getTipoDocumento().isNotaCreditoVendita()) { au.setFlgTipoDocumento(2L); } else { au.setFlgTipoDocumento(3L); } au.setId_rigaDocumento(getId_rigaDocumento()); au.setId_cliente(getDocumento().getId_clifor()); au.setImporto(getImponibile()); rp = au.save(); if (rp.getStatus()) if (getDocumento().getTipoDocumento().isNotaCreditoVendita()) { au.getArticolo().setFlgEscludiWebArt(0L); } else { au.getArticolo().setFlgEscludiWebArt(1L); } au.getArticolo().save(); } } return rp; } private ResParm aggiornaDispo() { if (getId_articolo() > 0L && getArticolo().usaMagazzino()) return aggiornaDispo(getApFull(), getId_articolo(), getId_articoloVariante(), getId_articoloTaglia(), getLastUpdId_user()); if (getId_articoloTessuto() > 0L && getArticoloTessuto().usaMagazzino()) return aggiornaDispoTessuto(getApFull(), getId_articoloTessuto(), getId_articoloTessutoColore(), getLastUpdId_user()); if (getId_articoloFilatoColore() > 0L && getArticoloFilatoColore().usaMagazzino()) return aggiornaDispoFilato(getApFull(), getId_articoloFilatoColore(), getLastUpdId_user()); return new ResParm(true); } public ResParm saveFilato() { ResParm rp = synchroSaveFilato(this); if (rp.getStatus()) if (getArticoloFilatoColore().usaMagazzino()) rp = aggiornaDispoFilato(getApFull(), getId_articoloFilatoColore(), getLastUpdId_user()); return rp; } public ResParm saveTessuto() { ResParm rp = synchroSaveTessuto(this); if (rp.getStatus()) if (getArticoloTessuto().usaMagazzino()) rp = aggiornaDispoTessuto(getApFull(), getId_articoloTessuto(), getId_articoloTessutoColore(), getLastUpdId_user()); return rp; } public double getQuantitaOld() { return this.quantitaOld; } public void setQuantitaOld(double quantitaOld) { this.quantitaOld = quantitaOld; } protected void fillFields(ResultSet rst) { super.fillFields(rst); if (getParm("USA_MAGAZZINO").isTrue()) setQuantitaOld(getQuantita()); setId_articoloPrecedente(getId_articolo()); try { resetRstColumns(); if (isColumnInResultSet(rst, "id_articoloFilato")) { setId_articoloFilato(rst.getLong("id_articoloFilato")); } else if (isColumnInResultSet(rst, "id_articoloTessutoColore")) { setId_articoloTessutoColore(rst.getLong("id_articoloTessutoColore")); } } catch (SQLException e) { e.printStackTrace(); } try { if (getDocumento().getTipoDocumento().getFlgImportoIva() == 1L) setPrezzoPubblicoConIva(getImporto()); } catch (Exception e) { String temp = "######### RIGADOCUMENTO FILLFIELD EXCEPTION ######\n"; temp = temp + "id_rigadocumento: " + temp + " id_documento: " + getId_rigaDocumento() + "\n"; temp = temp + "AP: " + temp + "\n"; System.out.println(temp); e.printStackTrace(); System.out.println("***************************************************************"); handleDebug(temp + "*********************************", 0); } } protected void initFields() { super.initFields(); setQuantitaOld(0.0D); setId_iva(getCodiceIvaVendStd()); setStatoPrenotazione(-1L); setId_articoloFilato(0L); setId_articoloPrecedente(0L); setRifTipoArticolo(1L); setNumeroTeliRiga(null); } public String getDescrizioneTipoMovimento() { if (getFlgReso() == 1L) return "RESO"; return getDocumento().getTipoDocumento().getCausaleMagazzino().getDescrizione(); } protected void prepareSave(PreparedStatement ps) throws SQLException { if (getDocumento().getTipoDocumento().getFlgTipologia() == 201L); if (getDocumento().getTipoDocumento().getFlgTipologia() == 200L) if (getDocumento().getFlgBarcodeType() != 100L) if (!getCodiceCartellinoIniziale().isEmpty()) try { if (getDocumento().getFlgBarcodeType() == 0L) { String start = getCodiceCartellinoIniziale().substring(0, getCodiceCartellinoIniziale().length()); String pre = start.substring(0, start.length() - (int)getDocumento().getFlgBarcodeSequenzaNumeri()); long numeroIniziale = Long.valueOf( start.substring(start.length() - (int)getDocumento().getFlgBarcodeSequenzaNumeri(), start.length())); long numeroFinale = numeroIniziale + getStacchi() - 1L; setCodiceCartellinoStart(pre + pre); setCodiceCartellinoStop(pre + pre); } else if (getDocumento().getFlgBarcodeType() == 1L) { String start = getCodiceCartellinoIniziale().substring(0, getCodiceCartellinoIniziale().length() - 1); String pre = start.substring(0, start.length() - (int)getDocumento().getFlgBarcodeSequenzaNumeri()); long numeroIniziale = Long.valueOf( start.substring(start.length() - (int)getDocumento().getFlgBarcodeSequenzaNumeri(), start.length())); long numeroFinale = numeroIniziale + getStacchi() - 1L; setCodiceCartellinoStart(pre + pre); setCodiceCartellinoStop(pre + pre); } } catch (Exception e) {} if (getStacchi() > 0L && getMetriStacchi() > 0.0D) { DoubleOperator dop = new DoubleOperator((float)getStacchi()); dop.multiply(getMetriStacchi()); dop.setScale(2, 5); setMt(dop.getResult()); } if (getDocumento().getTipoDocumento().getFlgImportoIva() == 1L) { setImporto(getPrezzoPubblicoConIva()); setImponibile(Documento.scorporaIva(getPrezzoPubblicoConIva(), getIva())); } else { setImporto(getImportoCalc()); } super.prepareSave(ps); } public MagFisico getMagFisicoPartenza() { return getDocumento().getTipoDocumento().getCausaleMagazzino().getMagFisicoPartenza(); } public MagFisico getMagFisicoArrivo() { return getDocumento().getTipoDocumento().getCausaleMagazzino().getMagFisicoArrivo(); } public long getFlgSingleLineArt() { return this.flgSingleLineArt; } public void setFlgSingleLineArt(long flgSingleLineArt) { this.flgSingleLineArt = flgSingleLineArt; } public void findFirstByDocumentoArticoloVariante(long l_id_documento, long l_id_articoloVariante) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_order = ""; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); wc.addWc("A.id_articoloVariante=" + l_id_articoloVariante); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); findFirstRecord(stmt); } catch (Exception e) { handleDebug(e, 0); } } public void addQuantita(double l_quantita) { DoubleOperator dop = new DoubleOperator(getQuantita()); dop.add(l_quantita); setQuantita(dop.getResult()); setQuantitaUdm(dop.getResult()); } public String getCashStringSiemens() { if (getImportoConSconto() != 0.0D) { StringBuffer temp = new StringBuffer(); String sep = "|"; if (getQuantita() > 1.0D) { temp.append("KX" + (int)getQuantita() + "* "); temp.append(sep); } String importo = getNf2().format(getImportoConSconto()); importo = importo.replace(".", ""); importo = importo.replace(",", ""); String reparto = getReparto().getSigla() + getReparto().getSigla(); if (reparto.isEmpty()) reparto = "R9VARIE.."; if (getImportoConSconto() < 0.0D) { temp.append("KX- "); temp.append(sep); String rigaSconto = getDescrizioneRiga(); if (rigaSconto.length() > 11) rigaSconto = rigaSconto.substring(0, 11); temp.append("KX" + importo.substring(1) + "GE" + rigaSconto); } else { temp.append("KX" + importo + reparto); } if (!getNotaRigaDocumento().isEmpty()) { temp.append(sep); temp.append("KXSE" + subString(getNotaRigaDocumento(), 24)); } if (isDescScontrinoFull()) { temp.append(sep); if (getId_articoloVariante() != 0L) { temp.append("KXSE" + subString(getArticoloVariante().getDescrizioneCompleta(), 24)); } else { temp.append("KXSE" + subString(getArticolo().getDescrizioneCompleta(), 24)); } if (!getSeriale().isEmpty()) { temp.append(sep); temp.append("KXSES/N" + getSeriale()); } } if (getIva().getAliquota() == 0L) { temp.append(sep); temp.append("KXSE" + getIva().getDescrizione()); } return temp.toString(); } return ""; } public double getTotImportoRigaConSconto() { DoubleOperator temp = new DoubleOperator(getImportoConSconto()); temp.multiply(getQuantita()); temp.setScale(3, 5); return temp.getResult(); } public double getImportoConSconto() { if (getSconto() == 0.0D && getPercL1() == 0.0D && getPercL2() == 0.0D && getPercL3() == 0.0D) return getImporto(); DoubleOperator temp = new DoubleOperator(getImporto()); temp.setScale(4, 5); temp.subtract(getImportoSconto()); temp.setScale(2, 5); return temp.getResult(); } public double getImponibileRigaConSconto() { if (!getIva().getFlgTipo().equals("R")) { if (getSconto() > 0.0D) { DoubleOperator temp = new DoubleOperator(100.0F); temp.setScale(4, 5); temp.subtract(getSconto()); temp.multiply(getImponibile()); temp.divide(100.0F); temp.setScale(2, 5); return temp.getResult(); } return getImponibile(); } return 0.0D; } protected ResParm aggiornaCostoUltimoFornitore() { ResParm rp = new ResParm(true); if (getId_articolo() == 0L && getId_articoloTessuto() == 0L) return rp; long l_id_clifor = 0L; if (getDocumento().getTipoDocumento().getFlgClienteFornitore().equals("F")) l_id_clifor = getDocumento().getId_clifor(); if (l_id_clifor != 0L && getImponibile() > 0.0D && (getId_articolo() > 0L || getId_articoloTessuto() > 0L)) { ArticoloFornitore af = new ArticoloFornitore(getApFull()); if (getId_articolo() > 0L) { af.findByFornitoreArticolo(l_id_clifor, getId_articolo(), -1L); } else if (getId_articoloTessuto() > 0L) { af.findByArticoloTessutoFornitore(l_id_clifor, getId_articoloTessuto()); } af.setId_articolo(getId_articolo()); af.setId_articoloVariante(getId_articoloVariante()); af.setId_articoloTessuto(getId_articoloTessuto()); af.setId_articoloTessutoColore(getId_articoloTessutoColore()); af.setId_clifor(getDocumento().getId_clifor()); af.setCostoVecchio(af.getCostoTotale()); af.setCosto(getImponibile()); af.setDataUltimoPrezzo(getDocumento().getDataDocumento()); rp = af.save(); if (getId_articolo() > 0L) { getArticolo().aggiornaUltimoCosto(getImponibile(), getDocumento().getDataDocumento()); } else if (getId_articoloTessuto() > 0L) { } } return rp; } public String getDescrizione() { if (getId_articoloTaglia() != 0L) return getArticoloTaglia().getDescrizioneCompleta(); if (getId_articoloVariante() == 0L) return getArticolo().getNome(); return getArticoloVariante().getNomeV(); } public void findFirstByDocumentoArticolo(long l_id_documento, long l_id_articolo) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_order = ""; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); wc.addWc("A.id_articolo=" + l_id_articolo); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); findFirstRecord(stmt); } catch (Exception e) { handleDebug(e, 0); } } public Vectumerator findRighePrelevabiliByDocumento(Documento l_documento, int pageNumber, int pageRows) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A , DOCUMENTO AS B"; String s_Sql_order = ""; WcString wc = new WcString(); wc.addWc("A.id_documento=B.id_documento"); wc.addWc("B.flgStato =1"); wc.addWc("A.flgRigaPrelevata !=1"); if (l_documento.getId_clifor() == 0L) return AB_EMPTY_VECTUMERATOR; if (!l_documento.getTipoDocumento().getFlgClienteFornitore().equals("A")) wc.addWc("B.id_clifor=" + l_documento.getId_clifor()); Vectumerator vectumerator = l_documento.getTipoDocumento().findDocPrel(0L, 0, 0); if (!vectumerator.hasMoreElements()) return AB_EMPTY_VECTUMERATOR; OrString or = new OrString(); while (vectumerator.hasMoreElements()) { DocPrel row = (DocPrel)vectumerator.nextElement(); or.addOr("B.id_tipoDocumento=" + row.getId_tipoDocumentoPrel()); } wc.addWc(or.toString()); Vectumerator vec = findByDocumento(l_documento.getId_documento(), -1L, "", 0, 0, 0); if (!vec.hasMoreElements()) return AB_EMPTY_VECTUMERATOR; or = new OrString(); while (vec.hasMoreElements()) { RigaDocumento row = (RigaDocumento)vec.nextElement(); if (row.getId_articoloVariante() == 0L) { or.addOr("A.id_articolo=" + row.getId_articolo()); continue; } or.addOr("A.id_articoloVariante=" + row.getId_articoloVariante()); } wc.addWc(or.toString()); wc.addWc(" B.dataDocumento <= ? "); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); stmt.setDate(1, l_documento.getDataDocumento()); return findRows(stmt, pageNumber, pageRows); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public String getCashStringNonFiscale() { StringBuffer temp = new StringBuffer(); String sep = "|"; temp.append("KXCB"); if (getQuantita() > 1.0D) temp.append("" + (int)getQuantita() + "* "); if (getId_articoloVariante() != 0L) { temp.append(subString(getArticoloVariante().getDescrizioneCompleta(), 24)); } else if (getId_articolo() != 0L) { temp.append(subString(getArticolo().getDescrizioneCompleta(), 24)); } else { temp.append(subString(getDescrizioneRiga(), 24)); } if (!getNotaRigaDocumento().isEmpty()) { temp.append(sep); temp.append("KXSE" + subString(getNotaRigaDocumento(), 24)); } temp.append(sep); return temp.toString(); } public long getTotalePezzeStacchiByDocumento(long l_id_documento) { String s_Sql_Find = "select sum(A.stacchi) as _sum from RIGA_DOCUMENTO AS A"; WcString wc = new WcString(); if (l_id_documento == 0L) return 0L; wc.addWc("A.id_documento=" + l_id_documento); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); return (long)getSum(stmt); } catch (Exception e) { handleDebug(e, 0); return 0L; } } public double getQtaPrenotazioneAssegnata(long l_id_articolo, long l_id_articoloVariante) { String s_Sql_Find = "select sum(A.quantita) as _sum from RIGA_DOCUMENTO AS A, DOCUMENTO AS B"; WcString wc = new WcString(); wc.addWc("A.id_documento=B.id_documento"); wc.addWc("A.flgPrenotazioneArrivata =1"); if (l_id_articolo != 0L) wc.addWc("A.id_articolo =" + l_id_articolo); if (l_id_articoloVariante != 0L) wc.addWc("A.id_articoloVariante =" + l_id_articoloVariante); wc.addWc("B.flgStatoPrenotazione<=20"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); return getSum(stmt); } catch (Exception e) { handleDebug(e, 0); return 0.0D; } } public void setQuantitaPrelevata(double quantitaPrelevata) { this.quantitaPrelevata = quantitaPrelevata; } public double getQuantitaRimanente() { DoubleOperator dop = new DoubleOperator(getQuantita()); dop.subtract(getQuantitaPrelevata()); return dop.getResult(); } private static synchronized ResParm addRigaDocumentoP(RigaDocumento rd, RigaDocumentoP row) { RigaDocumentoP bean = new RigaDocumentoP(rd.getApFull()); RigaDocumentoPKey theKey = new RigaDocumentoPKey(row.getId_rigaDocumento(), row.getId_rigaDocumentoPrelevata()); bean.findByKey(theKey); row.setDBState(bean.getDBState()); ResParm rp = row.save(); return rp; } public ResParm addRigaDocumentoP(RigaDocumentoP row) { return addRigaDocumentoP(this, row); } public ResParm delRigaDocumentoP(RigaDocumentoP row) { return delRigaDocumentoP(this, row); } public ResParm addRigaDocumentoPM(RigaDocumentoPM row) { return addRigaDocumentoPM(this, row); } public ResParm delRigaDocumentoPM(RigaDocumentoPM row) { return delRigaDocumentoPM(this, row); } public void aggiornaQuantitaPrelevata() { RigaDocumentoP rdp = new RigaDocumentoP(getApFull()); setQuantitaPrelevata(rdp.getQuantitaPrelevatoByRigaDocumentoPrelevata(getId_rigaDocumento())); if (getQuantitaPrelevata() >= getQuantita() && getQuantitaPrelevata() > 0.0D && getQuantita() > 0.0D) setFlgRigaPrelevata(1L); superSave(); } private static synchronized ResParm delRigaDocumentoP(RigaDocumento rd, RigaDocumentoP row) { RigaDocumentoP bean = new RigaDocumentoP(rd.getApFull()); RigaDocumentoPKey theKey = new RigaDocumentoPKey(row.getId_rigaDocumento(), row.getId_rigaDocumentoPrelevata()); bean.findByKey(theKey); return bean.delete(); } public double getQuantitaAssociata() { return this.quantitaAssociata; } public void setQuantitaAssociata(double quantitaAssociata) { this.quantitaAssociata = quantitaAssociata; } public void aggiornaQuantitaAssociata() { String s_Sql_Find = "select sum(A.quantitaPrelevata) as _sum from RIGA_DOCUMENTO_P AS A"; WcString wc = new WcString(); wc.addWc("A.id_rigaDocumento=" + getId_rigaDocumento()); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); setQuantitaAssociata(getSum(stmt)); superSave(); } catch (Exception e) { handleDebug(e, 0); } } public long getFlgRigaPrelevata() { return this.flgRigaPrelevata; } public void setFlgRigaPrelevata(long flgRigaPrelevata) { this.flgRigaPrelevata = flgRigaPrelevata; } public boolean isAllRighePrelevateByDocumento(long l_id_documento) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A"; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); wc.addWc("(A.id_rigaDocumentoMov=0 or A.id_rigaDocumentoMov is null)"); wc.addWc("(A.flgRigaPrelevata is null or A.flgRigaPrelevata=0)"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); Vectumerator vec = findRows(stmt, 1, 1); if (vec.hasMoreElements()) return false; return true; } catch (Exception e) { handleDebug(e, 0); return false; } } public double getPrezzoPubblicoConIva() { return this.prezzoPubblicoConIva; } public void setPrezzoPubblicoConIva(double prezzoPubblicoConIva) { this.prezzoPubblicoConIva = prezzoPubblicoConIva; } public double getImportoCalc() { if (getId_iva() != 0L) { DoubleOperator ppi = new DoubleOperator(getImponibile()); ppi.setScale(4, 5); ppi.multiply(getIva().getAliquota()); ppi.divide(100.0F); ppi.add(getImponibile()); ppi.setScale(2, 5); return ppi.getResult(); } return getImponibile(); } public long getId_reparto() { if (this.id_reparto == 0L && getId_articolo() != 0L) return getArticolo().getTipo().getId_reparto(); return this.id_reparto; } public Reparto getReparto() { this.reparto = (Reparto)getSecondaryObject(this.reparto, Reparto.class, getId_reparto()); return this.reparto; } public void setId_reparto(long id_reparto) { this.id_reparto = id_reparto; setReparto(null); } public void setReparto(Reparto reparto) { this.reparto = reparto; } public double getImporto() { if (getId_articolo() == 0L) return this.importo; if (getArticolo().getFlgNegativo() == 1L || getFlgReso() == 1L) return -Math.abs(this.importo); return Math.abs(this.importo); } public void setImporto(double importo) { this.importo = importo; } public Vectumerator findRigheDocumentoPrelevateDaStornare() { String s_Sql_Find = "select * from riga_documento where flgRigaPrelevata=1 and quantitaPrelevata!=nr"; try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find); return findRows(stmt); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public ResParm savexAggiornaCostoUltimoFornitore() { synchronized (this) { ResParm rp = aggiornaCostoUltimoFornitore(); return rp; } } public Vectumerator findVenditeGiornaliere(DocumentoCR CR, long l_id_docCassa) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A left join ARTICOLO AS C on A.id_articolo=C.id_articolo left join TIPO AS D on C.id_tipo=D.id_tipo left join REPARTO AS E on A.id_reparto=E.id_reparto , DOCUMENTO AS B "; String s_Sql_Order = " order by B.dataDocumento, E.descrizione, D.descrizione, A.descrizioneRiga, A.notaBarcode "; WcString wc = new WcString(); wc.addWc("A.id_documento=B.id_documento"); wc.addWc("B.id_tipoDocumento= " + l_id_docCassa); if (CR.getId_tipo() > 0L) wc.addWc("(C.id_tipo=" + CR.getId_tipo() + " or D.indici like'%:" + CR.getId_tipo() + ":%')"); wc.addWc("B.dataDocumento>=?"); wc.addWc("B.dataDocumento<=?"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); int dataCount = 1; stmt.setDate(dataCount, CR.getDataDocumentoDa()); dataCount++; stmt.setDate(dataCount, CR.getDataDocumentoA()); return findRows(stmt); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public ResParm deleteNOMAG() { synchronized (this) { Vectumerator vec = new RigaDocumentoP(getApFull()).findByRigaDocumento(getId_rigaDocumento(), 0, 0); while (vec.hasMoreElements()) { DbInterface row = (DbInterface)vec.nextElement(); row.delete(); } ResParm rp = super.delete(); return rp; } } public ResParm superSave() { return super.save(); } public String getDescrizioneMovimentoMagazzino() { String temp; if (getFlgReso() == 1L) { temp = getMagFisicoArrivo().getDescrizione() + "-->" + getMagFisicoArrivo().getDescrizione(); } else { temp = getMagFisicoPartenza().getDescrizione() + "-->" + getMagFisicoPartenza().getDescrizione(); } if (temp.equals("-->")) return ""; return temp; } public double getQuantitaImpegnataByArticolo(long l_id_articolo) { RigaDocumentoCR CR = new RigaDocumentoCR(getApFull()); RigaDocumento bean = new RigaDocumento(getApFull()); CR.setFlgTipologia(4L); CR.setFlgRigaPrelevata(0L); CR.setFlgStatoPrenotazione(200L); CR.setId_articolo(l_id_articolo); CR.setFlgTipoRicerca(0L); Vectumerator vec = bean.findByCR(CR, 0, 0); DoubleOperator dop = new DoubleOperator(); while (vec.hasMoreElements()) { RigaDocumento row = (RigaDocumento)vec.nextElement(); dop.add(row.getQuantita()); dop.subtract(row.getQuantitaPrelevata()); } return dop.getResult(); } public double getQuantitaImpegnataFilatoByArticoloFilatoColoreSeriale(long l_id_articoloFilatoColore, long l_id_articoloFilato, long l_id_coloreFilato, String l_seriale) { MagFisico mf = new MagFisico(getApFull()); mf.findMagazzinoOrdinato(); RigaDocumento rd = new RigaDocumento(getApFull()); rd.findMagFilatoDisponibilitaPuntuale(l_id_articoloFilatoColore, l_id_articoloFilato, l_id_coloreFilato, l_seriale, mf.getId_magFisico(), 0L, 0L, "C"); return rd.getQuantita(); } public double getQuantitaImpegnataTessutoByArticoloTessutoColoreSeriale(long l_id_articoloTessutoColore, long l_id_articoloTessuto, long l_id_coloreTessuto, String l_seriale) { MagFisico mf = new MagFisico(getApFull()); mf.findMagazzinoOrdinato(); RigaDocumento rd = new RigaDocumento(getApFull()); rd.findMagTessutoDisponibilita(l_id_articoloTessuto, l_id_articoloTessutoColore, l_seriale, mf.getId_magFisico(), 0L, -1L, 0L, "C", DATA_NULL); return rd.getQuantita(); } public double getQuantitaInArrivoByArticolo(long l_id_articolo) { MagFisico mf = new MagFisico(getApFull()); mf.findMagazzinoOrdinato(); if (mf.getId_magFisico() > 0L) { RigaDocumento rd = new RigaDocumento(getApFull()); rd.findMagDisponibilitaPuntuale(l_id_articolo, 0L, 0L, null, mf.getId_magFisico(), 0L, 0L); return rd.getQuantita(); } return 0.0D; } public double getQuantitaFilatoInArrivoByArticoloFilatoColoreSeriale(long l_id_articoloFilatoColore, long l_id_articolofilato, long l_id_colore, String l_seriale) { MagFisico mf = new MagFisico(getApFull()); mf.findMagazzinoOrdinato(); if (mf.getId_magFisico() > 0L) { RigaDocumento rd = new RigaDocumento(getApFull()); rd.findMagFilatoDisponibilitaPuntuale(l_id_articoloFilatoColore, l_id_articolofilato, l_id_colore, l_seriale, mf.getId_magFisico(), 0L, 0L, "F"); return rd.getQuantita(); } return 0.0D; } public double getQuantitaTessutoInArrivoByArticoloTessutoColoreSeriale(long l_id_articoloTessutoColore, long l_id_articoloTessuto, long l_id_colore, String l_seriale) { MagFisico mf = new MagFisico(getApFull()); mf.findMagazzinoOrdinato(); if (mf.getId_magFisico() > 0L) { RigaDocumento rd = new RigaDocumento(getApFull()); rd.findMagTessutoDisponibilita(l_id_articoloTessuto, l_id_articoloTessutoColore, l_seriale, mf.getId_magFisico(), 0L, -1L, 0L, "F", DATA_NULL); return rd.getQuantita(); } return 0.0D; } public double getQuantitaTessutoLavorazioneByArticoloTessutoColoreSeriale(long l_id_articoloTessutoColore, long l_id_articoloTessuto, long l_id_colore, String l_seriale) { RigaDocumento rd = new RigaDocumento(getApFull()); rd.findMagTessutoDisponibilita(l_id_articoloTessuto, l_id_articoloTessutoColore, l_seriale, 0L, 0L, 20L, 0L, "", DATA_NULL); return rd.getQuantita(); } public double getQuantitaInArrivoByArticoloM(long l_id_articolo) { MagFisico mf = new MagFisico(getApFull()); mf.findMagazzinoOrdinato(); Movimento mov = new Movimento(getApFull()); mov.findDisponibilitaPuntuale(l_id_articolo, 0L, 0L, null, mf.getId_magFisico(), 0L); return mov.getQuantita(); } public double[] getQtaOrdinataPrelevataByRigaPrenotazione() { double[] res = { 0.0D, 0.0D }; if (getId_rigaDocumento() == 0L) return res; String s_Sql_Find = "SELECT Sum(A.quantita) as quantita, Sum(A.quantitaPrelevata) AS quantitaPrelevata FROM RIGA_DOCUMENTO as A inner join RIGA_DOCUMENTO_P_M AS B ON A.id_rigaDocumento=B.id_rigaDocumento"; String s_Sql_Order = " "; WcString wc = new WcString(); wc.addWc("B.id_rigaDocumentoPrelevata=" + getId_rigaDocumento()); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); Vectumerator vec = findRows(stmt); if (vec.hasMoreElements()) { RigaDocumento r = (RigaDocumento)vec.nextElement(); res[0] = r.getQuantita(); res[1] = r.getQuantitaPrelevata(); } } catch (SQLException e) { handleDebug(e); } return res; } private static synchronized ResParm synchroSaveMagArticolo(RigaDocumento bean) { ResParm rp = new ResParm(); rp = bean.superSave(); if (rp.getStatus()) rp.append(bean.aggiornaCostoUltimoFornitore()); return rp; } private static synchronized ResParm synchroSave(RigaDocumento bean) { ResParm rp = bean.getDocumento().checkEMSTA(); if (!rp.getStatus()) return new ResParm(false, "ATTENZIONE! Tentativo di modificare una riga documento: " + rp.getMsg()); if (bean.getParm("USA_MAGAZZINO").isTrue()) return synchroSaveMagArticolo(bean); RigaDocumento rd = new RigaDocumento(bean.getApFull()); rd.findByPrimaryKey(bean.getId_rigaDocumento()); long l_flgRigaPrelevata = rd.getFlgRigaPrelevata(); if (bean.getDBState() == 1) { if (bean.getFlgRigaPrelevata() == 1L) return new ResParm(false, "ERRORE! Non puoi modificare una riga chiusa!"); if (bean.getQuantitaPrelevata() > 0.0D && bean.getQuantita() < bean.getQuantitaPrelevata()) return new ResParm(false, "ERRORE! La quantità prelevata è maggiore della quantità della riga"); } if (bean.getQuantitaPrelevata() >= bean.getQuantita() && bean.getQuantitaPrelevata() > 0.0D && bean.getQuantita() > 0.0D) bean.setFlgRigaPrelevata(1L); double quantitaPrelevata1 = 0.0D; if (bean.getArticolo().usaMagazzino()) { RigaDocumentoP rdp = new RigaDocumentoP(bean.getApFull()); rd.getMagQuantitaPrelevatoByRigaDocumento(bean.getId_rigaDocumento()); quantitaPrelevata1 = rd.getQuantita(); double quantitaPrelevata2 = rdp.getQuantitaPrelevatoByRigaDocumento(bean.getId_rigaDocumento()); if (quantitaPrelevata1 != quantitaPrelevata2) { System.out.println("Rigadocumento.synchroSave: ERRORE calcolo quantità prelevate" + quantitaPrelevata1 + "!= " + quantitaPrelevata2); quantitaPrelevata1 = quantitaPrelevata2; } if (bean.getQuantita() < quantitaPrelevata1) return new ResParm(false, "ERRORE! La quantità prelevata è maggiore della quantità della riga"); } RigaDocumento beanRB = null; if (bean.getId_rigaDocumento() != 0L) { beanRB = new RigaDocumento(bean.getApFull()); beanRB.findByPrimaryKey(bean.getId_rigaDocumento()); } rp = new ResParm(true); if (bean.getId_articolo() != 0L && bean.getArticolo().usaMagazzino()) { long magPartenza = 0L; long magArrivo = 0L; long flgInternoPartenza = 0L; long flgInternoArrivo = 0L; if (bean.getDocumento().getId_magFisicoPartenza() == 0L) { if (bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoPartenza() > 0L) { magPartenza = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoPartenza(); flgInternoPartenza = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getMagFisicoPartenza().getFlgTipo(); } } else { magPartenza = bean.getDocumento().getId_magFisicoPartenza(); flgInternoPartenza = bean.getDocumento().getMagFisicoPartenza().getFlgTipo(); } if (bean.getDocumento().getId_magFisicoArrivo() == 0L) { if (bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoArrivo() > 0L) { magArrivo = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoArrivo(); flgInternoArrivo = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getMagFisicoArrivo().getFlgTipo(); } } else { magArrivo = bean.getDocumento().getId_magFisicoArrivo(); flgInternoArrivo = bean.getDocumento().getMagFisicoArrivo().getFlgTipo(); } if (magPartenza != 0L || (magPartenza == 0L && magArrivo == 0L)) { long segnoMov = -1L; if (bean.getFlgReso() == 1L) segnoMov = 1L; if (magPartenza == 0L && magArrivo == 0L) segnoMov = 0L; bean.setSegnoMov(segnoMov); bean.setId_causaleMagazzino(bean.getDocumento().getTipoDocumento().getId_causaleMagazzino()); bean.setId_magFisico(magPartenza); if (flgInternoPartenza == 1L) { bean.setId_clifor(0L); } else { bean.setId_clifor(bean.getDocumento().getId_clifor()); } rp = bean.superSave(); } if (rp.getStatus() && magArrivo != 0L) { long segnoMov = 1L; if (bean.getFlgReso() == 1L) segnoMov = -1L; if (magPartenza == 0L) { bean.setSegnoMov(segnoMov); bean.setId_causaleMagazzino(bean.getDocumento().getTipoDocumento().getId_causaleMagazzino()); bean.setId_magFisico(magArrivo); if (flgInternoArrivo == 1L) { bean.setId_clifor(0L); } else { bean.setId_clifor(bean.getDocumento().getId_clifor()); } rp = bean.superSave(); } else { try { RigaDocumento rd2 = (RigaDocumento)bean.clone(); rd2.setDBState(0); rd2.setId_rigaDocumento(0L); rd2.setId_rigaDocumentoMov(bean.getId_rigaDocumento()); rd2.setSegnoMov(segnoMov); rd2.setId_magFisico(magArrivo); if (flgInternoArrivo == 1L) { rd2.setId_clifor(0L); } else { rd2.setId_clifor(bean.getDocumento().getId_clifor()); } rd2.setId_rigaDocumentoMov(bean.getId_rigaDocumento()); rp = bean.superSave(); } catch (Exception e) { bean.handleDebug(e, 0); rp.setException(e); } } } } else { bean.setId_clifor(0L); rp = bean.superSave(); } if (rp.getStatus()) { rp.append(bean.getDocumento().save()); rp.append(bean.aggiornaCostoUltimoFornitore()); if (l_flgRigaPrelevata != bean.getFlgRigaPrelevata()) if (bean.getFlgRigaPrelevata() == 0L) { if (bean.getDocumento().getFlgDocumentoPrelevato() == 1L) bean.getDocumento().aggiornaFlgDocumentoPrelevato(0L); } else { bean.getDocumento().verificaEAggiornaFlgDocumentoPrelevato(); } if (bean.getArticolo().usaMagazzino() && (bean.getDocumento().getTipoDocumento().getId_causaleMagazzino() > 0L || bean.getDocumento().getTipoDocumento().getFlgTipologia() == 4L)) { bean.resetStatoPrenotazioneByArticolo(bean.getId_articolo(), bean.getId_articoloVariante(), bean.getId_articoloTaglia()); bean.checkStatoPrenotazione(); } } if (rp.getStatus()) rp.setMsg(AbMessages.getMessage("SAVE_OK")); return rp; } private static synchronized ResParm synchroSaveFilato(RigaDocumento bean) { ResParm rp = bean.getDocumento().checkEMSTA(); if (!rp.getStatus()) return new ResParm(false, "ATTENZIONE! Tentativo di modificare una riga documento: " + rp.getMsg()); RigaDocumento rd = new RigaDocumento(bean.getApFull()); rd.findByPrimaryKey(bean.getId_rigaDocumento()); long l_flgRigaPrelevata = rd.getFlgRigaPrelevata(); if (bean.getDBState() == 1) { if (bean.getFlgRigaPrelevata() == 1L) return new ResParm(false, "ERRORE! Non puoi modificare una riga chiusa!"); if (bean.getQuantitaPrelevata() > 0.0D && bean.getQuantita() < bean.getQuantitaPrelevata()) return new ResParm(false, "ERRORE! La quantità prelevata è maggiore della quantità della riga"); } if (bean.getQuantitaPrelevata() >= bean.getQuantita() && bean.getQuantitaPrelevata() > 0.0D && bean.getQuantita() > 0.0D) bean.setFlgRigaPrelevata(1L); double quantitaPrelevata1 = 0.0D; System.out.println(bean.getId_articoloFilatoColore()); if (bean.getArticoloFilatoColore().isUsaMagazzino()) { rd.getMagQuantitaPrelevatoByRigaDocumento(bean.getId_rigaDocumento()); quantitaPrelevata1 = rd.getQuantita(); if (bean.getQuantita() < quantitaPrelevata1) return new ResParm(false, "ERRORE! La quantità prelevata è maggiore della quantità della riga"); } RigaDocumento beanRB = null; if (bean.getId_rigaDocumento() != 0L) { beanRB = new RigaDocumento(bean.getApFull()); beanRB.findByPrimaryKey(bean.getId_rigaDocumento()); } rp = new ResParm(true); long magPartenza = 0L; long magArrivo = 0L; long flgTipoMagFisicoPartenza = 0L; long flgTipoMagFisicoArrivo = 0L; long l_id_causalemagazzino = 0L; if (bean.getFlgCodiceRiga() == 0L) { l_id_causalemagazzino = bean.getDocumento().getTipoDocumento().getId_causaleMagazzino(); if (bean.getDocumento().getId_magFisicoPartenza() == 0L) { if (bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoPartenza() > 0L) { magPartenza = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoPartenza(); flgTipoMagFisicoPartenza = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getMagFisicoPartenza().getFlgTipo(); } } else { magPartenza = bean.getDocumento().getId_magFisicoPartenza(); flgTipoMagFisicoPartenza = bean.getDocumento().getMagFisicoPartenza().getFlgTipo(); } if (bean.getDocumento().getId_magFisicoArrivo() == 0L) { if (bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoArrivo() > 0L) { magArrivo = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoArrivo(); flgTipoMagFisicoArrivo = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getMagFisicoArrivo().getFlgTipo(); } } else { magArrivo = bean.getDocumento().getId_magFisicoArrivo(); flgTipoMagFisicoArrivo = bean.getDocumento().getMagFisicoArrivo().getFlgTipo(); } } else { l_id_causalemagazzino = bean.getDocumento().getTipoDocumento().getId_causaleMagazzino2(); if (bean.getDocumento().getId_magFisicoPartenza2() == 0L) { if (bean.getDocumento().getTipoDocumento().getCausaleMagazzino2().getId_magFisicoPartenza() > 0L) { magPartenza = bean.getDocumento().getTipoDocumento().getCausaleMagazzino2().getId_magFisicoPartenza(); flgTipoMagFisicoPartenza = bean.getDocumento().getTipoDocumento().getCausaleMagazzino2().getMagFisicoPartenza().getFlgTipo(); } } else { magPartenza = bean.getDocumento().getId_magFisicoPartenza2(); flgTipoMagFisicoPartenza = bean.getDocumento().getMagFisicoPartenza2().getFlgTipo(); } if (bean.getDocumento().getId_magFisicoArrivo2() == 0L) { if (bean.getDocumento().getTipoDocumento().getCausaleMagazzino2().getId_magFisicoArrivo() > 0L) { magArrivo = bean.getDocumento().getTipoDocumento().getCausaleMagazzino2().getId_magFisicoArrivo(); flgTipoMagFisicoArrivo = bean.getDocumento().getTipoDocumento().getCausaleMagazzino2().getMagFisicoArrivo().getFlgTipo(); } } else { magArrivo = bean.getDocumento().getId_magFisicoArrivo2(); flgTipoMagFisicoArrivo = bean.getDocumento().getMagFisicoArrivo2().getFlgTipo(); } } if (bean.getId_articoloFilatoColore() != 0L && bean.getArticoloFilatoColore().usaMagazzino() && (magArrivo > 0L || magPartenza > 0L)) { if (magPartenza != 0L) { long segnoMov = -1L; if (bean.getFlgReso() == 1L) segnoMov = 1L; bean.setSegnoMov(segnoMov); bean.setId_causaleMagazzino(l_id_causalemagazzino); bean.setId_magFisico(magPartenza); if (flgTipoMagFisicoPartenza == 1L) { bean.setId_clifor(0L); } else { bean.setId_clifor(bean.getDocumento().getId_clifor()); } rp = bean.superSave(); } if (rp.getStatus() && magArrivo != 0L) { long segnoMov = 1L; if (bean.getFlgReso() == 1L) segnoMov = -1L; if (magPartenza == 0L) { bean.setSegnoMov(segnoMov); bean.setId_causaleMagazzino(l_id_causalemagazzino); bean.setId_magFisico(magArrivo); if (flgTipoMagFisicoArrivo == 1L) { bean.setId_clifor(0L); } else { bean.setId_clifor(bean.getDocumento().getId_clifor()); } rp = bean.superSave(); } else { try { RigaDocumento rd2 = (RigaDocumento)bean.clone(); rd2.setDBState(0); rd2.setId_rigaDocumento(0L); rd2.setId_rigaDocumentoMov(bean.getId_rigaDocumento()); rd2.setSegnoMov(segnoMov); rd2.setId_magFisico(magArrivo); if (flgTipoMagFisicoArrivo == 1L) { rd2.setId_clifor(0L); } else { rd2.setId_clifor(bean.getDocumento().getId_clifor()); } rd2.setId_rigaDocumentoMov(bean.getId_rigaDocumento()); rp = bean.superSave(); } catch (Exception e) { bean.handleDebug(e, 0); rp.setException(e); } } } } else { bean.setId_clifor(0L); rp = bean.superSave(); } if (rp.getStatus()) { rp.append(bean.getDocumento().save()); rp.append(bean.aggiornaCostoUltimoFornitore()); if (l_flgRigaPrelevata != bean.getFlgRigaPrelevata()) if (bean.getFlgRigaPrelevata() == 0L) { if (bean.getDocumento().getFlgDocumentoPrelevato() == 1L) bean.getDocumento().aggiornaFlgDocumentoPrelevato(0L); } else { bean.getDocumento().verificaEAggiornaFlgDocumentoPrelevato(); } } if (rp.getStatus()) if (bean.getId_articoloFilatoColore() > 0L) { rp.setMsg(AbMessages.getMessage("SAVE_OK")); bean.getArticoloFilatoColore().getArticoloFilato().setQuantitaCalcolate(false); bean.getArticoloFilatoColore().getArticoloFilato().superSave(); bean.getArticoloFilatoColore().setQuantitaCalcolate(false); bean.getArticoloFilatoColore().superSave(); } else { rp.setMsg("Attenzione! Articolo non in anagrafica!"); } return rp; } public long getFlgReso() { return this.flgReso; } public void setFlgReso(long flgReso) { this.flgReso = flgReso; } public Vectumerator findOrdini(DocumentoCR CR) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A, DOCUMENTO AS B, ARTICOLO AS C, TIPO AS D, CLIFOR as E "; String s_Sql_Order = " order by B.progDocumento, A.descrizioneRiga , A.seriale "; WcString wc = new WcString(); wc.addWc("A.id_documento=B.id_documento"); wc.addWc("A.id_articolo=C.id_articolo"); wc.addWc("C.id_tipo=D.id_tipo"); wc.addWc("B.id_clifor=E.id_clifor"); wc.addWc("B.id_tipoDocumento= " + CR.getId_tipoDocumento()); if (CR.getId_tipo() > 0L) wc.addWc("(C.id_tipo=" + CR.getId_tipo() + " or D.indici like'%:" + CR.getId_tipo() + ":%')"); wc.addWc("(B.flgDocumentoPrelevato is null or B.flgDocumentoPrelevato =0) "); wc.addWc("(A.flgRigaPrelevata is null or A.flgRigaPrelevata =0) "); if (CR.getDataDocumentoDa() != null) wc.addWc("B.dataDocumento>=?"); if (CR.getDataDocumentoA() != null) wc.addWc("B.dataDocumento<=?"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); int dataCount = 1; if (CR.getDataDocumentoDa() != null) { stmt.setDate(dataCount, CR.getDataDocumentoDa()); dataCount++; } if (CR.getDataDocumentoA() != null) { stmt.setDate(dataCount, CR.getDataDocumentoA()); dataCount++; } return findRows(stmt); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public long getFlgPrenotazioneArrivata() { return this.flgPrenotazioneArrivata; } public void setFlgPrenotazioneArrivata(long flgPrenotazioneArrivata) { this.flgPrenotazioneArrivata = flgPrenotazioneArrivata; } public boolean isAllRighePrenotazioneArrivateByDocumento(long l_id_documento) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A"; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); wc.addWc("(A.flgPrenotazioneArrivata is null or A.flgPrenotazioneArrivata=0)"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); Vectumerator vec = findRows(stmt, 1, 1); if (vec.hasMoreElements()) return false; return true; } catch (Exception e) { handleDebug(e, 0); return false; } } public double getQuantitaPrelevata() { return this.quantitaPrelevata; } public ResParm creaCodaMessaggio(String theMsg) { ResParm rp = new ResParm(); if (getId_documento() > 0L && getSeriale().length() == 10) { MailMessage mm = new MailMessage(getApFull()); mm.setTextMessage(theMsg); CodaMessaggi cm = new CodaMessaggi(getApFull()); cm.setDataCreazione(getToday()); cm.setCellulare(getSeriale()); cm.setTestoMessaggio(mm.getMessage()); cm.setFlgTipo(2L); cm.setFlgStatoInvio(0L); rp = cm.save(); } return rp; } public ResParm creaCodaMessaggiSms(RigaDocumentoCR CR) { ResParm rp = new ResParm(); Vectumerator vec = findByCR(CR, 0, 0); int numMsg = 0; while (vec.hasMoreElements()) { RigaDocumento row = (RigaDocumento)vec.nextElement(); rp = row.creaCodaMessaggio(CR.getTestoMessaggio()); if (rp.getStatus()) numMsg++; } rp.setMsg("Numero messaggi in coda: " + numMsg); return rp; } private void findCompattaByCRCreateStmtDate(RigaDocumentoCR CR, PreparedStatement stmt) { try { int dataCount = 0; if (CR.getDataDocumentoDa() != null) { dataCount++; stmt.setDate(dataCount, CR.getDataDocumentoDa()); } if (CR.getDataDocumentoA() != null) { dataCount++; stmt.setDate(dataCount, CR.getDataDocumentoA()); } if (CR.getDataRiferimentoDa() != null) { dataCount++; stmt.setDate(dataCount, CR.getDataRiferimentoDa()); } if (CR.getDataRiferimentoA() != null) { dataCount++; stmt.setDate(dataCount, CR.getDataRiferimentoA()); } } catch (SQLException e) { handleDebug(e); } } private void findCompattaByCRCreateWC(RigaDocumentoCR CR, StringBuffer s_Sql_Find, WcString wc) { wc.addWc("(B.flgHaDocumentoPadre is null or B.flgHaDocumentoPadre =0)"); wc.addWc("D.id_causaleMagazzino>0"); if (CR.getId_tipo() != 0L) wc.addWc("(F.id_tipo=" + CR.getId_tipo() + " or F.indici like'%:" + CR.getId_tipo() + ":%')"); if (CR.getId_clifor() != 0L) wc.addWc("B.id_clifor=" + CR.getId_clifor()); if (CR.getProgDocumento() != 0L) wc.addWc("B.progDocumento =" + CR.getProgDocumento()); if (CR.getId_esercizio() != 0L) wc.addWc("B.id_esercizio=" + CR.getId_esercizio()); if (CR.getId_tipoDocumento() != 0L) wc.addWc("B.id_tipoDocumento=" + CR.getId_tipoDocumento()); if (CR.getId_articoloVariante() != 0L) { wc.addWc("A.id_articoloVariante=" + CR.getId_articoloVariante()); } else if (CR.getId_articolo() != 0L) { wc.addWc("A.id_articolo=" + CR.getId_articolo()); } if (CR.getFlgTipoMovimento() == 1L) { wc.addWc("(B.flgTipoMovimento=1 or B.flgTipoMovimento=3)"); } else if (CR.getFlgTipoMovimento() == 2L) { wc.addWc("(B.flgTipoMovimento=2 or B.flgTipoMovimento=3)"); } if (!CR.getSeriale().isEmpty()) { String temp = CR.getSeriale(); temp = prepareInputMySqlString(temp, false); temp = temp.replace("*", "%"); wc.addWc("A.seriale like '" + temp + "'"); } if (CR.getDataDocumentoDa() != null) wc.addWc("B.dataDocumento>=?"); if (CR.getDataDocumentoA() != null) wc.addWc("B.dataDocumento<=?"); if (CR.getDataRiferimentoDa() != null) wc.addWc("B.dataRiferimento>=?"); if (CR.getDataRiferimentoA() != null) wc.addWc("B.dataRiferimento<=?"); } private void creaFileCvs(Vectumerator list, RigaDocumentoCR CR) { try { CR.setFileName(getPathTmp() + "exportMovimenti_" + getPathTmp() + ".csv"); String theCvsFile = getDocBase() + getDocBase(); String SEP = ";"; new File(theCvsFile).delete(); FileWr outCvsFile = new FileWr(theCvsFile, false); String s1 = "Numero;Intestazione;Data;Articolo;Disp.Art.;Tipo Movimento;Magazzini;Q.ta;Sconto;Tot.;IVA;Importo Doc;n.colli tot"; if (CR.getFlgTipoReport() >= 1L) s1 = s1 + ";Q.tà variante"; if (CR.getFlgTipoReport() == 2L) s1 = s1 + ";Q.tà seriale"; outCvsFile.writeLine(s1); while (list.hasMoreElements()) { RigaDocumento row = (RigaDocumento)list.nextElement(); s1 = " " + row.getDocumento().getNumeroDocumentoCompleto() + "\"" + SEP + row.getDocumento().getClifor().getDescrizioneCompleta() + SEP + getDataFormat().format(row.getDocumento().getDataDocumento()) + SEP + row.getDescrizioneRigaCompleta() + SEP + getNf().format(row.getArticolo().getQuantita()) + SEP + row.getDescrizioneTipoMovimento() + SEP + row.getDescrizioneMovimentoMagazzino() + SEP + row.getUdmQuantita() + SEP + getNf().format(row.getSconto()) + SEP + getNf().format(row.getTotImponibileRiga()) + SEP + row.getIva().getDescrizione() + SEP + getNf().format(row.getDocumento().getTotaleDocumento()) + SEP + getNf().format(row.getDocumento().getNColli()); s1 = s1.replace("€", "€"); outCvsFile.writeLine(s1); } outCvsFile.closeFile(); } catch (Exception e) { handleDebug(e); } } public String getSerialeSost() { return (this.serialeSost == null) ? "" : this.serialeSost.trim(); } public void setSerialeSost(String serialeSost) { this.serialeSost = serialeSost; } public Documento getDocumentoPadre() { this.documentoPadre = (Documento)getSecondaryObject(this.documentoPadre, Documento.class, getId_documentoPadre()); return this.documentoPadre; } public long getId_documentoPadre() { return this.id_documentoPadre; } public void setDocumentoPadre(Documento newDocumentoPadre) { this.documentoPadre = newDocumentoPadre; } public void setId_documentoPadre(long newId_documentoPadre) { this.id_documentoPadre = newId_documentoPadre; setDocumentoPadre(null); } public Vectumerator findByDocumentoDocumentoPadre(long l_id_documento, long l_id_documentoPadre, int pageNumber, int pageRows) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A left join ARTICOLO AS B on A.id_articolo=B.id_articolo "; String s_Sql_order = " order by A.id_rigaDocumento desc"; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); wc.addWc("A.id_documentoPadre=" + l_id_documentoPadre); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt, pageNumber, pageRows); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findByDocumentoPadre(long l_id_documentoPadre, int pageNumber, int pageRows) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_order = " order by A.id_rigaDocumento desc"; WcString wc = new WcString(); wc.addWc("A.id_documentoPadre=" + l_id_documentoPadre); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt, pageNumber, pageRows); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public void findRigaAnnodaturaByDocumentoPadre(long l_id_documentoPadre) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_order = " order by A.id_rigaDocumento desc"; WcString wc = new WcString(); wc.addWc("A.id_documentoPadre=" + l_id_documentoPadre); wc.addWc("A.rifTipoArticolo=21"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); findFirstRecord(stmt); } catch (Exception e) { handleDebug(e, 0); } } public void findRigaCatenaByDocumentoPadre(long l_id_documentoPadre) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_order = " order by A.id_rigaDocumento desc"; WcString wc = new WcString(); wc.addWc("A.id_documentoPadre=" + l_id_documentoPadre); wc.addWc("A.rifTipoArticolo=22"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); findFirstRecord(stmt); } catch (Exception e) { handleDebug(e, 0); } } public void findByCodicePezza(String l_codicePezza) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A inner join DOCUMENTO AS B ON A.id_documento=B.id_documento"; String s_Sql_order = " order by A.id_rigaDocumento desc"; WcString wc = new WcString(); String l_codicePezza_1 = l_codicePezza.substring(0, l_codicePezza.length() - 1); wc.addWc("(A.codiceCartellinoStart<='" + l_codicePezza_1 + "' and A.codiceCartellinoStop>='" + l_codicePezza_1 + "' and B.flgBarcodeType=1) or (A.codiceCartellinoStart<='" + l_codicePezza + "' and A.codiceCartellinoStop>='" + l_codicePezza + "' and (B.flgBarcodeType!=1 or B.flgBarcodeType is null))"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); System.out.println(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); findFirstRecord(stmt); } catch (Exception e) { handleDebug(e, 0); } } public Vectumerator findCompattaByCR(RigaDocumentoCR CR, int pageNumber, int pageRows) { boolean flgOttimizzo = true; if (pageNumber == 0 && pageRows == 0) flgOttimizzo = false; StringBuffer s_Sql_Find = new StringBuffer("select A.* from RIGA_DOCUMENTO AS A inner join DOCUMENTO AS B on A.id_documento=B.id_documento LEFT JOIN DOCUMENTO AS C ON B.id_documentoFiglio=C.id_documento inner join TIPO_DOCUMENTO AS D\tON B.id_tipoDocumento=D.id_tipoDocumento"); String s_Sql_Order = " order by B.dataDocumento desc, B.progDocumento desc "; if (CR.getFlgOrderBy() == 9L) s_Sql_Order = " order by T.descrizione , E.nome "; WcString wc = new WcString(); if (CR.getId_tipo() != 0L || CR.getFlgOrderBy() == 9L) { s_Sql_Find.append(", ARTICOLO AS E, TIPO AS F"); wc.addWc("A.id_articolo=E.id_articolo"); wc.addWc("E.id_tipo=F.id_tipo"); } if (CR.getFlgOrderBy() == 9L) { s_Sql_Find.append(", TIPO AS T"); wc.addWc("E.id_tipo=T.id_tipo"); } findCompattaByCRCreateWC(CR, s_Sql_Find, wc); try { PreparedStatement stmt; if ((pageNumber == 0 && pageRows == 0) || !flgOttimizzo) { stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find) + wc.toString()); } else { if (pageNumber == 0) pageNumber = 1; int start = (pageNumber - 1) * pageRows; int stop = start + pageRows; stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find) + wc.toString() + " limit " + s_Sql_Order + "," + start); } findCompattaByCRCreateStmtDate(CR, stmt); if ((pageNumber == 0 && pageRows == 0) || !flgOttimizzo) { Vectumerator vectumerator = findRows(stmt, pageNumber, pageRows); if (!CR.getFlgReport().isEmpty()) if (CR.getFlgOrderBy() == 9L) { creaFileCvsTipoArticolo(vectumerator, CR); } else { creaFileCvs(vectumerator, CR); } return vectumerator; } Vectumerator vec = findRows(stmt, 1, pageRows); vec.setPageNumber(pageNumber); vec.setTotNumberOfRecords(findCompattaByCRTotRecord(CR)); if (!CR.getFlgReport().isEmpty()) if (CR.getFlgOrderBy() == 9L) { creaFileCvsTipoArticolo(vec, CR); } else { creaFileCvs(vec, CR); } return vec; } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } private int findCompattaByCRTotRecord(RigaDocumentoCR CR) { StringBuffer s_Sql_Find = new StringBuffer("select count(A.id_rigaDocumento) as tot from RIGA_DOCUMENTO AS A inner join DOCUMENTO AS B on A.id_documento=B.id_documento LEFT JOIN DOCUMENTO AS C ON B.id_documentoFiglio=C.id_documento inner join TIPO_DOCUMENTO AS D\tON B.id_tipoDocumento=D.id_tipoDocumento"); WcString wc = new WcString(); if (CR.getId_tipo() != 0L || CR.getFlgOrderBy() == 9L) { s_Sql_Find.append(", ARTICOLO AS E, TIPO AS F"); wc.addWc("A.id_articolo=E.id_articolo"); wc.addWc("E.id_tipo=F.id_tipo"); } findCompattaByCRCreateWC(CR, s_Sql_Find, wc); try { PreparedStatement stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find)); findByCRCreateStmtDate(CR, stmt); return (int)getTots(stmt); } catch (Exception e) { handleDebug(e); return 0; } } private void creaFileCvsTipoArticolo(Vectumerator list, RigaDocumentoCR CR) { try { CR.setFileName(getPathTmp() + "exportMovimenti_" + getPathTmp() + ".csv"); String theCvsFile = getDocBase() + getDocBase(); String SEP = ";"; new File(theCvsFile).delete(); FileWr outCvsFile = new FileWr(theCvsFile, false); String s1 = "Numero;Intestazione;Data;Riferimento;Tipo;Articolo;Tipo Movimento;Q.ta;Sconto;Imp. Riga;IVA;Importo Doc."; if (CR.getFlgTipoReport() >= 1L) s1 = s1 + ";Q.tà variante"; if (CR.getFlgTipoReport() == 2L) s1 = s1 + ";Q.tà seriale"; outCvsFile.writeLine(s1); long l_id_currentArticolo = 0L; DoubleOperator totQta = new DoubleOperator(); while (list.hasMoreElements()) { RigaDocumento row = (RigaDocumento)list.nextElement(); if (l_id_currentArticolo != row.getId_articolo()) { if (l_id_currentArticolo != 0L) { s1 = ";;;;;;;" + getNf().format(totQta.getResult()); totQta = new DoubleOperator(); outCvsFile.writeLine(s1); } l_id_currentArticolo = row.getId_articolo(); } totQta.add(row.getQuantita()); s1 = " " + row.getDocumento().getNumeroDocumentoCompleto() + "\"" + SEP + row.getDocumento().getClifor().getDescrizioneCompleta() + SEP + getDataFormat().format(row.getDocumento().getDataDocumento()) + SEP + row.getDocumento().getRiferimento() + " " + getDataFormat().format(row.getDocumento().getDataRiferimento()) + SEP + row.getArticolo().getTipo().getDescrizione() + SEP + row.getArticolo().getNome() + SEP + row.getDescrizioneTipoMovimento() + SEP + getNf().format(row.getQuantita()) + SEP + getNf().format(row.getSconto()) + SEP + getNf().format(row.getTotImponibileRiga()) + SEP + row.getIva().getDescrizione() + SEP + getNf().format(row.getDocumento().getTotaleDocumento()) + SEP; s1 = s1.replace("€", "€"); outCvsFile.writeLine(s1); } s1 = ";;;;;;;" + getNf().format(totQta.getResult()); outCvsFile.writeLine(s1); outCvsFile.closeFile(); } catch (Exception e) { handleDebug(e); } } public long getOrdineRiga() { return this.ordineRiga; } public void setOrdineRiga(long ordineRiga) { this.ordineRiga = ordineRiga; } public double getQuantitaImpegnataByArticoloVariante(long l_id_articoloVariante) { RigaDocumentoCR CR = new RigaDocumentoCR(getApFull()); RigaDocumento bean = new RigaDocumento(getApFull()); CR.setFlgTipologia(4L); CR.setFlgRigaPrelevata(0L); CR.setFlgStatoPrenotazione(200L); CR.setId_articoloVariante(l_id_articoloVariante); CR.setFlgTipoRicerca(0L); Vectumerator vec = bean.findByCR(CR, 0, 0); DoubleOperator dop = new DoubleOperator(); while (vec.hasMoreElements()) { RigaDocumento row = (RigaDocumento)vec.nextElement(); dop.add(row.getQuantita()); dop.subtract(row.getQuantitaPrelevata()); } return dop.getResult(); } public double getQuantitaImpegnataByArticoloTaglia(long l_id_articoloTaglia) { RigaDocumentoCR CR = new RigaDocumentoCR(getApFull()); RigaDocumento bean = new RigaDocumento(getApFull()); CR.setFlgTipologia(4L); CR.setFlgRigaPrelevata(0L); CR.setFlgStatoPrenotazione(200L); CR.setId_articoloTaglia(l_id_articoloTaglia); CR.setFlgTipoRicerca(0L); Vectumerator vec = bean.findByCR(CR, 0, 0); DoubleOperator dop = new DoubleOperator(); while (vec.hasMoreElements()) { RigaDocumento row = (RigaDocumento)vec.nextElement(); dop.add(row.getQuantita()); dop.subtract(row.getQuantitaPrelevata()); } return dop.getResult(); } public double getQuantitaInArrivoByArticoloVariante(ArticoloVariante av) { MagFisico mf = new MagFisico(getApFull()); mf.findMagazzinoOrdinato(); if (mf.getId_magFisico() > 0L) { RigaDocumento rd = new RigaDocumento(getApFull()); rd.findMagDisponibilitaPuntuale(av.getId_articolo(), av.getId_articoloVariante(), 0L, null, mf.getId_magFisico(), 0L, 0L); return rd.getQuantita(); } return 0.0D; } public double getQuantitaInArrivoByArticoloTaglia(ArticoloTaglia at) { MagFisico mf = new MagFisico(getApFull()); mf.findMagazzinoOrdinato(); if (mf.getId_magFisico() > 0L) { RigaDocumento rd = new RigaDocumento(getApFull()); rd.findMagDisponibilitaPuntuale(at.getId_articolo(), at.getId_articoloVariante(), at.getId_articoloTaglia(), null, mf.getId_magFisico(), 0L, 0L); return rd.getQuantita(); } return 0.0D; } public double getQuantitaInArrivoByArticoloVarianteM(ArticoloVariante av) { MagFisico mf = new MagFisico(getApFull()); mf.findMagazzinoOrdinato(); Movimento mov = new Movimento(getApFull()); mov.findDisponibilitaPuntuale(av.getId_articolo(), av.getId_articoloVariante(), 0L, null, mf.getId_magFisico(), 0L); return mov.getQuantita(); } public String getNotaBarcode() { return (this.notaBarcode == null) ? "" : this.notaBarcode; } public void setNotaBarcode(String notaBarcode) { this.notaBarcode = notaBarcode; } public boolean hasNote() { if (getNotaBarcode().isEmpty() && getNotaRigaDocumento().isEmpty()) return false; return true; } public long getFlgIgnoraPrenotazione() { return this.flgIgnoraPrenotazione; } public void setFlgIgnoraPrenotazione(long flgIgnoraPrenotazione) { this.flgIgnoraPrenotazione = flgIgnoraPrenotazione; } public Vectumerator findRigheSenzaTelaioByDocumento(long l_id_documento) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A inner join DOCUMENTO AS B ON A.id_documento=B.id_documento"; String s_Sql_order = ""; WcString wc = new WcString(); wc.addWc("B.flgStato =1"); wc.addWc("B.id_documento =" + l_id_documento); wc.addWc("(A.id_telaio is null or A.id_telaio=0)"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findRigheConTelaioByDocumento(long l_id_documento) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A inner join DOCUMENTO AS B ON A.id_documento=B.id_documento"; String s_Sql_order = ""; WcString wc = new WcString(); wc.addWc("B.flgStato =1"); wc.addWc("B.id_documento =" + l_id_documento); wc.addWc("A.id_telaio >0"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public double getTotArticoliImpegnati(long l_id_articolo, long l_id_articoloVariante, long l_id_articoloTaglia) { String s_Sql_Find = "select sum(A.quantita) as _sum from RIGA_DOCUMENTO AS A , DOCUMENTO AS B, TIPO_DOCUMENTO AS C"; String s_Sql_order = ""; WcString wc = new WcString(); wc.addWc("A.id_documento=B.id_documento"); wc.addWc("B.id_tipoDocumento=C.id_tipoDocumento"); wc.addWc("C.flgTipologia =4"); wc.addWc("B.flgStato =1"); wc.addWc("(B.flgStatoPrenotazione is null or B.flgStatoPrenotazione <90)"); wc.addWc("A.flgRigaPrelevata !=1"); wc.addWc("A.id_articolo=" + l_id_articolo); if (l_id_articoloVariante == 0L) { wc.addWc("(A.id_articoloVariante is null or A.id_articoloVariante=0)"); } else if (l_id_articoloVariante > 0L) { wc.addWc("A.id_articoloVariante=" + l_id_articoloVariante); } if (l_id_articoloTaglia == 0L) { wc.addWc("(A.id_articoloTaglia is null or A.id_articoloTaglia=0)"); } else if (l_id_articoloTaglia > 0L) { wc.addWc("A.id_articoloTaglia=" + l_id_articoloTaglia); } try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return getSum(stmt); } catch (Exception e) { handleDebug(e, 0); return 0.0D; } } public double getTotFilatiImpegnati(long l_id_articoloFilatoColore, long l_id_articoloFilato, long l_id_coloreFilato, String l_seriale) { return 0.0D; } public long getId_rigaDocumentoPadre() { return this.id_rigaDocumentoPadre; } public void setId_rigaDocumentoPadre(long id_rigaDocumentoPadre) { this.id_rigaDocumentoPadre = id_rigaDocumentoPadre; } public double getQuantita() { if (getParm("USA_MAGAZZINO").isFalse()) { long l_flgUdm = getFlgUdm(); if (l_flgUdm == 1L) return getNr(); if (l_flgUdm == 3L) return getMt(); if (l_flgUdm == 2L) return getKg(); return getNr(); } return this.quantita; } public long findRigheDaPrelevareByDocumento(long l_documento) { String s_Sql_Find = "select COUNT(*) AS _count from RIGA_DOCUMENTO AS A "; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_documento); wc.addWc("A.flgRigaPrelevata=0"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); return getCount(stmt, "_count"); } catch (Exception e) { handleDebug(e, 0); return 0L; } } public double getImportoSconto() { if (getSconto() == 0.0D && getPercL1() == 0.0D && getPercL2() == 0.0D && getPercL3() == 0.0D) return 0.0D; if (getSconto() > 0.0D) { DoubleOperator doubleOperator = new DoubleOperator(getImporto()); doubleOperator.setScale(4, 5); doubleOperator.multiply(getSconto()); doubleOperator.divide(100.0F); doubleOperator.setScale(2, 5); return doubleOperator.getResult(); } DoubleOperator temp = new DoubleOperator(getImporto()); temp.setScale(4, 5); DoubleOperator sconto = new DoubleOperator(); sconto.setScale(4, 5); if (getPercL1() > 0.0D) { temp.multiply(getPercL1()); temp.divide(100.0F); sconto.add(temp.getResult()); } if (getPercL2() > 0.0D) { temp = new DoubleOperator(getImporto()); temp.subtract(sconto); temp.multiply(getPercL2()); temp.divide(100.0F); sconto.add(temp.getResult()); } if (getPercL3() > 0.0D) { temp = new DoubleOperator(getImporto()); temp.subtract(sconto); temp.multiply(getPercL3()); temp.divide(100.0F); sconto.add(temp.getResult()); } sconto.setScale(2, 5); return sconto.getResult(); } public void findFirstByDocumentoArticoloTaglia(long l_id_documento, long l_id_articoloTaglia) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_order = ""; String wc = ""; wc = buildWc(wc, "A.id_documento=" + l_id_documento); wc = buildWc(wc, "A.id_articoloTaglia=" + l_id_articoloTaglia); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc); findFirstRecord(stmt); } catch (Exception e) { handleDebug(e, 0); } } private static synchronized ResParm delRigaDocumentoPM(RigaDocumento rd, RigaDocumentoPM row) { RigaDocumentoPM bean = new RigaDocumentoPM(rd.getApFull()); RigaDocumentoPMKey theKey = new RigaDocumentoPMKey(row.getId_rigaDocumento(), row.getId_rigaDocumentoPrelevata()); bean.findByPrimaryKey(theKey); return bean.delete(); } private static synchronized ResParm addRigaDocumentoPM(RigaDocumento rd, RigaDocumentoPM row) { RigaDocumentoPM bean = new RigaDocumentoPM(rd.getApFull()); RigaDocumentoPMKey theKey = new RigaDocumentoPMKey(row.getId_rigaDocumento(), row.getId_rigaDocumentoPrelevata()); bean.findByPrimaryKey(theKey); if (bean != null) { row.setDBState(bean.getDBState()); } else { row.setDBState(0); } ResParm rp = row.save(); return rp; } private long checkStatoRiga() { long retVal = 0L; DoubleOperator qtaEffettiva = new DoubleOperator(); DoubleOperator qtaMagazzino = new DoubleOperator(); if (getQuantita() > 0.0D) if (getFlgRigaPrelevata() == 1L) { retVal = 40L; } else if (getId_articolo() != 0L || getId_articoloVariante() != 0L) { if (!getSeriale().isEmpty()) { retVal = 30L; } else { RigaDocumentoCR CR = new RigaDocumentoCR(); CR.setFlgTipologia(4L); CR.setFlgStatoPrenotazione(200L); CR.setId_articolo(getId_articolo()); CR.setId_articoloVariante(getId_articoloVariante()); CR.setFlgTipoRicerca(0L); CR.setFlgOrderBy(5L); CR.setFlgRigaPrelevata(0L); if (getId_articoloVariante() != 0L) { qtaEffettiva.add(getArticoloVariante().getQuantitaInArrivoAv()); qtaEffettiva.add(getArticoloVariante().getQuantitaAv()); qtaMagazzino.add(getArticoloVariante().getQuantitaAv()); } else if (getId_articolo() != 0L) { qtaEffettiva.add(getArticolo().getQuantitaInArrivo()); qtaEffettiva.add(getArticolo().getQuantita()); qtaMagazzino.add(getArticolo().getQuantita()); } CR.setFlgNoSeriale(2L); double qtAssociata = getRigheAssociateSeriali(CR); double qtMagazzino = getQtaPrelevataPrenotazioni(); qtaEffettiva.subtract(qtAssociata); qtaEffettiva.subtract(getQtaOrdiniApertiPrenotazioni()); qtaEffettiva.subtract(qtMagazzino); qtaMagazzino.subtract(qtMagazzino); qtaMagazzino.subtract(qtAssociata); if (qtaEffettiva.getResult() >= 0.0D) { CR.setFlgNoSeriale(1L); Vectumerator vec = findByCR(CR, 0, 0); while (vec.hasMoreElements()) { RigaDocumento row = (RigaDocumento)vec.nextElement(); double[] res = row.getQtaOrdinataPrelevataByRigaPrenotazione(); double qtOrd = res[0]; double qtPrel = res[1]; double qtPrenoParziale = row.getQuantita(); if (qtPrel >= qtPrenoParziale) { retVal = 30L; qtPrenoParziale = 0.0D; } else if (qtPrel > 0.0D) { retVal = 20L; DoubleOperator dop = new DoubleOperator(qtPrenoParziale); dop.subtract(qtPrel); qtPrenoParziale = dop.getResult(); } else if (qtOrd >= qtPrenoParziale) { retVal = 10L; qtPrenoParziale = 0.0D; } else if (qtOrd > 0.0D) { retVal = 15L; DoubleOperator dop = new DoubleOperator(qtPrenoParziale); dop.subtract(qtOrd); qtPrenoParziale = dop.getResult(); } if (row.getId_rigaDocumento() == getId_rigaDocumento()) { if (retVal == 30L || retVal == 10L) break; if (qtaMagazzino.getResult() >= qtPrenoParziale) { if (retVal == 15L || retVal == 10L) { retVal = 20L; break; } retVal = 30L; break; } if (qtaMagazzino.getResult() > 0.0D) { retVal = 20L; break; } if (qtaEffettiva.getResult() >= qtPrenoParziale) { retVal = 10L; break; } if (qtaEffettiva.getResult() > 0.0D) { retVal = 15L; break; } break; } qtaEffettiva.subtract(qtPrenoParziale); qtaMagazzino.subtract(qtPrenoParziale); retVal = 0L; } } } } return retVal; } public void checkStatoPrenotazione() { Vectumerator vecDoc = findPrenotazioniAperteArrivate(getId_articolo(), getId_articoloVariante()); while (vecDoc.hasMoreElements()) { RigaDocumento rdoc = (RigaDocumento)vecDoc.nextElement(); ResParm resParm = rdoc.getDocumento().checkStatoPrenotazioneByDocumento(); } getArticolo().resetCalcoloQuantita(); } public Vectumerator findPrenotazioniAperteArrivate(long l_id_articolo, long l_id_articoloVariante) { StringBuffer s_Sql_Find = new StringBuffer("select A.* from DOCUMENTO AS A, RIGA_DOCUMENTO AS B "); WcString wc = new WcString(); wc.addWc(" A.id_documento = B.id_documento "); wc.addWc(" B.id_articolo = " + l_id_articolo); if (l_id_articoloVariante == 0L) { wc.addWc(" (B.id_articoloVariante =0 or B.id_articoloVariante is null) "); } else { wc.addWc(" B.id_articoloVariante = " + l_id_articoloVariante); } wc.addWc(" A.id_tipoDocumento = " + getParm("ID_DOC_PRENOTAZIONE").getNumeroLong()); wc.addWc(" (A.flgStatoPrenotazione=200 OR A.flgStatoPrenotazione=20 OR A.flgStatoPrenotazione=0 OR A.flgStatoPrenotazione=10 OR A.flgStatoPrenotazione IS NULL)"); try { PreparedStatement stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find)); return findRows(stmt); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public String getStatoRiga(long l_stato) { String ret = ""; if (l_stato == 0L) { ret = "Da ordinare"; } else if (l_stato == 15L) { ret = "Ordinato Parziale"; } else if (l_stato == 10L) { ret = "Ordinato"; } else if (l_stato == 20L) { ret = "Arrivato Parziale"; } else if (l_stato == 30L) { ret = "Arrivato"; } else if (l_stato == 40L) { ret = "Chiuso"; } return ret; } @Deprecated private double getQuantitaByCR(RigaDocumentoCR CR) { String s_Sql_Find = "SELECT Sum(A.quantita-A.quantitaPrelevata) AS _sum FROM RIGA_DOCUMENTO as A, DOCUMENTO AS B, TIPO_DOCUMENTO AS C"; String s_Sql_Order = " "; WcString wc = new WcString(); wc.addWc("A.id_documento=B.id_documento"); wc.addWc("B.id_tipoDocumento=C.id_tipoDocumento"); if (CR.getId_articolo() != 0L) wc.addWc("A.id_articolo=" + CR.getId_articolo()); wc.addWc("B.id_articolo=" + CR.getId_articolo()); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); double res = getSum(stmt); return res; } catch (SQLException e) { handleDebug(e); return 0.0D; } } public long checkStatoRigaOld() { long retVal = -1L; DoubleOperator qtaEffettiva = new DoubleOperator(); DoubleOperator qtaOrdiniAssociati = new DoubleOperator(); DoubleOperator qtaMagazzino = new DoubleOperator(); if (getId_articolo() != 0L || getId_articoloVariante() != 0L) { if (!getSeriale().isEmpty()) { retVal = 30L; } else { RigaDocumentoPM rdpm = new RigaDocumentoPM(getApFull()); rdpm.findByRigaDocumentoPrelevata(getId_rigaDocumento()); if (rdpm.getDBState() == 1) { RigaDocumento rd = rdpm.getRigaDocumento(); if (rd.getFlgRigaPrelevata() == 1L) { if (getQuantita() == rd.getQuantita()) { retVal = 30L; } else { retVal = 20L; } qtaOrdiniAssociati.add(rd.getQuantita()); } else { retVal = 10L; } } else { retVal = 0L; } } if (retVal == 0L) { if (getId_articoloVariante() != 0L) { qtaEffettiva.add(getArticoloVariante().getQuantitaInArrivoAv()); qtaEffettiva.add(getArticoloVariante().getQuantitaAv()); qtaMagazzino.add(getArticoloVariante().getQuantitaAv()); } else if (getId_articolo() != 0L) { qtaEffettiva.add(getArticolo().getQuantitaInArrivo()); qtaEffettiva.add(getArticolo().getQuantita()); qtaMagazzino.add(getArticolo().getQuantita()); } qtaEffettiva.subtract(qtaOrdiniAssociati.getResult()); if (qtaEffettiva.getResult() > 0.0D) { RigaDocumentoCR CR = new RigaDocumentoCR(); CR.setFlgTipologia(4L); CR.setFlgStatoPrenotazione(200L); CR.setId_articolo(getId_articolo()); CR.setId_articoloVariante(getId_articoloVariante()); CR.setFlgTipoRicerca(0L); CR.setFlgOrderBy(5L); CR.setFlgRicercaNonOrdinati(true); Vectumerator vec = findByCR(CR, 0, 0); while (vec.hasMoreElements()) { RigaDocumento row = (RigaDocumento)vec.nextElement(); if (row.getId_rigaDocumento() == getId_rigaDocumento()) { if (qtaMagazzino.getResult() >= getQuantita()) { retVal = 30L; break; } if (qtaMagazzino.getResult() > 0.0D) { retVal = 20L; break; } if (qtaEffettiva.getResult() >= getQuantita()) { retVal = 10L; break; } if (qtaEffettiva.getResult() > 0.0D) { retVal = 15L; break; } break; } qtaEffettiva.subtract(row.getQuantita()); qtaMagazzino.subtract(row.getQuantita()); } } } } return retVal; } public double getQtaPrelevataPrenotazioni() { String s_Sql_Find = "select SUM(Z.quantitaPrelevata) AS _sum FROM RIGA_DOCUMENTO AS Z INNER JOIN DOCUMENTO AS B ON Z.id_documento = B.id_documento INNER JOIN RIGA_DOCUMENTO_P_M AS C ON Z.id_rigaDocumento = C.id_rigaDocumento "; String s_Sql_Find1 = " SELECT A.id_rigaDocumento FROM RIGA_DOCUMENTO AS A INNER JOIN DOCUMENTO AS B ON A.id_documento = B.id_documento INNER JOIN RIGA_DOCUMENTO_P_M AS C ON A.id_rigaDocumento = C.id_rigaDocumentoPrelevata "; WcString wc = new WcString(); wc.addWc(" B.id_tipoDocumento = " + getParm("ID_DOC_ORDINE").getNumeroLong()); wc.addWc(" Z.id_articolo = " + getId_articolo()); if (getId_articoloVariante() != 0L) { wc.addWc(" Z.id_articoloVariante = " + getId_articoloVariante()); } else { wc.addWc(" (Z.id_articoloVariante = 0 OR Z.id_articoloVariante IS NULL)"); } WcString wc1 = new WcString(); wc1.addWc(" B.id_tipoDocumento = " + getParm("ID_DOC_PRENOTAZIONE").getNumeroLong()); wc1.addWc(" A.id_articolo = " + getId_articolo()); if (getId_articoloVariante() != 0L) { wc1.addWc(" A.id_articoloVariante = " + getId_articoloVariante()); } else { wc1.addWc(" (A.id_articoloVariante = 0 OR A.id_articoloVariante IS NULL)"); } wc1.addWc(" (B.flgStatoPrenotazione = 0 OR B.flgStatoPrenotazione = 200 OR B.flgStatoPrenotazione = 20 OR B.flgStatoPrenotazione = 10 OR B.flgStatoPrenotazione IS NULL)"); wc1.addWc("(A.flgRigaPrelevata is null or A.flgRigaPrelevata=0)"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + " AND C.id_rigaDocumentoPrelevata IN (" + wc.toString() + s_Sql_Find1 + ")"); return getSum(stmt); } catch (SQLException e) { handleDebug(e); return 0.0D; } } public double getQtaOrdiniApertiPrenotazioni() { String s_Sql_Find = "select SUM(Z.quantita - Z.quantitaPrelevata) AS _sum FROM RIGA_DOCUMENTO AS Z INNER JOIN DOCUMENTO AS B ON Z.id_documento = B.id_documento INNER JOIN RIGA_DOCUMENTO_P_M AS C ON Z.id_rigaDocumento = C.id_rigaDocumento "; String s_Sql_Find1 = " SELECT A.id_rigaDocumento FROM RIGA_DOCUMENTO AS A INNER JOIN DOCUMENTO AS B ON A.id_documento = B.id_documento INNER JOIN RIGA_DOCUMENTO_P_M AS C ON A.id_rigaDocumento = C.id_rigaDocumentoPrelevata "; WcString wc = new WcString(); wc.addWc(" B.id_tipoDocumento = " + getParm("ID_DOC_ORDINE").getNumeroLong()); wc.addWc(" Z.id_articolo = " + getId_articolo()); if (getId_articoloVariante() != 0L) { wc.addWc(" Z.id_articoloVariante = " + getId_articoloVariante()); } else { wc.addWc(" (Z.id_articoloVariante = 0 OR Z.id_articoloVariante IS NULL)"); } WcString wc1 = new WcString(); wc1.addWc(" B.id_tipoDocumento = " + getParm("ID_DOC_PRENOTAZIONE").getNumeroLong()); wc1.addWc(" A.id_articolo = " + getId_articolo()); if (getId_articoloVariante() != 0L) { wc1.addWc(" A.id_articoloVariante = " + getId_articoloVariante()); } else { wc1.addWc(" (A.id_articoloVariante = 0 OR A.id_articoloVariante IS NULL)"); } wc1.addWc(" (B.flgStatoPrenotazione = 0 OR B.flgStatoPrenotazione = 200 OR B.flgStatoPrenotazione = 20 OR B.flgStatoPrenotazione = 10 OR B.flgStatoPrenotazione IS NULL)"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + " AND C.id_rigaDocumentoPrelevata IN (" + wc.toString() + s_Sql_Find1 + ")"); return getSum(stmt); } catch (SQLException e) { handleDebug(e); return 0.0D; } } public boolean hasQtaOrdinata() { if (getDocumento().getTipoDocumento().getFlgTipologia() == 4L) { double[] res = getQtaOrdinataPrelevataByRigaPrenotazione(); double qtOrd = res[0]; if (qtOrd > 0.0D) return true; return false; } return false; } public Documento getDocumentoPrenotazione() { if (getId_rigaDocumento() != 0L && getDocumento().getTipoDocumento().getFlgTipologia() == 3L) { RigaDocumentoPM rdPm = new RigaDocumentoPM(getApFull()); rdPm.findByRigaDocumento(getId_rigaDocumento()); return rdPm.getRigaDocumentoPrelevata().getDocumento(); } return new Documento(getApFull()); } public double getKg() { return this.kg; } public void setKg(double kg) { this.kg = kg; } public double getMt() { return this.mt; } public void setMt(double mt) { this.mt = mt; } public double getNr() { return this.nr; } public void setNr(double nr) { this.nr = nr; } public static synchronized ResParm aggiornaMovimento(RigaDocumento bean) { ResParm rp = new ResParm(true); if (bean.getArticolo().getTipo().getFlgTipoMagazzino() == 0L || bean.getArticolo().getTipo().getFlgTipoMagazzino() == 9L) return rp; if (bean.getId_articolo() != 0L) { long magPartenza = 0L; long magArrivo = 0L; long flgInternoPartenza = 0L; long flgInternoArrivo = 0L; if (bean.getDocumento().getId_magFisicoPartenza() == 0L) { if (bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoPartenza() > 0L) { magPartenza = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoPartenza(); flgInternoPartenza = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getMagFisicoPartenza().getFlgTipo(); } } else { magPartenza = bean.getDocumento().getId_magFisicoPartenza(); flgInternoPartenza = bean.getDocumento().getMagFisicoPartenza().getFlgTipo(); } if (bean.getDocumento().getId_magFisicoArrivo() == 0L) { if (bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoArrivo() > 0L) { magArrivo = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoArrivo(); flgInternoArrivo = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getMagFisicoArrivo().getFlgTipo(); } } else { magArrivo = bean.getDocumento().getId_magFisicoArrivo(); flgInternoArrivo = bean.getDocumento().getMagFisicoArrivo().getFlgTipo(); } cancellaMovimento(bean, magPartenza, magArrivo); if (magPartenza != 0L || magArrivo != 0L) Movimento movimento = new Movimento(bean.getApFull()); if (magPartenza != 0L) { Movimento mov = new Movimento(bean.getApFull()); mov.setId_rigaDocumento(bean.getId_rigaDocumento()); mov.setId_articolo(bean.getId_articolo()); mov.setId_articoloVariante(bean.getId_articoloVariante()); mov.setId_articoloTaglia(bean.getId_articoloTaglia()); mov.setSeriale(bean.getSeriale()); mov.setId_causaleMagazzino(bean.getDocumento().getTipoDocumento().getId_causaleMagazzino()); if (bean.getFlgReso() == 1L) { mov.setKg(bean.getKg()); mov.setMt(bean.getMt()); mov.setNr(bean.getNr()); } else { mov.setKg(-1.0D * bean.getKg()); mov.setMt(-1.0D * bean.getMt()); mov.setNr(-1.0D * bean.getNr()); } mov.setId_magFisico(magPartenza); if (flgInternoPartenza == 1L) { mov.setId_clifor(0L); } else { mov.setId_clifor(bean.getDocumento().getId_clifor()); } rp = mov.save(); } if (magArrivo != 0L) { Movimento mov = new Movimento(bean.getApFull()); mov.setId_rigaDocumento(bean.getId_rigaDocumento()); mov.setId_articolo(bean.getId_articolo()); mov.setId_articoloVariante(bean.getId_articoloVariante()); mov.setId_articoloTaglia(bean.getId_articoloTaglia()); mov.setSeriale(bean.getSeriale()); mov.setId_causaleMagazzino(bean.getDocumento().getTipoDocumento().getId_causaleMagazzino()); if (bean.getFlgReso() == 0L) { mov.setKg(bean.getKg()); mov.setMt(bean.getMt()); mov.setNr(bean.getNr()); } else { mov.setKg(-1.0D * bean.getKg()); mov.setMt(-1.0D * bean.getMt()); mov.setNr(-1.0D * bean.getNr()); } mov.setId_magFisico(magArrivo); if (flgInternoArrivo == 1L) { mov.setId_clifor(0L); } else { mov.setId_clifor(bean.getDocumento().getId_clifor()); } rp.append(mov.save()); } } return rp; } public static synchronized ResParm cancellaMovimento(RigaDocumento bean, long l_id_magazzinoPartenza, long l_id_magazzinoArrivo) { ResParm rp = new ResParm(true); Movimento mov = new Movimento(bean.getApFull()); Vectumerator vec = mov.findByRigaDocumento(bean.getId_rigaDocumento()); if (l_id_magazzinoPartenza == 0L && l_id_magazzinoArrivo == 0L) { while (vec.hasMoreElements()) { mov = (Movimento)vec.nextElement(); rp.append(mov.delete()); } } else { while (vec.hasMoreElements()) { mov = (Movimento)vec.nextElement(); if (mov.getId_magFisico() == l_id_magazzinoPartenza || mov.getId_magFisico() == l_id_magazzinoArrivo) rp.append(mov.delete()); } } return rp; } public double getQuantitaTotaleByDocumento(long l_id_documento) { String s_Sql_Find = "select sum(quantita) AS _sum from RIGA_DOCUMENTO AS A"; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); return getSum(stmt); } catch (SQLException e) { handleDebug(e); return 0.0D; } } public String getQuantitaMagazzinoMovimentoHtml() { if (getId_articoloVariante() > 0L) return getArticoloVariante().getQuantitaMagazzinoMovimentoHtml(); if (getId_articolo() > 0L) return getArticolo().getQuantitaMagazzinoMovimentoHtml(); if (getId_articoloFilatoColore() > 0L) return getArticoloFilatoColore().getQuantitaMagazzinoMovimentoHtml(); if (getId_articoloTessutoColore() > 0L) return getArticoloTessutoColore().getQuantitaMagazzinoMovimentoHtml(); if (getId_articoloTessuto() > 0L) return getArticoloTessuto().getQuantitaMagazzinoMovimentoHtml(); return ""; } public double getQuantitaEffettiva() { if (getId_articoloVariante() > 0L) return getArticoloVariante().getQuantitaEffettivaAv(); if (getId_articolo() > 0L) return getArticolo().getQuantitaEffettiva(); if (getId_articoloFilatoColore() > 0L) return getArticoloFilatoColore().getQuantitaEffettiva(); if (getId_articoloTessutoColore() > 0L) return getArticoloTessutoColore().getQuantitaEffettiva(); if (getId_articoloTessuto() > 0L) return getArticoloTessuto().getQuantitaEffettiva(); return 0.0D; } public double getQuantitaImpegnata() { if (getId_articoloVariante() > 0L) return getArticoloVariante().getQuantitaImpegnataAv(); if (getId_articolo() > 0L) return getArticolo().getQuantitaImpegnata(); if (getId_articoloFilatoColore() > 0L) return getArticoloFilatoColore().getQuantitaImpegnata(); if (getId_articoloTessutoColore() > 0L) return getArticoloTessutoColore().getQuantitaImpegnata(); if (getId_articoloTessuto() > 0L) return getArticoloTessuto().getQuantitaImpegnata(); return 0.0D; } public double getQuantitaInArrivo() { if (getId_articoloVariante() > 0L) return getArticoloVariante().getQuantitaInArrivoAv(); if (getId_articolo() > 0L) return getArticolo().getQuantitaInArrivo(); if (getId_articoloFilatoColore() > 0L) return getArticoloFilatoColore().getQuantitaInArrivo(); if (getId_articoloTessutoColore() > 0L) return getArticoloTessutoColore().getQuantitaInArrivo(); if (getId_articoloTessuto() > 0L) return getArticoloTessuto().getQuantitaInArrivo(); return 0.0D; } public ResParm aggiornaMovimentoPareggioRigaPrelevata() { ResParm rp = new ResParm(true); try { RigaDocumento rd = new RigaDocumento(getApFull()); rd.getMagQuantitaPrelevatoByRigaDocumentoPrelevata(getId_rigaDocumento()); double tot = rd.getQuantita(); if (getDocumento().getId_tipoDocumento() == getId_docOrdine() && getQuantita() > tot) { long id_causale_storno = getParm("STORNO_ORDINE_A_FORNITORE").getNumeroLong(); DoubleOperator dp = new DoubleOperator(getQuantita()); dp.subtract(tot); double qtaDaPrelevare = dp.getResult(); RigaDocumento rdStorno = new RigaDocumento(getApFull()); rdStorno.findMagByRigaDocumentoCausale(getId_rigaDocumento(), id_causale_storno); if (rdStorno.getId_rigaDocumento() == 0L) { rdStorno = (RigaDocumento)clone(); rdStorno.setId_rigaDocumento(0L); rdStorno.setDBState(0); } rdStorno.setId_rigaDocumentoMov(getId_rigaDocumento()); rdStorno.setId_causaleMagazzino(id_causale_storno); rdStorno.setSegnoMov(getSegnoMov() * -1L); rdStorno.setSeriale(getSeriale()); if (getArticolo().getTipologiaArticolo().getFlgUdm() == 1L) { rdStorno.setNr(qtaDaPrelevare); } else if (getArticolo().getTipologiaArticolo().getFlgUdm() == 3L) { rdStorno.setMt(qtaDaPrelevare); } else if (getArticolo().getTipologiaArticolo().getFlgUdm() == 2L) { rdStorno.setKg(qtaDaPrelevare); } rp = rdStorno.saveMov(); } } catch (Exception e) { rp.setException(e); } return rp; } public ResParm aggiornaMovimentoPareggioRigaPrelevataM() { ResParm rp = new ResParm(true); RigaDocumentoP rdp = new RigaDocumentoP(getApFull()); double tot = rdp.getQuantitaPrelevatoByRigaDocumentoPrelevata(getId_rigaDocumento()); if (getDocumento().getId_tipoDocumento() == getId_docOrdine() && getQuantita() > tot) { long id_causale_storno = getParm("STORNO_ORDINE_A_FORNITORE").getNumeroLong(); DoubleOperator dp = new DoubleOperator(getQuantita()); dp.subtract(tot); dp.multiply(-1); double qtaDaPrelevare = dp.getResult(); CausaleMagazzino cm = new CausaleMagazzino(getApFull()); cm.findByPrimaryKey(id_causale_storno); Movimento mov = new Movimento(getApFull()); mov.findByRigaDocumentoCausale(getId_rigaDocumento(), id_causale_storno); mov.setId_rigaDocumento(getId_rigaDocumento()); mov.setId_articolo(getId_articolo()); mov.setId_articoloVariante(getId_articoloVariante()); mov.setId_articoloTaglia(getId_articoloTaglia()); mov.setId_causaleMagazzino(id_causale_storno); mov.setSeriale(getSeriale()); if (getArticolo().getTipologiaArticolo().getFlgUdm() == 1L) { mov.setNr(qtaDaPrelevare); } else if (getArticolo().getTipologiaArticolo().getFlgUdm() == 3L) { mov.setMt(qtaDaPrelevare); } else if (getArticolo().getTipologiaArticolo().getFlgUdm() == 2L) { mov.setKg(qtaDaPrelevare); } mov.setId_magFisico(cm.getId_magFisicoPartenza()); if (cm.getMagFisicoPartenza().getFlgTipo() == 1L) { mov.setId_clifor(0L); } else { mov.setId_clifor(getDocumento().getId_clifor()); } rp = mov.save(); } return rp; } public Vectumerator findAllPerRiordinoMagazzino(long l_id_articolo, int pageNumber, int pageRows) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A, DOCUMENTO AS B, TIPO_DOCUMENTO AS C"; String s_Sql_Order = " order by B.dataDocumento asc,B.id_esercizio, A.id_documento"; WcString wc = new WcString(); wc.addWc("A.id_documento=B.id_documento"); wc.addWc("B.id_tipoDocumento=C.id_tipoDocumento"); wc.addWc("(A.id_rigaDocumentoMov=0 or A.id_rigaDocumentoMov is null)"); if (l_id_articolo != 0L) { wc.addWc("A.id_articolo=" + l_id_articolo); } else { wc.addWc("A.id_articolo >0"); } wc.addWc("C.id_causaleMagazzino >0"); try { PreparedStatement stmt; if (pageRows == 0 && pageNumber == 0) { stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); } else { int partenza = pageRows * (pageNumber - 1); stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString() + " limit " + s_Sql_Order + " , " + partenza); } return findRows(stmt); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public void setQuantitaUdm(double qta) { if (getArticolo().getTipologiaArticolo().getFlgUdm() == 1L) { setNr(qta); } else if (getArticolo().getTipologiaArticolo().getFlgUdm() == 2L) { setKg(qta); } else if (getArticolo().getTipologiaArticolo().getFlgUdm() == 3L) { setMt(qta); } else { setNr(qta); } } public double getRigheAssociateSeriali(RigaDocumentoCR CR) { StringBuffer s_Sql_Find = new StringBuffer("select COUNT(*) as _sum from RIGA_DOCUMENTO AS A INNER JOIN DOCUMENTO AS B ON A.id_documento=B.id_documento "); s_Sql_Find.append(" INNER JOIN TIPO_DOCUMENTO AS C ON B.id_tipoDocumento=C.id_tipoDocumento "); WcString wc = new WcString(); findByCRCreateWC(CR, s_Sql_Find, wc); try { PreparedStatement stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find)); findByCRCreateStmtDate(CR, stmt); return getSum(stmt); } catch (SQLException e) { handleDebug(e); return 0.0D; } } public long getQtaSlipStampate() { return this.qtaSlipStampate; } public void setQtaSlipStampate(long qtaSlipStampate) { this.qtaSlipStampate = qtaSlipStampate; } public void checkStatoRigaQta(double[] stati) { stati[0] = 0.0D; stati[1] = 0.0D; DoubleOperator qtaEffettiva = new DoubleOperator(); DoubleOperator qtaMagazzino = new DoubleOperator(); if (getFlgRigaPrelevata() == 1L) { stati[0] = 40.0D; } else if (getId_articolo() != 0L || getId_articoloVariante() != 0L) { if (!getSeriale().isEmpty()) { stati[0] = 30.0D; } else { RigaDocumentoCR CR = new RigaDocumentoCR(); CR.setFlgTipologia(4L); CR.setFlgStatoPrenotazione(200L); CR.setId_articolo(getId_articolo()); CR.setId_articoloVariante(getId_articoloVariante()); CR.setFlgTipoRicerca(0L); CR.setFlgOrderBy(5L); CR.setFlgRigaPrelevata(0L); if (getId_articoloVariante() != 0L) { qtaEffettiva.add(getArticoloVariante().getQuantitaInArrivoAv()); qtaEffettiva.add(getArticoloVariante().getQuantitaAv()); qtaMagazzino.add(getArticoloVariante().getQuantitaAv()); } else if (getId_articolo() != 0L) { qtaEffettiva.add(getArticolo().getQuantitaInArrivo()); qtaEffettiva.add(getArticolo().getQuantita()); qtaMagazzino.add(getArticolo().getQuantita()); } CR.setFlgNoSeriale(2L); double qtAssociata = getRigheAssociateSeriali(CR); double qtMagazzino = getQtaPrelevataPrenotazioni(); qtaEffettiva.subtract(qtAssociata); qtaEffettiva.subtract(getQtaOrdiniApertiPrenotazioni()); qtaEffettiva.subtract(qtMagazzino); qtaMagazzino.subtract(qtMagazzino); qtaMagazzino.subtract(qtAssociata); if (qtaEffettiva.getResult() >= 0.0D) { CR.setFlgNoSeriale(1L); Vectumerator vec = findByCR(CR, 0, 0); while (vec.hasMoreElements()) { RigaDocumento row = (RigaDocumento)vec.nextElement(); double[] res = row.getQtaOrdinataPrelevataByRigaPrenotazione(); double qtOrd = res[0]; double qtPrel = res[1]; double qtPrenoParziale = row.getQuantita(); if (qtPrel >= qtPrenoParziale) { stati[0] = 30.0D; qtPrenoParziale = 0.0D; } else if (qtPrel > 0.0D) { stati[0] = 20.0D; DoubleOperator dop = new DoubleOperator(qtPrenoParziale); dop.subtract(qtPrel); qtPrenoParziale = dop.getResult(); } else if (qtOrd >= qtPrenoParziale) { stati[0] = 10.0D; qtPrenoParziale = 0.0D; } else if (qtOrd > 0.0D) { stati[0] = 15.0D; DoubleOperator dop = new DoubleOperator(qtPrenoParziale); dop.subtract(qtOrd); qtPrenoParziale = dop.getResult(); } if (row.getId_rigaDocumento() == getId_rigaDocumento()) { if (stati[0] == 30.0D || stati[0] == 10.0D) break; if (qtaMagazzino.getResult() >= qtPrenoParziale) { if (stati[0] == 15.0D || stati[0] == 10.0D) { stati[0] = 20.0D; stati[1] = qtPrenoParziale; break; } stati[0] = 30.0D; stati[1] = qtPrenoParziale; break; } if (qtaMagazzino.getResult() > 0.0D) { stati[0] = 20.0D; stati[1] = qtaMagazzino.getResult(); break; } if (qtaEffettiva.getResult() >= qtPrenoParziale) { stati[0] = 10.0D; break; } if (qtaEffettiva.getResult() > 0.0D) { stati[0] = 15.0D; break; } break; } qtaEffettiva.subtract(qtPrenoParziale); qtaMagazzino.subtract(qtPrenoParziale); stati[0] = 0.0D; } } } } } public Vectumerator findByDocumento(long l_id_documento, long l_flgCodiceRiga, String l_search, int pageNumber, int pageRows, int ordinamentoRiga) { RigaDocumentoCR CR = new RigaDocumentoCR(getApFull()); CR.setId_documento(l_id_documento); CR.setFlgCodiceRiga(l_flgCodiceRiga); CR.setSearchTxt(l_search); return findByDocumento(CR, pageNumber, pageRows, ordinamentoRiga); } public Vectumerator findByDocumentoOLD(long l_id_documento, long l_flgCodiceRiga, String l_search, int pageNumber, int pageRows, boolean ordineInverso) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A left join ARTICOLO AS B on A.id_articolo=B.id_articolo "; String s_Sql_order = " order by A.id_rigaDocumento desc"; if (!ordineInverso) s_Sql_order = " order by A.id_rigaDocumento asc"; WcString wc = new WcString(); wc.addWc("(A.id_rigaDocumentoMov=0 or A.id_rigaDocumentoMov is null)"); wc.addWc("A.id_documento=" + l_id_documento); if (l_flgCodiceRiga == 0L) { wc.addWc("(A.flgCodiceRiga is null or A.flgCodiceRiga=0)"); } else if (l_flgCodiceRiga > 0L) { wc.addWc("A.flgCodiceRiga=" + l_flgCodiceRiga); } if (!l_search.isEmpty()) { String star = ""; String temp = l_search; temp = prepareInputMySqlString(temp, true); temp = temp.replace("*", "%"); StringTokenizer st = new StringTokenizer(temp.trim(), " "); StringBuffer txt = new StringBuffer("("); while (st.hasMoreTokens()) { String token = star + star; txt.append("(B.codice like '" + token + "%' or A.seriale like '" + token + "' or A.descrizioneRiga like '" + token + "%' )"); if (st.hasMoreTokens()) { txt.append(" and "); star = "%"; } } txt.append(")"); wc.addWc(txt.toString()); } try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt, pageNumber, pageRows); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findByDocumento(RigaDocumentoCR CR, int pageNumber, int pageRows, int ordinamentoRiga) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A left join ARTICOLO AS B on A.id_articolo=B.id_articolo "; String s_Sql_order = " order by A.ordine, A.id_rigaDocumento asc"; if (ordinamentoRiga == 1) { s_Sql_order = " order by A.ordine desc,A.id_rigaDocumento desc"; } else if (ordinamentoRiga == 2) { s_Sql_order = " order by A.descrizioneRiga asc"; } else if (ordinamentoRiga == 3) { s_Sql_order = " order by A.descrizioneRigaRaggruppamento asc, A.descrizioneRigaDettaglio, A.descrizioneRiga"; } else if ((long)ordinamentoRiga == 10L) { s_Sql_Find = s_Sql_Find + " INNER join DOCUMENTO AS D ON D.id_documento=A.id_documentoPadre"; s_Sql_order = " order by D.riferimento, A.id_rigaDocumentoPadre, A.descrizioneRigaDettaglio, A.descrizioneRiga"; } WcString wc = new WcString(); wc.addWc("(A.id_rigaDocumentoMov=0 or A.id_rigaDocumentoMov is null)"); wc.addWc("A.id_documento=" + CR.getId_documento()); if (CR.getFlgCodiceRiga() == 0L) { wc.addWc("(A.flgCodiceRiga is null or A.flgCodiceRiga=0)"); } else if (CR.getFlgCodiceRiga() > 0L) { wc.addWc("A.flgCodiceRiga=" + CR.getFlgCodiceRiga()); } if (CR.getFlgStatoLavorazioneRiga() == 0L) { wc.addWc("(A.flgStatoLavorazioneRiga is null or A.flgStatoLavorazioneRiga=0)"); } else if (CR.getFlgStatoLavorazioneRiga() > 0L) { wc.addWc("A.flgStatoLavorazioneRiga=" + CR.getFlgStatoLavorazioneRiga()); } else if (CR.getFlgStatoLavorazioneRiga() == -1L) { wc.addWc("(A.flgStatoLavorazioneRiga=0 is null or A.flgStatoLavorazioneRiga=0 or A.flgStatoLavorazioneRiga=20 or A.flgStatoLavorazioneRiga=10 ) "); } if (!CR.getSearchTxt().isEmpty()) { String star = ""; String temp = CR.getSearchTxt(); temp = prepareInputMySqlString(temp, true); temp = temp.replace("*", "%"); StringTokenizer st = new StringTokenizer(temp.trim(), " "); StringBuffer txt = new StringBuffer("("); while (st.hasMoreTokens()) { String token = star + star; txt.append("(B.codice like '" + token + "%' or A.seriale like '" + token + "' or A.descrizioneRiga like '" + token + "%' )"); if (st.hasMoreTokens()) { txt.append(" and "); star = "%"; } } txt.append(")"); wc.addWc(txt.toString()); } try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt, pageNumber, pageRows); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findByDocumentoArticoloArticoloVariante(long l_id_documento, long l_id_articolo, long l_id_articoloVariante) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A left join ARTICOLO AS B on A.id_articolo=B.id_articolo "; String s_Sql_order = " order by A.id_rigaDocumento desc"; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); if (l_id_articolo == 0L) { wc.addWc("(A.id_articolo is null or A.id_articolo=0)"); } else { wc.addWc("A.id_articolo=" + l_id_articolo); } if (l_id_articoloVariante == 0L) { wc.addWc("(A.id_articoloVariante is null or A.id_articoloVariante=0)"); } else { wc.addWc("A.id_articoloVariante=" + l_id_articoloVariante); } try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public void findByDocumentoArticoloArticoloVarianteTaglia(long l_id_documento, long l_id_articolo, long l_id_articoloVariante, long l_id_articoloTaglia) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_order = " order by A.id_rigaDocumento desc"; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); if (l_id_articolo == 0L) { wc.addWc("(A.id_articolo is null or A.id_articolo=0)"); } else { wc.addWc("A.id_articolo=" + l_id_articolo); } if (l_id_articoloVariante == 0L) { wc.addWc("(A.id_articoloVariante is null or A.id_articoloVariante=0)"); } else { wc.addWc("A.id_articoloVariante=" + l_id_articoloVariante); } if (l_id_articoloTaglia == 0L) { wc.addWc("(A.id_articoloTaglia is null or A.id_articoloTaglia=0)"); } else { wc.addWc("A.id_articoloTaglia=" + l_id_articoloTaglia); } try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); findFirstRecord(stmt); } catch (Exception e) { handleDebug(e, 0); } } public void findByDocumentoArticoloTessutoColore(long l_id_documento, long l_id_articoloTessutoColore, long l_flgCodiceRiga) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_order = " order by A.id_rigaDocumento desc"; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); wc.addWc("A.flgCodiceRiga=" + l_flgCodiceRiga); wc.addWc("A.id_articoloTessutoColore=" + l_id_articoloTessutoColore); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); findFirstRecord(stmt); } catch (Exception e) { handleDebug(e, 0); } } public void findByDocumentoArticoloTessuto(long l_id_documento, long l_id_articoloTessuto, long l_flgCodiceRiga) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_order = " order by A.id_rigaDocumento desc"; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); wc.addWc("A.flgCodiceRiga=" + l_flgCodiceRiga); wc.addWc("A.id_articoloTessuto=" + l_id_articoloTessuto); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); findFirstRecord(stmt); } catch (Exception e) { handleDebug(e, 0); } } public long getStatoPrenotazione() { if (getDocumento().getId_tipoDocumento() == getId_docPrenotazione()) if (this.statoPrenotazione == -1L) { this.statoPrenotazione = checkStatoRiga(); super.save(); } return this.statoPrenotazione; } public void setStatoPrenotazione(long statoPrenotazione) { this.statoPrenotazione = statoPrenotazione; } public ResParm resetStatoPrenotazioneByArticolo(long l_id_articolo, long l_id_articoloVariante, long l_id_articoloTaglia) { String s_sql_update = "update RIGA_DOCUMENTO AS A INNER JOIN DOCUMENTO AS B ON A.id_documento= B.id_documento SET statoPrenotazione=-1 "; WcString wc = new WcString(); wc.addWc("B.id_tipoDocumento=" + getId_docPrenotazione()); if (l_id_articolo > 0L) wc.addWc("A.id_articolo=" + l_id_articolo); if (l_id_articoloVariante > 0L) wc.addWc("A.id_articoloVariante=" + l_id_articoloVariante); if (l_id_articoloTaglia > 0L) wc.addWc("A.id_articoloTaglia=" + l_id_articoloTaglia); ResParm rp = update(s_sql_update + s_sql_update); return rp; } public String getStatoRiga() { return getStatoRiga(getStatoPrenotazione()); } public void findRigaImpegnoBySeriale(long l_id_articolo, long l_id_articoloVariante, String l_seriale) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A , DOCUMENTO AS B "; WcString wc = new WcString(); wc.addWc("A.id_documento=B.id_documento"); if (l_id_articoloVariante == 0L) { wc.addWc("(A.id_articoloVariante=0 or A.id_articoloVariante is null)"); } else { wc.addWc("A.id_articoloVariante=" + l_id_articoloVariante); } wc.addWc("A.id_articolo=" + l_id_articolo); wc.addWc("A.seriale='" + l_seriale + "'"); wc.addWc("B.id_tipoDocumento=" + getId_docPrenotazione()); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); findFirstRecord(stmt); } catch (Exception e) { handleDebug(e, 0); } } public double getQuantitaMovimentoMagazzino() { if (getDocumento().getTipoDocumento().getCausaleMagazzino().getMagFisicoArrivo() .getFlgTipo() == 3L || getDocumento().getTipoDocumento().getCausaleMagazzino().getMagFisicoPartenza() .getFlgTipo() == 3L) return 0.0D; if (getArticolo().getTipo().getFlgTipoMagazzino() > 0L && getArticolo().getTipo().getFlgTipoMagazzino() < 9L) { if (getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoPartenza() > 0L) return -getQuantita(); if (getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoArrivo() > 0L) return getQuantita(); return 0.0D; } return 0.0D; } public long findAllPerRiordinoMagazzinoTot(long l_id_articolo) { String s_Sql_Find = "select COUNT(*) AS _tot from RIGA_DOCUMENTO AS A, DOCUMENTO AS B, TIPO_DOCUMENTO AS C"; String s_Sql_Order = " order by B.dataDocumento asc,B.id_esercizio, A.id_documento"; WcString wc = new WcString(); wc.addWc("A.id_documento=B.id_documento"); wc.addWc("B.id_tipoDocumento=C.id_tipoDocumento"); wc.addWc("(A.id_rigaDocumentoMov=0 or A.id_rigaDocumentoMov is null)"); if (l_id_articolo != 0L) { wc.addWc("A.id_articolo=" + l_id_articolo); } else { wc.addWc("A.id_articolo >0"); } wc.addWc("C.id_causaleMagazzino >0"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); return getCount(stmt, "_tot"); } catch (SQLException e) { handleDebug(e); return 0L; } } public ResParm settaRigaPrelevata() { if (getId_rigaDocumento() > 0L) { setFlgRigaPrelevata(1L); ResParm rp = super.save(); if (rp.getStatus()) { rp.append(aggiornaMovimentoPareggioRigaPrelevataM()); rp.append(aggiornaMovimentoPareggioRigaPrelevata()); getArticolo().resetCalcoloQuantita(); } return rp; } return new ResParm(false, "ERRORE! Tentativo di annullare una riga prelevata su una rigq inesistente!"); } public ResParm annullaRigaPrelevata() { if (getId_rigaDocumento() > 0L) { setFlgRigaPrelevata(0L); ResParm rp = synchroSave(this); if (rp.getStatus()) { RigaDocumento rdStorno = new RigaDocumento(getApFull()); long id_causale_storno = getParm("STORNO_ORDINE_A_FORNITORE").getNumeroLong(); rdStorno.findMagByRigaDocumentoCausale(getId_rigaDocumento(), id_causale_storno); if (rdStorno.getId_rigaDocumento() != 0L) rdStorno.deleteMov(); rp = aggiornaDispo(); } return rp; } return new ResParm(false, "ERRORE! Tentativo di annullare una riga prelevata su una rigq inesistente!"); } public Vectumerator findRigheNonPrelevateByDocumento(long l_id_documento) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_order = " order by A.id_rigaDocumento"; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); wc.addWc("A.flgRigaPrelevata=0"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findRigheNonPrelevatePreChiusuraByDocumento(long l_id_documento) { String s_Sql_Find = "SELECT * FROM RIGA_DOCUMENTO AS A LEFT JOIN RIGA_DOCUMENTO_P AS B ON A.id_rigaDocumento = B.id_rigaDocumentoPrelevata"; String s_Sql_order = " order by A.id_rigaDocumento"; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); wc.addWc("B.id_rigaDocumento IS NULL"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findOrdiniByArticolo(long l_id_articolo) { String s_Sql_Find = "SELECT A.id_documento, SUM(B.nr) AS nr FROM DOCUMENTO AS A INNER JOIN RIGA_DOCUMENTO AS B ON A.id_documento = B.id_documento "; String s_Sql_GroupBy = " GROUP BY A.id_documento"; String s_Sql_Order = ""; WcString wc = new WcString(); wc.addWc(" B.id_articolo = " + l_id_articolo); wc.addWc(" A.id_tipoDocumento = 8 "); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString() + s_Sql_Order); return findRows(stmt, 0, 0); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findMovimentiDiCaricoByArticoloDocumento(long l_id_articolo, long l_id_documento) { String s_Sql_Find = "SELECT E.id_documento, D.id_magFisico AS id_magFisico, SUM(D.nr) AS nr FROM RIGA_DOCUMENTO_P AS A LEFT JOIN RIGA_DOCUMENTO AS B ON A.id_rigadocumentoPrelevata = B.id_rigaDocumento LEFT JOIN DOCUMENTO AS C ON B.id_documento = C.id_documento LEFT JOIN MOVIMENTO AS D ON A.id_rigadocumento = D.id_rigaDocumento LEFT JOIN RIGA_DOCUMENTO AS E ON D.id_rigadocumento = E.id_rigadocumento "; String s_Sql_GroupBy = " GROUP BY E.id_documento, D.id_magFisico"; String s_Sql_Order = ""; WcString wc = new WcString(); wc.addWc(" B.id_articolo = " + l_id_articolo); wc.addWc(" C.id_documento = " + l_id_documento); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString() + s_Sql_Order); return findRows(stmt, 0, 0); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findDettaglioBollaByArticoloDocumento(long l_id_articolo, long l_id_documento) { String s_Sql_Find = "SELECT COUNT(B.id_movimento) AS nr, A.id_rigaDocumento, A.id_documento FROM RIGA_DOCUMENTO AS A LEFT JOIN MOVIMENTO AS B ON A.id_rigadocumento = B.id_rigaDocumento "; String s_Sql_GroupBy = " GROUP BY A.id_rigaDocumento"; String s_Sql_Order = ""; WcString wc = new WcString(); wc.addWc(" A.id_articolo = " + l_id_articolo); wc.addWc(" A.id_documento = " + l_id_documento); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString() + s_Sql_Order); return findRows(stmt, 0, 0); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findOrdiniAFornitoreAperti() { return findOrdiniAFornitoreAperti(0L); } public Vectumerator findOrdiniAFornitoreAperti(long id_articolo) { String s_Sql_Find = "SELECT SUM(A.nr) AS nr, A.id_articolo, A.id_articoloVariante, A.id_articoloTaglia FROM RIGA_DOCUMENTO AS A INNER JOIN DOCUMENTO AS B ON A.id_documento = B.id_documento "; String s_Sql_GroupBy = " GROUP BY A.id_articolo"; String s_Sql_Order = ""; WcString wc = new WcString(); if (id_articolo > 0L) wc.addWc(" A.id_articolo = " + id_articolo); wc.addWc(" B.id_tipoDocumento = 8 "); wc.addWc(" (B.flgDocumentoPrelevato = 0 OR B.flgDocumentoPrelevato IS NULL) "); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString() + s_Sql_Order); return findRows(stmt, 0, 0); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findOrdiniAFornitoreChiusi() { String s_Sql_Find = "SELECT SUM(A.nr) AS nr, A.id_articolo, A.id_articoloVariante, A.id_articoloTaglia FROM RIGA_DOCUMENTO AS A INNER JOIN DOCUMENTO AS B ON A.id_documento = B.id_documento "; String s_Sql_GroupBy = " GROUP BY A.id_articolo"; String s_Sql_Order = ""; WcString wc = new WcString(); wc.addWc(" B.id_tipoDocumento = 8 "); wc.addWc(" B.flgDocumentoPrelevato = 1 "); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString() + s_Sql_Order); return findRows(stmt, 0, 0); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public double getQtaSaldoMovimento(long l_id_articolo, long l_id_articoloVariante, long l_id_articoloTaglia) { System.out.println("Rigadocumento.getQtaSaldoMovimento !!!!!!"); if (this.qtaSaldoMovimento == 0.0D) { Movimento mov = new Movimento(getApFull()); setQtaSaldoMovimento( mov.getSaldoByArticoloVarianteTagliaMagazzino(l_id_articolo, l_id_articoloVariante, l_id_articoloTaglia, 5L)); } return this.qtaSaldoMovimento; } public void setQtaSaldoMovimento(double qtaSaldoMovimento) { this.qtaSaldoMovimento = qtaSaldoMovimento; } public void importMovimentoOrdiniAFornitore() { long i = 0L; String sql = "DELETE FROM MOVIMENTO WHERE id_magFisico = 5"; delete(sql); sql = "UPDATE ARTICOLO SET quantitaCalcolate=false"; update(sql); String s_Sql_Find = "SELECT A.* FROM RIGA_DOCUMENTO AS A INNER JOIN DOCUMENTO AS B ON A.id_documento = B.id_documento "; String s_Sql_Order = ""; WcString wc = new WcString(); wc.addWc(" B.id_tipoDocumento = 8 "); wc.addWc(" (B.flgDocumentoPrelevato = 0 OR B.flgDocumentoPrelevato IS NULL) "); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); MagFisico mf = new MagFisico(getApFull()); mf.findMagazzinoOrdinato(); Vectumerator vec = findRows(stmt, 0, 0); while (vec.hasMoreElements()) { RigaDocumento rd = (RigaDocumento)vec.nextElement(); Movimento mov = new Movimento(getApFull()); mov.setId_articolo(rd.getId_articolo()); mov.setId_articoloVariante(rd.getId_articoloVariante()); mov.setId_articoloTaglia(rd.getId_articoloTaglia()); mov.setId_clifor(rd.getDocumento().getId_clifor()); mov.setId_magFisico(mf.getId_magFisico()); mov.setId_causaleMagazzino(7L); mov.setId_rigaDocumento(rd.getId_rigaDocumento()); mov.setNr(rd.getQuantita()); mov.save(); Vectumerator vecRdp = new RigaDocumentoP(getApFull()).findByRigaDocumentoPrelevata(rd.getId_rigaDocumento(), 0, 0); while (vecRdp.hasMoreElements()) { RigaDocumentoP rdp = (RigaDocumentoP)vecRdp.nextElement(); rd = rdp.getRigaDocumento(); mov = new Movimento(getApFull()); mov.setId_articolo(rd.getId_articolo()); mov.setId_articoloVariante(rd.getId_articoloVariante()); mov.setId_articoloTaglia(rd.getId_articoloTaglia()); mov.setId_clifor(rd.getDocumento().getId_clifor()); mov.setId_magFisico(mf.getId_magFisico()); mov.setId_causaleMagazzino(2L); mov.setId_rigaDocumento(rd.getId_rigaDocumento()); mov.setNr(-1.0D * rd.getQuantita()); mov.save(); } i++; System.out.println("Riga " + i + " di " + vec.size()); } } catch (SQLException e) { handleDebug(e); } } public Vectumerator findVenditeServizi(DocumentoCR CR) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A, DOCUMENTO AS B, ARTICOLO AS C, TIPO AS D, REPARTO AS E, TIPO_DOCUMENTO AS ZZ "; String s_Sql_Order = " order by A.id_articolo, B.dataDocumento, E.descrizione, D.descrizione, A.descrizioneRiga, A.notaBarcode "; WcString wc = new WcString(); wc.addWc("A.id_documento=B.id_documento"); wc.addWc("A.id_articolo=C.id_articolo"); wc.addWc("C.id_tipo=D.id_tipo"); wc.addWc("A.id_reparto=E.id_reparto"); wc.addWc("B.id_tipoDocumento = ZZ.id_tipoDocumento"); wc.addWc("(B.flgHaDocumentoPadre IS NULL OR B.flgHaDocumentoPadre = 0)"); wc.addWc(" ZZ.id_causaleMagazzino = 1 "); wc.addWc(" D.flgTipoMagazzino = 9"); if (CR.getId_tipo() > 0L) wc.addWc("(C.id_tipo=" + CR.getId_tipo() + " or D.indici like'%:" + CR.getId_tipo() + ":%')"); wc.addWc(" B.dataDocumento>=?"); wc.addWc(" B.dataDocumento<=?"); if (CR.getId_articolo() > 0L) wc.addWc(" A.id_articolo = " + CR.getId_articolo()); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); int dataCount = 1; stmt.setDate(dataCount, CR.getDataDocumentoDa()); dataCount++; stmt.setDate(dataCount, CR.getDataDocumentoA()); return findRows(stmt); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public CausaleMagazzino getCausaleMagazzino() { this.causaleMagazzino = (CausaleMagazzino)getSecondaryObject(this.causaleMagazzino, CausaleMagazzino.class, getId_causaleMagazzino()); return this.causaleMagazzino; } public Clifor getClifor() { this.clifor = (Clifor)getSecondaryObject(this.clifor, Clifor.class, getId_clifor()); return this.clifor; } public long getId_causaleMagazzino() { return this.id_causaleMagazzino; } public long getId_clifor() { return this.id_clifor; } public void setCausaleMagazzino(CausaleMagazzino causaleMagazzino) { this.causaleMagazzino = causaleMagazzino; } public void setClifor(Clifor clifor) { this.clifor = clifor; } public void setId_causaleMagazzino(long id_causaleMagazzino) { this.id_causaleMagazzino = id_causaleMagazzino; } public void setId_clifor(long l_id_clifor) { this.id_clifor = l_id_clifor; } public long getSegnoMov() { return this.segnoMov; } public void setSegnoMov(long segnoMov) { this.segnoMov = segnoMov; } public long getId_rigaDocumentoMov() { return this.id_rigaDocumentoMov; } public void setId_rigaDocumentoMov(long id_rigaDocumentoMov) { this.id_rigaDocumentoMov = id_rigaDocumentoMov; } private void findRigaDocumentoMovByRigaDocumento(long l_id_rigaDocumento) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; WcString wc = new WcString(); wc.addWc("A.id_rigaDocumentoMov=" + l_id_rigaDocumento); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); findFirstRecord(stmt); } catch (Exception e) { handleDebug(e, 0); } } public void findMagByRigaDocumentoCausale(long l_id_rigaDocumento, long l_id_causaleMagazzino) { if (l_id_rigaDocumento > 0L && l_id_causaleMagazzino > 0L) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_Order = ""; WcString wc = new WcString(); wc.addWc("A.id_rigaDocumentoMov = " + l_id_rigaDocumento); wc.addWc("A.id_causaleMagazzino = " + l_id_causaleMagazzino); wc.addWc("A.id_magFisico >0"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } else { initFields(); setDBState(0); } } public void findMagBySerialeDisponibile(String l_seriale) { String s_Sql_Find = "SELECT A.*, SUM(A.nr*segnoMov) AS nr from RIGA_DOCUMENTO AS A "; String s_Sql_Having = " HAVING nr > 0 and A.id_magFisico>0"; String s_Sql_Order = " "; WcString wc = new WcString(); wc.addWc(" A.seriale = '" + l_seriale + "'"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } public void findMagBySerialeEsistente(String l_seriale) { String s_Sql_Find = "SELECT A.* from RIGA_DOCUMENTO AS A "; String s_Sql_Order = " "; WcString wc = new WcString(); wc.addWc(" A.seriale = '" + l_seriale + "'"); wc.addWc("A.id_magFisico>0"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } public void findMagFilatoDisponibilita(long l_id_articoloFilatoColore, long l_id_articoloFilato, long l_id_coloreFilato, String l_seriale, long l_tipologia_magfisico, long l_id_magFisico, long l_id_clifor, Date dataA) { String s_Sql_Sum = " SUM(A.kg*segnoMov) as kg, SUM(A.mt*segnoMov) as mt, SUM(A.nr*segnoMov) as nr from RIGA_DOCUMENTO AS A "; String s_Sql_colonne = ""; String s_Sql_join = ""; WcString wc = new WcString(); if (l_id_articoloFilato > 0L || l_id_coloreFilato > 0L) s_Sql_Sum = s_Sql_Sum + " inner join ARTICOLO_FILATO_COLORE AS F ON A.id_articoloFilatoColore=F.id_articoloFilatoColore"; if (l_id_magFisico == 0L) { wc.addWc("A.id_magFisico>0"); } else { wc.addWc("A.id_magFisico=" + l_id_magFisico); } if (l_id_articoloFilatoColore != 0L) { wc.addWc(" A.id_articoloFilatoColore = " + l_id_articoloFilatoColore); s_Sql_colonne = s_Sql_colonne + " A.id_articoloFilatoColore,"; } if (l_id_articoloFilato != 0L) { wc.addWc(" F.id_articoloFilato = " + l_id_articoloFilato); s_Sql_colonne = s_Sql_colonne + " F.id_articoloFilato,"; } if (l_id_coloreFilato != 0L) { wc.addWc(" F.id_coloreFilato = " + l_id_coloreFilato); s_Sql_colonne = s_Sql_colonne + " F.id_coloreFilato,"; } if (l_seriale != null && !l_seriale.isEmpty()) { wc.addWc(" A.seriale = " + l_seriale); s_Sql_colonne = s_Sql_colonne + " A.seriale,"; } if (l_id_clifor != 0L) { wc.addWc(" A.id_clifor = " + l_id_clifor); s_Sql_colonne = s_Sql_colonne + " A.id_clifor,"; } if (dataA != null) { s_Sql_join = " INNER JOIN DOCUMENTO AS DOC ON A.id_documento=DOC.id_documento "; wc.addWc(" DOC.dataDocumento <= ?"); s_Sql_Sum = s_Sql_Sum + s_Sql_Sum; } if (l_tipologia_magfisico != 0L) { wc.addWc(" B.flgTipo = " + l_tipologia_magfisico); s_Sql_colonne = s_Sql_colonne + " A.id_magFisico,"; s_Sql_Sum = s_Sql_Sum + ", MAG_FISICO AS B"; wc.addWc(" A.id_magFisico = B.id_magFisico "); } String s_sql_groupby = ""; if (!s_Sql_colonne.isEmpty()) s_sql_groupby = " group by " + s_Sql_colonne.substring(0, s_Sql_colonne.length() - 1); try { PreparedStatement stmt = getConn() .prepareStatement("select " + s_Sql_colonne + s_Sql_Sum + wc.toString() + s_sql_groupby); if (dataA != null) stmt.setDate(1, dataA); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } public void findMagDisponibilitaGlobaleMagazziniInterniEsterni(long l_id_articolo, String l_seriale, long l_id_clifor) { findMagDisponibilitaPuntuale(0L, 0L, 0L, l_seriale, 0L, l_id_clifor, 3L); setId_articolo(l_id_articolo); } public void findMagFilatoDisponibilitaGlobaleMagazziniInterniEsterni(long l_id_articoloFilatoColore, String l_seriale, long l_id_clifor) { findMagFilatoDisponibilitaPuntuale(0L, 0L, 0L, l_seriale, 0L, l_id_clifor, 3L, ""); } public void findMagDisponibilitaPuntualeMagazziniInterni(long l_id_articolo, long l_id_articoloVariante, long l_id_articoloTaglia, String l_seriale, long l_id_clifor) { findMagDisponibilitaPuntuale(l_id_articolo, l_id_articoloVariante, l_id_articoloTaglia, l_seriale, 0L, l_id_clifor, 1L); } public void findMagFilatoDisponibilitaPuntualeMagazziniInterni(long l_id_articoloFilatoColore, long l_id_articoloFilato, long l_id_coloreFilato, String l_seriale) { findMagFilatoDisponibilitaPuntuale(l_id_articoloFilatoColore, l_id_articoloFilato, l_id_coloreFilato, l_seriale, 0L, 0L, 1L, ""); } public void findMagDisponibilitaPuntualeMagazziniInterniEsterni(long l_id_articolo, long l_id_articoloVariante, long l_id_articoloTaglia, String l_seriale, long l_id_clifor) { findMagDisponibilitaPuntuale(l_id_articolo, l_id_articoloVariante, l_id_articoloTaglia, l_seriale, 0L, l_id_clifor, 3L); } public void findMagFilatoDisponibilitaPuntualeMagazziniInterniEsterni(long l_id_articoloFilatoColore, long l_id_articoloFilato, long l_id_coloreFilato, String l_seriale, long l_id_clifor) { findMagFilatoDisponibilitaPuntuale(l_id_articoloFilatoColore, l_id_articoloFilato, l_id_coloreFilato, l_seriale, 0L, l_id_clifor, 3L, ""); } public void findMagDisponibilitaPuntuale(long l_id_articolo, long l_id_articoloVariante, long l_id_articoloTaglia, String l_seriale, long l_id_magfisico, long l_id_clifor, long flgTipoRicerca) { String s_Sql_Sum = " SUM(segnoMov*kg) as kg, SUM(segnoMov*mt) as mt, SUM(segnoMov*nr) as nr from RIGA_DOCUMENTO AS A"; String s_Sql_colonne = ""; WcString wc = new WcString(); if (flgTipoRicerca == 0L) wc.addWc("A.id_magFisico>0"); if (l_id_articolo != 0L) { wc.addWc(" id_articolo = " + l_id_articolo); s_Sql_colonne = s_Sql_colonne + " id_articolo,"; } if (l_id_articoloVariante != 0L) { wc.addWc(" id_articoloVariante = " + l_id_articoloVariante); s_Sql_colonne = s_Sql_colonne + " id_articoloVariante,"; } if (l_id_articoloTaglia != 0L) { wc.addWc(" id_articoloTaglia = " + l_id_articoloTaglia); s_Sql_colonne = s_Sql_colonne + " id_articoloTaglia,"; } if (l_id_magfisico != 0L) { wc.addWc(" id_magFisico = " + l_id_magfisico); s_Sql_colonne = s_Sql_colonne + " id_magFisico,"; } StringBuilder mf = new StringBuilder(""); if (flgTipoRicerca > 0L && l_id_magfisico == 0L) { MagFisico mag = new MagFisico(getApFull()); if (flgTipoRicerca == 1L || flgTipoRicerca == 3L) { Vectumerator vecMag = mag.findByTipo(1L); if (vecMag.hasMoreElements()) while (vecMag.hasMoreElements()) { mag = (MagFisico)vecMag.nextElement(); if (mf.length() > 0) mf.append(" OR "); mf.append(" id_magFisico = " + mag.getId_magFisico()); } } if (flgTipoRicerca == 2L || flgTipoRicerca == 3L) { Vectumerator vecMag = mag.findByTipo(2L); if (vecMag.hasMoreElements()) while (vecMag.hasMoreElements()) { mag = (MagFisico)vecMag.nextElement(); if (mf.length() > 0) mf.append(" OR "); mf.append(" id_magFisico = " + mag.getId_magFisico()); } } } if (mf.length() > 0) { mf.append(")"); wc.addWc("(" + mf.toString()); s_Sql_colonne = s_Sql_colonne + " id_magFisico,"; } if (l_seriale != null && !l_seriale.isEmpty()) { wc.addWc(" seriale = '" + l_seriale + "'"); s_Sql_colonne = s_Sql_colonne + " seriale,"; } if (l_id_clifor != 0L) { wc.addWc(" id_clifor = " + l_id_clifor); s_Sql_colonne = s_Sql_colonne + " id_clifor,"; } String s_sql_groupby = ""; if (!s_Sql_colonne.isEmpty()) s_sql_groupby = " group by " + s_Sql_colonne.substring(0, s_Sql_colonne.length() - 1); try { PreparedStatement stmt = getConn() .prepareStatement("select " + s_Sql_colonne + s_Sql_Sum + wc.toString() + s_sql_groupby); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } public Vectumerator findMagSaldiArticoloByCR(RigaDocumentoCR CR, int pageNumber, int pageRows) { String s_Sql_Find = "select A.id_articolo, A.id_articoloVariante, A.id_articoloTaglia, A.id_magFisico, A.seriale, A.id_clifor, SUM(A.kg*segnoMov) as kg, SUM(A.mt*segnoMov) as mt, SUM(A.nr*segnoMov) as nr from RIGA_DOCUMENTO AS A INNER JOIN ARTICOLO AS B ON A.id_articolo = B.id_articolo "; String s_Sql_Group = " group by A.id_articolo, id_articoloVariante, id_articoloTaglia, A.id_magFisico, A.seriale, A.id_clifor "; String s_Sql_Order = " order by B.nome, A.id_magFisico, A.id_clifor "; String s_Sql_Having = ""; if (CR.getFlgInMagazzino() == 1L) { s_Sql_Having = " Having SUM(kg*segnoMov) > 0 OR SUM(mt*segnoMov) > 0 OR SUM(nr*segnoMov) > 0 "; } else if (CR.getFlgInMagazzino() == 2L) { s_Sql_Having = " Having SUM(kg*segnoMov) < 0 OR SUM(mt*segnoMov) < 0 OR SUM(nr*segnoMov) < 0 "; } else if (CR.getFlgInMagazzino() == 3L) { s_Sql_Having = " Having SUM(kg*segnoMov) <> 0 OR SUM(mt*segnoMov) <> 0 OR SUM(nr*segnoMov) <> 0 "; } WcString wc = new WcString(); wc.addWc("A.id_magFisico>0"); if (!CR.getSearchTxt().isEmpty() && !CR.getSearchTxt().equals("*")) { String star = ""; String temp = CR.getSearchTxt(); temp = prepareInputMySqlString(temp, true); temp = temp.replace("*", "%"); StringTokenizer st = new StringTokenizer(temp.trim(), " "); StringBuffer txt = new StringBuffer("("); while (st.hasMoreTokens()) { String token = star + star; txt.append("(B.codice like '" + token + "%' or B.nome like '" + token + "%' or B.codiceProduttore like '" + token + "%' or B.codiciAlternativi like '%," + token + "%')"); if (st.hasMoreTokens()) { txt.append(" and "); star = "%"; } } txt.append(")"); wc.addWc(txt.toString()); } if (CR.getId_articolo() > 0L) wc.addWc(" A.id_articolo = " + CR.getId_articolo()); if (CR.getId_articoloVariante() > 0L) wc.addWc(" A.id_articoloVariante = " + CR.getId_articoloVariante()); if (CR.getId_magFisico() > 0L) wc.addWc(" A.id_magFisico = " + CR.getId_magFisico()); if (CR.getId_clifor() > 0L) wc.addWc(" A.id_clifor = " + CR.getId_clifor()); try { PreparedStatement stmt = getConn() .prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString() + s_Sql_Group + s_Sql_Having); return findRows(stmt, pageNumber, pageRows); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findMagFilatoSaldiArticoloFilatoByCR(RigaDocumentoCR CR, int pageNumber, int pageRows) { String s_Sql_Find = "select B.id_articoloFilato, C.id_articoloFilatoColore , SUM(A.kg*segnoMov) as kg, SUM(A.mt*segnoMov) as mt, SUM(A.nr*segnoMov) as nr from ARTICOLO_FILATO AS B LEFT JOIN ARTICOLO_FILATO_COLORE AS C ON B.id_articoloFilato=C.id_articoloFilato LEFT JOIN RIGA_DOCUMENTO AS A ON A.id_articoloFilato=B.id_articoloFilato and A.id_articoloFilatoColore=C.id_articoloFilatoColore left JOIN MAG_FISICO AS D ON A.id_magFisico=D.id_magFisico "; if (CR.getFlgTipoMagazzino() > 0L) s_Sql_Find = s_Sql_Find + " and D.flgTipo = " + s_Sql_Find; String s_Sql_Group = " group by B.id_articoloFilato, C.id_articoloFilatoColore"; String s_Sql_Order = " order by B.nome, C.nomeV, A.seriale "; String s_Sql_Having = ""; if (CR.getFlgInMagazzino() == 1L) { s_Sql_Having = " Having SUM(A.kg*segnoMov) > 0 OR SUM(A.mt*segnoMov) > 0 OR SUM(A.nr*segnoMov) > 0 "; } else if (CR.getFlgInMagazzino() == 2L) { s_Sql_Having = " Having SUM(A.kg*segnoMov) < 0 OR SUM(A.mt*segnoMov) < 0 OR SUM(A.nr*segnoMov) < 0 "; } WcString wc = new WcString(); wc.addWc("A.id_magFisico>0"); if (!CR.getSearchTxt().isEmpty() && !CR.getSearchTxt().equals("*")) { String star = ""; String temp = CR.getSearchTxt(); temp = prepareInputMySqlString(temp, true); temp = temp.replace("*", "%"); StringTokenizer st = new StringTokenizer(temp.trim(), " "); StringBuffer txt = new StringBuffer("("); while (st.hasMoreTokens()) { String token = star + star; txt.append("(B.codice like '" + token + "%' or B.nome like '" + token + "%' or B.codiceProduttore like '" + token + "%' or B.codiciAlternativi like '%," + token + "%')"); if (st.hasMoreTokens()) { txt.append(" and "); star = "%"; } } txt.append(")"); wc.addWc(txt.toString()); } if (CR.getId_articolo() > 0L) wc.addWc("B.id_articolo = " + CR.getId_articolo()); if (CR.getId_magFisico() > 0L) wc.addWc(" A.id_magFisico = " + CR.getId_magFisico()); if (CR.getId_clifor() > 0L) wc.addWc(" A.id_clifor = " + CR.getId_clifor()); try { PreparedStatement stmt = getConn() .prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString() + s_Sql_Group + s_Sql_Having); return findRows(stmt, pageNumber, pageRows); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public ResParm saveMagSuRIgaDocumento() { RigaDocumento bean = this; ResParm rp = new ResParm(true); if (bean.getId_articolo() != 0L) { long magPartenza = 0L; long magArrivo = 0L; long flgInternoPartenza = 0L; long flgInternoArrivo = 0L; if (bean.getDocumento().getId_magFisicoPartenza() == 0L) { if (bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoPartenza() > 0L) { magPartenza = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoPartenza(); flgInternoPartenza = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getMagFisicoPartenza().getFlgTipo(); } } else { magPartenza = bean.getDocumento().getId_magFisicoPartenza(); flgInternoPartenza = bean.getDocumento().getMagFisicoPartenza().getFlgTipo(); } if (bean.getDocumento().getId_magFisicoArrivo() == 0L) { if (bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoArrivo() > 0L) { magArrivo = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getId_magFisicoArrivo(); flgInternoArrivo = bean.getDocumento().getTipoDocumento().getCausaleMagazzino().getMagFisicoArrivo().getFlgTipo(); } } else { magArrivo = bean.getDocumento().getId_magFisicoArrivo(); flgInternoArrivo = bean.getDocumento().getMagFisicoArrivo().getFlgTipo(); } if (magPartenza != 0L) { long segnoMov = -1L; if (bean.getFlgReso() == 1L) segnoMov = 1L; bean.setSegnoMov(segnoMov); bean.setId_causaleMagazzino(bean.getDocumento().getTipoDocumento().getId_causaleMagazzino()); bean.setId_magFisico(magPartenza); if (flgInternoPartenza == 1L) { bean.setId_clifor(0L); } else { bean.setId_clifor(bean.getDocumento().getId_clifor()); } rp = bean.superSave(); } if (rp.getStatus() && magArrivo != 0L) { long segnoMov = 1L; if (bean.getFlgReso() == 1L) segnoMov = -1L; if (magPartenza == 0L) { bean.setSegnoMov(segnoMov); bean.setId_causaleMagazzino(bean.getDocumento().getTipoDocumento().getId_causaleMagazzino()); bean.setId_magFisico(magArrivo); if (flgInternoArrivo == 1L) { bean.setId_clifor(0L); } else { bean.setId_clifor(bean.getDocumento().getId_clifor()); } rp = bean.superSave(); } else { try { RigaDocumento rd2 = (RigaDocumento)bean.clone(); rd2.setDBState(0); rd2.setId_rigaDocumento(0L); rd2.setId_rigaDocumentoMov(bean.getId_rigaDocumento()); rd2.setSegnoMov(segnoMov); rd2.setId_magFisico(magArrivo); if (flgInternoArrivo == 1L) { rd2.setId_clifor(0L); } else { rd2.setId_clifor(bean.getDocumento().getId_clifor()); } rd2.setId_rigaDocumentoMov(bean.getId_rigaDocumento()); rp = bean.superSave(); } catch (Exception e) { bean.handleDebug(e, 0); rp.setException(e); } } } } return rp; } public Vectumerator findByCRCompatto(RigaDocumentoCR CR, int pageNumber, int pageRows) { boolean flgOttimizzo = (getParm("OTTIMIZZO").getNumero() == 1.0D); StringBuffer s_Sql_Find = new StringBuffer("select A.id_articolo, A.id_articoloVariante, A.id_articoloTaglia, sum(A.kg*segnoMov) as Kg,sum(A.mt*segnoMov) as mt, sum(A.nr*segnoMov) as nr, D.nome, D.codice from RIGA_DOCUMENTO AS A, DOCUMENTO AS C, ARTICOLO AS D "); String s_Sql_Order = " order by D.nome,D.codice"; if (CR.getFlgOrderBy() == 1L) s_Sql_Order = " order by C.dataDocumento asc, C.id_esercizio asc, C.progDocumento asc"; String s_Sql_groupby = " group by A.id_articolo"; WcString wc = new WcString(); findByCRCreateWC(CR, s_Sql_Find, wc); try { PreparedStatement stmt; if ((pageNumber == 0 && pageRows == 0) || !flgOttimizzo) { stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find) + wc.toString() + s_Sql_groupby); } else { if (pageNumber == 0) pageNumber = 1; int start = (pageNumber - 1) * pageRows; int stop = start + pageRows; stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find) + wc.toString() + s_Sql_groupby + " limit " + s_Sql_Order + "," + start); } findByCRCreateStmtDate(CR, stmt); if ((pageNumber == 0 && pageRows == 0) || !flgOttimizzo) return findRows(stmt, pageNumber, pageRows); Vectumerator vec = findRows(stmt, 1, pageRows); vec.setPageNumber(pageNumber); vec.setTotNumberOfRecords(findByCRTotRecord(CR)); return vec; } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } protected void findByCRCreateStmtDate(RigaDocumentoCR CR, PreparedStatement stmt) { try { int dataCount = 0; if (CR.getDataDocumentoDa() != null) { dataCount++; stmt.setDate(dataCount, CR.getDataDocumentoDa()); } if (CR.getDataDocumentoA() != null) { dataCount++; stmt.setDate(dataCount, CR.getDataDocumentoA()); } if (CR.getDataRiferimentoDa() != null) { dataCount++; stmt.setDate(dataCount, CR.getDataRiferimentoDa()); } if (CR.getDataRiferimentoA() != null) { dataCount++; stmt.setDate(dataCount, CR.getDataRiferimentoA()); } } catch (SQLException e) { handleDebug(e); } } private void findByCRCreateWC(RigaDocumentoCR CR, StringBuffer s_Sql_Find, WcString wc) { wc.addWc("A.id_documento=C.id_documento"); wc.addWc("C.id_tipoDocumento=TD.id_tipoDocumento "); wc.addWc("TD.id_tipologiaDocumento=T.id_tipologiaDocumento "); if (CR.getFlgRicercaMag() == RigaDocumentoCR.RICERCA_SOLO_RIGHE_DOC) { wc.addWc("(A.id_rigaDocumentoMov=0 or A.id_rigaDocumentoMov is null)"); } else if (CR.getFlgRicercaMag() == RigaDocumentoCR.RICERCA_SOLO_MAGAZZINO) { wc.addWc("A.id_magFisico>0"); } if (!CR.getSearchTxt().isEmpty()) { StringTokenizer st = new StringTokenizer(CR.getSearchTxt().trim(), " "); StringBuffer txt = new StringBuffer("("); while (st.hasMoreTokens()) { String token = prepareSqlString(st.nextToken()); txt.append("(C.nominativoDocumento like '%" + token + "%' or D.nome like '%" + token + "%' )"); if (st.hasMoreTokens()) txt.append(" and "); } txt.append(")"); wc.addWc(txt.toString()); } if (CR.getId_articoloVariante() != 0L) { wc.addWc("A.id_articoloVariante=" + CR.getId_articoloVariante()); } else if (CR.getId_articolo() != 0L) { wc.addWc("A.id_articolo=" + CR.getId_articolo()); } if (CR.getId_tipoDocumento() > 0L) wc.addWc("C.id_tipoDocumento=" + CR.getId_tipoDocumento()); if (CR.getId_esercizio() > 0L) wc.addWc("year(C.dataDocumento)=" + CR.getId_esercizio()); if (!CR.getRiferimento().isEmpty()) wc.addWc("C.riferimento like '%" + CR.getRiferimento() + "%'"); if (CR.getId_clifor() > 0L) wc.addWc("C.id_clifor=" + CR.getId_clifor()); if (CR.getId_magFisico() > 0L) wc.addWc("A.id_magFisico=" + CR.getId_magFisico()); if (CR.getId_tipo() != 0L) { s_Sql_Find.append(" , TIPO AS E"); wc.addWc("D.id_tipo=E.id_tipo"); wc.addWc("(D.id_tipo=" + CR.getId_tipo() + " or E.indici like'%:" + CR.getId_tipo() + ":%')"); } if (CR.getId_marca() != 0L) wc.addWc("D.id_marca=" + CR.getId_marca()); if (CR.getFlgStatoPrenotazione() == 0L) { wc.addWc("(C.flgStatoPrenotazione is null or C.flgStatoPrenotazione=0)"); } else if (CR.getFlgStatoPrenotazione() == 200L) { wc.addWc("(C.flgStatoPrenotazione is null or C.flgStatoPrenotazione=0 or C.flgStatoPrenotazione <90)"); } else if (CR.getFlgStatoPrenotazione() > 0L) { wc.addWc("C.flgStatoPrenotazione =" + CR.getFlgStatoPrenotazione()); } if (CR.getFlgTipologia() > 0L) if (CR.getFlgTipologia() == 100L) { wc.addWc("C.id_tipoDocumento=1"); } else if (CR.getFlgTipologia() == 20L) { wc.addWc("(T.codice=1 OR T.codice=2)"); wc.addWc("C.id_tipoDocumento<>1"); } else if (CR.getFlgTipologia() == 1L) { wc.addWc("T.codice=" + CR.getFlgTipologia()); wc.addWc("C.id_tipoDocumento<>1"); } else { wc.addWc("T.codice=" + CR.getFlgTipologia()); } if (CR.getFlgRigaPrelevata() == 0L) { wc.addWc("(A.flgRigaPrelevata is null or A.flgRigaPrelevata=0)"); } else if (CR.getFlgRigaPrelevata() > 0L) { wc.addWc("A.flgRigaPrelevata=" + CR.getFlgRigaPrelevata()); } if (CR.getFlgDaCancellare() == 0L) { wc.addWc("(A.flgDaCancellare is null or A.flgDaCancellare=0)"); } else if (CR.getFlgDaCancellare() > 0L) { wc.addWc("A.flgDaCancellare=" + CR.getFlgDaCancellare()); } if (!CR.getSeriale().isEmpty()) { String temp = CR.getSeriale(); temp = temp.replace("%", "\\%"); temp = temp.replace("_", "\\_"); temp = temp.replace("*", "%"); wc.addWc("A.seriale like '" + CR.getSeriale() + "'"); } if (!CR.getRiferimento().isEmpty()) wc.addWc("C.riferimento like '%" + CR.getRiferimento() + "%'"); if (!CR.getDescrizioneCodiceRiga().isEmpty()) wc.addWc("A.descrizioneCodiceRiga like '%" + CR.getDescrizioneCodiceRiga() + "%'"); if (CR.getDataDocumentoDa() != null) wc.addWc("C.dataDocumento>=?"); if (CR.getDataDocumentoA() != null) wc.addWc("C.dataDocumento<=?"); if (CR.getDataRiferimentoDa() != null) wc.addWc("C.dataRiferimento>=?"); if (CR.getDataRiferimentoA() != null) wc.addWc("C.dataRiferimento<=?"); } private int findByCRTotRecord(RigaDocumentoCR CR) { StringBuffer s_Sql_Find = new StringBuffer("select count(*) as tot from RIGA_DOCUMENTO AS A, DOCUMENTO AS C, ARTICOLO AS D "); WcString wc = new WcString(); findByCRCreateWC(CR, s_Sql_Find, wc); try { PreparedStatement stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find)); findByCRCreateStmtDate(CR, stmt); return (int)getTots(stmt); } catch (Exception e) { handleDebug(e); return 0; } } public String getCodiceArticolo() { return getArticolo().getCodice(); } public String getDescrizioneArticolo() { if (getId_articoloTaglia() != 0L) return getArticoloTaglia().getDescrizioneCompleta(); if (getId_articoloVariante() == 0L) return getArticolo().getDescrizioneCompleta(); return getArticoloVariante().getDescrizioneCompleta(); } public double getKgS() { return this.kg * (double)getSegnoMov(); } public double getMtS() { return this.mt * (double)getSegnoMov(); } public double getNrS() { return this.nr * (double)getSegnoMov(); } public long getId_rigaDocumentoPrelevata() { return this.id_rigaDocumentoPrelevata; } public RigaDocumento getRigaDocumentoPrelevata() { this.rigaDocumentoPrelevata = (RigaDocumento)getSecondaryObject(this.rigaDocumentoPrelevata, RigaDocumento.class, getId_rigaDocumentoPrelevata()); return this.rigaDocumentoPrelevata; } public void setId_rigaDocumentoPrelevata(long newId_rigaDocumentoPrelevata) { this.id_rigaDocumentoPrelevata = newId_rigaDocumentoPrelevata; setRigaDocumentoPrelevata(null); } public void setRigaDocumentoPrelevata(RigaDocumento newRigaDocumentoPrelevata) { this.rigaDocumentoPrelevata = newRigaDocumentoPrelevata; } public ResParm saveMov() { ResParm rp = superSave(); if (rp.getStatus()) rp = aggiornaDispo(); return rp; } public void creaFileCvsMov(RigaDocumentoCR CR) { if (CR.getFlgReport().equals("S") && CR.getFlgTipoReport() == 1L) { creaFileCvsCompattoMov(CR); } else { try { Vectumerator list = findByCR(CR, 0, 0); CR.setFileName(getPathTmp() + "movMagazzino_" + getPathTmp() + ".csv"); String theCvsFile = getDocBase() + getDocBase(); String SEP = ";"; new File(theCvsFile).delete(); FileWr outCvsFile = new FileWr(theCvsFile, false); String s1 = "Operatore;Documento;Intestazione;Data;Cod. Articolo;Articolo;Seriale;Disp.Art.;Tipo Movimento;Magazzini;Q.ta;Kg;Mt;Nr."; outCvsFile.writeLine(CR.getDescrizioneCR()); outCvsFile.writeLine(s1); while (list.hasMoreElements()) { RigaDocumento row = (RigaDocumento)list.nextElement(); s1 = row.getDocumento().getUsers().getCognomeNome() + row.getDocumento().getUsers().getCognomeNome() + "\"" + SEP + "\"" + row.getDocumento().getNumeroDocumentoCompleto() + SEP + row.getDocumento().getClifor().getDescrizioneCompleta() + SEP + getDataFormat().format(row.getDocumento().getDataDocumento()) + SEP + row.getCodiceArticolo() + SEP + row.getDescrizioneRigaCompleta() + SEP + row.getSeriale() + SEP + getNf().format(row.getArticolo().getQuantita()) + SEP + row.getDocumento().getTipoDocumento().getCausaleMagazzino().getDescrizione() + SEP + row.getMagFisico().getDescrizione() + SEP + getNf().format(row.getQuantita()) + SEP + getNf().format(row.getKg()) + SEP + getNf().format(row.getMt()) + SEP; s1 = s1.replace("€", "€"); s1 = s1.replace("»", "-->"); outCvsFile.writeLine(s1); } outCvsFile.closeFile(); } catch (Exception e) { handleDebug(e); } } } public void creaFileCvsCompattoMov(RigaDocumentoCR CR) { try { Vectumerator list = findByCRCompatto(CR, 0, 0); CR.setFileName(getPathTmp() + "movMagazzinoCompatto_" + getPathTmp() + ".csv"); String theCvsFile = getDocBase() + getDocBase(); String SEP = ";"; new File(theCvsFile).delete(); FileWr outCvsFile = new FileWr(theCvsFile, false); String s1 = "Cod. Articolo;Articolo;Tipo;Disp.Art.;Q.ta;Kg;Mt;Nr."; outCvsFile.writeLine(CR.getDescrizioneCR()); outCvsFile.writeLine(s1); while (list.hasMoreElements()) { RigaDocumento row = (RigaDocumento)list.nextElement(); s1 = row.getCodiceArticolo() + row.getCodiceArticolo() + SEP + row.getDescrizioneArticolo() + SEP + row.getArticolo().getTipo().getDescrizioneCompleta() + SEP + getNf().format(row.getArticolo().getQuantita()) + SEP + getNf().format(row.getQuantita()) + SEP + getNf().format(row.getKg()) + SEP + getNf().format(row.getMt()) + SEP; s1 = s1.replace("€", "€"); s1 = s1.replace("»", "-->"); outCvsFile.writeLine(s1); } outCvsFile.closeFile(); } catch (Exception e) { handleDebug(e); } } public ResParm deleteM() { synchronized (this) { if (getId_articolo() > 0L && getDocumento().getTipoDocumento().getCausaleMagazzino().getFlgCaricoArrivo() > 0L) { Movimento mov = new Movimento(getApFull()); mov.findDisponibilitaPuntualeMagazziniInterni(getId_articolo(), getId_articoloVariante(), getId_articoloTaglia(), getSeriale(), 0L); if (mov.getQuantita() < getQuantita()) return new ResParm(false, "ERRORE! Quantità non più disponibile in magazzino. E' stato effettuato uno scarico!"); RigaDocumento rd = new RigaDocumento(getApFull()); rd.findRigaImpegnoBySeriale(getId_articolo(), getId_articoloVariante(), getSeriale()); if (rd.getDBState() == 1) return new ResParm(false, "ERRORE! Esiste una prenotazione per questo seriale!"); } RigaDocumento bean = (RigaDocumento)clone(); Vectumerator vec = new RigaDocumentoP(getApFull()).findByRigaDocumento(getId_rigaDocumento(), 0, 0); while (vec.hasMoreElements()) { DbInterface row = (DbInterface)vec.nextElement(); row.delete(); } if (getDocumento().getTipoDocumento().getFlgTipologia() == 3L) { RigaDocumentoPM rdPM = new RigaDocumentoPM(getApFull()); rdPM.findByRigaDocumento(getId_rigaDocumento()); if (rdPM.getDBState() == 1) rdPM.delete(); } if (getDocumento().getTipoDocumento().getFlgTipologia() == 4L) { RigaDocumentoPM rdPM = new RigaDocumentoPM(getApFull()); vec = rdPM.findByRigaDocumentoPrelevata(getId_rigaDocumento()); while (vec.hasMoreElements()) { DbInterface row = (DbInterface)vec.nextElement(); row.delete(); } } cancellaMovimento(bean, 0L, 0L); Movimento.aggiornaDispo(getApFull(), getId_articolo(), getId_articoloVariante(), getId_articoloTaglia(), getLastUpdId_user()); ResParm rp = super.delete(); if (rp.getStatus()) { if (bean.getId_rigaDocumentoPadre() != 0L) { RigaDocumento beanPadre = new RigaDocumento(getApFull()); beanPadre.findByPrimaryKey(bean.getId_rigaDocumentoPadre()); beanPadre.setFlgRigaPrelevata(0L); rp = beanPadre.save(); Documento doc = new Documento(getApFull()); doc.findByPrimaryKey(beanPadre.getId_documento()); doc.setDataChiusura(null); doc.setFlgDocumentoPrelevato(0L); doc.save(); } if (bean.getDocumento().getTipoDocumento().getId_causaleMagazzino() > 0L || bean.getDocumento().getTipoDocumento().getFlgTipologia() == 4L) bean.checkStatoPrenotazione(); } return rp; } } public static ResParm aggiornaDispo(ApplParmFull ap, long l_id_articolo, long l_id_articoloVariante, long l_id_articoloTaglia, long l_id_users) { ResParm rp = new ResParm(true); if (l_id_articolo != 0L || l_id_articoloVariante != 0L || l_id_articoloTaglia != 0L) { RigaDocumento rigaDocumento = new RigaDocumento(ap); rigaDocumento.findMagDisponibilitaPuntualeMagazziniInterni(l_id_articolo, l_id_articoloVariante, l_id_articoloTaglia, "", 0L); Articolo art = new Articolo(ap); art.findByPrimaryKey(l_id_articolo); art.resetCalcoloQuantita(); if (art.getTipo().getFlgTipoMagazzino() == 0L || art.getTipo().getFlgTipoMagazzino() == 9L) { System.out.println("ATTENZIONE!!!!aggiornaDispo"); art.setFlgDispo(1L); } else { if (l_id_articoloTaglia > 0L) { ArticoloTaglia bean = new ArticoloTaglia(ap); bean.findByPrimaryKey(l_id_articoloTaglia); bean.resetCalcoloQuantita(); } if (l_id_articoloVariante > 0L) { ArticoloVariante bean = new ArticoloVariante(ap); bean.findByPrimaryKey(l_id_articoloVariante); bean.resetCalcoloQuantita(); } art.setFlgDispo((rigaDocumento.getQuantita() > 0.0D) ? 1L : 0L); } art.save(); rigaDocumento.resetStatoPrenotazioneByArticolo(l_id_articolo, l_id_articoloVariante, l_id_articoloTaglia); } return rp; } public void getMagQuantitaPrelevatoByRigaDocumentoPrelevata(long l_id_rigaDocumento) { String s_Sql_Find = "select SUM(nr) as nr, SUM(kg) as kg, SUM(mt) as mt from RIGA_DOCUMENTO AS A"; String s_Sql_Order = ""; WcString wc = new WcString(); wc.addWc("A.id_rigaDocumentoMov>0"); wc.addWc("A.id_rigaDocumentoPrelevata=" + l_id_rigaDocumento); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } public void getMagQuantitaPrelevatoByRigaDocumento(long l_id_rigaDocumento) { String s_Sql_Find = "select SUM(nr) as nr, SUM(kg) as kg, SUM(mt) as mt from RIGA_DOCUMENTO AS A"; String s_Sql_Order = ""; WcString wc = new WcString(); wc.addWc("A.id_rigaDocumentoMov>0"); wc.addWc("A.id_rigaDocumento=" + l_id_rigaDocumento); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } public Vectumerator findRigheReportArticoliCsv(DocumentoCR CR) { String s_Sql_Order; Documento doc = new Documento(getApFull()); StringBuffer s_Sql_Find = new StringBuffer("select B.* from DOCUMENTO AS A "); if (CR.getTipoDocumento().getFlgClienteFornitore().equals("F") && ( CR.getTipoDocumento().getFlgTipologia() == 1L || CR.getTipoDocumento().getFlgTipologia() == 2L)) { if (CR.getFlgOrderBy() == 1L) { s_Sql_Order = " order by A.dataRiferimento asc, A.id_esercizio asc, A.progDocumento asc"; } else { s_Sql_Order = " order by A.dataRiferimento desc, A.id_esercizio desc, A.progDocumento desc"; } } else if (CR.getFlgOrderBy() == 1L) { s_Sql_Order = " order by A.dataDocumento asc, A.id_esercizio asc, A.progDocumento asc"; } else { s_Sql_Order = " order by A.dataDocumento desc, A.id_esercizio desc, A.progDocumento desc"; } WcString wc = new WcString(); doc.findByCRCreateWC(CR, s_Sql_Find, wc); try { PreparedStatement stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find) + wc.toString()); doc.findByCRCreateStmtDate(CR, stmt); return findRows(stmt); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public ResParm superDelete() { ResParm rp = getDocumento().checkEMSTA(); if (!rp.getStatus()) { rp.setInfoMsg(rp.getMsg()); return rp; } return super.delete(); } public long getId_articoloFilatoColore() { return this.id_articoloFilatoColore; } public void setId_articoloFilatoColore(long id_articoloFilatoColore) { this.id_articoloFilatoColore = id_articoloFilatoColore; setArticoloFilatoColore(null); } public ArticoloFilatoColoreRitorto getArticoloFilatoColoreRitorto() { this.articoloFilatoColoreRitorto = (ArticoloFilatoColoreRitorto)getSecondaryObject(this.articoloFilatoColoreRitorto, ArticoloFilatoColoreRitorto.class, getId_articoloFilatoColoreRitorto()); return this.articoloFilatoColoreRitorto; } public void setArticoloFilatoColore(ArticoloFilatoColore articoloFilatoColore) { this.articoloFilatoColore = articoloFilatoColore; } public long getId_pezza() { return this.id_pezza; } public void setId_pezza(long id_pezza) { this.id_pezza = id_pezza; } public Pezza getPezza() { return this.pezza; } public void setPezza(Pezza pezza) { this.pezza = pezza; } public long getId_faseLavorazione() { return this.id_faseLavorazione; } public void setId_faseLavorazione(long id_faseLavorazione) { this.id_faseLavorazione = id_faseLavorazione; } public FaseLavorazione getFaseLavorazione() { return this.faseLavorazione; } public void setFaseLavorazione(FaseLavorazione faseLavorazione) { this.faseLavorazione = faseLavorazione; } public void findMagDisponibilita(long l_id_articolo, long l_id_articoloVariante, long l_id_articoloTaglia, String l_seriale, long l_tipologia_magfisico, long l_id_clifor, Date dataA) { boolean guidoreni = false; if (!guidoreni) { String s_Sql_Sum = " SUM(A.kg*segnoMov) as kg, SUM(A.mt*segnoMov) as mt, SUM(A.nr*segnoMov) as nr from RIGA_DOCUMENTO AS A "; String s_Sql_colonne = ""; String s_Sql_join = ""; WcString wc = new WcString(); wc.addWc("A.id_magFisico>0"); if (l_id_articolo != 0L) { wc.addWc(" A.id_articolo = " + l_id_articolo); s_Sql_colonne = s_Sql_colonne + " A.id_articolo,"; } if (l_id_articoloVariante != 0L) { wc.addWc(" A.id_articoloVariante = " + l_id_articoloVariante); s_Sql_colonne = s_Sql_colonne + " A.id_articoloVariante,"; } if (l_id_articoloTaglia != 0L) { wc.addWc(" A.id_articoloTaglia = " + l_id_articoloTaglia); s_Sql_colonne = s_Sql_colonne + " A.id_articoloTaglia,"; } if (l_seriale != null && !l_seriale.isEmpty()) { wc.addWc(" A.seriale = " + l_seriale); s_Sql_colonne = s_Sql_colonne + " A.seriale,"; } if (l_id_clifor != 0L) { wc.addWc(" A.id_clifor = " + l_id_clifor); s_Sql_colonne = s_Sql_colonne + " A.id_clifor,"; } if (dataA != null) { s_Sql_join = " INNER JOIN DOCUMENTO AS DOC ON A.id_documento=DOC.id_documento "; wc.addWc(" DOC.dataDocumento <= ?"); s_Sql_Sum = s_Sql_Sum + s_Sql_Sum; } if (l_tipologia_magfisico != 0L) { wc.addWc(" B.flgTipo = " + l_tipologia_magfisico); s_Sql_Sum = s_Sql_Sum + " , MAG_FISICO AS B"; wc.addWc(" A.id_magFisico = B.id_magFisico "); } String s_sql_groupby = ""; if (!s_Sql_colonne.isEmpty()) s_sql_groupby = " group by " + s_Sql_colonne.substring(0, s_Sql_colonne.length() - 1); try { PreparedStatement stmt = getConn() .prepareStatement("select " + s_Sql_colonne + s_Sql_Sum + wc.toString() + s_sql_groupby); if (dataA != null) stmt.setDate(1, dataA); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } } public void findMagFilatoDisponibilitaPuntuale(long l_id_articoloFilatoColore, long l_id_articoloFilato, long l_id_coloreFilato, String l_seriale, long l_id_magfisico, long l_id_clifor, long flgTipoRicerca, String l_flgCliFor) { String s_Sql_Sum = " SUM(segnoMov*kg) as kg, SUM(segnoMov*mt) as mt, SUM(segnoMov*nr) as nr from RIGA_DOCUMENTO AS A"; String s_Sql_colonne = ""; WcString wc = new WcString(); if (flgTipoRicerca == 0L) wc.addWc("A.id_magFisico>0"); if (l_id_articoloFilato > 0L || l_id_coloreFilato > 0L) s_Sql_Sum = s_Sql_Sum + " inner join ARTICOLO_FILATO_COLORE AS F ON A.id_articoloFilatoColore=F.id_articoloFilatoColore"; if (!l_flgCliFor.isEmpty()) s_Sql_Sum = s_Sql_Sum + " inner join CLIFOR AS CF ON A.id_clifor=CF.id_clifor"; if (l_id_articoloFilatoColore != 0L) { wc.addWc(" A.id_articoloFilatoColore = " + l_id_articoloFilatoColore); s_Sql_colonne = s_Sql_colonne + " A.id_articoloFilatoColore,"; } if (l_id_articoloFilato != 0L) { wc.addWc(" F.id_articoloFilato = " + l_id_articoloFilato); s_Sql_colonne = s_Sql_colonne + " F.id_articoloFilato,"; } if (l_id_coloreFilato != 0L) { wc.addWc(" F.id_coloreFilato = " + l_id_coloreFilato); s_Sql_colonne = s_Sql_colonne + " F.id_coloreFilato,"; } if (l_id_magfisico != 0L) { wc.addWc(" id_magFisico = " + l_id_magfisico); s_Sql_colonne = s_Sql_colonne + " id_magFisico,"; } if (!l_flgCliFor.isEmpty()) { wc.addWc(" A.id_clifor='" + l_flgCliFor + "'"); s_Sql_colonne = s_Sql_colonne + " A.id_clifor,"; } StringBuilder mf = new StringBuilder(""); if (flgTipoRicerca > 0L && l_id_magfisico == 0L) { MagFisico mag = new MagFisico(getApFull()); if (flgTipoRicerca == 1L || flgTipoRicerca == 3L) { Vectumerator vecMag = mag.findByTipo(1L); if (vecMag.hasMoreElements()) while (vecMag.hasMoreElements()) { mag = (MagFisico)vecMag.nextElement(); if (mf.length() > 0) mf.append(" OR "); mf.append(" id_magFisico = " + mag.getId_magFisico()); } } if (flgTipoRicerca == 2L || flgTipoRicerca == 3L) { Vectumerator vecMag = mag.findByTipo(2L); if (vecMag.hasMoreElements()) while (vecMag.hasMoreElements()) { mag = (MagFisico)vecMag.nextElement(); if (mf.length() > 0) mf.append(" OR "); mf.append(" id_magFisico = " + mag.getId_magFisico()); } } } if (mf.length() > 0) { mf.append(")"); wc.addWc("(" + mf.toString()); s_Sql_colonne = s_Sql_colonne + " id_magFisico,"; } if (l_seriale != null && !l_seriale.isEmpty()) { wc.addWc(" seriale = '" + l_seriale + "'"); s_Sql_colonne = s_Sql_colonne + " seriale,"; } if (l_id_clifor != 0L) { wc.addWc(" id_clifor = " + l_id_clifor); s_Sql_colonne = s_Sql_colonne + " id_clifor,"; } String s_sql_groupby = ""; if (!s_Sql_colonne.isEmpty()) s_sql_groupby = " group by " + s_Sql_colonne.substring(0, s_Sql_colonne.length() - 1); try { PreparedStatement stmt = getConn() .prepareStatement("select " + s_Sql_colonne + s_Sql_Sum + wc.toString() + s_sql_groupby); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } public void findMagFisicoDisponibilita(long l_id_articolo, long l_id_articoloVariante, long l_id_articoloTaglia, String l_seriale, long l_id_magFisico, long l_id_clifor, Date dataA) { boolean guidoreni = false; if (!guidoreni) { String s_Sql_Sum = " SUM(A.kg*segnoMov) as kg, SUM(A.mt*segnoMov) as mt, SUM(A.nr*segnoMov) as nr from RIGA_DOCUMENTO AS A "; String s_Sql_colonne = ""; String s_Sql_join = ""; WcString wc = new WcString(); if (l_id_articolo != 0L) { wc.addWc(" A.id_articolo = " + l_id_articolo); s_Sql_colonne = s_Sql_colonne + " A.id_articolo,"; } if (l_id_articoloVariante != 0L) { wc.addWc(" A.id_articoloVariante = " + l_id_articoloVariante); s_Sql_colonne = s_Sql_colonne + " A.id_articoloVariante,"; } if (l_id_articoloTaglia != 0L) { wc.addWc(" A.id_articoloTaglia = " + l_id_articoloTaglia); s_Sql_colonne = s_Sql_colonne + " A.id_articoloTaglia,"; } if (l_seriale != null && !l_seriale.isEmpty()) { wc.addWc(" A.seriale = " + l_seriale); s_Sql_colonne = s_Sql_colonne + " A.seriale,"; } if (l_id_clifor != 0L) { wc.addWc(" A.id_clifor = " + l_id_clifor); s_Sql_colonne = s_Sql_colonne + " A.id_clifor,"; } if (dataA != null) { s_Sql_join = " INNER JOIN DOCUMENTO AS DOC ON A.id_documento=DOC.id_documento "; wc.addWc(" DOC.dataDocumento <= ?"); s_Sql_Sum = s_Sql_Sum + s_Sql_Sum; } if (l_id_magFisico != 0L) { wc.addWc(" A.id_magFisico = " + l_id_magFisico); s_Sql_colonne = s_Sql_colonne + " A.id_magFisico,"; } else { wc.addWc("A.id_magFisico>0"); } String s_sql_groupby = ""; if (!s_Sql_colonne.isEmpty()) s_sql_groupby = " group by " + s_Sql_colonne.substring(0, s_Sql_colonne.length() - 1); try { PreparedStatement stmt = getConn() .prepareStatement("select " + s_Sql_colonne + s_Sql_Sum + wc.toString() + s_sql_groupby); if (dataA != null) stmt.setDate(1, dataA); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } } public Vectumerator findMagSaldiArticoloVarianteTagliaByCR(RigaDocumentoCR CR, int pageNumber, int pageRows) { String s_Sql_Find = "select B.id_articolo, C.id_articoloVariante,T.id_articoloTaglia , SUM(A.kg*segnoMov) as kg, SUM(A.mt*segnoMov) as mt, SUM(A.nr*segnoMov) as nr from ARTICOLO AS B LEFT JOIN ARTICOLO_VARIANTE AS C ON B.id_articolo=C.id_articolo LEFT JOIN ARTICOLO_TAGLIA AS T ON T.id_articolo=T.id_articolo LEFT JOIN RIGA_DOCUMENTO AS A ON A.id_articolo=B.id_articolo and A.id_articoloVariante=C.id_articoloVariante and A.id_articoloTaglia=T.id_articoloTaglia left JOIN MAG_FISICO AS D ON A.id_magFisico=D.id_magFisico "; if (CR.getFlgTipoMagazzino() > 0L) s_Sql_Find = s_Sql_Find + " and D.flgTipo = " + s_Sql_Find; String s_Sql_Group = " group by B.id_articolo, C.id_articoloVariante,T.id_articoloTaglia"; String s_Sql_Order = " order by B.nome, C.nomeV, A.id_articoloTaglia "; String s_Sql_Having = ""; if (CR.getFlgInMagazzino() == 1L) { s_Sql_Having = " Having SUM(A.kg*segnoMov) > 0 OR SUM(A.mt*segnoMov) > 0 OR SUM(A.nr*segnoMov) > 0 "; } else if (CR.getFlgInMagazzino() == 2L) { s_Sql_Having = " Having SUM(A.kg*segnoMov) < 0 OR SUM(A.mt*segnoMov) < 0 OR SUM(A.nr*segnoMov) < 0 "; } WcString wc = new WcString(); wc.addWc("A.id_magFisico>0"); if (!CR.getSearchTxt().isEmpty() && !CR.getSearchTxt().equals("*")) { String star = ""; String temp = CR.getSearchTxt(); temp = prepareInputMySqlString(temp, true); temp = temp.replace("*", "%"); StringTokenizer st = new StringTokenizer(temp.trim(), " "); StringBuffer txt = new StringBuffer("("); while (st.hasMoreTokens()) { String token = star + star; txt.append("(B.codice like '" + token + "%' or B.nome like '" + token + "%' or B.codiceProduttore like '" + token + "%' or B.codiciAlternativi like '%," + token + "%')"); if (st.hasMoreTokens()) { txt.append(" and "); star = "%"; } } txt.append(")"); wc.addWc(txt.toString()); } if (CR.getId_articolo() > 0L) wc.addWc("B.id_articolo = " + CR.getId_articolo()); if (CR.getId_articoloVariante() > 0L) wc.addWc("C.id_articoloVariante = " + CR.getId_articoloVariante()); if (CR.getId_magFisico() > 0L) wc.addWc(" A.id_magFisico = " + CR.getId_magFisico()); if (CR.getId_clifor() > 0L) wc.addWc(" A.id_clifor = " + CR.getId_clifor()); try { PreparedStatement stmt = getConn() .prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString() + s_Sql_Group + s_Sql_Having); return findRows(stmt, pageNumber, pageRows); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findMagSaldiArticoloVarianteByCR(RigaDocumentoCR CR, int pageNumber, int pageRows) { String s_Sql_Find = "select B.id_articolo, C.id_articoloVariante , SUM(A.kg*segnoMov) as kg, SUM(A.mt*segnoMov) as mt, SUM(A.nr*segnoMov) as nr from ARTICOLO AS B LEFT JOIN ARTICOLO_VARIANTE AS C ON B.id_articolo=C.id_articolo LEFT JOIN RIGA_DOCUMENTO AS A ON A.id_articolo=B.id_articolo and A.id_articoloVariante=C.id_articoloVariante left JOIN MAG_FISICO AS D ON A.id_magFisico=D.id_magFisico "; if (CR.getFlgTipoMagazzino() > 0L) s_Sql_Find = s_Sql_Find + " and D.flgTipo = " + s_Sql_Find; String s_Sql_Group = " group by B.id_articolo, C.id_articoloVariante, A.id_articoloTaglia"; String s_Sql_Order = " order by B.nome, C.nomeV, A.id_articoloTaglia "; String s_Sql_Having = ""; if (CR.getFlgInMagazzino() == 1L) { s_Sql_Having = " Having SUM(A.kg*segnoMov) > 0 OR SUM(A.mt*segnoMov) > 0 OR SUM(A.nr*segnoMov) > 0 "; } else if (CR.getFlgInMagazzino() == 2L) { s_Sql_Having = " Having SUM(A.kg*segnoMov) < 0 OR SUM(A.mt*segnoMov) < 0 OR SUM(A.nr*segnoMov) < 0 "; } WcString wc = new WcString(); wc.addWc("A.id_magFisico>0"); if (!CR.getSearchTxt().isEmpty() && !CR.getSearchTxt().equals("*")) { String star = ""; String temp = CR.getSearchTxt(); temp = prepareInputMySqlString(temp, true); temp = temp.replace("*", "%"); StringTokenizer st = new StringTokenizer(temp.trim(), " "); StringBuffer txt = new StringBuffer("("); while (st.hasMoreTokens()) { String token = star + star; txt.append("(B.codice like '" + token + "%' or B.nome like '" + token + "%' or B.codiceProduttore like '" + token + "%' or B.codiciAlternativi like '%," + token + "%')"); if (st.hasMoreTokens()) { txt.append(" and "); star = "%"; } } txt.append(")"); wc.addWc(txt.toString()); } if (CR.getId_articolo() > 0L) wc.addWc("B.id_articolo = " + CR.getId_articolo()); if (CR.getId_magFisico() > 0L) wc.addWc(" A.id_magFisico = " + CR.getId_magFisico()); if (CR.getId_clifor() > 0L) wc.addWc(" A.id_clifor = " + CR.getId_clifor()); try { PreparedStatement stmt = getConn() .prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString() + s_Sql_Group + s_Sql_Having); return findRows(stmt, pageNumber, pageRows); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findMagSaldiArticoloTagliaByCR(RigaDocumentoCR CR, int pageNumber, int pageRows) { String s_Sql_Find = "select B.id_articolo, T.id_articoloTaglia , SUM(A.kg*segnoMov) as kg, SUM(A.mt*segnoMov) as mt, SUM(A.nr*segnoMov) as nr from ARTICOLO AS B LEFT JOIN ARTICOLO_TAGLIA AS T ON T.id_articolo=T.id_articolo LEFT JOIN RIGA_DOCUMENTO AS A ON A.id_articolo=B.id_articolo and A.id_articoloTaglia=T.id_articoloTaglia left JOIN MAG_FISICO AS D ON A.id_magFisico=D.id_magFisico "; if (CR.getFlgTipoMagazzino() > 0L) s_Sql_Find = s_Sql_Find + " and D.flgTipo = " + s_Sql_Find; String s_Sql_Group = " group by B.id_articolo, T.id_articoloTaglia"; String s_Sql_Order = " order by B.nome, B.nome, A.id_articoloTaglia "; String s_Sql_Having = ""; if (CR.getFlgInMagazzino() == 1L) { s_Sql_Having = " Having SUM(A.kg*segnoMov) > 0 OR SUM(A.mt*segnoMov) > 0 OR SUM(A.nr*segnoMov) > 0 "; } else if (CR.getFlgInMagazzino() == 2L) { s_Sql_Having = " Having SUM(A.kg*segnoMov) < 0 OR SUM(A.mt*segnoMov) < 0 OR SUM(A.nr*segnoMov) < 0 "; } WcString wc = new WcString(); wc.addWc("A.id_magFisico>0"); if (!CR.getSearchTxt().isEmpty() && !CR.getSearchTxt().equals("*")) { String star = ""; String temp = CR.getSearchTxt(); temp = prepareInputMySqlString(temp, true); temp = temp.replace("*", "%"); StringTokenizer st = new StringTokenizer(temp.trim(), " "); StringBuffer txt = new StringBuffer("("); while (st.hasMoreTokens()) { String token = star + star; txt.append("(B.codice like '" + token + "%' or B.nome like '" + token + "%' or B.codiceProduttore like '" + token + "%' or B.codiciAlternativi like '%," + token + "%')"); if (st.hasMoreTokens()) { txt.append(" and "); star = "%"; } } txt.append(")"); wc.addWc(txt.toString()); } if (CR.getId_articolo() > 0L) wc.addWc("B.id_articolo = " + CR.getId_articolo()); if (CR.getId_magFisico() > 0L) wc.addWc(" A.id_magFisico = " + CR.getId_magFisico()); if (CR.getId_clifor() > 0L) wc.addWc(" A.id_clifor = " + CR.getId_clifor()); try { PreparedStatement stmt = getConn() .prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString() + s_Sql_Group + s_Sql_Having); return findRows(stmt, pageNumber, pageRows); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public static ResParm aggiornaDispoFilato(ApplParmFull ap, long l_id_articoloFilatoColore, long l_id_users) { ResParm rp = new ResParm(true); if (l_id_articoloFilatoColore != 0L) { RigaDocumento rigaDocumento = new RigaDocumento(ap); rigaDocumento.findMagFilatoDisponibilitaPuntualeMagazziniInterni(l_id_articoloFilatoColore, 0L, 0L, ""); ArticoloFilatoColore art = new ArticoloFilatoColore(ap); art.findByPrimaryKey(l_id_articoloFilatoColore); art.resetCalcoloQuantita(); art.setFlgDispo((rigaDocumento.getQuantita() > 0.0D) ? 1L : 0L); art.setLastUpdId_user(l_id_users); art.save(); ArticoloFilato af = art.getArticoloFilato(); af.resetCalcoloQuantita(); rigaDocumento.findMagFilatoDisponibilitaPuntualeMagazziniInterni(0L, af.getId_articoloFilato(), 0L, ""); af.setFlgDispo((rigaDocumento.getQuantita() > 0.0D) ? 1L : 0L); af.setLastUpdId_user(l_id_users); af.save(); } return rp; } public long getId_articoloTessuto() { return this.id_articoloTessuto; } public void setId_articoloTessuto(long id_articoloTessuto) { this.id_articoloTessuto = id_articoloTessuto; setArticoloTessuto(null); } public ArticoloTessuto getArticoloTessuto() { this.articoloTessuto = (ArticoloTessuto)getSecondaryObject(this.articoloTessuto, ArticoloTessuto.class, getId_articoloTessuto()); return this.articoloTessuto; } public void setArticoloTessuto(ArticoloTessuto articoloTessuto) { this.articoloTessuto = articoloTessuto; } public long getVolumeCm3ByDocumento(long l_id_documento) { long volCM3 = 0L; String s_Sql_Find = "select sum(B.volumeM3*1000000 +B.volumeCm3 )* A.quantita as _sum from RIGA_DOCUMENTO AS A left join ARTICOLO AS B on A.id_articolo=B.id_articolo "; WcString wc = new WcString(); wc.addWc("(A.id_rigaDocumentoMov=0 or A.id_rigaDocumentoMov is null)"); wc.addWc("A.id_documento=" + l_id_documento); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); volCM3 = (long)getSum(stmt); return volCM3; } catch (Exception e) { handleDebug(e, 0); return 0L; } } public long getPesoKgByDocumento(long l_id_documento) { long volCM3 = 0L; String s_Sql_Find = "select sum(B.pesoKg)* A.quantita as _sum from RIGA_DOCUMENTO AS A left join ARTICOLO AS B on A.id_articolo=B.id_articolo "; WcString wc = new WcString(); wc.addWc("(A.id_rigaDocumentoMov=0 or A.id_rigaDocumentoMov is null)"); wc.addWc("A.id_documento=" + l_id_documento); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); volCM3 = (long)getSum(stmt); return volCM3; } catch (Exception e) { handleDebug(e, 0); return 0L; } } public double getVolumeM3ByDocumento(long l_id_documento) { DoubleOperator dop = new DoubleOperator((float)getVolumeCm3ByDocumento(l_id_documento)); dop.setScale(4, 5); dop.divide(1000000.0F); return dop.getResult(); } public void findMagTessutoDisponibilita(long l_id_articoloTessuto, long l_id_articoloTessutoColore, String l_seriale, long l_id_magFisico, long l_tipologia_magfisico, long l_flgStatoLavorazione, long l_id_clifor, String l_flgCliFor, Date dataA) { String s_Sql_Sum = " SUM(A.kg*segnoMov) as kg, SUM(A.mt*segnoMov) as mt, SUM(A.nr*segnoMov) as nr from RIGA_DOCUMENTO AS A inner join DOCUMENTO AS DOC ON A.id_documento=DOC.id_documento "; String s_Sql_colonne = ""; String s_Sql_join = ""; WcString wc = new WcString(); if (l_tipologia_magfisico != 0L) { s_Sql_Sum = s_Sql_Sum + " inner join MAG_FISICO AS B ON A.id_magFisico=B.id_magFisico"; s_Sql_colonne = s_Sql_colonne + " A.id_magFisico,"; wc.addWc(" B.flgTipo = " + l_tipologia_magfisico); } else { wc.addWc("A.id_magFisico>0"); } if (l_id_articoloTessuto > 0L) { s_Sql_Sum = s_Sql_Sum + " inner join ARTICOLO_TESSUTO AS F ON A.id_articoloTessuto=F.id_articoloTessuto"; s_Sql_colonne = s_Sql_colonne + " A.id_articoloTessuto,"; } if (l_id_articoloTessuto != 0L) { wc.addWc(" A.id_articoloTessuto = " + l_id_articoloTessuto); s_Sql_colonne = s_Sql_colonne + " A.id_articoloTessuto,"; } if (l_id_articoloTessutoColore != 0L) { wc.addWc(" A.id_articoloTessutoColore = " + l_id_articoloTessutoColore); s_Sql_colonne = s_Sql_colonne + " A.id_articoloTessutoColore,"; } if (l_seriale != null && !l_seriale.isEmpty()) { wc.addWc(" A.seriale = '" + l_seriale + "'"); s_Sql_colonne = s_Sql_colonne + " A.seriale,"; } if (l_id_clifor != 0L) { wc.addWc(" A.id_clifor = " + l_id_clifor); s_Sql_colonne = s_Sql_colonne + " A.id_clifor,"; } if (!l_flgCliFor.isEmpty()) { wc.addWc(" A.id_clifor='" + l_flgCliFor + "'"); s_Sql_colonne = s_Sql_colonne + " A.id_clifor,"; } if (l_flgStatoLavorazione == -1L || l_flgStatoLavorazione == 100L) { wc.addWc("(DOC.flgStatoLavorazione=0 or DOC.flgStatoLavorazione is null or DOC.flgStatoLavorazione=100)"); } else { wc.addWc("(DOC.flgStatoLavorazione>0 and DOC.flgStatoLavorazione <100)"); } if (dataA != null) { wc.addWc(" DOC.dataDocumento <= ?"); s_Sql_Sum = s_Sql_Sum + s_Sql_Sum; } String s_sql_groupby = ""; if (!s_Sql_colonne.isEmpty()) s_sql_groupby = " group by " + s_Sql_colonne.substring(0, s_Sql_colonne.length() - 1); try { PreparedStatement stmt = getConn() .prepareStatement("select " + s_Sql_colonne + s_Sql_Sum + wc.toString() + s_sql_groupby); if (dataA != null) stmt.setDate(1, dataA); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } public void findMagTessutoDisponibilitaGlobaleMagazziniInterniEsterni(long l_id_articoloTessuto, long l_id_articoloTessutoColore, String l_seriale, long l_id_clifor) { findMagTessutoDisponibilita(0L, 0L, l_seriale, 0L, 0L, -1L, l_id_clifor, "", DATA_NULL); } public void findMagTessutoDisponibilitaPuntualeOLD(long l_id_articoloTessuto, long l_id_articoloTessutoColore, String l_seriale, long l_id_magfisico, long l_flgStatoLavorazione, long l_id_clifor, long flgTipoRicerca, String l_flgCliFor) { String s_Sql_Sum = " SUM(segnoMov*kg) as kg, SUM(segnoMov*mt) as mt, SUM(segnoMov*nr) as nr from RIGA_DOCUMENTO AS A"; String s_Sql_colonne = ""; WcString wc = new WcString(); if (flgTipoRicerca == 0L) wc.addWc("A.id_magFisico>0"); if (l_id_articoloTessutoColore > 0L) { s_Sql_Sum = s_Sql_Sum + " inner join ARTICOLO_TESSUTO_COLORE AS F ON A.id_articoloTessutoColore=F.id_articoloTessutoColore"; } else if (l_id_articoloTessuto > 0L) { s_Sql_Sum = s_Sql_Sum + " inner join ARTICOLO_TESSUTO AS F ON A.id_articoloTessuto=F.id_articoloTessuto"; } if (!l_flgCliFor.isEmpty()) s_Sql_Sum = s_Sql_Sum + " inner join CLIFOR AS CF ON A.id_clifor=CF.id_clifor"; if (l_id_articoloTessutoColore > 0L) { wc.addWc(" A.id_articoloTessutoColore = " + l_id_articoloTessutoColore); s_Sql_colonne = s_Sql_colonne + " A.id_articoloTessutoColore,"; } else if (l_id_articoloTessuto != 0L) { wc.addWc(" A.id_articoloTessuto = " + l_id_articoloTessuto); s_Sql_colonne = s_Sql_colonne + " A.id_articoloTessuto,"; } if (l_id_magfisico != 0L) { wc.addWc(" id_magFisico = " + l_id_magfisico); s_Sql_colonne = s_Sql_colonne + " id_magFisico,"; } if (!l_flgCliFor.isEmpty()) { wc.addWc(" A.id_clifor='" + l_flgCliFor + "'"); s_Sql_colonne = s_Sql_colonne + " A.id_clifor,"; } StringBuilder mf = new StringBuilder(""); if (flgTipoRicerca > 0L && l_id_magfisico == 0L) { MagFisico mag = new MagFisico(getApFull()); if (flgTipoRicerca == 1L || flgTipoRicerca == 3L) { Vectumerator vecMag = mag.findByTipo(1L); if (vecMag.hasMoreElements()) while (vecMag.hasMoreElements()) { mag = (MagFisico)vecMag.nextElement(); if (mf.length() > 0) mf.append(" OR "); mf.append(" id_magFisico = " + mag.getId_magFisico()); } } if (flgTipoRicerca == 2L || flgTipoRicerca == 3L) { Vectumerator vecMag = mag.findByTipo(2L); if (vecMag.hasMoreElements()) while (vecMag.hasMoreElements()) { mag = (MagFisico)vecMag.nextElement(); if (mf.length() > 0) mf.append(" OR "); mf.append(" id_magFisico = " + mag.getId_magFisico()); } } } if (mf.length() > 0) { mf.append(")"); wc.addWc("(" + mf.toString()); s_Sql_colonne = s_Sql_colonne + " id_magFisico,"; } if (l_seriale != null && !l_seriale.isEmpty()) { wc.addWc(" seriale = '" + l_seriale + "'"); s_Sql_colonne = s_Sql_colonne + " seriale,"; } if (l_id_clifor != 0L) { wc.addWc(" id_clifor = " + l_id_clifor); s_Sql_colonne = s_Sql_colonne + " id_clifor,"; } String s_sql_groupby = ""; if (!s_Sql_colonne.isEmpty()) s_sql_groupby = " group by " + s_Sql_colonne.substring(0, s_Sql_colonne.length() - 1); try { PreparedStatement stmt = getConn() .prepareStatement("select " + s_Sql_colonne + s_Sql_Sum + wc.toString() + s_sql_groupby); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } public void findMagTessutoDisponibilitaPuntualeMagazziniInterni(long l_id_articoloTessuto, long l_id_articoloTessutoColore, String l_seriale, long l_flgStatoLavorazione) { findMagTessutoDisponibilita(l_id_articoloTessuto, l_id_articoloTessutoColore, l_seriale, 0L, 1L, -1L, 0L, "", DATA_NULL); } public void findMagTessutoDisponibilitaPuntualeMagazziniInterniEsterni(long l_id_articoloTessuto, long l_id_articoloTessutoColore, String l_seriale, long l_flgStatoLavorazione, long l_id_clifor) { findMagTessutoDisponibilita(l_id_articoloTessuto, l_id_articoloTessutoColore, l_seriale, 0L, 0L, -1L, l_id_clifor, "", DATA_NULL); } public Vectumerator findMagTessutoSaldiArticoloTessutoByCR(RigaDocumentoCR CR, int pageNumber, int pageRows) { String s_Sql_Find = "select B.id_articoloFilato, C.id_articoloFilatoColore , SUM(A.kg*segnoMov) as kg, SUM(A.mt*segnoMov) as mt, SUM(A.nr*segnoMov) as nr from ARTICOLO_FILATO AS B LEFT JOIN ARTICOLO_FILATO_COLORE AS C ON B.id_articoloFilato=C.id_articoloFilato LEFT JOIN RIGA_DOCUMENTO AS A ON A.id_articoloFilato=B.id_articoloFilato and A.id_articoloFilatoColore=C.id_articoloFilatoColore left JOIN MAG_FISICO AS D ON A.id_magFisico=D.id_magFisico "; if (CR.getFlgTipoMagazzino() > 0L) s_Sql_Find = s_Sql_Find + " and D.flgTipo = " + s_Sql_Find; String s_Sql_Group = " group by B.id_articoloFilato, C.id_articoloFilatoColore"; String s_Sql_Order = " order by B.nome, C.nomeV, A.seriale "; String s_Sql_Having = ""; if (CR.getFlgInMagazzino() == 1L) { s_Sql_Having = " Having SUM(A.kg*segnoMov) > 0 OR SUM(A.mt*segnoMov) > 0 OR SUM(A.nr*segnoMov) > 0 "; } else if (CR.getFlgInMagazzino() == 2L) { s_Sql_Having = " Having SUM(A.kg*segnoMov) < 0 OR SUM(A.mt*segnoMov) < 0 OR SUM(A.nr*segnoMov) < 0 "; } WcString wc = new WcString(); wc.addWc("A.id_magFisico>0"); if (!CR.getSearchTxt().isEmpty() && !CR.getSearchTxt().equals("*")) { String star = ""; String temp = CR.getSearchTxt(); temp = prepareInputMySqlString(temp, true); temp = temp.replace("*", "%"); StringTokenizer st = new StringTokenizer(temp.trim(), " "); StringBuffer txt = new StringBuffer("("); while (st.hasMoreTokens()) { String token = star + star; txt.append("(B.codice like '" + token + "%' or B.nome like '" + token + "%' or B.codiceProduttore like '" + token + "%' or B.codiciAlternativi like '%," + token + "%')"); if (st.hasMoreTokens()) { txt.append(" and "); star = "%"; } } txt.append(")"); wc.addWc(txt.toString()); } if (CR.getId_articolo() > 0L) wc.addWc("B.id_articolo = " + CR.getId_articolo()); if (CR.getId_magFisico() > 0L) wc.addWc(" A.id_magFisico = " + CR.getId_magFisico()); if (CR.getId_clifor() > 0L) wc.addWc(" A.id_clifor = " + CR.getId_clifor()); try { PreparedStatement stmt = getConn() .prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString() + s_Sql_Group + s_Sql_Having); return findRows(stmt, pageNumber, pageRows); } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public double getTotTessutiImpegnati(long l_id_articoloTessuto, String l_seriale) { return 0.0D; } public static ResParm aggiornaDispoTessuto(ApplParmFull ap, long l_id_articoloTessuto, long l_id_articoloTessutoColore, long l_id_users) { ResParm rp = new ResParm(true); if (l_id_articoloTessutoColore != 0L) { RigaDocumento rigaDocumento = new RigaDocumento(ap); rigaDocumento.findMagTessutoDisponibilitaPuntualeMagazziniInterni(l_id_articoloTessuto, l_id_articoloTessutoColore, Articolo.SERIALE_NULL, -1L); ArticoloTessutoColore art = new ArticoloTessutoColore(ap); art.findByPrimaryKey(l_id_articoloTessutoColore); art.resetCalcoloQuantita(); art.setFlgDispo((rigaDocumento.getQuantita() > 0.0D) ? 1L : 0L); art.setLastUpdId_user(l_id_users); art.save(); ArticoloTessuto af = art.getArticoloTessuto(); af.resetCalcoloQuantita(); rigaDocumento.findMagTessutoDisponibilitaPuntualeMagazziniInterni(l_id_articoloTessuto, 0L, Articolo.SERIALE_NULL, -1L); af.setFlgDispo((rigaDocumento.getQuantita() > 0.0D) ? 1L : 0L); af.setLastUpdId_user(l_id_users); af.save(); } return rp; } private static synchronized ResParm synchroSaveTessuto(RigaDocumento bean) { long l_id_magFisicoPartenza, l_id_magFisicoArrivo; MagFisico magFisicoPartenza, magFisicoArrivo; CausaleMagazzino causaleMagazzino; ResParm rp = bean.getDocumento().checkEMSTA(); if (!rp.getStatus()) return new ResParm(false, "ATTENZIONE! Tentativo di modificare una riga documento: " + rp.getMsg()); double l_quantitaOld = bean.getQuantitaOld(); RigaDocumento rd = new RigaDocumento(bean.getApFull()); rd.findByPrimaryKey(bean.getId_rigaDocumento()); long l_flgRigaPrelevata = rd.getFlgRigaPrelevata(); if (bean.getDBState() == 1) { if (bean.getFlgRigaPrelevata() == 1L) return new ResParm(false, "ERRORE! Non puoi modificare una riga chiusa!"); if (bean.getQuantitaPrelevata() > 0.0D && bean.getQuantita() < bean.getQuantitaPrelevata()) return new ResParm(false, "ERRORE! La quantità prelevata è maggiore della quantità della riga"); } if (bean.getQuantitaPrelevata() >= bean.getQuantita() && bean.getQuantitaPrelevata() > 0.0D && bean.getQuantita() > 0.0D) bean.setFlgRigaPrelevata(1L); double quantitaPrelevata1 = 0.0D; if (bean.getArticoloTessuto().isUsaMagazzino()) { rd.getMagQuantitaPrelevatoByRigaDocumento(bean.getId_rigaDocumento()); quantitaPrelevata1 = rd.getQuantita(); if (bean.getQuantita() < quantitaPrelevata1) return new ResParm(false, "ERRORE! La quantità prelevata è maggiore della quantità della riga"); } RigaDocumento beanRB = null; if (bean.getId_rigaDocumento() != 0L) { beanRB = new RigaDocumento(bean.getApFull()); beanRB.findByPrimaryKey(bean.getId_rigaDocumento()); } rp = new ResParm(true); long magPartenza = 0L; long magArrivo = 0L; long flgTipoMagFisicoPartenza = 0L; long flgTipoMagFisicoArrivo = 0L; if (bean.getFlgCodiceRiga() == 0L) { l_id_magFisicoPartenza = bean.getDocumento().getId_magFisicoPartenza(); l_id_magFisicoArrivo = bean.getDocumento().getId_magFisicoArrivo(); magFisicoPartenza = bean.getDocumento().getMagFisicoPartenza(); magFisicoArrivo = bean.getDocumento().getMagFisicoArrivo(); causaleMagazzino = bean.getDocumento().getTipoDocumento().getCausaleMagazzino(); } else { l_id_magFisicoPartenza = bean.getDocumento().getId_magFisicoPartenza2(); l_id_magFisicoArrivo = bean.getDocumento().getId_magFisicoArrivo2(); magFisicoPartenza = bean.getDocumento().getMagFisicoPartenza2(); magFisicoArrivo = bean.getDocumento().getMagFisicoArrivo2(); causaleMagazzino = bean.getDocumento().getTipoDocumento().getCausaleMagazzino2(); } if (l_id_magFisicoPartenza == 0L) { if (causaleMagazzino.getId_magFisicoPartenza() > 0L) { magPartenza = causaleMagazzino.getId_magFisicoPartenza(); flgTipoMagFisicoPartenza = causaleMagazzino.getMagFisicoPartenza().getFlgTipo(); } } else { magPartenza = l_id_magFisicoPartenza; flgTipoMagFisicoPartenza = magFisicoPartenza.getFlgTipo(); } if (l_id_magFisicoArrivo == 0L) { if (causaleMagazzino.getId_magFisicoArrivo() > 0L) { magArrivo = causaleMagazzino.getId_magFisicoArrivo(); flgTipoMagFisicoArrivo = causaleMagazzino.getMagFisicoArrivo().getFlgTipo(); } } else { magArrivo = l_id_magFisicoArrivo; flgTipoMagFisicoArrivo = magFisicoArrivo.getFlgTipo(); } if (bean.getId_articoloTessuto() != 0L && bean.getArticoloTessuto().usaMagazzino() && (magArrivo > 0L || magPartenza > 0L)) { if (magPartenza != 0L) { long segnoMov = -1L; if (bean.getFlgReso() == 1L) segnoMov = 1L; bean.setSegnoMov(segnoMov); bean.setId_causaleMagazzino(causaleMagazzino.getId_causaleMagazzino()); bean.setId_magFisico(magPartenza); if (flgTipoMagFisicoPartenza == 1L) { bean.setId_clifor(0L); } else { bean.setId_clifor(bean.getDocumento().getId_clifor()); } rp = bean.superSave(); } if (rp.getStatus() && magArrivo != 0L) { long segnoMov = 1L; if (bean.getFlgReso() == 1L) segnoMov = -1L; if (magPartenza == 0L) { bean.setSegnoMov(segnoMov); bean.setId_causaleMagazzino(causaleMagazzino.getId_causaleMagazzino()); bean.setId_magFisico(magArrivo); if (flgTipoMagFisicoArrivo == 1L) { bean.setId_clifor(0L); } else { bean.setId_clifor(bean.getDocumento().getId_clifor()); } rp = bean.superSave(); } else { try { RigaDocumento rd2 = (RigaDocumento)bean.clone(); rd2.setDBState(0); rd2.setId_rigaDocumento(0L); rd2.setId_rigaDocumentoMov(bean.getId_rigaDocumento()); rd2.setSegnoMov(segnoMov); rd2.setId_magFisico(magArrivo); if (flgTipoMagFisicoArrivo == 1L) { rd2.setId_clifor(0L); } else { rd2.setId_clifor(bean.getDocumento().getId_clifor()); } rd2.setId_rigaDocumentoMov(bean.getId_rigaDocumento()); rp = bean.superSave(); } catch (Exception e) { bean.handleDebug(e, 0); rp.setException(e); } } } } else { bean.setId_clifor(0L); rp = bean.superSave(); } if (rp.getStatus()) { if (bean.getDocumento().getTipoDocumento().getFlgTipologia() == 200L) if (bean.getDocumento().getFlgBarcodeType() == 100L) { String pre = zeroLeft(bean.getDocumento().getRiferimento(), 6) + "-" + zeroLeft(bean.getDocumento().getRiferimento(), 6); long numeroIniziale = 1L; long numeroFinale = numeroIniziale + bean.getStacchi() - 1L; bean.setCodiceCartellinoStart(pre + pre); bean.setCodiceCartellinoStop(pre + pre); bean.setCodiceCartellinoIniziale(""); bean.superSave(); } rp.append(bean.getDocumento().save()); rp.append(bean.aggiornaCostoUltimoFornitore()); if (l_flgRigaPrelevata != bean.getFlgRigaPrelevata()) if (bean.getFlgRigaPrelevata() == 0L) { if (bean.getDocumento().getFlgDocumentoPrelevato() == 1L) bean.getDocumento().aggiornaFlgDocumentoPrelevato(0L); } else { bean.getDocumento().verificaEAggiornaFlgDocumentoPrelevato(); } } if (rp.getStatus()) { rp.setMsg(AbMessages.getMessage("SAVE_OK")); bean.getArticoloTessuto().setQuantitaCalcolate(false); bean.getArticoloTessuto().superSave(); } return rp; } public long getId_articoloPrecedente() { return this.id_articoloPrecedente; } public void setId_articoloPrecedente(long id_articoloPrecedente) { this.id_articoloPrecedente = id_articoloPrecedente; } public double getPercL1() { return this.percL1; } public double getPercL2() { return this.percL2; } public double getPercL3() { return this.percL3; } public void setPercL1(double percL1) { this.percL1 = percL1; } public void setPercL2(double percL2) { this.percL2 = percL2; } public void setPercL3(double percL3) { this.percL3 = percL3; } public String getFETipoCessionePrestazione() { return null; } public String getFECodiceArticoloTipo() { return getArticolo().getTipo().getDescrizione(); } public String getFECodiceArticoloValore() { return getCodiceArticolo(); } public String getFEDescrizione() { return getDescrizioneRigaCompleta(); } public double getFEQuantita() { return getQuantita(); } public String getFEUnitaMisura() { return getUdm(); } public Date getFEDataInizioPeriodo() { return null; } public Date getFEDataFinePeriodo() { return null; } public double getFEPrezzoUnitario() { return getImponibile(); } public Vectumerator getFEScontoMaggiorazione() { if (getSconto() > 0.0D) { FEScontoMaggiorazione rowSm; Vectumerator vecSM = new Vectumerator(); if (getQuantita() == 1.0D) { rowSm = new FEScontoMaggiorazione("SC", getSconto(), 0.0D); } else { rowSm = new FEScontoMaggiorazione("SC", getSconto(), 0.0D); } vecSM.add(rowSm); return vecSM; } if (getPercL1() > 0.0D || getPercL2() > 0.0D || getPercL3() > 0.0D) { FEScontoMaggiorazione rowSm; Vectumerator vecSM = new Vectumerator(); if (getQuantita() == 1.0D) { rowSm = new FEScontoMaggiorazione("SC", 0.0D, getTotImponibileRigaSconto()); } else { DoubleOperator dop = new DoubleOperator(getTotImponibileRigaSconto()); dop.setScale(4, 5); dop.divide(getQuantita()); dop.setScale(2, 5); rowSm = new FEScontoMaggiorazione("SC", 0.0D, dop.getResult()); } vecSM.add(rowSm); return vecSM; } return null; } public double getFEPrezzoTotale() { return getTotImponibileRigaConSconto(); } public double getFEAliquotaIva() { return (double)getIva().getAliquotaFE(); } public double getFERitenuta() { return 0.0D; } public String getFENatura() { return getIva().getFENatura(); } public String getFERiferimentoAmministrazione() { return null; } public double getTotImponibileRigaSconto() { if (!getIva().getFlgTipo().equals("R")) { if (getSconto() == 0.0D && getPercL1() == 0.0D && getPercL2() == 0.0D && getPercL3() == 0.0D) return 0.0D; if (getSconto() > 0.0D) { DoubleOperator doubleOperator = new DoubleOperator(getSconto()); doubleOperator.setScale(4, 5); doubleOperator.multiply(getTotImponibileRiga()); doubleOperator.divide(100.0F); doubleOperator.setScale(2, 5); return doubleOperator.getResult(); } DoubleOperator temp = new DoubleOperator(); temp.setScale(4, 5); DoubleOperator imponibile = new DoubleOperator(getTotImponibileRiga()); imponibile.setScale(4, 5); DoubleOperator scontoTot = new DoubleOperator(); scontoTot.setScale(4, 5); if (getPercL1() > 0.0D) { temp = new DoubleOperator(getPercL1()); temp.multiply(imponibile); temp.divide(100.0F); scontoTot.add(temp.getResult()); imponibile.subtract(temp.getResult()); } if (getPercL2() > 0.0D) { temp = new DoubleOperator(getPercL2()); temp.multiply(imponibile); temp.divide(100.0F); scontoTot.add(temp.getResult()); imponibile.subtract(temp.getResult()); } if (getPercL3() > 0.0D) { temp = new DoubleOperator(getPercL3()); temp.multiply(imponibile); temp.divide(100.0F); scontoTot.add(temp.getResult()); imponibile.subtract(temp.getResult()); } scontoTot.setScale(2, 5); return scontoTot.getResult(); } return 0.0D; } public double getTotImponibileRigaConSconto() { DoubleOperator temp = new DoubleOperator(getTotImponibileRiga()); temp.setScale(4, 5); temp.subtract(getTotImponibileRigaSconto()); temp.setScale(2, 5); return temp.getResult(); } public double getRDITotImponibile() { return getTotImponibileRigaConSconto(); } public double getRDITotImposta() { return getTotIvaRiga4(); } public double getRDITotCosto() { return getTotCostoUsato(); } public boolean isRDIPIva() { return !getClifor().getpIva().isEmpty(); } public boolean isRDINotaCredito() { if (getDocumento().getTipoDocumento().getFlgTipologia() == 1L) return true; return false; } public double getRDITotImponibileRM() { return getTotImportoRM(); } public double getTotImponibileRiga() { DoubleOperator temp = new DoubleOperator(getImponibile()); temp.multiply(getQuantita()); temp.setScale(3, 5); return temp.getResult(); } public double getFECostoArticolo() { return getArticolo().getCostoAcquisto(); } public String getFEEsigibilitaIva() { if (getDocumento().getClifor().getFlgSplitPayment() == 1L) return "S"; return null; } public long getStacchi() { return this.stacchi; } public void setStacchi(long stacchi) { this.stacchi = stacchi; } public double getMetriStacchi() { return this.metriStacchi; } public void setMetriStacchi(double metriStacchi) { this.metriStacchi = metriStacchi; } public long getRifTipoArticolo() { return (this.rifTipoArticolo == 0L) ? 1L : this.rifTipoArticolo; } public void setRifTipoArticolo(long rifTipoArticolo) { this.rifTipoArticolo = rifTipoArticolo; } public String getCodiceCartellinoIniziale() { return (this.codiceCartellinoIniziale == null) ? "" : this.codiceCartellinoIniziale.trim(); } public void setCodiceCartellinoIniziale(String codiceCartellinoIniziale) { this.codiceCartellinoIniziale = codiceCartellinoIniziale; } public String getDescrizioneStatoPezze() { if (getId_rigaDocumento() == 0L) return ""; StringBuilder sb = new StringBuilder(); LavPezza lavPezza = new LavPezza(getApFull()); Vectumerator vec = lavPezza.findByRigaDocumento(getId_rigaDocumento()); if (vec.getTotNumberOfRecords() > 0) { sb.append(vec.getTotNumberOfRecords()); sb.append(" pezze per "); lavPezza.findLastInserimentoByRigaDocumento(getId_rigaDocumento(), 0L); sb.append(getNf().format(lavPezza.getMtPezza())); sb.append(" mt "); sb.append(lavPezza.getTsInserimentoS()); } return sb.toString(); } public String getCodiceCartellinoStart() { return (this.codiceCartellinoStart == null) ? "" : this.codiceCartellinoStart; } public String getCodiceCartellinoStop() { return (this.codiceCartellinoStop == null) ? "" : this.codiceCartellinoStop; } public void setCodiceCartellinoStart(String codiceCartellinoStart) { this.codiceCartellinoStart = codiceCartellinoStart; } public void setCodiceCartellinoStop(String codiceCartellinoStop) { this.codiceCartellinoStop = codiceCartellinoStop; } public long getFlgCodiceRiga() { return this.flgCodiceRiga; } public void setFlgCodiceRiga(long flgCodiceRiga) { this.flgCodiceRiga = flgCodiceRiga; } public long getFlgStatoLavorazioneRiga() { return this.flgStatoLavorazioneRiga; } public void setFlgStatoLavorazioneRiga(long flgStatoLavorazione) { this.flgStatoLavorazioneRiga = flgStatoLavorazione; } public static final String getStatoLavorazione(long l_flgStatoLavorazione) { return Documento.getStatoLavorazione(l_flgStatoLavorazione); } public String getStatoLavorazione() { return Documento.getStatoLavorazione(getFlgStatoLavorazioneRiga()); } public Vectumerator findByCR(RigaDocumentoCR CR, int pageNumber, int pageRows) { if (CR.getFlgReport().equals("S") && CR.getFlgTipoReport() == 1L) return findByCRCompatto(CR, pageNumber, pageRows); boolean flgOttimizzo = (getParm("OTTIMIZZO").getNumero() == 1.0D); StringBuffer s_Sql_Find = new StringBuffer("select A.*, D.nome, D.codice, C.dataDocumento, C.id_esercizio, C.progDocumento from RIGA_DOCUMENTO AS A left join ARTICOLO AS D on A.id_articolo=D.id_articolo, DOCUMENTO AS C "); s_Sql_Find.append(" ,TIPO_DOCUMENTO AS TD , TIPOLOGIA_DOCUMENTO AS T"); String s_Sql_Order = " order by D.nome,D.codice, A.seriale, C.dataDocumento desc, C.id_esercizio desc, C.progDocumento desc"; if (CR.getFlgOrderBy() == 1L) s_Sql_Order = " order by C.dataDocumento asc, C.id_esercizio asc, C.progDocumento asc"; WcString wc = new WcString(); findByCRCreateWC(CR, s_Sql_Find, wc); try { PreparedStatement stmt; if ((pageNumber == 0 && pageRows == 0) || !flgOttimizzo) { stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find) + wc.toString()); } else { if (pageNumber == 0) pageNumber = 1; int start = (pageNumber - 1) * pageRows; int stop = start + pageRows; stmt = getConn().prepareStatement(String.valueOf(s_Sql_Find) + String.valueOf(s_Sql_Find) + wc.toString() + " limit " + s_Sql_Order + "," + start); } findByCRCreateStmtDate(CR, stmt); if ((pageNumber == 0 && pageRows == 0) || !flgOttimizzo) return findRows(stmt, pageNumber, pageRows); Vectumerator vec = findRows(stmt, 1, pageRows); vec.setPageNumber(pageNumber); vec.setTotNumberOfRecords(findByCRTotRecord(CR)); return vec; } catch (SQLException e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public Vectumerator findRigheFilatiByRDTessuto(long l_id_rigaDocumentoTessuto) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_order = " order by A.id_rigaDocumento desc"; WcString wc = new WcString(); wc.addWc("A.id_rigaDocumentoTessutoA=" + l_id_rigaDocumentoTessuto); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public long getColpoFinaleRiga() { return this.colpoFinaleRiga; } public void setColpoFinaleRiga(long colpoFinale) { this.colpoFinaleRiga = colpoFinale; } public long getColpoInizialeRiga() { return this.colpoInizialeRiga; } public void setColpoInizialeRiga(long colpoIniziale) { this.colpoInizialeRiga = colpoIniziale; } public long getId_articoloTessutoColore() { return this.id_articoloTessutoColore; } public void setId_articoloTessutoColore(long id_articoloTessutoColore) { this.id_articoloTessutoColore = id_articoloTessutoColore; setArticoloTessutoColore(null); } public ArticoloTessutoColore getArticoloTessutoColore() { this.articoloTessutoColore = (ArticoloTessutoColore)getSecondaryObject(this.articoloTessutoColore, ArticoloTessutoColore.class, getId_articoloTessutoColore()); return this.articoloTessutoColore; } public void setArticoloTessutoColore(ArticoloTessutoColore articoloTessutoColore) { this.articoloTessutoColore = articoloTessutoColore; } public String getCodiceCartellinoIdx(long idx) { if (idx == 0L) return getCodiceCartellinoStart(); int idxPre = (int)((long)getCodiceCartellinoStart().length() - getDocumento().getFlgBarcodeSequenzaNumeri()); String pre = getCodiceCartellinoStart().substring(0, idxPre); long numIniziale = Long.parseLong(getCodiceCartellinoStart().substring(idxPre)); return pre + pre; } public long getTotColpiRiga() { if (getColpoFinaleRiga() > getColpoInizialeRiga()) return getColpoFinaleRiga() - getColpoInizialeRiga(); return 0L; } public long getId_telaio() { return this.id_telaio; } public Telaio getTelaio() { this.telaio = (Telaio)getSecondaryObject(this.telaio, Telaio.class, getId_telaio()); return this.telaio; } public void setId_telaio(long id_telaio) { this.id_telaio = id_telaio; setTelaio(null); } public void setTelaio(Telaio telaio) { this.telaio = telaio; } public Vectumerator findImpegniByClifor(long l_id_clifor, int pageNumber, int pageRows) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A , DOCUMENTO AS B"; String s_Sql_order = ""; WcString wc = new WcString(); wc.addWc("A.id_documento=B.id_documento"); wc.addWc("B.flgStato =1"); wc.addWc("A.flgRigaPrelevata !=1"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt, pageNumber, pageRows); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public void findByTelaioUltimo(long l_id_telaio) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A"; String s_Sql_Order = " order by A.tsFineLavorazioneRiga desc"; WcString wc = new WcString(); wc.addWc("A.flgStatoLavorazioneRiga=100"); wc.addWc("A.id_telaio=" + l_id_telaio); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } public ResParm updateFields(String fieldName, String value) { if (getId_rigaDocumento() == 0L) return new ResParm(false, "Errore! Impossibile aggiornare un bean nuovo."); long valueL = 0L; try { valueL = Long.parseLong(value); } catch (Exception e) {} if (fieldName.equals("colpoInizialeRiga")) { setColpoInizialeRiga(valueL); } else if (fieldName.equals("colpoFinaleRiga")) { if (valueL > 0L && valueL > getColpoInizialeRiga()) { setColpoFinaleRiga(valueL); } else { setColpoFinaleRiga(0L); } } else if (fieldName.equals("id_telaio")) { setId_telaio(valueL); } calcolaStatoLavorazioneRiga(); if (getId_telaio() > 0L && getColpoInizialeRiga() == 0L) setColpoInizialeRiga(getTelaio().findColpiIniziali()); ResParm rp = super.save(); if (rp.getStatus()) rp = getDocumento().aggiornaStatoLavorazione(); return rp; } public Timestamp getTsFineLavorazioneRiga() { return this.tsFineLavorazioneRiga; } public void setTsFineLavorazioneRiga(Timestamp tsFineLavorazioneRiga) { this.tsFineLavorazioneRiga = tsFineLavorazioneRiga; } public Timestamp getTsInizioLavorazioneRiga() { return this.tsInizioLavorazioneRiga; } public void setTsInizioLavorazioneRiga(Timestamp tsInizioLavorazioneRiga) { this.tsInizioLavorazioneRiga = tsInizioLavorazioneRiga; } public boolean isCampoEditabile(String fieldname) { if (fieldname.equals("id_telaio")) { if (getFlgStatoLavorazioneRiga() == 0L || getFlgStatoLavorazioneRiga() == 10L) return true; return false; } if (fieldname.equals("colpoInizialeRiga")) { if ((getFlgStatoLavorazioneRiga() == 10L || getFlgStatoLavorazioneRiga() == 20L) && getColpoFinaleRiga() == 0L) return true; return false; } if (fieldname.equals("colpoFinaleRiga")) { if ((getFlgStatoLavorazioneRiga() == 10L || getFlgStatoLavorazioneRiga() == 20L) && getColpoInizialeRiga() > 0L) return true; return false; } return true; } public RigaDocumento findTelaioOccupato(long l_id_telaio) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A "; String s_Sql_Order = " order by A.tsInizioLavorazioneRiga desc"; WcString wc = new WcString(); wc.addWc("(A.flgStatoLavorazioneRiga=10 or A.flgStatoLavorazioneRiga=20)"); wc.addWc("A.id_telaio=" + l_id_telaio); wc.addWc("A.id_rigaDocumento <>" + getId_rigaDocumento()); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + wc.toString()); Vectumerator vec = findRows(stmt, 1, 1); if (vec.hasMoreElements()) return (RigaDocumento)vec.nextElement(); return new RigaDocumento(); } catch (SQLException e) { handleDebug(e); return new RigaDocumento(); } } public long getNumTeli() { long totCapi = (long)getDocumento().getTotNr(); return totCapi / getCapiPerTelo(); } public long getNumTeliRiga(long l_capiPerTelo) { long totCapi = (long)getNr(); return totCapi / l_capiPerTelo; } public boolean isNumeroTeliOk() { if (getNumTeli() <= getArticoloTessuto().getNumTeliMax()) return true; return false; } public long getNumTeliRiga() { return this.numTeliRiga; } public void setNumTeliRiga(long numTeliRiga) { this.numTeliRiga = numTeliRiga; } public long getFlgDaCancellare() { return this.flgDaCancellare; } public void setFlgDaCancellare(long flgDaCancellare) { this.flgDaCancellare = flgDaCancellare; } public ResParm impostaDaCancellareByDocumentoCodiceriga(long l_id_documento, long l_flgCodiceRiga, boolean daCancellare) { String s_Sql_Find = "UPDATE RIGA_DOCUMENTO as A SET flgDaCancellare=" + (daCancellare ? "1" : "0"); WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); wc.addWc("A.flgCodiceRiga=" + l_flgCodiceRiga); return update(s_Sql_Find + s_Sql_Find); } public NumeroTeliRiga getNumeroTeliRigaByArticolo(long l_id_rigaDocumentoArticolo) { if (this.numeroTeliRiga == null || this.numeroTeliRiga.getId_rigaDocumentoArticolo() != l_id_rigaDocumentoArticolo) { this.numeroTeliRiga = new NumeroTeliRiga(getApFull()); this.numeroTeliRiga.findByRDArticoloRDTessuto(l_id_rigaDocumentoArticolo, getId_rigaDocumento()); } return (this.numeroTeliRiga == null) ? new NumeroTeliRiga(getApFull()) : this.numeroTeliRiga; } public long getNumeroCapiByTeliRigaArticolo(long l_id_rigaDocumentoArticolo) { return getNumeroTeliRigaByArticolo(l_id_rigaDocumentoArticolo).getNumTeliRiga() * getCapiPerTelo(); } public void setNumeroTeliRiga(NumeroTeliRiga numeroTeliRiga) { this.numeroTeliRiga = numeroTeliRiga; } public String getDescrizioneArticoliCompleta(String lang) { String star = "", sn = ""; StringBuilder l_descrizioneRiga = new StringBuilder(); if (getId_articoloVariante() != 0L) { l_descrizioneRiga.append(getArticoloVariante().getDescrizione(lang)); } else if (getId_articolo() != 0L) { l_descrizioneRiga.append(getArticolo().getDescrizione(lang)); } if (getId_articoloTessutoColore() != 0L) { l_descrizioneRiga.append(getArticoloTessutoColore().getDescrizione(lang)); } else if (getId_articoloTessuto() != 0L) { l_descrizioneRiga.append(getArticoloTessuto().getDescrizione(lang)); } if (getId_articoloFilatoColore() != 0L) l_descrizioneRiga.append(getArticoloFilatoColore().getDescrizione(lang)); if (l_descrizioneRiga.length() == 0) { l_descrizioneRiga.append(getDescrizioneRiga()); star = "*"; } if (getId_articoloFilatoColore() != 0L) { sn = translate(" lotto: ", lang); } else { sn = translate(" s/n: ", lang); } if (getSeriale().isEmpty()) return String.valueOf(l_descrizioneRiga) + String.valueOf(l_descrizioneRiga); return String.valueOf(l_descrizioneRiga) + String.valueOf(l_descrizioneRiga) + star + sn; } public double getDatiTelaioInLavorazione(long l_id_telaio) { String s_Sql_Find = "select sum(A.quantita) as _sum from RIGA_DOCUMENTO AS A , DOCUMENTO AS B"; String s_Sql_order = ""; WcString wc = new WcString(); wc.addWc("A.id_documento=B.id_documento"); wc.addWc("A.id_telaio=" + l_id_telaio); wc.addWc("(A.flgStatoLavorazioneRiga =10 or A.flgStatoLavorazioneRiga =20)"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return getSum(stmt); } catch (Exception e) { handleDebug(e, 0); return 0.0D; } } public double getNrOriginale() { return this.nrOriginale; } public void setNrOriginale(double nrOriginale) { this.nrOriginale = nrOriginale; } public boolean isTessutoPrincipale(long l_id_articoloTessuto, long l_id_articoloTessutoColore) { if (getId_articoloVariante() > 0L) return getArticoloVariante().isTessutoPrincipale(l_id_articoloTessuto, l_id_articoloTessutoColore); if (getId_articolo() > 0L) return getArticolo().isTessutoPrincipale(l_id_articoloTessutoColore, l_id_articoloTessutoColore); return false; } public double getMtTessutoXTaglio() { if (getFlgCodiceRiga() == 100L) { long totCapi = (long)getDocumento().getTotNr(); ArticoloArticoloTessuto aat = new ArticoloArticoloTessuto(getApFull()); if (getId_articoloTessutoColore() > 0L) { aat.findByArticoloArticoloTessutoColoreBase(getDocumento().getId_articolo(), getId_articoloTessutoColore()); } else { aat.findByArticoloArticoloTessutoBase(getDocumento().getId_articolo(), getId_articoloTessuto()); } DoubleOperator dop = new DoubleOperator((float)totCapi); dop.multiply(aat.getMtATT()); return dop.getResult(); } return 0.0D; } public NumeroTeliRiga getNumeroTeliRigaByTessuto(long l_id_rigaDocumentoTessuto) { if (this.numeroTeliRiga == null || this.numeroTeliRiga.getId_rigaDocumentoTessuto() != l_id_rigaDocumentoTessuto) { this.numeroTeliRiga = new NumeroTeliRiga(getApFull()); this.numeroTeliRiga.findByRDArticoloRDTessuto(getId_rigaDocumento(), l_id_rigaDocumentoTessuto); } return (this.numeroTeliRiga == null) ? new NumeroTeliRiga(getApFull()) : this.numeroTeliRiga; } public String getDescrizioneRigaRaggruppamento() { return (this.descrizioneRigaRaggruppamento == null) ? "" : this.descrizioneRigaRaggruppamento.trim(); } public void setDescrizioneRigaRaggruppamento(String descrizioneRigaRaggruppamento) { this.descrizioneRigaRaggruppamento = descrizioneRigaRaggruppamento; } public String getDescrizioneRigaDettaglio() { return (this.descrizioneRigaDettaglio == null) ? "" : this.descrizioneRigaDettaglio.trim(); } public void setDescrizioneRigaDettaglio(String descrizioneRigaDettaglio) { this.descrizioneRigaDettaglio = descrizioneRigaDettaglio; } public Vectumerator findReportVenditeByArticoloCR(ArticoloCR CR) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO as A inner join DOCUMENTO AS B on A.id_documento=B.id_documento inner join ARTICOLO AS C on A.id_articolo=C.id_articolo inner join TIPO_DOCUMENTO AS TD ON B.id_tipoDocumento=TD.id_tipoDocumento"; String s_Sql_order = " order by C.codice"; if (CR.getFlgEscludiWeb() >= 0L || CR.getId_tipo() != 0L || CR.getFlgNascondi() >= 0L || !CR.getFlgReport().isEmpty()) s_Sql_Find = s_Sql_Find + " inner join TIPO AS T ON T.id_tipo=C.id_tipo"; WcString wc = new WcString(); wc.addWc("TD.flgMovMagazzino =-1"); wc.addWc("(B.flgStatoOrdineWww is null or B.flgStatoOrdineWww <> 99)"); if (!CR.getCodice().isEmpty()) wc.addWc("C.codice like'" + CR.getCodice() + "%'"); if (CR.getId_iva() != 0L) wc.addWc("C.id_iva=" + CR.getId_iva()); if (CR.getId_clifor() != 0L) wc.addWc("C.id_fornitore=" + CR.getId_clifor()); if (CR.getFlgQta() == 1L) if (CR.getQtaDa() == 0L) { wc.addWc("(C.quantita<=" + CR.getQtaA() + ")"); } else { wc.addWc("(C.quantita>=" + CR.getQtaDa() + ")"); wc.addWc("(C.quantita<=" + CR.getQtaA() + ")"); } if (CR.getFlgUsato() >= 0L) wc.addWc("C.flgUsato=" + CR.getFlgUsato()); if (!CR.getScaffale().isEmpty()) if (CR.getScaffale().indexOf("*") > 0) { String temp = CR.getScaffale().replace("*", "%"); wc.addWc("C.scaffale like'" + temp + "'"); } else { wc.addWc("C.scaffale ='" + CR.getScaffale() + "'"); } if (!CR.getSearchTxt().isEmpty() && !CR.getSearchTxt().equals("*")) if (CR.getSearchTxt().startsWith(",")) { wc.addWc("C.codiciAlternativi like'%" + CR.getSearchTxt() + ",%'"); } else { wc.addWc("(C.codice like'%" + CR.getSearchTxt() + "%' or C.descrizioneSearch like'%" + CR.getSearchTxt() + "%')"); } if (CR.getId_marca() != 0L) wc.addWc("C.id_marca=" + CR.getId_marca()); if (!CR.getDescrizione().isEmpty()) wc.addWc("C.descrizione like'%" + CR.getDescrizione() + "%'"); if (CR.getId_tipo() != 0L) wc.addWc("(T.id_tipo=" + CR.getId_tipo() + " or T.indici like'%:" + CR.getId_tipo() + ":%')"); if (CR.getFlgEscludiWeb() == 0L) { wc.addWc("(C.flgEscludiWeb=0 or C.flgEscludiWeb is null)"); } else if (CR.getFlgEscludiWeb() > 0L) { wc.addWc("C.flgEscludiWeb=" + CR.getFlgEscludiWeb()); } if (CR.getFlgWebNoVendita() == 0L) { wc.addWc("(C.flgWebNoVendita=0 or C.flgWebNoVendita is null)"); } else if (CR.getFlgWebNoVendita() > 0L) { wc.addWc("C.flgWebNoVendita=" + CR.getFlgWebNoVendita()); } if (CR.getFlgStockOfferte() > 0L) if (CR.getFlgStockOfferte() == 99L) { wc.addWc("(C.flgStockOfferte=1 and (CdataScadenzaOfferta is null or C.dataScadenzaOfferta>=?))"); } else { wc.addWc("C.flgStockOfferte=" + CR.getFlgStockOfferte()); } if (CR.getDataDocumentoDa() != null) wc.addWc("B.dataDocumento>=?"); if (CR.getDataDocumentoA() != null) wc.addWc("B.dataDocumento<=? "); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); int dataCount = 1; if (CR.getDataDocumentoDa() != null) { stmt.setDate(dataCount, CR.getDataDocumentoDa()); dataCount++; } if (CR.getDataDocumentoA() != null) { stmt.setDate(dataCount, CR.getDataDocumentoA()); dataCount++; } Vectumerator vec = findRows(stmt); return vec; } catch (Exception e) { handleDebug(e); return AB_EMPTY_VECTUMERATOR; } } public long getId_colore() { return getArticoloTessutoColore().getId_colore(); } public double getPrezzoIvato() { return conIva(getImponibile(), (double)getIva().getAliquota()); } public double getMSQtaCaricataScaricataByArticolo(long l_id_articolo, long l_flgMovMagazzino, Date dataDocumentoDa, Date dataDocumentoA) { String s_Sql_Find = "select SUM(Z.quantita) AS _sum FROM RIGA_DOCUMENTO AS Z INNER JOIN DOCUMENTO AS B ON Z.id_documento = B.id_documento inner join TIPO_DOCUMENTO AS TD ON B.id_tipoDocumento=TD.id_tipoDocumento"; WcString wc = new WcString(); wc.addWc("TD.flgMovMagazzino =" + l_flgMovMagazzino); wc.addWc("(B.flgStatoOrdineWww is null or B.flgStatoOrdineWww <> 99)"); wc.addWc(" Z.id_articolo = " + l_id_articolo); if (dataDocumentoDa != null) wc.addWc("B.dataDocumento>=?"); if (dataDocumentoA != null) wc.addWc("B.dataDocumento<=?"); try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); int dataCount = 0; if (dataDocumentoDa != null) { dataCount++; stmt.setDate(dataCount, dataDocumentoDa); } if (dataDocumentoA != null) { dataCount++; stmt.setDate(dataCount, dataDocumentoA); } return getSum(stmt); } catch (SQLException e) { handleDebug(e); return 0.0D; } } public double getMSQtaCaricataScaricataByArticolo(long l_id_articolo, long l_flgMovMagazzino) { return getMSQtaCaricataScaricataByArticolo(l_id_articolo, l_flgMovMagazzino, null, null); } public double getQtaPrelevabileByDocumento(long l_id_documento) { String s_Sql_Find = "select sum(A.quantita-A.quantitaAssociata) as _sum from RIGA_DOCUMENTO AS A"; WcString wc = new WcString(); if (l_id_documento == 0L) return 0.0D; wc.addWc("A.id_documento=" + l_id_documento); if (getId_articoloVariante() == 0L) { wc.addWc("A.id_articolo=" + getId_articolo()); } else { wc.addWc("A.id_articoloVariante=" + getId_articoloVariante()); } try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find); double qdp = getSum(stmt); return Math.min(qdp, getQuantitaRimanente()); } catch (Exception e) { handleDebug(e, 0); return 0.0D; } } protected ResParm checkDeleteCascade() { LavPezza lp = new LavPezza(this.apFull); Vectumerator vecLp = lp.findByRigaDocumento(getId_rigaDocumento()); if (vecLp.getTotNumberOfRecords() > 0) return new ResParm(false, "Errore! Impossibile cancellare riga " + getId_rigaDocumento() + ": record legato a 1 o piu' pezze (LAV_PEZZA)"); return super.checkDeleteCascade(); } public String getCCDescrizioneRigaCompleta() { return getDescrizioneRigaCompleta().replace("/", "/ "); } public boolean isScontoTroppoAlto() { if (getId_articolo() == 0L) return false; Attivita attivita = Attivita.getDefaultInstance(getApFull()); if (attivita.getCheckCartPercScontoMax() <= 0.0D) return false; if (Math.abs(getPercScontoRispettoAlPrezzoBarrato()) > attivita.getCheckCartPercScontoMax()) return true; return false; } public double getPercScontoRispettoAlPrezzoBarrato() { if (getArticolo().getPrezzoIvatoBarrato() == 0.0D) return 0.0D; DoubleOperator dop = new DoubleOperator(getPrezzoPubblicoConIva()); dop.setScale(2, 5); dop.divide(getArticolo().getPrezzoIvatoBarrato()); dop.multiply(100); dop.subtract(100); return dop.getResult(); } public long getOrdine() { return this.ordine; } public void setOrdine(long ordine) { this.ordine = ordine; } public long getId_articoloFilatoColoreRitorto() { return this.id_articoloFilatoColoreRitorto; } public void setId_articoloFilatoColoreRitorto(long id_articoloFilatoColoreRitorto) { this.id_articoloFilatoColoreRitorto = id_articoloFilatoColoreRitorto; } public ArticoloFilatoColore getArticoloFilatoColore() { this.articoloFilatoColore = (ArticoloFilatoColore)getSecondaryObject(this.articoloFilatoColore, ArticoloFilatoColore.class, getId_articoloFilatoColore()); return this.articoloFilatoColore; } public void setArticoloFilatoColoreRitorto(ArticoloFilatoColoreRitorto articoloFilatoColoreRitorto) { this.articoloFilatoColoreRitorto = articoloFilatoColoreRitorto; setArticoloFilatoColoreRitorto(null); } public long getId_articoloFilato() { return this.id_articoloFilato; } public void setId_articoloFilato(long id_articoloFilato) { this.id_articoloFilato = id_articoloFilato; } public long getId_rigaDocumentoTessutoA() { return this.id_rigaDocumentoTessutoA; } public void setId_rigaDocumentoTessutoA(long id_rigaDocumentoTessuto) { this.id_rigaDocumentoTessutoA = id_rigaDocumentoTessuto; setRigaDocumentoTessutoA(null); } public Vectumerator findByDocumentoArticolo(long l_id_documento, long l_id_articolo) { String s_Sql_Find = "select A.* from RIGA_DOCUMENTO AS A left join ARTICOLO AS B on A.id_articolo=B.id_articolo "; String s_Sql_order = " order by A.id_rigaDocumento desc"; WcString wc = new WcString(); wc.addWc("A.id_documento=" + l_id_documento); if (l_id_articolo == 0L) { wc.addWc("(A.id_articolo is null or A.id_articolo=0)"); } else { wc.addWc("A.id_articolo=" + l_id_articolo); } try { PreparedStatement stmt = getConn().prepareStatement(s_Sql_Find + s_Sql_Find + String.valueOf(wc)); return findRows(stmt); } catch (Exception e) { handleDebug(e, 0); return AB_EMPTY_VECTUMERATOR; } } public RigaDocumento getRigaDocumentoTessutoA() { this.rigaDocumentoTessutoA = (RigaDocumento)getSecondaryObject(this.rigaDocumentoTessutoA, RigaDocumento.class, getId_rigaDocumentoTessutoA()); return this.rigaDocumentoTessutoA; } public void setRigaDocumentoTessutoA(RigaDocumento rigaDocumentoTessutoA) { this.rigaDocumentoTessutoA = rigaDocumentoTessutoA; } public void findMagTessutoDisponibilitaOld(long l_id_articoloTessuto, long l_id_articoloTessutoColore, String l_seriale, long l_tipologia_magfisico, long l_id_clifor, Date dataA) { String s_Sql_Sum = " SUM(A.kg*segnoMov) as kg, SUM(A.mt*segnoMov) as mt, SUM(A.nr*segnoMov) as nr from RIGA_DOCUMENTO AS A "; String s_Sql_colonne = ""; String s_Sql_join = ""; WcString wc = new WcString(); wc.addWc("A.id_magFisico>0"); if (l_id_articoloTessuto > 0L) s_Sql_Sum = s_Sql_Sum + " inner join ARTICOLO_TESSUTO AS F ON A.id_articoloTessuto=F.id_articoloTessuto"; if (l_id_articoloTessuto != 0L) { wc.addWc(" A.id_articoloTessuto = " + l_id_articoloTessuto); s_Sql_colonne = s_Sql_colonne + " A.id_articoloTessuto,"; } if (l_id_articoloTessutoColore != 0L) { wc.addWc(" A.id_articoloTessutoColore = " + l_id_articoloTessutoColore); s_Sql_colonne = s_Sql_colonne + " A.id_articoloTessutoColore,"; } if (l_seriale != null && !l_seriale.isEmpty()) { wc.addWc(" A.seriale = " + l_seriale); s_Sql_colonne = s_Sql_colonne + " A.seriale,"; } if (l_id_clifor != 0L) { wc.addWc(" A.id_clifor = " + l_id_clifor); s_Sql_colonne = s_Sql_colonne + " A.id_clifor,"; } if (dataA != null) { s_Sql_join = " INNER JOIN DOCUMENTO AS DOC ON A.id_documento=DOC.id_documento "; wc.addWc(" DOC.dataDocumento <= ?"); s_Sql_Sum = s_Sql_Sum + s_Sql_Sum; } if (l_tipologia_magfisico != 0L) { wc.addWc(" B.flgTipo = " + l_tipologia_magfisico); s_Sql_colonne = s_Sql_colonne + " A.id_magFisico,"; s_Sql_Sum = s_Sql_Sum + ", MAG_FISICO AS B"; wc.addWc(" A.id_magFisico = B.id_magFisico "); } String s_sql_groupby = ""; if (!s_Sql_colonne.isEmpty()) s_sql_groupby = " group by " + s_Sql_colonne.substring(0, s_Sql_colonne.length() - 1); try { PreparedStatement stmt = getConn() .prepareStatement("select " + s_Sql_colonne + s_Sql_Sum + wc.toString() + s_sql_groupby); if (dataA != null) stmt.setDate(1, dataA); findFirstRecord(stmt); } catch (SQLException e) { handleDebug(e); } } public RigaDocumento() {} }