Giter Site home page Giter Site logo

ndojedar / tibillet-odoo-module Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tibillet/tibillet-odoo-module

0.0 0.0 0.0 71 KB

TiBillet addon for Odoo : An API for membership, ticketing and cashless financial report.

Home Page: https://www.tibillet.re

License: MIT License

Shell 1.93% Python 98.07%

tibillet-odoo-module's Introduction

Odoo

Odoo connexion for TiBillet environment https://www.tibillet.re https://github.com/TiBillet

RoadMap :

  • XMLRPX http API
  • Api Check Version
  • Api Check Login
  • API Création de fiche contact Odoo
  • Nouvelle adhésion TiBillet -> Odoo
  • Utilise le contact existant avec même email
  • Création d'un nouvel article d'adhésion s'il n'existe pas
  • Gestion des périodes d'adhésion ( pour l'instant : 365j )
  • Facturation en brouillon de l'adhésion
  • Validation de la facture
  • Paiement de la facture
  • Selection du moyen de paiement ( Doit être account.journal. A indiquer dans la configuration de l'instance cashless )
  • Création des moyens de paiements manquant ( account.journal )
  • Connexion avec le module POS ( point de vente )
  • Ajout de chaque article vendu dans TiBillvet -> Odoo
  • Gestion de la monnaie dans compte et journaux Odoo
  • Ajout de la monnaie cashless dans les POS
  • Interfaçage des boitiers lecteurs NFC TiBillet dans POS Odoo
  • Accepter les monnaies cashless dans POS Odoo

API :

Postman documentation : https://documenter.getpostman.com/view/17519122/UVypzHCa

Version :

POST http://localhost:8069/tibillet-api/common/version

POST DATA

{
  "params": {}
}

RESPONSE

{
  "jsonrpc": "2.0",
  "id": null,
  "result": {
    "server_version": "15.0-20220307",
    "server_version_info": [
      15,
      0,
      0,
      "final",
      0,
      ""
    ],
    "server_serie": "15.0",
    "protocol_version": 1,
    "random": "0.5241139307469328"
  }
}

Login :

POST http://localhost:8069/tibillet-api/xmlrpc/login

Parameters

Attribute Type Required Description
db string yes Odoo server DB name
login string yes Odoo User
api_key string yes Odoo User ApiKey

POST DATA

{
  "params": {
    "db": "{{db}}",
    "login": "{{login}}",
    "apikey": "{{api_key}}"
  }
}

Response :

{
  "jsonrpc": "2.0",
  "id": null,
  "result": {
    "random": "0.7985724403682478",
    "user_uid": 2,
    "authentification": true,
    "permissions": {
      "show_full_accounting_features": 25,
      "manager": 31
    }
  }
}

Nouvelle Adhésion

POST http://localhost:8069/tibillet-api/xmlrpc/new_membership/

Parameters

Attribute Type Required Description
db string yes Odoo server DB name
login string yes Odoo User
api_key string yes Odoo User ApiKey
create_invoice bool no Crée une facture en brouillon
set_payment bool no Valide la facture et créé un paiement
membre:name string yes Nom / Prenom
membre:email string yes Si email existe déja, utilise le contact existant.
adhesion:product_name string yes Nom de l'adhésion
adhesion:category string yes Tag odoo "Catégorie d'adhésion" visible sur la fiche de l'adhérant.
adhesion:price_unit string yes Tarif de l'adhésion.
adhesion:payment_method string yes Type de paiement. str : account.journal

POST DATA

{
  "params": {
    "db": "{{db}}",
    "login": "{{login}}",
    "apikey": "{{api_key}}",
    "create_invoice": true,
    "set_payment": true,
    "membre": {
      "name": "{{$randomFirstName}} {{$randomLastName}}",
      "email": "{{$randomEmail}}"
    },
    "adhesion": {
      "product_name": "Adhésion",
      "category": "Adhérant",
      "price_unit": 52,
      "payment_method": "Espèces"
    }
  }
}

Response :

{
  "jsonrpc": "2.0",
  "id": null,
  "result": {
    "random": "0.5980815715295654",
    "name": "Eldora Hansen",
    "email": "[email protected]",
    "categorie_saleable_id": 2,
    "membership_category_id": 2,
    "membership_product_id": 1,
    "invoice_state": "posted",
    "payment_state": "paid",
    "responsable": 2,
    "created": true,
    "membre_db": 145
  }
}

Install :

Need :

  • Linux
  • Odoo V15
  • docker
  • docker-compose V3
  • Traefik ( for reverse-proxy )

From scratch :

git clone --recurse-submodules [email protected]:TiBillet/TiBillet-Odoo-module.git

Copier le fichier docker/env_example vers docker/.env. Modifiez le fichier .env pour changer les variables.

Lancez docker-compose config pour vérifier que tout est bon. Créez le réseau comme indiqué si besoin.

Lancez les conteneurs : docker-compose up -d

Aller sur http://localhost:8069 et suivez les instructions. Notez bien le mot de passe master, il ne vous sera plus présenté nulle part. Notez aussi le nom que vous avez donné à la base de donnée odoo.

Avec un Odoo 15 déjà installé

Copiez et/ou montez ces dossiers dans le dossier addon de votre installation.

  • extra-addons/tibillet:/mnt/extra-addons/tibillet
  • submodule/vertical-association/membership_extension:/mnt/extra-addons/membership_extension
  • submodule/vertical-association/membership_variable_period:/mnt/extra-addons/membership_variable_period

Inside Odoo

Installer l'addon

Allez sur Odoo / Application. Retirez le tag "application" dans la barre de recherche. Tapez "tibillet" et installez. Cela va vérifier si les applications suivantes sont installées et les installer si besoin.

# __manifest__.py
'depends': [
    'base',
    'account',
    'contacts',
    'membership',
    'membership_extension',
    'membership_variable_period',
], 

Créer une clé d'api

https://www.odoo.com/documentation/15.0/developer/misc/api/odoo.html#api-keys

Configurer le Cashless de TiBillet

Dans l'interface admin -> Configuration Générale -> Onglet ODOO. Renseignez les champs obligatoires.

Vous pouvez choisir de ne pas activer l'envoie vers Odoo, de ne créer que des factures en brouillon, ou des factures validées et payées.

Last log odoo: Vous montre la validité de la dernière action.

API Test

Version ( no auth is needed ):

curl --location --request POST 'http://localhost:8069/tibillet-api/common/version' \
-H "Content-Type: application/json" \
--data-raw '{
    "params": {
    }
}'

