@PostConstruct private void init() throws Exception { listadokvat.addAll(dokTabView.getDokvatmc()); for (Dok zaksiegowanafaktura : listadokvat) { if (zaksiegowanafaktura.getEwidencjaVAT() != null) { List<EVatwpis> ewidencja = new ArrayList<>(); ewidencja.addAll(zaksiegowanafaktura.getEwidencjaVAT()); for (EVatwpis ewidwiersz : ewidencja) { if (ewidwiersz.getNetto() != 0) { EVatViewPola wiersz = new EVatViewPola(); wiersz.setId(zaksiegowanafaktura.getNrWpkpir()); wiersz.setDataSprz(zaksiegowanafaktura.getDataSprz()); wiersz.setDataWyst(zaksiegowanafaktura.getDataWyst()); wiersz.setKontr(zaksiegowanafaktura.getKontr()); wiersz.setNrWlDk(zaksiegowanafaktura.getNrWlDk()); wiersz.setOpis(zaksiegowanafaktura.getOpis()); wiersz.setNazwaewidencji(ewidwiersz.getEwidencja().getNazwa()); wiersz.setNrpolanetto(ewidwiersz.getEwidencja().getNrpolanetto()); wiersz.setNrpolavat(ewidwiersz.getEwidencja().getNrpolavat()); wiersz.setNetto(ewidwiersz.getNetto()); wiersz.setVat(ewidwiersz.getVat()); wiersz.setOpizw(ewidwiersz.getEstawka()); listadokvatprzetworzona.add(wiersz); } } } } // rozdziela zapisy na poszczególne ewidencje for (EVatViewPola wierszogolny : listadokvatprzetworzona) { ArrayList<EVatViewPola> listatmp = new ArrayList<>(); // sprawdza nazwe ewidencji zawarta w wierszu ogolnym i dodaje do listy String nazwaewidencji = wierszogolny.getNazwaewidencji(); try { Collection c = listaewidencji.get(nazwaewidencji); listatmp.addAll(c); } catch (Exception e) { listaewidencji.put(nazwaewidencji, new ArrayList<EVatViewPola>()); Evewidencja nowaEv = evewidencjaDAO.znajdzponazwie(nazwaewidencji); sumaewidencji.put( nazwaewidencji, new EVatwpisSuma(nowaEv, BigDecimal.ZERO, BigDecimal.ZERO, wierszogolny.getOpizw())); } listatmp.add(wierszogolny); EVatwpisSuma ew = sumaewidencji.get(nazwaewidencji); BigDecimal sumanetto = ew.getNetto() .add(BigDecimal.valueOf(wierszogolny.getNetto()).setScale(0, RoundingMode.HALF_EVEN)); ew.setNetto(sumanetto); BigDecimal sumavat = ew.getVat() .add(BigDecimal.valueOf(wierszogolny.getVat()).setScale(0, RoundingMode.HALF_EVEN)); ew.setVat(sumavat); sumaewidencji.put(nazwaewidencji, ew); listaewidencji.put(nazwaewidencji, listatmp); } wygeneruj(listaewidencji); String rok = wpisView.getRokWpisu().toString(); String mc = wpisView.getMiesiacWpisu(); String pod = wpisView.getPodatnikWpisu(); // zachowaj wygenerowane ewidencje do bazy danych try { Ewidencjevat pobrane = ewidencjeVatDAO.find(rok, mc, pod); pobrane.setEwidencje(listaewidencji); pobrane.setSumaewidencji(sumaewidencji); ewidencjeVatDAO.edit(pobrane); } catch (Exception e) { zrzucane.setPodatnik(pod); zrzucane.setRok(rok); zrzucane.setMiesiac(mc); zrzucane.setEwidencje(listaewidencji); zrzucane.setSumaewidencji(sumaewidencji); ewidencjeVatDAO.dodajewidencje(zrzucane); } System.out.println("lolo"); }