====== Groovy makra v Openu ====== ===== 5. Drobné utility ===== ==== 5.1. Formát datumu ==== import cz.ortex.model.PpfHl; import java.text.SimpleDateFormat; import java.util.Date; String getSplatnost(Ofwo ofwo, Ofwp ofwp, Ofwk ofwk, PpfHl primZazn, O0Session o0Session) { //zde vypište kód //return primZazn.getDatSplatnost(); Date datum = primZazn.getDatSplatnost(); SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy"); String datumSplatnosti = format.format(datum); return datumSplatnosti; } ==== 5.2. Formát obnosu ==== String getObnos(Ofwo ofwo, Ofwp ofwp, Ofwk ofwk, PpfHl primZazn, O0Session o0Session) { //zde vypište kód String num01Str = "0,00"; if (primZazn.getObnosFakt() != null) { num01Str = String.format("%,.2f", primZazn.getObnosFakt()); } return num01Str; } nebo import java.text.DecimalFormat; String getObnos(Ofwo ofwo, Ofwp ofwp, Ofwk ofwk, PpfHl primZazn, O0Session o0Session) { //zde vypište kód DecimalFormat format = new DecimalFormat("#,##0.00"); return format.format(primZazn.getObnosFakt()); } ==== 5.3. Výpočet tuzemské měny z cizí ==== Zde pro objednávku – nq10 import java.math.BigDecimal; BigDecimal obnos = BigDecimal.ZERO; obnos = nq10.getDzakl(); if ((nq10.getKurz() != null) && (nq10.getKurz().compareTo(BigDecimal.ZERO) != 0)) { obnos = obnos.multiply(nq10.getKurz()); if ((nq10.getKoef() != null) && (nq10.getKoef().compareTo(BigDecimal.ZERO) >= 0)) { obnos = obnos.divide(nq10.getKoef()); } } ==== 5.4. Dočtení osoby ==== Zde z WF – dle idpk Osoby osoby = (Osoby) OEntityUtil.getRecordByParam(Osoby.class.getCanonicalName(), "idpk", ofwk.getUcastnikIdpk()); if (osoby != null) { … } Zde z objednávek – dle oscis Osoby osoby = (Osoby) OEntityUtil.getRecordByParam(Osoby.class.getCanonicalName(), "oscis", nq10.getPrac2()); if (osoby != null) { … } ==== 5.5. Dočtení z číselníku ==== Do sloupce browsu – dočtení proběhne na serveru. import cz.ortex.util.o0.OEntityUtil; import cz.ortex.util.o0.O0StringUtil; import cz.ortex.model.O0ciselnik; import cz.ortex.model.Lcicen; import cz.ortex.impldao.o0.ciseln.O0ciselnikDaoImpl; Object getCellValue(Lcicen entity, Object dotahovane) { if (entity != null) { O0ciselnikDaoImpl o0ciselnikDaoImpl = new O0ciselnikDaoImpl(); if (o0ciselnikDaoImpl != null) { O0ciselnik cis = o0ciselnikDaoImpl.getByKod("L0CISSK", entity.getSsk1()); if (cis != null) { return cis.getHodCiseln(); } } } return " "; } Do detailu – dočtení proběhne na klientu: import cz.ortex.groovy.GroovyBrowsePar; import cz.ortex.util.o0.O0Data; import cz.ortex.util.o0.O0Session; import cz.ortex.util.o0.AppContext; import cz.ortex.util.o0.OEntityUtil; import cz.ortex.util.o0.O0StringUtil; import cz.ortex.model.O0ciselnik; import cz.ortex.model.Nqz1; import cz.ortex.apidao.o0.ciseln.O0ciselnikDao; GroovyBrowsePar editUvod(Object entity, O0Data dotahovane, GroovyBrowsePar groovyBrowsePar, O0Session o0session, Object browsePanel) { //zde vypiste kod if (entity != null) { O0ciselnikDao o0ciselnikDao = (O0ciselnikDao) AppContext.getDaoService("o0ciselnikDao"); if (o0ciselnikDao != null) { O0ciselnik cis = o0ciselnikDao.getByKod("L0CISSK", entity.getKomodita()); if (cis != null) { … } } } return groovyBrowsePar; } ==== 5.6. Převos string na integer ==== String garantS1 = cis.getHodCiselnS1(); if (O0StringUtil.notBlank(garantS1)) { Integer oscis = Integer.parseInt(garantS1); … } ==== 5.7. Složení jména a přijmení ==== Spojení dvou řetězců s oddělovačem – zde „ “ String prJm = O0StringUtil.slozit(osoby.getJmPrijm(), osoby.getJmJmeno(), " "); ==== 5.8. Zjištění uživatele na serveru ==== Na klientu se používá AppContext, na serveru je třeba použít O0Session import cz.ortex.util.o0.O0Session; import cz.ortex.aop.OMethodAspect; import cz.ortex.impldao.o0.O0DaoImpl; Object getCellValue(Object entity, Object dotahovane) { //zde vypiste kod Object o = OMethodAspect.getRemoteByThread(java.lang.Thread.currentThread()); if (o instanceof O0DaoImpl) { O0DaoImpl dao = (O0DaoImpl) o; O0Session o0Session = dao.getOrsoftSession(); return o0Session.getUserNumber(); } }