This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository chorem. See https://gitlab.nuiton.org/chorem/chorem.git commit 1ee580bd67269f0a59a34fb4a80b48e460ed2062 Author: Benjamin <poussin@codelutin.com> Date: Sat Nov 30 18:09:33 2019 +0100 Ajoute la possibilite de sommer par annee dans le report de budget correction bug lors du rendu d'un wikitty qui contient ' ou " (probleme avec le html genere) --- .../chorem/webmotion/actions/DashboardAction.java | 35 +++++++++++++++------- .../org/wikitty/web/jsptag/WikittyDisplay.java | 2 ++ .../main/webapp/WEB-INF/jsp/dashboardBudget.jsp | 34 +++++++++++++-------- .../src/main/webapp/WEB-INF/jsp/report.jsp | 9 ++++++ 4 files changed, 57 insertions(+), 23 deletions(-) diff --git a/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java b/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java index dca0603..fa382b7 100644 --- a/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java +++ b/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java @@ -94,7 +94,8 @@ public class DashboardAction extends WebMotionController { /** to use log facility, just put in your code: log.info(\"...\"); */ static private Log log = LogFactory.getLog(DashboardAction.class); - static final public String budgetDateFormat = "MM/yyyy"; + static final public String budgetDateFormatByYear = "yyyy"; + static final public String budgetDateFormatByMonth = "MM/yyyy"; static final public String summaryDateFormat = "dd/MM/yyyy hh:mm"; //static final public String solRDateFormat = "yyyy-MM-dd'T'hh:mm:ss'Z'"; @@ -828,7 +829,7 @@ public class DashboardAction extends WebMotionController { * @param client * @param title * @param filter le filtre de la method dashboard appelante - * @param noUseDate indique de ne pas utiliser les dates, mais seulement filter et query + * @param useDate indique de ne pas utiliser les dates, mais seulement filter et query * @param start si noUseDate est false est utilise pour filtrer suivant les dates * si start est null alors la 1 janvier de l'annee courante est pris * @param end si noUseDate est false est utilise pour filtrer suivant les dates @@ -929,12 +930,15 @@ public class DashboardAction extends WebMotionController { /** * Prévisionnel entre deux dates en fonction des factures */ - public Render budget(ChoremClient client, Integer depth, Date start, Date end, String query, String type) { + public Render budget(ChoremClient client, Integer depth, String sum, Date start, Date end, String query, String type) { if (log.isDebugEnabled()) { log.debug(String.format( - "budget for period '%s' to '%s' with filter '%s'", - start, end, query)); + "budget for period '%s' to '%s' with filter '%s' and sum on %s", + start, end, query, sum)); } + + boolean sumByYear = "year".equalsIgnoreCase(sum); + String companyId = client.getConfiguration().getDefaultCompany(); if (StringUtils.isBlank(companyId)) { @@ -951,8 +955,13 @@ public class DashboardAction extends WebMotionController { end = DateUtils.addMonths(start, 6); } - start = DateUtil.setFirstDayOfMonth(start); - end = DateUtil.setLastDayOfMonth(end); + if (sumByYear) { + start = DateUtil.setFirstDayOfYear(start); + end = DateUtil.setLastDayOfYear(end); + } else { + start = DateUtil.setFirstDayOfMonth(start); + end = DateUtil.setLastDayOfMonth(end); + } start = DateUtil.setMinTimeOfDay(start); end = DateUtil.setMaxTimeOfDay(end); @@ -1076,7 +1085,7 @@ public class DashboardAction extends WebMotionController { // beginningFinances contient l'etat du compte, au depart beginningFinances vaut "recette passee" - "depense passee" double finances = amounts[1] - amounts[0]; - BudgetData data = new BudgetData(start, end, categoriesTree, finances); + BudgetData data = new BudgetData(sumByYear, start, end, categoriesTree, finances); // Debt for (FinancialTransaction i : invoices[0]) { @@ -1177,6 +1186,7 @@ public class DashboardAction extends WebMotionController { final static private String INCOME_KEY = "income"; // cle pour les revenus sur le mois final static private String TOTAL_KEY = "total"; // cle pour la diffence entre revenus et depenses sur le mois + protected String budgetDateFormat; protected List<String> dates; protected List<WikittyQueryResultTreeNode<Category>> categoriesTree; protected double beginningFinances; @@ -1191,9 +1201,10 @@ public class DashboardAction extends WebMotionController { * @param categoriesTree toutes les categories * @param beginningFinances l'etat des beginningFinances avant la periode a afficher */ - public BudgetData(Date start, Date end, + public BudgetData(boolean sumByYear, Date start, Date end, List<WikittyQueryResultTreeNode<Category>> categoriesTree, double beginningFinances) { + this.budgetDateFormat = sumByYear ? budgetDateFormatByYear : budgetDateFormatByMonth; this.categoriesTree = categoriesTree; this.beginningFinances = beginningFinances; @@ -1203,7 +1214,11 @@ public class DashboardAction extends WebMotionController { dates = new LinkedList<String>(); do { dates.add(DateFormatUtils.format(start, budgetDateFormat)); - start = DateUtils.addMonths(start, 1); + if (sumByYear) { + start = DateUtils.addYears(start, 1); + } else { + start = DateUtils.addMonths(start, 1); + } } while (!start.after(end)); diff --git a/chorem-webmotion/src/main/java/org/wikitty/web/jsptag/WikittyDisplay.java b/chorem-webmotion/src/main/java/org/wikitty/web/jsptag/WikittyDisplay.java index afb9345..7761f62 100644 --- a/chorem-webmotion/src/main/java/org/wikitty/web/jsptag/WikittyDisplay.java +++ b/chorem-webmotion/src/main/java/org/wikitty/web/jsptag/WikittyDisplay.java @@ -374,6 +374,8 @@ public class WikittyDisplay extends SimpleTagSupport { value = wikittyValue.toString(); } } + value = StringUtils.replace(value, "\"", """); + value = StringUtils.replace(value, "'", "'"); /*{<a href="<%=url%>"><%=value%></a>}*/ } } diff --git a/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardBudget.jsp b/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardBudget.jsp index b675ab7..4ffa5b6 100644 --- a/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardBudget.jsp +++ b/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardBudget.jsp @@ -29,6 +29,12 @@ <form> <input type="hidden" name="report" value="${report}"/> <input type="hidden" name="useDate" value="${useDate}" /> + <c:if test="${sum != 'year'}"> + <input type="hidden" name="sum" value="month" /> + </c:if> + <c:if test="${sum == 'year'}"> + <input type="hidden" name="sum" value="year" /> + </c:if> <c:if test="${useDate != 'false'}"> <input type="hidden" name="start" value="${fn:escapeXml(start)}"/> <input type="hidden" name="end" value="${fn:escapeXml(end)}"/> @@ -64,19 +70,21 @@ <td class="header"><span class="level level${c.level}" level="${c.level}">${c.userObject}</span></td> <c:forEach var="d" items="${data.dates}"> <td class="currency"> - <c:url var="addDebtUrl" value="/wikitty/FinancialTransaction/edit/new"> - <c:param name="FinancialTransaction.payer" value="${companyId}"/> - <c:param name="FinancialTransaction.emittedDate" value="today"/> - <c:param name="FinancialTransaction.expectedDate" value="01/${d}"/> - <c:param name="FinancialTransaction.paymentDate" value="01/${d}"/> - <c:param name="FinancialTransaction.category" value="${c.userObject.wikittyId}"/> - </c:url> - <c:url var="addIncomeUrl" value="/wikitty/FinancialTransaction/edit/new"> - <c:param name="FinancialTransaction.beneficiary" value="${companyId}"/> - <c:param name="FinancialTransaction.emittedDate" value="today=${d.substring(3,7)}${d.substring(0,2)}"/> - <c:param name="FinancialTransaction.expectedDate" value="today=${d.substring(3,7)}${d.substring(0,2)}+30DAYS"/> - <c:param name="FinancialTransaction.category" value="${c.userObject.wikittyId}"/> - </c:url> + <c:if test="${sum != 'year'}"> + <c:url var="addDebtUrl" value="/wikitty/FinancialTransaction/edit/new"> + <c:param name="FinancialTransaction.payer" value="${companyId}"/> + <c:param name="FinancialTransaction.emittedDate" value="today"/> + <c:param name="FinancialTransaction.expectedDate" value="01/${d}"/> + <c:param name="FinancialTransaction.paymentDate" value="01/${d}"/> + <c:param name="FinancialTransaction.category" value="${c.userObject.wikittyId}"/> + </c:url> + <c:url var="addIncomeUrl" value="/wikitty/FinancialTransaction/edit/new"> + <c:param name="FinancialTransaction.beneficiary" value="${companyId}"/> + <c:param name="FinancialTransaction.emittedDate" value="today=${d.substring(3,7)}${d.substring(0,2)}"/> + <c:param name="FinancialTransaction.expectedDate" value="today=${d.substring(3,7)}${d.substring(0,2)}+30DAYS"/> + <c:param name="FinancialTransaction.category" value="${c.userObject.wikittyId}"/> + </c:url> + </c:if> <c:choose> <c:when test="${data.getInvoices(d, c.userObject).isEmpty()}"> <div class="withPopover" diff --git a/chorem-webmotion/src/main/webapp/WEB-INF/jsp/report.jsp b/chorem-webmotion/src/main/webapp/WEB-INF/jsp/report.jsp index 4bcc952..5dbfc9a 100644 --- a/chorem-webmotion/src/main/webapp/WEB-INF/jsp/report.jsp +++ b/chorem-webmotion/src/main/webapp/WEB-INF/jsp/report.jsp @@ -25,6 +25,15 @@ <form class="well form-inline"> <input type="hidden" name="report" value="${report}"/> <input type="hidden" name="useDate" value="${useDate}" /> + Somme + <c:if test="${sum != 'year'}"> + <input type="radio" name="sum" value="month" checked>mensuel + <input type="radio" name="sum" value="year">annuel<br> + </c:if> + <c:if test="${sum == 'year'}"> + <input type="radio" name="sum" value="month">mensuel + <input type="radio" name="sum" value="year" checked>annuel<br> + </c:if> <c:if test="${useDate != 'false'}"> <input class="datepicker input-small" type="text" name="start" value="${fn:escapeXml(start)}" placeholder="date from"/> <input class="datepicker input-small" type="text" name="end" value="${fn:escapeXml(end)}" placeholder="date to"/> -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.