Tryton: An ERP adapted to your needs

Available on: http://pokoli.github.io/tryton-erp-adapted-to-your-needs

Who am I?

Sergi Almacellas Abellana

  • (Python ♥) Programmer
  • Open source enthusiast
  • Tryton commiter since Nov 2013

What's Tryton?

Is a three-tier high-level general purpose application platform under the license GPL-3 written in Python and using PostgreSQL as database engine.

What's Tryton?

It is the base of a complete business solution.

What Flask is for web, but for building an ERP.

Architecture

  • Database Agnostic: (PostgreSQL as Main database)
  • WSGI Server (JSON-RPC)
  • Desktop Client (for Linux/Mac/Windows)
  • Web Client

Have a look at the clients:

Desktop (PyGTK)

Have a look at the clients:

Web

How is Tryton?

How is Tryton?

  • Open Source
  • Secure
  • Scalable
  • Customizable
  • Consistent

Continously evolving

Development Process

  1. BluePrint (discussion)
  2. CodeReview
  3. Automated Test + CI
  4. Feature Freeze
  5. PyPI
  6. No API changes in released versions

Releases

  • New release every 6 months
  • 5 major versions supported (2.5 years)
  • Your data will be migrated
  • You choose when to upgrade

Development version is (normally) stable

Coding in Tryton

  • Python ZEN
  • KISS
  • DRY
  • PYSON
  • Domains and python-sql
  • Mixins

Coding in Tryton


class Conference(Workflow, ModelSQL, ModelView):
    'Conference'
    __name__ = 'conference'
    _states = {
        'readonly': Eval('state') != 'draft',
        }
    _depends = ['state']
    name = fields.Char('Name', required=True, states=_states, depends=_depends)
    start_date = fields.Date('Start Date', required=True,
        states=_states, depends=_depends)
    end_date = fields.Date('End Date', states=_states, depends=_depends)
    organizer = fields.Many2One('party.party', 'Organizer',
        states=_states, depends=_depends)
    state = fields.Selection([
            ('draft', 'Draft'),
            ('confirmed', 'Confirmed'),
            ('done', 'Done'),
            ], 'State', readonly=True, required=True)
    del _states, _depends
                    

Functional Areas

Master Data

  • Users (and Access Rights)
  • Party
  • Country
  • Currency
  • Company
  • Bank
  • Products
  • Price Lists

Functional Areas

Accounting

  • Account Chart
  • Fiscalyear and periods
  • Account Moves
  • Invoices
  • Payment
  • SEPA
  • Asset Deprecation
  • Analytic Accounting

Functional Areas

Stock

  • Warehouses and Locations
  • Shipments
  • Inventories
  • Periods
  • Lots
  • Lot Expiration
  • Continental and Anglo Saxon accounting

Functional Areas

Sales

  • Leads
  • Opportunities
  • Sales
  • Complaints
  • Promotions
  • Commissions
  • Shipment Cost

Functional Areas

Purchases

  • Purchase
  • Purchase Request
  • Minimum stock rule
  • Supply on sale
  • Drop shipment
  • Shipment Cost

Functional Areas

Production

  • Bill of Materials
  • Production
  • Steps and Operations
  • Work Center
  • Timesheet
  • Supply from production

Functional Areas

Project

  • Timesheet
  • Projects and Task
  • Invoicing
  • Revenue
  • Planning

Functional Areas

Other

  • WebDav/CalDAV/CardDAV
  • Authentication SMS
  • Web User
  • Flask-Tryton
  • Celery-Tryton

Functional Areas

Third party modules

  • GNU Health
  • Quality Control
  • Bussiness Inteligence
  • Webshop connectors
  • ...
  • Whatever you need

Functional Areas

Spanish Localization

  • Account Chart
  • Spanish Banks
  • Spanish Zips
  • AEAT 303
  • AEAT 340
  • AEAT 347
  • AEAT 349
  • Bank Statement (N43)

Unconference

Barcelona

17th-21st October 2016

http://tub2016.tryton.org/

Demo

Get in touch:

http://www.tryton.org/community.html

Or if you want to speak with me privately

sergi (at) koopli (dot) com

The presentation code is avaiable on

http://github.com/pokoli/tryton-erp-adapted-to-your-needs