Author: bpoussin Date: 2013-02-22 23:40:22 +0100 (Fri, 22 Feb 2013) New Revision: 314 Url: http://chorem.org/projects/chorem/repository/revisions/314 Log: on peut cliquer sur les chiffres pour voir la liste des objets utilise pour le calcul Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardAnnualProfit.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardSummary.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardVAT.jsp Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java =================================================================== --- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java 2013-02-22 22:14:26 UTC (rev 313) +++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java 2013-02-22 22:40:22 UTC (rev 314) @@ -69,6 +69,8 @@ import org.nuiton.wikitty.query.WikittyQueryMaker; import org.nuiton.wikitty.query.WikittyQueryResult; import org.nuiton.wikitty.query.WikittyQueryResultTreeNode; +import org.nuiton.wikitty.query.conditions.Condition; +import org.nuiton.wikitty.query.conditions.Select; /** * @@ -166,7 +168,8 @@ // toutes les depenses depuis le debut de l'annee WikittyQuery debtQuery = new ChoremQueryMaker() .select() - .sum((String)null, "debts") + .sum(FinancialTransaction.FQ_FIELD_FINANCIALTRANSACTION_AMOUNT, "debts") + .sum((String)null, "debtsTTC") .function("#amountTTC") .fieldValue(FinancialTransaction.FQ_FIELD_FINANCIALTRANSACTION_AMOUNT) .fieldValue(FinancialTransaction.FQ_FIELD_FINANCIALTRANSACTION_VAT) @@ -253,31 +256,52 @@ /** * Retourne le total des entree et sortie entre deux dates, les valeurs retournees sont: * - * <li>debts: le montant TTC + * <li>debts: le montant HT (ne veut pas forcement dire grand chose, ex declaration TVA) + * <li>debtsTTC: le montant TTC * <li>incomes: le montant total HT des factures * <li>incomesTTC: le montant total TTC des factures * <li>extraIncomes: le montant total HT des revenus hors facture * <li>extraIncomesTTC: le montant total TTC des revenus hors factures * + * <li>debtsQuery: la condition sous forme texte qui a permit de calculer les depenses + * <li>incomesQuery: la condition sous forme texte qui a permit de calculer les entrees + * <li>extraIncomesQuery: la condition sous forme texte qui a permit de calculer les entrees supplementaire + * * @param client * @param first * @param last * @param companyId * @return */ - protected Map<String, Double> getDebtIncome(ChoremClient client, + protected Map<String, Object> getDebtIncome(ChoremClient client, Date first, Date last, String companyId) { + WikittyQuery debt = getDebtQuery(first, last, companyId); + WikittyQuery income = getIncomeInvoiceQuery(first, last, companyId); + WikittyQuery extraIncome = getExtraIncomeQuery(first, last, companyId); + + // on recupere les condition qui ont permit de faire le calcule + Condition[] cond = new Condition[3]; + cond[0] = ((Select)debt.getCondition()).getSubCondition(); + cond[1] = ((Select)income.getCondition()).getSubCondition(); + cond[2] = ((Select)extraIncome.getCondition()).getSubCondition(); + + List<WikittyQuery> queries = new ArrayList<WikittyQuery>(3); - queries.add(getDebtQuery(first, last, companyId)); - queries.add(getIncomeInvoiceQuery(first, last, companyId)); - queries.add(getExtraIncomeQuery(first, last, companyId)); + queries.add(debt); + queries.add(income); + queries.add(extraIncome); List<Map<String, Double>> values = client.findByQueryAsMap( Double.class, queries); - Map<String, Double> aggregate = new HashMap<String, Double>(); - for (Map<String, Double> m : values) { + Map aggregate = new HashMap<String, Object>(); + for (Map m : values) { aggregate.putAll(m); } + + aggregate.put("debtsQuery", ((Select)debt.getCondition()).getSubCondition().toString()); + aggregate.put("incomesQuery", ((Select)income.getCondition()).getSubCondition().toString()); + aggregate.put("extraIncomesQuery", ((Select)extraIncome.getCondition()).getSubCondition().toString()); + return aggregate; } @@ -305,12 +329,12 @@ log.debug(String.format("date: %s", dates)); - Map<Date, Map<String, Double>> result = new TreeMap<Date, Map<String, Double>>(); + Map<Date, Map<String, Object>> result = new TreeMap<Date, Map<String, Object>>(); Date currentFirst = firstDay; Date currentLast = DateUtil.setLastDayOfYear(firstDay); while (currentLast.compareTo(lastDay) <= 0) { - Map<String, Double> values = getDebtIncome(client, + Map<String, Object> values = getDebtIncome(client, currentFirst, currentLast, companyId); result.put(currentFirst, values); currentFirst = DateUtils.addYears(currentFirst, 1); @@ -335,9 +359,9 @@ String companyId = client.getConfiguration().getDefaultCompany(); // toutes les depenses depuis le debut de l'annee - Map<String, Double> annualDebtIncome = getDebtIncome(client, + Map<String, Object> annualDebtIncome = getDebtIncome(client, firstDayYear, now, companyId); - Map<String, Double> pastAnnualDebtIncome = getDebtIncome(client, + Map<String, Object> pastAnnualDebtIncome = getDebtIncome(client, lastYearFirstDay, lastYearNow, companyId); // WikittyQuery[] annualDebtIncomeQuery = getDebtIncomeQuery(firstDayYear, now, companyId); @@ -390,15 +414,15 @@ int invoiceIncomeNb = invoices[1].getTotalResult(); // montant total de toutes les factures double invoiceIncome = invoices[1].peek(); +// TODO a garder en Map pour permettre l'ajout de lien sur la requete +// // montant total de toutes les factures +// double annualDebt = (Double)annualDebtIncome.get("debts"); +// double annualIncome = (Double)annualDebtIncome.get("incomes"); +// +// // montant total de toutes les factures +// double lastYearAnnualDebt = (Double)pastAnnualDebtIncome.get("debts"); +// double lastYearAnnualIncome = (Double)pastAnnualDebtIncome.get("incomes"); - // montant total de toutes les factures - double annualDebt = annualDebtIncome.get("debts"); - double annualIncome = annualDebtIncome.get("incomes"); - - // montant total de toutes les factures - double lastYearAnnualDebt = pastAnnualDebtIncome.get("debts"); - double lastYearAnnualIncome = pastAnnualDebtIncome.get("incomes"); - int touchNb = touchs.getTotalResult(); String touchQueryString = touchQuery.getCondition().toString(); @@ -411,10 +435,12 @@ "invoiceDebt", invoiceDebt, "invoiceIncomeNb", invoiceIncomeNb, "invoiceIncome", invoiceIncome, - "annualDebt", annualDebt, - "annualIncome", annualIncome, - "lastYearAnnualDebt", lastYearAnnualDebt, - "lastYearAnnualIncome", lastYearAnnualIncome, + "annualDebtIncome", annualDebtIncome, + "pastAnnualDebtIncome", pastAnnualDebtIncome, +// "annualDebt", annualDebt, +// "annualIncome", annualIncome, +// "lastYearAnnualDebt", lastYearAnnualDebt, +// "lastYearAnnualIncome", lastYearAnnualIncome, "touchNb", touchNb, "touchQueryString", touchQueryString ); Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardAnnualProfit.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardAnnualProfit.jsp 2013-02-22 22:14:26 UTC (rev 313) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardAnnualProfit.jsp 2013-02-22 22:40:22 UTC (rev 314) @@ -39,14 +39,43 @@ </tr> <c:forEach var="q" items="${annualProfit.keySet()}"> <tr> - <th><f:formatDate pattern="yyyy" value="${q}"/></th> - <td><f:formatNumber type="currency" value="${annualProfit.get(q).get('incomes')}"/></td> - <td><f:formatNumber type="currency" value="${annualProfit.get(q).get('incomesTTC')}"/></td> - <td><f:formatNumber type="currency" value="${annualProfit.get(q).get('extraIncomes')}"/></td> - <td><f:formatNumber type="currency" value="${annualProfit.get(q).get('extraIncomesTTC')}"/></td> - <td><f:formatNumber type="currency" value="${annualProfit.get(q).get('debts')}"/></td> - <td><f:formatNumber type="currency" value="${annualProfit.get(q).get('incomesTTC') - annualProfit.get(q).get('debts')}"/></td> - <td><f:formatNumber type="currency" value="${annualProfit.get(q).get('incomesTTC') + annualProfit.get(q).get('extraIncomesTTC') - annualProfit.get(q).get('debts')}"/></td> + <th> + <c:set var="year"><f:formatDate pattern="yyyy" value="${q}"/></c:set> + <a href='<c:url value="/report?report=budget&start=01/01/${year}&end=31/12/${year}"/>'> + ${year} + </a> + </th> + <td> + <a href='<c:url value="/wikitty/search?query=${annualProfit.get(q).get('incomesQuery')} %23limit=2147483647"/>'> + <f:formatNumber type="currency" value="${annualProfit.get(q).get('incomes')}"/> + </a> + </td> + <td> + <a href='<c:url value="/wikitty/search?query=${annualProfit.get(q).get('incomesQuery')} %23limit=2147483647"/>'> + <f:formatNumber type="currency" value="${annualProfit.get(q).get('incomesTTC')}"/> + </a> + </td> + <td> + <a href='<c:url value="/wikitty/search?query=${annualProfit.get(q).get('extraIncomesQuery')} %23limit=2147483647"/>'> + <f:formatNumber type="currency" value="${annualProfit.get(q).get('extraIncomes')}"/> + </a> + </td> + <td> + <a href='<c:url value="/wikitty/search?query=${annualProfit.get(q).get('extraIncomesQuery')} %23limit=2147483647"/>'> + <f:formatNumber type="currency" value="${annualProfit.get(q).get('extraIncomesTTC')}"/> + </a> + </td> + <td> + <a href='<c:url value="/wikitty/search?query=${annualProfit.get(q).get('debtsQuery')} %23limit=2147483647"/>'> + <f:formatNumber type="currency" value="${annualProfit.get(q).get('debtsTTC')}"/> + </a> + </td> + <td> + <f:formatNumber type="currency" value="${annualProfit.get(q).get('incomesTTC') - annualProfit.get(q).get('debtsTTC')}"/> + </td> + <td> + <f:formatNumber type="currency" value="${annualProfit.get(q).get('incomesTTC') + annualProfit.get(q).get('extraIncomesTTC') - annualProfit.get(q).get('debtsTTC')}"/> + </td> </tr> </c:forEach> </table> Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardSummary.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardSummary.jsp 2013-02-22 22:14:26 UTC (rev 313) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardSummary.jsp 2013-02-22 22:40:22 UTC (rev 314) @@ -49,9 +49,31 @@ </ul> <ul> - <li>Chiffre d'affaire TTC: <strong><f:formatNumber type="currency" value="${annualIncome*1.196}"/></strong> (N-1: <strong><f:formatNumber type="currency" value="${lastYearAnnualIncome*1.196}"/></strong>) - <li>Dépenses: <strong><f:formatNumber type="currency" value="${annualDebt}"/></strong> (N-1: <strong><f:formatNumber type="currency" value="${lastYearAnnualDebt}"/></strong>) - <li>Bénéfice/perte: <strong><f:formatNumber type="currency" value="${annualIncome*1.196-annualDebt}"/></strong> (N-1: <strong><f:formatNumber type="currency" value="${lastYearAnnualIncome*1.196-lastYearAnnualDebt}"/></strong>) + <li>Chiffre d'affaire TTC: + <strong> + <a href='<c:url value="/wikitty/search?query=${annualDebtIncome.get('incomesQuery')} or ${annualDebtIncome.get('extraIncomesQuery')} %23limit=2147483647"/>'> + <f:formatNumber type="currency" value="${annualDebtIncome.get('incomes') + annualDebtIncome.get('extraIncomes')}"/> + </a> + </strong> + (N-1: <strong> + <a href='<c:url value="/wikitty/search?query=${pastAnnualDebtIncome.get('incomesQuery')} or ${pastAnnualDebtIncome.get('extraIncomesQuery')} %23limit=2147483647"/>'> + <f:formatNumber type="currency" value="${pastAnnualDebtIncome.get('incomes') + pastAnnualDebtIncome.get('extraIncomes')}"/> + </a> + </strong>) + <li>Dépenses: + <strong> + <a href='<c:url value="/wikitty/search?query=${annualDebtIncome.get('debtsQuery')} %23limit=2147483647"/>'> + <f:formatNumber type="currency" value="${annualDebtIncome.get('debtsTTC')}"/> + </a> + </strong> + (N-1: <strong> + <a href='<c:url value="/wikitty/search?query=${pastAnnualDebtIncome.get('debtsQuery')} %23limit=2147483647"/>'> + <f:formatNumber type="currency" value="${pastAnnualDebtIncome.get('debtsTTC')}"/> + </a> + </strong>) + <li>Bénéfice/perte: + <strong><f:formatNumber type="currency" value="${annualDebtIncome.get('incomesTTC') + annualDebtIncome.get('extraIncomes') - annualDebtIncome.get('debtsTTC')}"/></strong> + (N-1: <strong><f:formatNumber type="currency" value="${pastAnnualDebtIncome.get('incomesTTC') + pastAnnualDebtIncome.get('extraIncomes') - pastAnnualDebtIncome.get('debtsTTC')}"/></strong>) </ul> </div> </div> Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardVAT.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardVAT.jsp 2013-02-22 22:14:26 UTC (rev 313) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardVAT.jsp 2013-02-22 22:40:22 UTC (rev 314) @@ -41,7 +41,7 @@ <th><span>TVA payer</span></th> <c:forEach var="d" items="${data.values()}"> <td class="currency"> - <a href='<c:url value="/wikitty/search?query=${d.get('vatDebtQuery')}"/>'> + <a href='<c:url value="/wikitty/search?query=${d.get('vatDebtQuery')} %23limit=2147483647"/>'> <span><f:formatNumber type="currency" value='${d.get("vatDebt")}'/></span> </a> </td> @@ -51,7 +51,7 @@ <th><span>TVA encaissé</span></th> <c:forEach var="d" items="${data.values()}"> <td class="currency"> - <a href='<c:url value="/wikitty/search?query=${d.get('vatIncomeQuery')}"/>'> + <a href='<c:url value="/wikitty/search?query=${d.get('vatIncomeQuery')} %23limit=2147483647"/>'> <span><f:formatNumber type="currency" value='${d.get("vatIncome")}'/></span> </a> </td>