Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Creation of invoice/ticket/bills....from registrant list #751

Open
jbenito3 opened this issue May 3, 2011 · 14 comments
Open

Creation of invoice/ticket/bills....from registrant list #751

jbenito3 opened this issue May 3, 2011 · 14 comments
Assignees
Projects
Milestone

Comments

@jbenito3
Copy link
Member

@jbenito3 jbenito3 commented May 3, 2011

# Ticket imported from Trac
@jbenito3 jbenito3 added this to the v2.5 milestone Oct 2, 2014
@ThiefMaster ThiefMaster removed this from the v2.5 milestone Feb 6, 2018
@meluru
Copy link
Contributor

@meluru meluru commented Feb 6, 2018

It would be also nice to implement automatic payment notifications with receipt for all participants

@pferreir
Copy link
Member

@pferreir pferreir commented Apr 18, 2018

An example template from a real event:
image

@vgvassilev
Copy link

@vgvassilev vgvassilev commented Apr 23, 2018

Hi,

Today I have a few minutes to hack this together. I cannot attach tex files for some reason but I have them in my repo: https://github.com/vgvassilev/chep_docs/tree/master/payment_receipt

The idea is simple. We have a template and we have a param.tex file which contains a few variables. You can compile with pdflatex receipt_template.tex.

I have one question: is there some xml/json file that contains "all" registration data (including information about payments) if I am an event manager? This would make the generation of receipts for us almost automatic.

@ThiefMaster
Copy link
Member

@ThiefMaster ThiefMaster commented Apr 23, 2018

I have one question: is there some xml/json file that contains "all" registration data (including information about payments) if I am an event manager? This would make the generation of receipts for us almost automatic.

You can export to CSV/XML after enabling all columns. We only export the columns that are displayed in the table.

@vgvassilev
Copy link

@vgvassilev vgvassilev commented Apr 23, 2018

I am afraid that would not suffice, we are lacking information such as the "extra fees" if the person paid by credit card. People want to get reimbursed not for the X euros conference fee but X + Y, where Y is the overall transactions fees (if they paid by card or were charged for any other reason).

@pferreir
Copy link
Member

@pferreir pferreir commented Apr 23, 2018

I'm not sure whether we want to do this with TeX or instead Reportlab. Generating and compiling TeX is fine for stuff that has to look like TeX (e.g. abstracts) but not so convenient for the rest.

@vgvassilev
Copy link

@vgvassilev vgvassilev commented Apr 23, 2018

Either way, feel free to use it/not use it ;)

I will solve my problem if I can get access to xml containing people's payment details.

@ThiefMaster
Copy link
Member

@ThiefMaster ThiefMaster commented Aug 27, 2018

https://weasyprint.org looks like a decent option - it uses HTML/CSS to generate a PDF, so it would even be possible to allow people to upload their own HTML template.

Plot twist: It requires Python 3, so it'd be something for Indico 3.0...

@pferreir
Copy link
Member

@pferreir pferreir commented Jan 24, 2019

Days since someone asked for this: 0

@pferreir
Copy link
Member

@pferreir pferreir commented Nov 1, 2019

Interesting find: https://react-pdf.org/
Having a (sandboxed?) micro-service which replaces the current ReportLab-based PDF generation code would help a lot with this. We could even allow templates to be produced in JSX.

@pferreir
Copy link
Member

@pferreir pferreir commented Sep 29, 2021

Some mockups

Template management

image
image

Adding a new template

image

List of Registrants

image

Registrant Details

image

"Generate" dialog

image

@vgvassilev
Copy link

@vgvassilev vgvassilev commented Sep 29, 2021

Nice!! Thanks a lot for working on this!

@ThiefMaster ThiefMaster added this to the v3.2 milestone Sep 30, 2021
@ThiefMaster ThiefMaster added this to To do in Release 3.2 via automation Sep 30, 2021
@pferreir pferreir self-assigned this Oct 1, 2021
@pferreir
Copy link
Member

@pferreir pferreir commented Oct 1, 2021

Tasks

  • Create base module/models (indico.modules.events.receipts):
    • Base module (w/ empty files)
    • ReceiptTemplate model - pay attention to handling of custom fields
    • Receipt model - once again, pay close attention to handling of custom fields
  • Create template management interface
    • Add new template
    • Edit a template
    • Remove a template
  • Add endpoint to generate a receipt/certificate for a given registrant, based on a given template and custom fields
  • Add section in registrant details which includes generated receipts/certificates
  • Add "Generate Receipt" option to list of registrants;
    • Add "Generate" dialog
    • Add backend action: download PDF or ZIP file
    • Add backend action: publish in user's registrant details (visible by them, and optionally e-mail file as well)
    • Add backend action: e-mail file to user(s)
  • Create default templates
  • Unit tests
  • Document feature in learn.getindico.io

@ThiefMaster ThiefMaster moved this from To do to In progress in Release 3.2 Oct 7, 2021
@pferreir
Copy link
Member

@pferreir pferreir commented Oct 12, 2021

Some additional suggestions by @plourenco, @javfg and @ThiefMaster (mostly stuff for the late stages of development):

  • list of available "placeholders" or variables which are available in the template
  • adding some sort of highlighting to the text areas (react-monacoeditor)?
  • providing some pre-processed information (e.g. properly formatted dates/times) directly to the templates

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Release 3.2
In progress
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
5 participants