Présentation

Esup-papercut est une (petite) servlet affichant les informations du compte Papercut de l'utilisateur.

Papercut est un outil payant de gestion d'impressions. Il propose notamment une gestion de quotas d'impressions. 

En plus d'afficher le nombre d'impressions et le quota restant, esup-papercut peut permettre à l'utilisateur de recréditer son compteur Papercut, ce via un paiement Paybox ou/et IzlyPay.

Paybox est un service de paiement en ligne (commercial) permettant de se décharger de la procédure de paiement en ligne via cartes bancaires, e-carte bleues, comptes paypal et autres. 

IzlyPay est la nouvelle solution poussée par les CROUS permettant aux établissements qui le souhaitent d'intégrer le paiement en ligne dans leurs applications institutionnelles depuis l'espace Izly et donc le crédit Izly de l'utilisateur. 

Éléments requis

Pour fonctionner, esup-papercut requiert :

Téléchargement / code source

https://github.com/EsupPortail/esup-papercut

La version 2.0.4 est disponible depuis avril 2022 : https://github.com/EsupPortail/esup-papercut/

Changelog

Avril 2022 : 2.0.4

Mai 2020 : 2.0.3

Septembre 2019 : 2.0.2

Septembre 2019 : 2.0.1

Août 2019 : 2.0.0

Juillet 2016 : 1.1.2

Février 2016 : 1.1.1

Novembre 2015 : 1.1.0

Janvier 2015 : 1.0.0


Configurations

Le fichier src/main/resources/esup-papercut.properties contient l'ensemble des confgiurations applicatives : base de données, mail, configurations nécessaires à Papercut, Paybox et IzlyPay.

Le fichier src/main/resources/logback.xml quant à lui permet de configurer les logs.

Ce sont ces 2 fichiers que vous devrez modifier pour installer esup-papercut.

esup-papercut peut proposée au travers d'une même instance des contextes d'usages différentes avec des configurations différentes (un contexte de test et un de production par exemple).
Un contexte test est proposé par défaut ; il est défini dans src/main/resources/esup-papercut.properties comme l'ensemble des autres configurtations (mises à part les logs donc).

Concernant le logo, le plus simple est d'écraser directement le logo esup-portail donné dans le fichier src/main/resources/static/images/logo.png en y mettant le logo (png) de votre établissement.

Configurations générales

Base de données

esup-papercut utilise une base de données pour stocker (historiser) l'ensemble des transactions effectuées par l'utilisateur. 

Les paramètres de la base sont à donner dans  src/main/resources/esup-papercut.properties :

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/esuppapercut
spring.datasource.username=esuppapercut
spring.datasource.password=esup


La base créée, la construction de la table peut se faire en démarrant une première fois esup-papercut avec dans src/main/resources/esup-papercut.properties le paramètre hibernate.hbm2ddl.auto à create.

Une fois ce premier démarrage effectué et donc la table créée, remettez hibernate.hbm2ddl.auto à update afin que la base ne soit pas écrasée à chaque redémarrage

Une base postgresql est conseillée - ne serait-ce que par rapport aux requêtes utilisées pour réaliser les graphiques / courbes de statistiques ; par défaut ces requêtes sont propres à postgresql, cf ci-dessous.

Graphiques / courbes de statistiques

Attention, les graphiques (courbes) des statistiques sont construits grâce à des requêtes SQL qui sont liées au SGBD : nous n'avons pas pu développer de requêtes SQL indépendant du SGBD utilisé.

Ces requêtes peuvent être paramétrées lors de la publication de la portlet via les préférences portlet. Si vous utilisez PostgreSQL, vous pouvez laisser ces préférences par défaut, sinon il faut les adapater en regardant https://github.com/EsupPortail/esup-papercut/blob/master/src/main/java/org/esupportail/papercut/domain/PayboxPapercutTransactionLog.java pour voir les requêtes postgresql à adapter.

Ainsi requeteNbTransactions correspond en postgresql à : 

SELECT date_part('year',transaction_date) as year, date_part('month',transaction_date) as month, count(*) as count FROM pay_papercut_transaction_log WHERE papercut_context=:papercutContext GROUP BY year, month ORDER BY year,month


