@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"); }
public void wygeneruj(HashMap lista) throws Exception { FacesContext facesCtx = FacesContext.getCurrentInstance(); ELContext elContext = facesCtx.getELContext(); ExpressionFactory ef = ExpressionFactory.newInstance(); akordeon = new AccordionPanel(); // robienie glownej oprawy Set nazwyew = lista.keySet(); Iterator it; it = nazwyew.iterator(); int i = 0; while (it.hasNext()) { String nazwapj = (String) it.next(); Tab tab = new Tab(); tab.setId("tabek" + i); tab.setTitle("ewidencja: " + nazwapj); DataTable dataTable = new DataTable(); dataTable.setId("tablica" + i); // dataTable.setResizableColumns(true); dataTable.setVar("var"); dataTable.setValue(lista.get(nazwapj)); dataTable.setStyle("width: 1000px;"); // tak trzeba opisac kazda kolumne :) ArrayList<String> opisykolumn = new ArrayList<>(); opisykolumn.addAll(EVatViewPola.getOpispol()); Iterator itx; itx = opisykolumn.iterator(); while (itx.hasNext()) { String wstawka = (String) itx.next(); Column column = new Column(); column.setHeaderText(wstawka); final String binding = "#{var." + wstawka + "}"; ValueExpression ve = ef.createValueExpression(elContext, binding, String.class); HtmlOutputText ot = new HtmlOutputText(); ot.setValueExpression("value", ve); switch (wstawka) { case "kontr": column.setWidth("350"); break; case "id": column.setWidth("50"); break; case "netto": ot.setStyle("float: right;"); NumberConverter numx = new NumberConverter(); numx.setMaxFractionDigits(2); numx.setMinFractionDigits(2); ot.setConverter(numx); case "vat": ot.setStyle("float: right;"); NumberConverter numy = new NumberConverter(); numy.setMaxFractionDigits(2); numy.setLocale(new Locale("PL")); numy.setGroupingUsed(true); ot.setConverter(numy); } column.getChildren().add(ot); dataTable.getChildren().add(column); } Separator sep = new Separator(); CommandButton button = new CommandButton(); button.setValue("PobierzPdf"); button.setType("button"); button.setId("przyciskpdf" + i); FacesContext context = FacesContext.getCurrentInstance(); MethodExpression actionListener = context .getApplication() .getExpressionFactory() .createMethodExpression( context.getELContext(), "#{pdf.drukujewidencje('zakup')}", null, new Class[] {ActionEvent.class}); button.addActionListener(new MethodExpressionActionListener(actionListener)); // MethodExpression methodExpressionX = // context.getApplication().getExpressionFactory().createMethodExpression( // context.getELContext(), "#{pdf.drukujewidencje('"+nazwapj+"')}", null, new // Class[] {}); // button.setActionExpression(methodExpressionX); String nowanazwa; if (nazwapj.contains("sprzedaż")) { nowanazwa = nazwapj.substring(0, nazwapj.length() - 1); } else { nowanazwa = nazwapj; } String tablican = "PrimeFaces.ab({source:'form:przyciskpdf" + i + "',onsuccess:function(data,status,xhr){wydrukewidencje('" + wpisView.getPodatnikWpisu() + "','" + nowanazwa + "');;}});return false;"; button.setOnclick(tablican); tab.getChildren().add(dataTable); tab.getChildren().add(sep); tab.getChildren().add(button); akordeon.getChildren().add(tab); i++; } // generowanie podsumowania List<EVatwpisSuma> suma2 = new ArrayList<>(); suma2.addAll(sumaewidencji.values()); Tab tab = new Tab(); tab.setId("tabekdsuma"); tab.setTitle("podsumowanie ewidencji"); DataTable dataTable = new DataTable(); dataTable.setId("tablicasuma"); dataTable.setResizableColumns(true); dataTable.setVar("var"); dataTable.setValue(suma2); dataTable.setStyle("width: 1000px;"); List<String> opisykolumny = new ArrayList<>(); opisykolumny.add("ewidencja"); opisykolumny.add("netto"); opisykolumny.add("vat"); Iterator ity = opisykolumny.iterator(); while (ity.hasNext()) { String wstawka = (String) ity.next(); Column column = new Column(); column.setHeaderText(wstawka); HtmlOutputText ot = new HtmlOutputText(); if (!wstawka.equals("ewidencja")) { ot.setStyle("float: right;"); NumberConverter numberconv = new NumberConverter(); numberconv.setLocale(new Locale("PL")); numberconv.setMinFractionDigits(2); numberconv.setMaxFractionDigits(2); column.setWidth("200"); ot.setConverter(numberconv); } final String binding = "#{var." + wstawka + "}"; ValueExpression ve = ef.createValueExpression(elContext, binding, String.class); ot.setValueExpression("value", ve); column.getChildren().add(ot); dataTable.getChildren().add(column); } tab.getChildren().add(dataTable); akordeon.getChildren().add(tab); }