fck
unknown
java
3 years ago
25 kB
4
Indexable
public TImportArticolo timportArticoloSalva(userInfo ui,Salvatore em,TImportArticolo input) throws Exception { { /*START_GEN_CODE:nqZ4201222Rn40:-13510221*/ boolean toSave = true; String msgOut = ""; if (input != null && input.getArticoliImport() != null && input.getArticoliImport().size() > 0) { for (TRigaImportArticolo triga : input.getArticoliImport()) { //if importa && codErrore if (triga.getImporta() && (triga.getCodErrore() == null || triga.getCodErrore() < 1)) { TArticolo tart = new TArticolo(); tart.setArticolo(triga.getArticolo()); if (triga.getPrezzoAcquisto() != null) { tart.setPrezzoAcquisto(triga.getPrezzoAcquisto()); } if (triga.getPrezzoVendita() != null) { tart.setPrezzoVendita(triga.getPrezzoVendita()); } tart.getArticolo().setComponenti(new Vector()); if (tart.getArticolo().getGruppo() == null) { tart.getArticolo().setGruppo(new GruppoMerceologico()); } if (tart.getArticolo().getIva() == null) { Long idAz = LocalSecurity.getUserAziendaId(ui); Azienda az = em.find(Azienda.class, idAz); if (az.getIvaBase() != null) { tart.getArticolo().setIva(az.getIvaBase()); } else { toSave = false; msgOut = "Codice iva base nullo in Azienda"; } } Materiale m = tart.getArticolo().getMateriale(); if (m.getGestisciDistintaBase()) { if (tart.getArticolo().getDistintaBase() == null) { tart.getArticolo().setDistintaBase(new DistintaBase()); } } if (tart.getModificati() == null) { tart.setModificati(new Vector()); } if (!toSave) { input.setMsgImport(msgOut); return input; } MdlAnagArticoloSession mdlArticolo = new MdlAnagArticoloSession(); tart = mdlArticolo.articoloSalva(ui,em, tart); Partita p; //Una volta salvato l'articolo, posso passare a salvare le eventuali varianti. if (input.getImportaVarianti() == null) { input.setImportaVarianti(false); } if (input.getImportaVarianti() && m.getGestisceVarianti() && triga.getJsonVarianti() != null && triga.getJsonVarianti().length() > 0) { UtilMagazzino.creaVariantiFromJson(ui, em, triga); } if (tart != null) { triga.setColore(13434828); } else { triga.setColore(16724736); //Rosso } } else { triga.setColore(16724736); } } } else { input.setMsgImport("Lista vuota"); } return input; /*STOP_GEN_CODE:nqZ4201222Rn40*/ } } public static void creaVariantiFromJson(userInfo ui, Salvatore em, TRigaImportArticolo triga) throws Exception { if (triga != null && triga.getJsonVarianti() != null && triga.getJsonVarianti().length() > 0) { MdlAnagListiniSession mdlListini = new MdlAnagListiniSession(); MdlAnagraficaMaterialeSession mdlMateriale = new MdlAnagraficaMaterialeSession(); JSONArray variantiJson = new JSONArray(triga.getJsonVarianti()); JSONObject patternVJson = null; MdlGestioneArticoloSession mdl = new MdlGestioneArticoloSession(); if (triga.getJsonPatternVarianti() != null && triga.getJsonPatternVarianti().length() > 0) { patternVJson = new JSONObject(triga.getJsonPatternVarianti()); } for (Iterator iterator = variantiJson.iterator(); iterator.hasNext();) { JSONObject varianteJs = (JSONObject) iterator.next(); String valExtra1 = ""; String valExtra2 = ""; String codVariante = "-1@"; String descrizioneVar=""; if (varianteJs.has("valExtra1")) { valExtra1 = varianteJs.getString("valExtra1").trim(); } if (varianteJs.has("valExtra2")) { valExtra2 = varianteJs.getString("valExtra2").trim(); } if(varianteJs.has("codVariante")){ codVariante = varianteJs.getString("codVariante").trim(); } if(varianteJs.has("descrizione")){ descrizioneVar = varianteJs.getString("descrizione").trim(); } TRicArticolo filtro = new TRicArticolo(); filtro.setArticolo(triga.getArticolo()); //OTTENGO TUTTE LE VARIANTI ASSOCIATE ALL'ARTICOLO SELEZIONATO filtro = mdl.ricercaVariantiArticolo(ui,em, filtro); boolean trovata = false; //Check se la variante esiste gia' for (Iterator<TRigaRicArticolo> it2 = filtro.getTRigaRicArticolo().iterator(); it2.hasNext();) { TRigaRicArticolo riga = it2.next(); System.out.println(riga.getVarianteArticolo()); Iterator it1 = riga.getVarianteArticolo().getValoriExtra().iterator(); ValoreExtra ve1 = (ValoreExtra) it1.next(); ValoreExtra ve2 = (ValoreExtra) it1.next(); boolean cond1 = ve1.getSValore().trim().compareToIgnoreCase(valExtra1) == 0 && ve2.getSValore().trim().compareToIgnoreCase(valExtra2) == 0; boolean cond2 = ve1.getSValore().trim().compareToIgnoreCase(valExtra2) == 0 && ve2.getSValore().trim().compareToIgnoreCase(valExtra1) == 0; if (cond1 || cond2) { System.out.println("Trovata variante!!"); trovata = true; break; } } if (!trovata) { try { Materiale m = mdlMateriale.materialeInizializza(ui,em, triga.getArticolo().getMateriale()); Query q = em.createQuery("Select v From VarianteArticolo v JOIN v.articolo a WHERE a.materiale.id=:id_materiale"); q.setMaxResults(1); q.setLong("id_materiale", m.getId()); List resList = q.list(); VarianteArticolo varR = null; if(resList!=null && resList.size()>0){ varR = (VarianteArticolo) q.list().iterator().next(); } //Long idVarRif = 1L; //VarianteArticolo varR = mdlListini.varianteArticoloById(ui, em,idVarRif); Iterator itCar = m.getCaratteristiche().iterator(); Caratteristica c1 = null; if (itCar.hasNext()) { c1 = (Caratteristica) itCar.next(); } Caratteristica c2 = null; if (itCar.hasNext()) { c2 = (Caratteristica) itCar.next(); } VarianteArticolo vari = new VarianteArticolo(varR); Vector<ValoreExtra> ve = new Vector<ValoreExtra>(); String car1 = ""; String car2 = ""; if (patternVJson != null) { if (patternVJson.has("car1")) { car1 = patternVJson.getString("car1") + ""; } if (patternVJson.has("car2")) { car2 = patternVJson.getString("car2") + ""; } } if (c1 != null) { ValoreExtra v1 = new ValoreExtra(); v1.setAz(triga.getArticolo().getAz()); v1.setCaratteristica(c1); if (c1 != null && c1.getDescrizione().toLowerCase().contains(car1.toLowerCase())) { v1.setSValore(valExtra1.trim().toUpperCase()); } else if (c1 != null && c1.getDescrizione().toLowerCase().contains(car2.toLowerCase())) { v1.setSValore(valExtra2.trim().toUpperCase()); } else { triga.setMsgImport(triga.getMsgImport() + " Carat 1 not Match "); triga.setColore(16777113);//Giallo } v1.setVarianteArticolo(vari); ve.add(v1); } if (c2 != null) { ValoreExtra v2 = new ValoreExtra(); v2.setAz(varR.getAz()); v2.setCaratteristica(c2); if (c2 != null && c2.getDescrizione().toLowerCase().contains(car2.toLowerCase())) { v2.setSValore(valExtra2.trim().toUpperCase()); } else if (c2 != null && c2.getDescrizione().toLowerCase().contains(car1.toLowerCase())) { v2.setSValore(valExtra1.trim().toUpperCase()); } else { triga.setMsgImport(triga.getMsgImport() + " Carat 2 not Match "); triga.setColore(16777113);//Giallo } v2.setVarianteArticolo(vari); ve.add(v2); } vari.setValoriExtra(ve); vari.setArticolo(triga.getArticolo()); vari.setCodice(codVariante); vari.setDescrizione(descrizioneVar); vari.setBarcode(vari.getCodice()); vari.setDescrizioneComp(valExtra1.trim() + " " + valExtra2.trim()); vari.setEsistenza(new Esistenza()); vari.setScortaMinima(0.0); vari.setSegueListinoArticolo(true); TVarianteArticolo tv = new TVarianteArticolo(); tv.setVarianteArticolo(vari); tv.setListini(new Vector<TVoceListino>()); tv.setModificati(new Vector<TVoceListino>()); tv.setPrezzoAcquisto(0.0); tv.setPrezzoVendita(0.0); // Collocazione cl = new Collocazione(); // cl.setId(varR.get); // tv.setCollocazione(cl); MdlAnagVariantiSession mdlVarianti = new MdlAnagVariantiSession(); //tv = mdlVarianti.varianteArticoloSalva(ui,em, tv); tv = mdlVarianti.varianteArticoloSalva(ui, tv.detach(tv)); vari.setId(tv.getVarianteArticolo().getId()); } catch (Exception ex) { Logger.getLogger(UtilMagazzino.class.getName()).log(Level.SEVERE, null, ex); } } } } } public static TImportArticolo importArticoliFromJson(userInfo ui, Salvatore em, TImportArticolo input) throws RemoteException { Boolean importaVarianti = input.getImportaVarianti() != null ? input.getImportaVarianti() : false; Collection<TRigaImportArticolo> listOut = new Vector(); input.setArticoliImport(new Vector()); MdlAnagArticoloSession mdl = new MdlAnagArticoloSession(); String msgOut = ""; if (input.getJsonData() != null && !input.getJsonData().isEmpty()) { JSONObject jsonImport = new JSONObject(input.getJsonData()); //Per import ed export di json usiamo il pattern {tipo , objects[]} if (jsonImport.get("tipo") != null && jsonImport.getString("tipo").equalsIgnoreCase("articolo")) { Collection<UnitaMisura> arrUm = mdl.unitamFindAll(ui); JSONArray jsonList = jsonImport.getJSONArray("objects") != null && jsonImport.getJSONArray("objects").length() > 0 ? jsonImport.getJSONArray("objects") : null; if (jsonList != null) { HashMap<String, JSONArray> hmMateriale = new HashMap<>(); //Mi creo un hashMap con chiave MATERIALE. for (Iterator iterator = jsonList.iterator(); iterator.hasNext();) { JSONObject elem = (JSONObject) iterator.next(); if (elem != null) { String codMateriale = elem.get("codMateriale") != null && !elem.getString("codMateriale").isEmpty() ? elem.getString("codMateriale") : ""; if (hmMateriale.containsKey(codMateriale)) { JSONArray arr = hmMateriale.get(codMateriale); arr.put(elem); } else { hmMateriale.put(codMateriale, new JSONArray().put(elem)); } } } for (Map.Entry<String, JSONArray> entry : hmMateriale.entrySet()) { String codMateriale = entry.getKey(); JSONArray jsonArticoli = entry.getValue(); Materiale materiale = mdl.getMaterialeByCod(ui, new TString(codMateriale)); for (Iterator iterator = jsonArticoli.iterator(); iterator.hasNext();) { JSONObject jsonArticolo = (JSONObject) iterator.next(); TRigaImportArticolo triga = new TRigaImportArticolo(); triga.setArticolo(new Articolo()); triga.setMsgImport(""); Articolo art = triga.getArticolo(); art.setNome(jsonArticolo.get("nome") != null && !jsonArticolo.getString("nome").isEmpty() ? jsonArticolo.getString("nome") : "NONAME"); String codArt = jsonArticolo.has("codice") && jsonArticolo.getString("codice") != null ? jsonArticolo.getString("codice") + "" : null; if(codArt.length()>20) codArt = codArt.substring(0,20); art.setCodice(codArt); Articolo alreadyExist = (Articolo) em.createQuery("Select a From Articolo a where a.codice = :codArticolo").setString("codArticolo", codArt).uniqueResult(); //Codice non esistente if (alreadyExist == null) { if (materiale != null) { triga.setImporta(true); art.setMateriale(materiale); if (materiale.getGruppo() != null) { art.setGruppo(materiale.getGruppo()); } // else{ // art.setGruppo(new GruppoMerceologico()); // } if(jsonArticolo.has("codiceFornitore")) art.setCodiceFornitore(jsonArticolo.getString("codiceFornitore")); if(jsonArticolo.has("nomeFornitore")) art.setNomeFornitore(jsonArticolo.getString("nomeFornitore")); art.setCodiceDoganale(jsonArticolo.has("codDoganale") && !jsonArticolo.getString("codDoganale").isEmpty() ? jsonArticolo.getString("codDoganale") : ""); art.setOrigine(jsonArticolo.has("origine") && !jsonArticolo.getString("origine").isEmpty() ? jsonArticolo.getString("origine") : ""); art.setBarcode(jsonArticolo.has("barcode") && !jsonArticolo.getString("barcode").isEmpty() ? jsonArticolo.getString("barcode") : ""); if(art.getBarcode().length()>20) art.setBarcode(art.getBarcode().substring(0,20)); art.setNote(jsonArticolo.has("note") ? jsonArticolo.getString("note") + "" : ""); art.setComposizione(jsonArticolo.has("composizione") ? jsonArticolo.getString("composizione")+"" : ""); art.setComposizioneDet(jsonArticolo.has("composizioneDet") ? jsonArticolo.getString("composizioneDet")+"" : ""); triga.setPrezzoAcquisto(jsonArticolo.has("prezzoAcquisto") && jsonArticolo.get("prezzoAcquisto") != null ? jsonArticolo.getDouble("prezzoAcquisto") : 0.0); triga.setPrezzoVendita(jsonArticolo.has("prezzoVendita") && jsonArticolo.get("prezzoVendita") != null ? jsonArticolo.getDouble("prezzoVendita") : 0.0); //Setto l'unita misura. String codUm = jsonArticolo.has("codUnitaMisura") && jsonArticolo.get("codUnitaMisura") != null ? jsonArticolo.getString("codUnitaMisura") + "" : null; if (codUm != null && !"".equals(codUm)) { for (UnitaMisura unitaMisura : arrUm) { if (unitaMisura.getCodice().equals(codUm)) { art.setUnitaMisura(unitaMisura); break; } } if(art.getUnitaMisura()==null) if(materiale.getUnitaMisura()!=null) art.setUnitaMisura(materiale.getUnitaMisura()); else{ triga.setImporta(false); triga.setMsgImport(triga.getMsgImport() +" Unita misura Def. non presente in materiale "); triga.setColore(16724736); //Rosso triga.setCodErrore(100); continue; } } //Faccio la find sulla stagione, se c'è la setto. Non ho trovato alcuna find sulle stagioni by codice. String codStagione = jsonArticolo.get("codStagione") != null ? jsonArticolo.getString("codStagione") + "" : null; if (codStagione != null && !"".equals(codStagione)) { Stagione stag = (Stagione) em.createQuery("Select s From Stagione s Where s.codice =:codStag").setParameter("codStag", codStagione).setMaxResults(1).uniqueResult(); if (stag != null) { art.setStagione(stag); } else { triga.setMsgImport(triga.getMsgImport() + "- Stagione Not Match "); triga.setColore(16777062); //Giallo } } String codLinea = jsonArticolo.get("codLinea") != null ? jsonArticolo.getString("codLinea") + "" : null; if (codLinea != null && !"".equals(codLinea)) { Linea linea = (Linea) em.createQuery("Select l From Linea l Where l.codice =:codLin").setString("codLin", codLinea).setMaxResults(1).uniqueResult(); if (linea != null) { art.setLinea(linea); } else { triga.setMsgImport(triga.getMsgImport() + "- Linea Not Match "); triga.setColore(16777062); //Giallo } } if (jsonArticolo.has("varianti")) { //Importo le varianti if (jsonArticolo.has("codSchemaTaglie") && jsonArticolo.getString("codSchemaTaglie").length() > 0) { String codSchema = jsonArticolo.getString("codSchemaTaglie"); PoliticaQuantitaExtra schema = (PoliticaQuantitaExtra) em.createQuery("Select p From PoliticaQuantitaExtra p where p.codice =:cod").setString("cod", codSchema).setMaxResults(1).uniqueResult(); if (schema != null) { art.setSchema(schema); } } JSONArray variantiJson = jsonArticolo.getJSONArray("varianti"); triga.setJsonVarianti(variantiJson.toString()); //Definisco un pattern, cioe qual'e la caratteristica 1, e quale la 2 in modo tale da fare un doppio check //Al fine di impostare in modo giusto le varianti : colore in colore, disegno in disegno, taglia in taglia. JSONObject patternV = new JSONObject(); if (jsonArticolo.has("car1")) { patternV.put("car1", jsonArticolo.getString("car1")); } if (jsonArticolo.has("car2")) { patternV.put("car2", jsonArticolo.getString("car2")); } triga.setJsonPatternVarianti(patternV.toString()); } } else { triga.setImporta(false); triga.setMsgImport("Materiale Not Find : " + codMateriale); triga.setColore(16724736); //Rosso triga.setCodErrore(100); //Materiale non esistente , quindi passa al prossimo articolo } } else { //Codice gia' presente triga.setMsgImport(triga.getMsgImport() + "\t Codice gia' presente " + codArt); triga.setColore(16724736); //Rosso triga.setCodErrore(100); triga.setImporta(false); } input.getArticoliImport().add(triga); } } } else { msgOut = msgOut + "\t Lista articoli vuota"; } } else { msgOut = msgOut + " \t Tipo json non valido"; } } else { msgOut = msgOut + " \t Json vuoto"; } input.setMsgImport(msgOut); return input; }
Editor is loading...