Si vous adaptez ces requêtes à d'autres SGBD comme MySQL par exemple, n'hésitez pas à nous les partager.

CAS

Dans src/main/resources/esup-papercut.properties :

cas.key=EsupPapercutCAsUnivVille
cas.url=https://cas.univ-ville.fr
cas.service=https://esup-papercut.univ-ville.fr


Configurations par contexte 

Mis à part esup.default-context qui permet de définir le contexte par défaut à afficher à l'utilisateur (sachant qu'un contexte n'est proposée que si l'utilisateur y a le rôle de USER, MANAGER ou ADMIN), toutes les autres configurations sont données par contexte.

esup.contexts.test.title correspond ainsi au titre à afficher par le contexte test de votre instance esup-papercut.

Configurations du contexte 

Configurations papercut 

Configurations paybox

Sous-configurations de esup.contexts.test.paybox (avec test un contexte) ; si vous ne souhaitez pas proposer de formulaires de paiement via paybox, omettez simplement de configurer (commentez les ou supprimez les du fichier de configuration) l'ensemble de ces paramètres esup.contexts.test.paybox.*

Configurations izlypay

Sous-configurations de esup.contexts.test.izlypay (avec test un contexte) ; si vous ne souhaitez pas proposer de formulaires de paiement via izlypay, omettez simplement de configurer (commentez les ou supprimez les du fichier de configuration) l'ensemble de ces paramètres esup.contexts.test.izlypay.*

Configurations de l'anonymisation 

Sous-configurations de esup.contexts.test.anonymization (avec test un contexte) ; permet d'anonymiser les anciens logs (de plus de x jours) en remplaçant les références et identifiants utilisateurs par un libellé "anonymous" en base de données. Conserver les logs ainsi permet de garder trace de ces transactions pour statistiques uniquement.

Copies d'écran

Migration v1 → v2

Si vous utilisiez esup-papercut version 1 en portlet, vous pouvez reprendre les données de l'ancienne version et les convertir pour qu'ils conviennent à la nouvelle version : renommage de table et colonnes. 

Le script src/etc/migrate-v2-v3.sql permet cette migration de données.

Documentations papercut - paybox - izlypay

Paybox

http://www1.paybox.com/telechargement_focus.aspx?cat=3

Papercut 

Web Service API : http://www.papercut.com/products/ng/manual/apdx-tools-web-services.html 

A noter que le logiciel papercut embarque une documentation plus usuelle avec code d'exemple (php et java notamment) à l'appui dans 

 [app-path]/server/examples/webservices/

IzlyPay

Esup-Papercut est un des premiers services à proposer l'intégration de IzlyPay, Esup-Papercut fait ainsi figure d'exemple d'intégration d'IzlyPay dans un service institutionnel.

La documentation d'intégration d'IzlyPay est disponible ici : Documentation IzlyPay.docx

Pour tout questions à propos d'IzlyPay directement, merci de prendre contact avec departement-vem@cnous.fr 

Présentation

Présentation EsupDay 28 : 18 septembre 2019

EsupPapercut v2 et IzlyPay - diaporama et vidéo de présentation.

Ancienne présentation

Voici une présentation interne d'esup-papercut à l'Université de Rouen Normandie - elle correspond à la version 1 d'esup-papercut, quand esup-papercut était portlet et donc lié à l'ENT EsupPortail/uPortal.

esup-papercut-presentation.pdf

Contacts

Merci de vous abonner et d'utiliser la liste mail "esup-utilisateurs" pour nous contacter (problèmes techniques notamment) :

https://listes.esup-portail.org/sympa/info/esup-utilisateurs

Crédits & Licence

Copyright (C) 2020 Esup Portail http://www.esup-portail.org
@Author (C) 2020 Vincent Bonamy <Vincent.Bonamy@univ-rouen.fr>
@Contributor (C) 2020 Jean-Pierre Tran <Jean-Pierre.Tran@univ-rouen.fr>
@Contributor (C) 2020 Valentin Hagnéré <valentin.hagnere1@univ-rouen.fr>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
        http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.