Author: jcouteau Date: 2012-12-01 15:17:26 +0100 (Sat, 01 Dec 2012) New Revision: 281 Url: http://chorem.org/projects/chorem/repository/revisions/281 Log: refs #862 : Introduce a sales module Added: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/SalesAction.java trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationAccepted.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationDraft.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationLead.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationSent.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardSalesReport.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/sales.jsp Modified: trunk/chorem-webmotion/src/main/resources/log4j.properties trunk/chorem-webmotion/src/main/resources/mapping trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/decorator.jsp trunk/pom.xml Added: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/SalesAction.java =================================================================== --- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/SalesAction.java (rev 0) +++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/SalesAction.java 2012-12-01 14:17:26 UTC (rev 281) @@ -0,0 +1,212 @@ +package org.chorem.webmotion.actions; + +import org.chorem.ChoremClient; +import org.chorem.entities.Quotation; +import org.chorem.entities.QuotationStatus; +import org.debux.webmotion.server.WebMotionController; +import org.debux.webmotion.server.render.Render; +import org.nuiton.util.DateUtil; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; +import org.nuiton.wikitty.query.WikittyQueryResult; + +import java.util.Date; +import java.util.EnumSet; + +/** + * + * @author couteau + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public class SalesAction extends WebMotionController { + + /** + * Rend le tableau des leads + * + * @param client + * @return + */ + public Render lead(ChoremClient client) { + // recuperation des quotations en statut lead + WikittyQuery quotationQuery = new WikittyQueryMaker().and() + .eq(Quotation.FQ_FIELD_QUOTATION_STATUS, QuotationStatus.LEAD) + .end().setLimit(WikittyQuery.MAX); + + WikittyQueryResult<Quotation> result = + client.findAllByQuery(Quotation.class, quotationQuery); + + // calcul des montants totaux + double amount = 0; + double amountHope = 0; + for (Quotation q : result) { + amount += q.getAmount(); + amountHope += q.getAmount() * q.getConversionHope() / 100.0; + } + + return renderView( "dashboardQuotationLead.jsp", + "quotations", result.getAll(), + "amount", amount, + "amountHope", amountHope); + + } + + /** + * Rend le tableau des propositions en statut draft (en cours de réponse) + * + * @param client + * @return + */ + public Render draft(ChoremClient client) { + // recuperation des quotations en statut draft + WikittyQuery quotationQuery = new WikittyQueryMaker().and() + .eq(Quotation.FQ_FIELD_QUOTATION_STATUS, QuotationStatus.DRAFT) + .end().setLimit(WikittyQuery.MAX); + + WikittyQueryResult<Quotation> result = + client.findAllByQuery(Quotation.class, quotationQuery); + + // calcul des montants totaux + double amount = 0; + double amountHope = 0; + for (Quotation q : result) { + amount += q.getAmount(); + amountHope += q.getAmount() * q.getConversionHope() / 100.0; + } + + return renderView("dashboardQuotationDraft.jsp", + "quotations", result.getAll(), + "amount", amount, + "amountHope", amountHope); + } + + /** + * Rend le tableau des propositions en attente de réponse + * + * @param client + * @return + */ + public Render sent(ChoremClient client) { + // recuperation des quotations en statut sent + WikittyQuery quotationQuery = new WikittyQueryMaker().and() + .eq(Quotation.FQ_FIELD_QUOTATION_STATUS, QuotationStatus.SENT) + .end().setLimit(WikittyQuery.MAX); + + WikittyQueryResult<Quotation> result = + client.findAllByQuery(Quotation.class, quotationQuery); + + // calcul des montants totaux + double amount = 0; + double amountHope = 0; + for (Quotation q : result) { + amount += q.getAmount(); + amountHope += q.getAmount() * q.getConversionHope() / 100.0; + } + + return renderView("dashboardQuotationSent.jsp", + "quotations", result.getAll(), + "amount", amount, + "amountHope", amountHope); + } + + /** + * Rend le tableau des propositions acceptées mais non commencées + * + * @param client + * @return + */ + public Render accepted(ChoremClient client) { + // recuperation des quotations en statut accepted + WikittyQuery quotationQuery = new WikittyQueryMaker().and() + .eq(Quotation.FQ_FIELD_QUOTATION_STATUS, QuotationStatus.ACCEPTED) + .end().setLimit(WikittyQuery.MAX); + + WikittyQueryResult<Quotation> result = + client.findAllByQuery(Quotation.class, quotationQuery); + + // calcul des montants totaux + double amount = 0; + for (Quotation q : result) { + amount += q.getAmount(); + } + + return renderView("dashboardQuotationAccepted.jsp", + "quotations", result.getAll(), + "amount", amount); + } + + /** + * Rend les indicateurs de performance commerciale + * + * @param client + * @return + */ + public Render report(ChoremClient client) { + + //Début et fin d'année courante (N) + Date currentYearFirst = DateUtil.setFirstDayOfYear(new Date()); + Date currentYearLast = DateUtil.setLastDayOfYear(new Date()); + + //Sers uniquement à calculer le début et fin d'année précédente (N-1) + Date previousYearDay = DateUtil.getYesterday(currentYearFirst); + + //Début et fin d'année précédente (N-1) + Date previousYearFirst = DateUtil.setFirstDayOfYear(previousYearDay); + Date previousYearLast = DateUtil.setLastDayOfYear(previousYearDay); + + //Liste de statut correspondant aux devis envoyés + EnumSet<QuotationStatus> sentStatus = EnumSet.range(QuotationStatus.SENT, + QuotationStatus.CLOSED); + + //Nombre de devis envoyés sur l'année (N) + WikittyQuery sentCurrentYearQuery = new WikittyQueryMaker().and() + .containsOne(Quotation.FQ_FIELD_QUOTATION_STATUS, sentStatus) + .bw(Quotation.FQ_FIELD_QUOTATION_POSTEDDATE, currentYearFirst, currentYearLast) + .end().setLimit(WikittyQuery.MAX); + + WikittyQueryResult<Quotation> sentCurrentYearResult = + client.findAllByQuery(Quotation.class, sentCurrentYearQuery); + int currentYearSentQuotation = sentCurrentYearResult.size(); + + //Nombre de devis envoyés sur l'année n-1 + WikittyQuery sentPreviousYearQuery = new WikittyQueryMaker().and() + .containsOne(Quotation.FQ_FIELD_QUOTATION_STATUS, sentStatus) + .bw(Quotation.FQ_FIELD_QUOTATION_POSTEDDATE, previousYearFirst, previousYearLast) + .end().setLimit(WikittyQuery.MAX); + + WikittyQueryResult<Quotation> sentPreviousYearResult = + client.findAllByQuery(Quotation.class, sentPreviousYearQuery); + int previousYearSentQuotation = sentPreviousYearResult.size(); + + //Progression devis envoyés + int sentQuotationProgression = 0; + if (previousYearSentQuotation != 0){ + sentQuotationProgression = 100 * (currentYearSentQuotation - previousYearSentQuotation) / previousYearSentQuotation; + } + + //Nombre de devis acceptés sur l'année + + //Nombre de devis acceptés sur l'année n-1 + + //Progression devis acceptés + + //Nombre de nouveaux clients sur l'année + + //Nombre de nouveaux clients sur l'année n-1 + + //Progression nombre de nouveaux clients + + //Nombre et nom des clients perdus sur l'année + + //Nombre et nom des clients perdus sur l'année n-1 + + //Diminution du nombre de clients perdus + + return renderView("dashboardSalesReport.jsp", + "currentYearSentQuotation", currentYearSentQuotation, + "previousYearSentQuotation", previousYearSentQuotation, + "sentQuotationProgression", sentQuotationProgression); + } +} Modified: trunk/chorem-webmotion/src/main/resources/log4j.properties =================================================================== --- trunk/chorem-webmotion/src/main/resources/log4j.properties 2012-11-30 18:54:54 UTC (rev 280) +++ trunk/chorem-webmotion/src/main/resources/log4j.properties 2012-12-01 14:17:26 UTC (rev 281) @@ -39,4 +39,5 @@ # package level log4j.logger.org.chorem=DEBUG log4j.logger.org.nuiton=INFO +log4j.logger.org.debux=ERROR #log4j.logger.org.nuiton.wikitty.storage.solr.SolrUtil=DEBUG Modified: trunk/chorem-webmotion/src/main/resources/mapping =================================================================== --- trunk/chorem-webmotion/src/main/resources/mapping 2012-11-30 18:54:54 UTC (rev 280) +++ trunk/chorem-webmotion/src/main/resources/mapping 2012-12-01 14:17:26 UTC (rev 281) @@ -41,6 +41,7 @@ * /wikitty-json/get/{id} action:GenericAction.getById * /fragment/dashboard/{method} action:DashboardAction.{method} * /fragment/dashboardHR/{method} action:DashboardHRAction.{method} +* /fragment/sales/{method} action:SalesAction.{method} * /admin view:contact.jsp * /admin/{method} action:AdminAction.{method} * /contact view:contact.jsp @@ -49,4 +50,6 @@ * /hr/vacationRequest/edit/{id} action:HrAction.editVacationRequest * /hr/vacationDiv/{ids} action:HrAction.editVacationDiv * /hr/vacationRequest/save action:HrAction.saveVacationRequest -* /vracble action:VracBle.testBle +* /sales view:sales.jsp +* /sales/{method} action:SalesAction.{method} +* /vracble action:VracBle.testBle \ No newline at end of file Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationAccepted.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationAccepted.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationAccepted.jsp 2012-12-01 14:17:26 UTC (rev 281) @@ -0,0 +1,65 @@ +<%-- + #%L + Chorem webmotion + $Id:$ + $HeadURL:$ + %% + Copyright (C) 2011 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f" %> +<%@ taglib uri="/WEB-INF/wikitty.tld" prefix="w"%> + +<h1>Projets acceptés, non commencés</h1> + +<table class="table table-striped table-bordered table-condensed"> + <thead> + <tr> + <th>Projet</th> + <th>Catégorie</th> + <th>Description</th> + <th>Client</th> + <th>Fournisseur</th> + <th>Chiffrage jours</th> + <th>Prix jour moyen</th> + <th>Montant</th> + <th>Date d'acceptation</th> + </tr> + </thead> + <c:forEach var="q" items="${quotations}"> + <tbody> + <tr> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.project" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.category" label=""/></td> + <td><w:display wikitty="${q.wikitty}" toString="%Quotation.description$s" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.customer" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.supplier" label=""/></td> + <td class="number"><w:display wikitty="${q.wikitty}" fqfield="Quotation.estimatedDays" label=""/></td> + <td class="currency"><f:formatNumber type="currency" value="${q.amount / q.estimatedDays}"/></td> + <td class="currency"><w:display wikitty="${q.wikitty}" fqfield="Quotation.amount" label=""/></td> + <td><!--w:display wikitty="${q.wikitty}" fqfield="Quotation.acceptedDate" label=""/--></td> + </tr> + </tbody> + </c:forEach> +</table> + + + +<dl class="dl-horizontal"> + <dt>Total</dt><dd><f:formatNumber type="currency" value="${amount}"/></dd> +</dl> \ No newline at end of file Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationDraft.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationDraft.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationDraft.jsp 2012-12-01 14:17:26 UTC (rev 281) @@ -0,0 +1,68 @@ +<%-- + #%L + Chorem webmotion + $Id:$ + $HeadURL:$ + %% + Copyright (C) 2011 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f" %> +<%@ taglib uri="/WEB-INF/wikitty.tld" prefix="w"%> + +<h1>Propositions en cours de réponse</h1> + +<table class="table table-striped table-bordered table-condensed"> + <thead> + <tr> + <th>Projet</th> + <th>Catégorie</th> + <th>Description</th> + <th>Client</th> + <th>Fournisseur</th> + <th>Chiffrage jours</th> + <th>Taux de conversion</th> + <th>Prix jour moyen</th> + <th>Montant</th> + <th>Date limite d'envoi</th> + </tr> + </thead> + <c:forEach var="q" items="${quotations}"> + <tbody> + <tr> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.project" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.category" label=""/></td> + <td><w:display wikitty="${q.wikitty}" toString="%Quotation.description$s" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.customer" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.supplier" label=""/></td> + <td class="number"><w:display wikitty="${q.wikitty}" fqfield="Quotation.estimatedDays" label=""/></td> + <td class="percent"><w:display wikitty="${q.wikitty}" fqfield="Quotation.conversionHope" label=""/></td> + <td class="currency"><f:formatNumber type="currency" value="${q.amount / q.estimatedDays}"/></td> + <td class="currency"><w:display wikitty="${q.wikitty}" fqfield="Quotation.amount" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.postedDate" label=""/></td> + </tr> + </tbody> + </c:forEach> +</table> + + + +<dl class="dl-horizontal"> + <dt>Total</dt><dd><f:formatNumber type="currency" value="${amount}"/></dd> + <dt>Hope</dt><dd><f:formatNumber type="currency" value="${amountHope}"/></dd> +</dl> \ No newline at end of file Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationLead.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationLead.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationLead.jsp 2012-12-01 14:17:26 UTC (rev 281) @@ -0,0 +1,61 @@ +<%-- + #%L + Chorem webmotion + $Id:$ + $HeadURL:$ + %% + Copyright (C) 2011 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f" %> +<%@ taglib uri="/WEB-INF/wikitty.tld" prefix="w"%> + +<h1>Les leads</h1> + +<table class="table table-striped table-bordered table-condensed"> + <thead> + <tr> + <th>Projet</th> + <th>Catégorie</th> + <th>Description</th> + <th>Client</th> + <th>Fournisseur</th> + <th>Taux de conversion</th> + <th>Montant</th> + </tr> + </thead> + <c:forEach var="q" items="${quotations}"> + <tbody> + <tr> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.project" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.category" label=""/></td> + <td><w:display wikitty="${q.wikitty}" toString="%Quotation.description$s" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.customer" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.supplier" label=""/></td> + <td class="percent"><w:display wikitty="${q.wikitty}" fqfield="Quotation.conversionHope" label=""/></td> + <td class="currency"><w:display wikitty="${q.wikitty}" fqfield="Quotation.amount" label=""/></td> + </tr> + </tbody> + </c:forEach> +</table> + + +<dl class="dl-horizontal"> + <dt>Total</dt><dd><f:formatNumber type="currency" value="${amount}"/></dd> + <dt>Hope</dt><dd><f:formatNumber type="currency" value="${amountHope}"/></dd> +</dl> \ No newline at end of file Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationSent.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationSent.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationSent.jsp 2012-12-01 14:17:26 UTC (rev 281) @@ -0,0 +1,68 @@ +<%-- + #%L + Chorem webmotion + $Id:$ + $HeadURL:$ + %% + Copyright (C) 2011 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f" %> +<%@ taglib uri="/WEB-INF/wikitty.tld" prefix="w"%> + +<h1>Propositions en attente de réponse</h1> + +<table class="table table-striped table-bordered table-condensed"> + <thead> + <tr> + <th>Projet</th> + <th>Catégorie</th> + <th>Description</th> + <th>Client</th> + <th>Fournisseur</th> + <th>Chiffrage jours</th> + <th>Taux de conversion</th> + <th>Prix jour moyen</th> + <th>Montant</th> + <th>Date d'envoi</th> + </tr> + </thead> + <c:forEach var="q" items="${quotations}"> + <tbody> + <tr> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.project" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.category" label=""/></td> + <td><w:display wikitty="${q.wikitty}" toString="%Quotation.description$s" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.customer" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.supplier" label=""/></td> + <td class="number"><w:display wikitty="${q.wikitty}" fqfield="Quotation.estimatedDays" label=""/></td> + <td class="percent"><w:display wikitty="${q.wikitty}" fqfield="Quotation.conversionHope" label=""/></td> + <td class="currency"><f:formatNumber type="currency" value="${q.amount / q.estimatedDays}"/></td> + <td class="currency"><w:display wikitty="${q.wikitty}" fqfield="Quotation.amount" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.postedDate" label=""/></td> + </tr> + </tbody> + </c:forEach> +</table> + + + +<dl class="dl-horizontal"> + <dt>Total</dt><dd><f:formatNumber type="currency" value="${amount}"/></dd> + <dt>Hope</dt><dd><f:formatNumber type="currency" value="${amountHope}"/></dd> +</dl> \ No newline at end of file Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardSalesReport.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardSalesReport.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardSalesReport.jsp 2012-12-01 14:17:26 UTC (rev 281) @@ -0,0 +1,34 @@ +<%-- + #%L + Chorem webmotion + $Id:$ + $HeadURL:$ + %% + Copyright (C) 2011 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f" %> +<%@ taglib uri="/WEB-INF/wikitty.tld" prefix="w"%> + +<h1>Indicateurs de performance commerciale</h1> + +<ul> + <li>Nombre de devis envoyés cette année : ${currentYearSentQuotation}</li> + <li>Nombre de devis envoyés l'an dernier : ${previousYearSentQuotation}</li> + <li>Progression : ${sentQuotationProgression} %</li> +</ul> \ No newline at end of file Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/decorator.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/decorator.jsp 2012-11-30 18:54:54 UTC (rev 280) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/decorator.jsp 2012-12-01 14:17:26 UTC (rev 281) @@ -129,6 +129,19 @@ </ul> </li> <li class="dropdown nav-group"> + <!-- around sales --> + <a href="<c:url value="/sales"/>">Commercial</a> + <a href="#" class="dropdown-toggle" data-toggle="dropdown"> + <b class="caret"></b> + </a> + <ul class="dropdown-menu"> + <li><a href="<c:url value="/sales/lead"/>"><i class="icon-th-list icon-black"></i> Leads</a></li> + <li><a href="<c:url value="/sales/draft"/>"><i class="icon-th-list icon-black"></i> En cours</a></li> + <li><a href="<c:url value="/sales/sent"/>"><i class="icon-th-list icon-black"></i> Attente réponse</a></li> + <li><a href="<c:url value="/sales/accepted"/>"><i class="icon-th-list icon-black"></i> Acceptés</a></li> + </ul> + </li> + <li class="dropdown nav-group"> <!-- around financial --> <a href="<c:url value="/report?report=invoiceDebt,invoiceIncome,profitability,budget"/>">Financial</a> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> Added: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/sales.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/sales.jsp (rev 0) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/sales.jsp 2012-12-01 14:17:26 UTC (rev 281) @@ -0,0 +1,30 @@ +<%-- + #%L + Chorem webmotion + $Id:$ + $HeadURL:$ + %% + Copyright (C) 2011 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> + + <jsp:include page="/fragment/sales/report"/> + <jsp:include page="/fragment/sales/lead"/> + <jsp:include page="/fragment/sales/draft"/> + <jsp:include page="/fragment/sales/sent"/> + <jsp:include page="/fragment/sales/accepted"/> \ No newline at end of file Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2012-11-30 18:54:54 UTC (rev 280) +++ trunk/pom.xml 2012-12-01 14:17:26 UTC (rev 281) @@ -10,7 +10,7 @@ <parent> <groupId>org.nuiton</groupId> <artifactId>mavenpom4redmine</artifactId> - <version>3.4.3</version> + <version>3.4.4</version> </parent> <groupId>org.chorem</groupId> @@ -95,7 +95,7 @@ <opencsvVersion>2.3</opencsvVersion> <processPluginVersion>1.1</processPluginVersion> <eugenePluginVersion>2.5.5</eugenePluginVersion> - <nuitonUtilsVersion>2.4.8</nuitonUtilsVersion> + <nuitonUtilsVersion>2.6.5-SNAPSHOT</nuitonUtilsVersion> <nuitonWebVersion>1.7</nuitonWebVersion> <nuitonI18nVersion>2.3.1</nuitonI18nVersion> <wikittyVersion>3.9-SNAPSHOT</wikittyVersion>