Example response OK :

{
  "jsonrpc": "2.0",
  "id": null,
  "result": {
    "server_version": "15.0-20220629",
    "server_version_info": [
      15,
      0,
      0,
      "final",
      0,
      ""
    ],
    "server_serie": "15.0",
    "protocol_version": 1,
    "random": "0.6265766626539964"
  }
}

Log / Pass :

curl --location --request POST 'http://localhost:8069/tibillet-api/xmlrpc/login' \
-H "Content-Type: application/json" \
--data-raw '{
    "params": {
        "db": "${ODOO_DATABASE}",
        "login": "${LOGIN}>",
        "apikey": "${API_KEY}"
    }
}'

Example response OK :

{
	"jsonrpc": "2.0",
	"id": null,
	"result": {
		"random": "0.4738530572020506",
		"user_uid": 9,
		"authentification": true,
		"permissions": {
			"show_full_accounting_features": 28,
			"manager": 62
		}
	}
}

Permissions :

Si None dans les permissions :

"permissions": {
  "show_full_accounting_features": None,
  "manager": none
}

Rajoutez les droits d'utilisateur dans Odoo : Paramètres -> utilisateurs et sociétés -> Groupes

  • Technique / Montrer les fonctions de comptabilité complètes
  • Adhésion / Responsable

Development environment

Tips : Python Breakpoint

# edit docker-compose and commit the command. Choose :
command: sleep 30d

# Launch :
docker compose up -d 

# Go inside the container and install the dev tools
docker exec -ti odoo_web bash
python3 -m pip install ipython ipdb

# launch odoo serveur
bash entrypoint.sh --dev reload
# set in your python code a breakpoint with :
import ipdb; ipdb.set_trace()

# enjoy ipdb !

Usefull Doc :

https://gist.github.com/101t/3982252740ce44d3affba37edea6ed33#file-deployment-guide-to-installing-odoo-14-on-ubuntu-20-04-md

https://reedrehg.medium.com/odoo-images-and-attachments-explaining-and-regenerating-assets-d1eb7fe8a3ed

Know Issues

asset bug :

# see bashrc for detail
docker exec -ti odoo_web reload_asset <ODOO_DB_NAME>

You can also simply prevent Odoo from using the filestore by setting the system parameterir_attachment.location to db-storage in Settings->Parameters->System Parameters . (requires technical features).

and restart : docker-commpose restart

AUTHORS

Jonas TURBEAUX for TiBillet ( https://www.tibillet.re )

THANKS & SPONSORS

  • La Raffinerie

https://www.laraffinerie.re

logo La Raffinerie

  • Communnecter.org

https://www.communecter.org

logo Communnecter

  • JetBrain

https://jb.gg/OpenSourceSupport

logo JetBrain

tibillet-odoo-module's People

Contributors

nasjoe avatar

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.