GithubHelp home page GithubHelp logo

naturapeute / aposto-app Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 0.0 1018 KB

Aposto is a 💾 free, đŸŒ± light, ✹ easy-to-use and 📖 open-source billing software dedicated to Swiss therapist. It allows generating invoices in compliance with new standard Tarif 590 and QR-invoice in a few seconds.

Home Page: http://app.aposto.ch

License: Other

JavaScript 27.30% SCSS 11.68% Svelte 59.24% Makefile 0.10% CSS 0.20% HTML 1.48%
tarif-590 therapeute suisse facturation cabinet asca rme santesuisse

aposto-app's People

Contributors

mlbiche avatar vinyll avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

aposto-app's Issues

Bug when updating total duration to a duration smaller than the sum of selected service durations

When updating the total duration to a duration smaller than the sum of selected service durations, the remaining duration bar appears while there is not remaining duration.

It is due to the remaining duration calculation that returns a negative value. As it is, it is considered as a remaining duration and the timeline is displayed.

We can fix it easily by returning 0 from remaining duration calculation when the result is negative. Nevertheless, it raises an other issue : what happen to already selected services ? Should we shrink the last service according to the new total duration ? If so, what happen when the last service shrink to 0 and, more, if there new total duration does not cover the second to last neither ?

IMO, a solution would be to leave the selected services as they are when updating the total duration but to consider the session description as invalid and this way disable the send button (the send button status is not based on session description validity yet, but it is planned).

Update pydantic

As the merge request on pydantic has been merged, negative JavaScript timestamps are now supported. pydantic has to be updated and the related code (marked with FIXME) can be updateD.

Add a date field to services

Some therapists generate a receipt for several therapy session. They need to set a different date for each session. In order to keep the receipt edition fast, this fields have to be preset to today date.

Send invoice to client

Let's use a service like sendinblue or other to send receipts to the client and the therapist in bcc

CORS error

When clicking to create an invoice, the following error occurs:

TypeError: "NetworkError when attempting to fetch resource." FinalizeView.svelte:65:16
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://api.aposto.ch/email/eyJhdXRob3IiOnsibmFtZSI6Ikxob25l
OTcsInRlcnJhcGV1dGVJRCI6IjVlYzU2Yzg4YjFlMjE3YmFhOTA0MzJmNCJ9. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

This occurs with a new user, not with Max-Antoine.

Note that I added the Cross-Origin header in the nginx config.
It now sends the email, however the error still displays and the window won't offer to start over.

Screen Shot 2020-05-24 at 20 24 28

Implement bank information in author form

https://www.paymentstandards.ch/dam/downloads/qr-iid_qr-iban-fr.pdf

Bon si j'ai bien compris, on peut utiliser un QR-IBAN ou un IBAN indifféremment dans une QR-facture. La seule restriction est que si un QR-IBAN est utilisé, il faut obligatoirement une QR-reference. Si un IBAN est utilisé on peut utiliser une référence Creditor Reference ou aucune référence.

Si c'est bien ça, ça enlÚverait toute ambiguïté de n'utiliser que des IBAN sans référence (les références permettent de faire le lien entre la transaction et la facture si j'ai bien compris).

La génération de justificatifs est disponibles à tous

La gĂ©nĂ©ration d'un justificatif ne devrait ĂȘtre autorisĂ©e, possiblement pour des raisons lĂ©gales, que par des thĂ©rapeutes agrĂ©Ă©s.
La version dĂ©mo devrait donc ĂȘtre ajustĂ©e en consĂ©quence ; soit en forçant un nom de dĂ©mo, soit en inscrivant une filigrane invalidant le justificatif.

Allow to set session duration before splitting the session

After first implementation and feedback from @vinyll :

  • Turn Number input into a duration chip set
  • Only display the duration chip set in edit mode and close it once a duration is selected
  • Limit service duration selection to the remaining duration
  • Disable adding a service when there is no remaining duration and no total durations set
  • Add new service from click on remaining duration chip
  • Delete Add service button
  • Add spa and add icons to remaining duration chip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.