@Override public List<List<String>> getSummary(String page, Object object) { List<List<String>> list = null; if (page.equals("viewOrganization.jsp")) { if (!(object instanceof Unit)) { return null; } Unit unit = (Unit) object; Person currentUser = UserView.getCurrentUser().getExpenditurePerson(); if (!(unit.isResponsible(currentUser) || unit.getObserversSet().contains(currentUser) || UserView.getCurrentUser().hasRoleType(RoleType.MANAGER))) { return null; } list = new ArrayList<List<String>>(); list.add(new ArrayList<String>()); list.add(new ArrayList<String>()); ReportViewerComponent projectSummary; Project project = getProjectFromID(unit.getExternalId()); if (project != null) { String projectCode = project.getProjectCode(); System.out.println(projectCode); projectSummary = new ReportViewerComponent( "SELECT V.\"Orçamento\", V.\"Máximo Financiável\" AS \"Máx. Financiável\", V.\"Receita\", V.\"Transf. Parceiros\", V.\"Despesa\", V.\"Adiantamentos por Justificar\", V.\"Cabimentos por Executar\", V.\"Saldo Tesouraria\", V.\"Saldo Orçamental\" FROM V_RESPROJPROF V WHERE V.\"NºProj\"='" + projectCode + "'", new NoBehaviourCustomTableFormatter()); Table t = projectSummary.getTable(); if (t.getItemIds().size() > 0) { for (Object a : t.getItemIds()) { Item item = t.getItem(a); for (Object column : item.getItemPropertyIds()) { String itemString = ReportType.formatCurrency(item.getItemProperty(column).toString()); list.get(0).add(t.getColumnHeader(column)); list.get(1).add(itemString); } } } } } return list; }
@Override public Collection getSearchResults(Map<String, String> argsMap, String value, int maxCount) { List<Unit> units = new ArrayList<Unit>(); String[] input = value.split(" "); StringNormalizer.normalize(input); for (Unit unit : ExpenditureTrackingSystem.getInstance().getUnits()) { String unitName = StringNormalizer.normalize(unit.getName()); if (hasMatch(input, unitName)) { units.add(unit); } if (units.size() >= maxCount) { break; } } return units; }
@Override public Map<String, String> getLinks(String page, Object object) { Map<String, String> map = null; if (page.equals("viewOrganization.jsp")) { if (!(object instanceof Unit)) { return null; } Unit unit = (Unit) object; final User user = UserView.getCurrentUser(); Person currentUser = user.getExpenditurePerson(); if (!(unit.isResponsible(currentUser) || unit.getObserversSet().contains(currentUser) || UserView.getCurrentUser().hasRoleType(RoleType.MANAGER) || unit.isProjectAccountingEmployee(currentUser) || ExpenditureTrackingSystem.isProjectAccountingManagerGroupMember(user) || ExpenditureTrackingSystem.isAcquisitionsProcessAuditorGroupMember(user))) { return null; } map = new HashMap<String, String>(); String baseLink = "/vaadinContext.do?method=forwardToVaadin#projectsService?unit=" + unit.getExternalId(); if (unit.isProject()) { map.put( getMessage("financialprojectsreports.infoProvider.cabimentos"), baseLink + "&reportType=" + ReportType.CABIMENTOS_STRING); map.put( getMessage("financialprojectsreports.infoProvider.adiantamentos"), baseLink + "&reportType=" + ReportType.ADIANTAMENTOS_STRING); map.put( getMessage("financialprojectsreports.infoProvider.revenue"), baseLink + "&reportType=" + ReportType.REVENUE_STRING); map.put( getMessage("financialprojectsreports.infoProvider.expenses"), baseLink + "&reportType=" + ReportType.EXPENSES_STRING); map.put( getMessage("financialprojectsreports.infoProvider.budgetaryBalance"), baseLink + "&reportType=" + ReportType.PROJECT_BUDGETARY_BALANCE_STRING); map.put( getMessage("financialprojectsreports.infoProvider.openingFile"), baseLink + "&reportType=" + ReportType.OPENING_PROJECT_FILE_STRING); } else { map.put( getMessage("financialprojectsreports.infoProvider.unitSummary"), baseLink + "&reportType=" + ReportType.UNIT_SUMMARY_STRING); map.put( getMessage("financialprojectsreports.infoProvider.generatedOverheads"), baseLink + "&reportType=" + ReportType.GENERATED_OVERHEADS_STRING); map.put( getMessage("financialprojectsreports.infoProvider.transferedOverheads"), baseLink + "&reportType=" + ReportType.TRANSFERED_OVERHEADS_STRING); map.put( getMessage("financialprojectsreports.infoProvider.overheadsSummary"), baseLink + "&reportType=" + ReportType.OVERHEADS_SUMMARY_STRING); } } if (page.equals("viewPerson.jsp")) { if (!(object instanceof Person)) { return null; } Person person = (Person) object; if (!(UserView.getCurrentUser().getExpenditurePerson().equals(person) || UserView.getCurrentUser().hasRoleType(RoleType.MANAGER))) { return null; } map = new HashMap<String, String>(); map.put( getMessage("financialprojectsreports.infoProvider.coordinatorSummary"), "/vaadinContext.do?method=forwardToVaadin#projectsService?reportType=" + ReportType.SUMMARY_STRING + "&user=" + person.getUsername()); } return map; }