frePPLe - open source supply chain planning

Related tags

Algorithmsfrepple
Overview

Continous integration Language grade: Python Language grade: C/C++ Language grade: JavaScript

frePPLe

Open source supply chain planning

FrePPLe is an easy-to-use and easy-to-implement open source advanced planning and scheduling tool for manufacturing companies.

When spreadsheets doesn't suffice any longer to adequately plan and schedule your production, frePPLe allows an easy and cost-efficient way to generate a more optimized plan.

FrePPLe implements planning algoritms based on best practices such as theory of constraints (ie plan around the bottleneck), pull-based planning (ie start production as late as possible and directly triggered by demand) and lean manufacturing (ie avoid intermediate delays and inventory).

Download

The software can be downloaded in the following formats:

Documentation

Visit https://frepple.com for documentation, screencasts and build instructions.

License

The Community Edition is released under the GNU Affero General Public License v3 or later.

The Enterprise Edition can be purchased from frePPLe bv. It provides additional functionality and professional support.

The Cloud Edition provides provides the same capabilities as the Enterprise Edition, but is hosted as a service in the cloud: fully supported and maintained by frePPLe bv.

Comments
  • rewrite for supply path logic

    rewrite for supply path logic

    after all model changes, the code is unnecessarily complex and should be revamped.

    Core logic is fine, but the recursion data structure is not the best one any longer...

    opened by jdetaeye 22
  • Inventory report extra rows

    Inventory report extra rows

    To be consistent we should have rows for: On the plus side:

    • Produced by MO
    • Purchased by PO
    • Inbound transfer by DO
    • Total supply

    On the minus side:

    • Consumed by MO
    • Outbound transfer by DO
    • Total consumption

    Also safety stock target should be added as a row, and displayed in the graph.

    opened by jdetaeye 9
  • update fixutres in community edition with output tables

    update fixutres in community edition with output tables

    The fixtures should include the output table, just as they do in the enterprise edition. The current mismatch of both files makes in impossible to keep them in sync.

    opened by jdetaeye 9
  • fix jsonb parse after get value from database

    fix jsonb parse after get value from database

    In my development environment, the UserPreference will always return value as str although it is set to JSONBField. image

    I dig deeper and found the model of django needs from_db_value to do the type convert job. image

    So added this function for JSONField to support auto convert. Please kindly review this. Thanks!

    VERSIONS: Python == 3.7.10 django == 3.2.4 djangorestframework == 3.12.4 djangorestframework-bulk == 0.2 djangorestframework-filters == 1.0.0.dev2 django-admin-bootstrapped == 2.5.6 django-bootstrap3 == 11.1.0 django-filter == 2.4.0

    opened by sillydong 7
  • Fix LGTM alerts

    Fix LGTM alerts

    Hi @jdetaeye, I've referenced LGTM alert snapshot page and fixed two categories of errors:

    • Added var declaration to variables
    • Added ; semicolons to avoid automated semicolon insertion

    Please review when you get a chance, thanks!

    opened by lisaychuang 7
  • When MO is update its status from completed to closed

    When MO is update its status from completed to closed

    I'm have been used frepple 0.5 year since 2021-08 and i am amazed at its generality, there are two confusion:

    1. When a MO is updated its status from completed to closed and then replan, there generates a new same MO with status of completed. In other words, there exist a old MO with status of closed and another new MO with status of completed. What is your consider? The normal understanding is to expect only one MO with status of closed. What is meaning about status of "closed". Some explanation in model-reference/"manufacturing-orders.rst is “closed : The manufacturing order has been completed. It is ignored for planning." but obviously it is not ignored so that new MO with status of completed is generated. image
    2. Partially completed doesn't work. WIP.produce_full_quantity have been set false. When a MO is updated its quantity_completed from null to value with status of confirmed, the quantity_completed is empty after replan, and new MO is not generated with lack quantity ( lack quantity = quantity - quantity_completed ). How to use quantity_completed correctly.
    opened by onepiecewyz 6
  • Resource wasn't choosen based on priority

    Resource wasn't choosen based on priority

    Hello, I have following problem: In your documentation there is this information about priority of material resources: "When search mode is set to priority, frePPLe will pick the resources by priority (lowest values first, defined in resource skill table) as long as the demand is planned on time." In attached file there is example with two resources (Operators) which are basically the same (same owner, same calendar, both unconstrained,same skill at resource skills), only difference is their priority at resource skill table. I expected that the operation will be planned on the resource which has lower number of priority, but it didn't happen.

    frepple(8).xlsx

    opened by petrakozielova 6
  • Cockpit randomly fails to load completely

    Cockpit randomly fails to load completely

    Most of the times the Cockpit fails to load part of the widgets and loads a second copy of itself into the widget window. This happens both when using frePPLe in the LAN and internet.

    My uneducated guess is that there is some kind of timeout happening.

    Timo

    opened by timo12357 6
  • installation problem in ver 6.x

    installation problem in ver 6.x

    When I try to install 6.0 or 6.1 on Windows 7 Turkish, I get below error and not works. There is no problem with vers 5.x

    Initializing the PostgreSQL database Create folder: C:\ProgramData\frePPLe\6.1.0\database Bu veritaban² sistemine ait olan dosyalar²n sahibi "emir" kullan²c²s² olacakt²r. Bu kullan²c² ayn² zamanda sunucu s³recinin de sahibi olmal²d²r.

    Veritaban² k³mesi "Turkish_Turkey.1254" yerel ayarlar² ile olu¦turulacak. ͮtan²ml² metin arama yap²land²rmas² "turkish" olarak ayarlanacak.

    Veri sayfas² (data page) do­rulama devre d²¦² b²rak²lm²¦t²r.

    mevcut C:/ProgramData/frePPLe/6.1.0/database dizininin izinleri d³zeltiliyor ... tamam alt dizinler olu¦turuluyor ... tamam ÷n tan²ml² max_connections se_iliyor ... 100 ÷ntan²ml² shared_buffers de­eri se_iliyor ... 128MB selecting default timezone ... Europe/Moscow dinamik payla¦²lan bellek (shared memory) uygulamas² se_imi ... windows yap²land²rma dosyalar² yarat²l²yor ... tamam ÷ny³kleme komut dosyas² _al²¦t²r²l²yor ...tamam ÷ny³kleme sonras² ba¦latmay² ger_ekle¦tirme ...tamam veriyi diske senkronize etme ...tamam

    ¦¦lem ba¦ar²l². Veritaban² sunucusunu a¦a­²daki gibi ba¦latabilirsiniz:

    ^"C^:^/Program^ Files^/frePPLe^ 6^.1^.0^/pgsql^/bin^/pg^_ctl^" -D ^"C^:^\ProgramData^\frePPLe^\6^.1^.0^\database^" -l logfile start

    Copy to C:\ProgramData\frePPLe\6.1.0\database Delete file: C:\Program Files\frePPLe 6.1.0\pgsql\pg_hba.conf Delete file: C:\Program Files\frePPLe 6.1.0\pgsql\pg_ident.conf Delete file: C:\Program Files\frePPLe 6.1.0\pgsql\postgresql.conf sunucunun ba¦lamas² bekleniyor.... tamam sunucu ba¦lat²ld²

    Creating database schema Exception in thread Thread-2: Traceback (most recent call last): File "C:\develop\python36\lib\threading.py", line 916, in _bootstrap_inner File "C:\develop\python36\lib\threading.py", line 864, in run File "C:\develop\python36\lib\subprocess.py", line 1063, in _readerthread File "C:\develop\python36\lib\encodings\cp1254.py", line 23, in decode UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 16: character maps to

    Traceback (most recent call last): File "C:\develop\python36\lib\site-packages\cx_Freeze\initscripts_startup_.py", line 14, in run File "C:\develop\python36\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run File "frepplectl.py", line 108, in File "frepplectl.py", line 43, in main File "C:\Program Files\frePPLe 6.1.0\bin\custom\django_init_.py", line 5, in version = get_version(VERSION) File "C:\Program Files\frePPLe 6.1.0\bin\custom\django\utils\version.py", line 31, in get_version git_changeset = get_git_changeset() File "C:\Program Files\frePPLe 6.1.0\bin\custom\django\utils\version.py", line 85, in get_git_changeset timestamp = git_log.communicate()[0] File "C:\develop\python36\lib\subprocess.py", line 843, in communicate File "C:\develop\python36\lib\subprocess.py", line 1115, in _communicate IndexError: list index out of range x 1 x ERROR CREATING DATABASE SCHEMA!!!

    Review the file 'bin\custom\djangosettings.py' and run 'frepplectl migrate'

    Created uninstaller: C:\Program Files\frePPLe 6.1.0\uninst.exe Completed

    opened by donukzeka 5
  • conversion from int to Duration is ambiguous

    conversion from int to Duration is ambiguous

    make -f Makefile.dist build
    
    ../../include/frepple/utils.h:7953:18: error: conversion from 'int' to
          'frepple::utils::Duration' is ambiguous
            Duration d = 0,
                     ^   ~
    
    opened by wuyazi 5
  • ability to model working hours per operation/resource rather than per location

    ability to model working hours per operation/resource rather than per location

    Currently working hours are associated with a location. Being able to assign different working hours within the same location comes up frequently as a n enhancement request.

    opened by jdetaeye 5
  • Duplicated key importing calendar bucket

    Duplicated key importing calendar bucket

    Doing a post request over api/input/calendarbucket/ with:

    [
    {
    'calendar': 'calendar2', 'value': 1, 
    'startdate': '1971-01-01 00:00:00', 
    'enddate': '2100-12-31 00:00:00', 
    'starttime': '7:00:00', 
    'endtime': '16:00:00',
    'monday': True,
    'tuesday': True,
    'wednesday': True,
    'thursday': True,
    'friday': False,
    'saturday': False,
    'sunday': False}, 
    {
    'calendar': 'calendar2', 'value': 1, 
    'startdate': '1971-01-01 00:00:00', 
    'enddate': '2100-12-31 00:00:00', 
    'starttime': '7:00:00', 
    'endtime': '13:00:00',
    'monday': False,
    'tuesday': False,
    'wednesday': False,
    'thursday': False,
    'friday': True,
    'saturday': False,
    'sunday': False}]
    
    [Fri Dec 02 09:38:38.468378 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] ERROR Internal Server Error: /api/input/calendarbucket/
    [Fri Dec 02 09:38:38.468411 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] Traceback (most recent call last):
    [Fri Dec 02 09:38:38.468416 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/lib/python3/dist-packages/freppledb/common/api/serializers.py", line 93, in create
    [Fri Dec 02 09:38:38.468421 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     instance = self.Meta.model.objects.get_by_natural_key(*key)
    [Fri Dec 02 09:38:38.468425 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/lib/python3/dist-packages/freppledb/input/models.py", line 132, in get_by_natural_key
    [Fri Dec 02 09:38:38.468429 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     priority=priority,
    [Fri Dec 02 09:38:38.468433 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/models/manager.py", line 85, in manager_method
    [Fri Dec 02 09:38:38.468437 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return getattr(self.get_queryset(), name)(*args, **kwargs)
    [Fri Dec 02 09:38:38.468441 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py", line 437, in get
    [Fri Dec 02 09:38:38.468445 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     self.model._meta.object_name
    [Fri Dec 02 09:38:38.468449 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] freppledb.input.models.CalendarBucket.DoesNotExist: CalendarBucket matching query does not exist.
    [Fri Dec 02 09:38:38.468453 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] 
    [Fri Dec 02 09:38:38.468457 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] During handling of the above exception, another exception occurred:
    [Fri Dec 02 09:38:38.468461 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] 
    [Fri Dec 02 09:38:38.468465 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] Traceback (most recent call last):
    [Fri Dec 02 09:38:38.468469 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 84, in _execute
    [Fri Dec 02 09:38:38.468473 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return self.cursor.execute(sql, params)
    [Fri Dec 02 09:38:38.468477 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "calendarbucket_calendar_id_startdate_en_7146ab31_uniq"
    [Fri Dec 02 09:38:38.468490 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] DETAIL:  Key (calendar_id, startdate, enddate, priority)=(calendar2, 1971-01-01 00:00:00+01, 2100-12-31 00:00:00+01, 0) already exists.
    [Fri Dec 02 09:38:38.468494 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] 
    [Fri Dec 02 09:38:38.468497 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] 
    [Fri Dec 02 09:38:38.468500 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] The above exception was the direct cause of the following exception:
    [Fri Dec 02 09:38:38.468504 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] 
    [Fri Dec 02 09:38:38.468507 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] Traceback (most recent call last):
    [Fri Dec 02 09:38:38.468511 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/exception.py", line 47, in inner
    [Fri Dec 02 09:38:38.468514 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     response = get_response(request)
    [Fri Dec 02 09:38:38.468518 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py", line 181, in _get_response
    [Fri Dec 02 09:38:38.468522 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     response = wrapped_callback(request, *callback_args, **callback_kwargs)
    [Fri Dec 02 09:38:38.468525 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    [Fri Dec 02 09:38:38.468529 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return view_func(*args, **kwargs)
    [Fri Dec 02 09:38:38.468532 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/views/generic/base.py", line 70, in view
    [Fri Dec 02 09:38:38.468536 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return self.dispatch(request, *args, **kwargs)
    [Fri Dec 02 09:38:38.468540 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py", line 509, in dispatch
    [Fri Dec 02 09:38:38.468543 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     response = self.handle_exception(exc)
    [Fri Dec 02 09:38:38.468547 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py", line 469, in handle_exception
    [Fri Dec 02 09:38:38.468550 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     self.raise_uncaught_exception(exc)
    [Fri Dec 02 09:38:38.468554 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
    [Fri Dec 02 09:38:38.468557 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     raise exc
    [Fri Dec 02 09:38:38.468561 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py", line 506, in dispatch
    [Fri Dec 02 09:38:38.468565 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     response = handler(request, *args, **kwargs)
    [Fri Dec 02 09:38:38.468568 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/rest_framework_bulk/generics.py", line 137, in post
    [Fri Dec 02 09:38:38.468572 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return self.create(request, *args, **kwargs)
    [Fri Dec 02 09:38:38.468575 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/rest_framework_bulk/drf3/mixins.py", line 34, in create
    [Fri Dec 02 09:38:38.468582 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     self.perform_bulk_create(serializer)
    [Fri Dec 02 09:38:38.468585 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/rest_framework_bulk/drf3/mixins.py", line 38, in perform_bulk_create
    [Fri Dec 02 09:38:38.468589 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return self.perform_create(serializer)
    [Fri Dec 02 09:38:38.468593 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/rest_framework/mixins.py", line 24, in perform_create
    [Fri Dec 02 09:38:38.468596 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     serializer.save()
    [Fri Dec 02 09:38:38.468600 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/rest_framework/serializers.py", line 731, in save
    [Fri Dec 02 09:38:38.468604 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     self.instance = self.create(validated_data)
    [Fri Dec 02 09:38:38.468607 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/rest_framework/serializers.py", line 704, in create
    [Fri Dec 02 09:38:38.468611 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     self.child.create(attrs) for attrs in validated_data
    [Fri Dec 02 09:38:38.468614 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/rest_framework/serializers.py", line 704, in <listcomp>
    [Fri Dec 02 09:38:38.468618 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     self.child.create(attrs) for attrs in validated_data
    [Fri Dec 02 09:38:38.468621 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/lib/python3/dist-packages/freppledb/common/api/serializers.py", line 96, in create
    [Fri Dec 02 09:38:38.468625 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return super().create(validated_data)
    [Fri Dec 02 09:38:38.468629 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/rest_framework/serializers.py", line 962, in create
    [Fri Dec 02 09:38:38.468632 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     instance = ModelClass._default_manager.create(**validated_data)
    [Fri Dec 02 09:38:38.468636 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/models/manager.py", line 85, in manager_method
    [Fri Dec 02 09:38:38.468640 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return getattr(self.get_queryset(), name)(*args, **kwargs)
    [Fri Dec 02 09:38:38.468643 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py", line 453, in create
    [Fri Dec 02 09:38:38.468647 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     obj.save(force_insert=True, using=self.db)
    [Fri Dec 02 09:38:38.468650 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/lib/python3/dist-packages/freppledb/common/models.py", line 285, in save
    [Fri Dec 02 09:38:38.468654 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     super().save(*args, **kwargs)
    [Fri Dec 02 09:38:38.468657 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/models/base.py", line 740, in save
    [Fri Dec 02 09:38:38.468661 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     force_update=force_update, update_fields=update_fields)
    [Fri Dec 02 09:38:38.468667 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/models/base.py", line 778, in save_base
    [Fri Dec 02 09:38:38.468671 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     force_update, using, update_fields,
    [Fri Dec 02 09:38:38.468674 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/models/base.py", line 881, in _save_table
    [Fri Dec 02 09:38:38.468678 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
    [Fri Dec 02 09:38:38.468682 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/models/base.py", line 921, in _do_insert
    [Fri Dec 02 09:38:38.468685 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     using=using, raw=raw,
    [Fri Dec 02 09:38:38.468689 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/models/manager.py", line 85, in manager_method
    [Fri Dec 02 09:38:38.468692 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return getattr(self.get_queryset(), name)(*args, **kwargs)
    [Fri Dec 02 09:38:38.468696 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py", line 1270, in _insert
    [Fri Dec 02 09:38:38.468700 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return query.get_compiler(using=using).execute_sql(returning_fields)
    [Fri Dec 02 09:38:38.468703 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/models/sql/compiler.py", line 1416, in execute_sql
    [Fri Dec 02 09:38:38.468707 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     cursor.execute(sql, params)
    [Fri Dec 02 09:38:38.468711 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 66, in execute
    [Fri Dec 02 09:38:38.468714 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
    [Fri Dec 02 09:38:38.468718 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
    [Fri Dec 02 09:38:38.468722 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return executor(sql, params, many, context)
    [Fri Dec 02 09:38:38.468725 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 84, in _execute
    [Fri Dec 02 09:38:38.468729 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return self.cursor.execute(sql, params)
    [Fri Dec 02 09:38:38.468732 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/utils.py", line 90, in __exit__
    [Fri Dec 02 09:38:38.468736 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     raise dj_exc_value.with_traceback(traceback) from exc_value
    [Fri Dec 02 09:38:38.468739 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]   File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 84, in _execute
    [Fri Dec 02 09:38:38.468743 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394]     return self.cursor.execute(sql, params)
    [Fri Dec 02 09:38:38.468747 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] django.db.utils.IntegrityError: duplicate key value violates unique constraint "calendarbucket_calendar_id_startdate_en_7146ab31_uniq"
    [Fri Dec 02 09:38:38.468755 2022] [wsgi:error] [pid 28:tid 139839258302208] [remote 172.19.0.1:33394] DETAIL:  Key (calendar_id, startdate, enddate, priority)=(calendar2, 1971-01-01 00:00:00+01, 2100-12-31 00:00:00+01, 0) already exists.
    
    

    A get over calendar to confirm that the calendar object is populated:

    [
        {
            "name": "calendar2",
            "description": null,
            "category": null,
            "subcategory": null,
            "defaultvalue": "0.00000000",
            "source": "Tryton",
            "lastmodified": "2022-12-02T09:38:38.129698"
        `}`
    ]
    

    When I do only one bucket it is populated on frepple correctly, when I try to do more fails.

    opened by zipus 1
  • ForeignKeyViolation in operationplanresource_operationplan_id_fkey

    ForeignKeyViolation in operationplanresource_operationplan_id_fkey

    INFO Finished 'Generate supply plan' at 08:10:57 
    
    INFO Start step 400 'Erasing previous plan' at 08:10:57
    INFO Finished 'Erasing previous plan' at 08:10:58 
    
    INFO Start step 401 'Export plan' at 08:10:58
    INFO Start step export2 1 'Exporting resource plans' at 08:10:58
    INFO Start step export1 1 'Exporting operationplans' at 08:10:58
    INFO Finished 'Exporting resource plans' at 08:10:58 
    INFO Start step export2 2 'Exporting problems' at 08:10:58
    INFO Finished 'Exporting problems' at 08:10:58 
    INFO Start step export2 3 'Exporting constraints' at 08:10:58
    INFO Finished 'Exporting constraints' at 08:10:58 
    INFO Finished 'Exporting operationplans' at 08:10:58 
    INFO Start step export1 2 'Exporting operationplan materials' at 08:10:58
    INFO Finished 'Exporting operationplan materials' at 08:10:58 
    INFO Start step export1 3 'Exporting operationplan resources' at 08:10:58
    ERROR Exception caught on thread export1
    Error during planning: insert or update on table "operationplanresource" violates foreign key constraint "operationplanresource_operationplan_id_fkey"
    DETAIL:  Key (operationplan_id)=(47227) is not present in table "operationplan".
    
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/lib/python3/dist-packages/freppledb/common/commands.py", line 546, in <module>
        register.run(database=database)
      File "/usr/lib/python3/dist-packages/freppledb/common/commands.py", line 489, in run
        cls.reg.run(**cls.arguments)
      File "/usr/lib/python3/dist-packages/freppledb/common/commands.py", line 217, in run
        step.run(**PlanTaskRegistry.getArguments())
      File "/usr/lib/python3/dist-packages/freppledb/common/commands.py", line 336, in run
        raise t.exception
      File "/usr/lib/python3/dist-packages/freppledb/common/commands.py", line 298, in run
        self.seq.run(**self.kwargs)
      File "/usr/lib/python3/dist-packages/freppledb/common/commands.py", line 217, in run
        step.run(**PlanTaskRegistry.getArguments())
      File "/usr/lib/python3/dist-packages/freppledb/output/commands.py", line 1178, in run
        sep="\v",
    psycopg2.errors.ForeignKeyViolation: insert or update on table "operationplanresource" violates foreign key constraint "operationplanresource_operationplan_id_fkey"
    DETAIL:  Key (operationplan_id)=(47227) is not present in table "operationplan".
    
    Error: Error executing Python command
    
    opened by zipus 0
  • Review permissions for adding comments

    Review permissions for adding comments

    Discussed in https://github.com/frePPLe/frepple/discussions/521

    Current implementation of permissions for commenting isn't good enough, and needs to be reviewed

    opened by jdetaeye 0
  • solver bug - evaluation of alternate resources at incorrect dates

    solver bug - evaluation of alternate resources at incorrect dates

    Discussed in https://github.com/frePPLe/frepple/discussions/493

    Originally posted by tjheiska February 11, 2022 Hello,

    In attached example data I have two sales orders that are both going to be late. The one with higher priority is started as early as possible, but the second one is not. Any idea what am I doing wrong with modeling as there should be plenty of resources left?

    frepple-20220211055538.log frepple (3).xlsx)

    opened by jdetaeye 4
  • Problem with planning operations confirmed in past

    Problem with planning operations confirmed in past

    Hello, as we discussed yesterday, we have problem with routing operations planned in past in case there is one of the suboperations confirmed. If date of all operations is in past and status of one of the operations in routing is confirmed (others are proposed) obrazek

    than after replanning, new operation is created,and the old one is disconnected from Demand. Date of all operations is shift to future. obrazek

    In case all operations are in past, status of one of the suboperations is confirmed and routing operation is approved obrazek

    than after replanning are all operations disconnected from demand and they are planned again in future obrazek

    opened by petrakozielova 3
  • Lack of documentation and guide for Frepple integration

    Lack of documentation and guide for Frepple integration

    Is that possible to provide guide on the ERP generic integration via video or with image? The documentation is quite outdated in my opinion and there are not much guide I can found online.

    Regarding the REST API integration, the only documentation that I could found is on the webserver "REST API help" itself. However, the step is too ambiguos and it is not clear on how we can utilise the REST API in another 3rd party software.

    opened by Drayang 1
Releases(7.0.0)
  • 7.0.0(Nov 18, 2022)

  • 6.25.0(Sep 16, 2022)

  • 6.24.0(Jul 29, 2022)

  • 6.23.0(Jun 8, 2022)

  • 6.22.0(May 6, 2022)

  • 6.21.0(Mar 25, 2022)

  • 6.20.2(Feb 18, 2022)

  • 6.20.1(Feb 11, 2022)

  • 6.20.0(Jan 22, 2022)

  • 6.19.0(Dec 1, 2021)

  • 6.18.0(Nov 5, 2021)

  • 6.17.1(Oct 10, 2021)

  • 6.17.0(Oct 9, 2021)

  • 6.16.0(Aug 20, 2021)

  • 6.15.0(Jul 2, 2021)

    File | Description
    --- | ------------ frepple-6.15.0-doc.tgz | Documentation frePPLe_6.15.0_setup.exe | 64-bit Windows installer ubuntu18-frepple-6.15.0.deb | Installer for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-doc-6.15.0.tgz(22.94 MB)
    frePPLe_6.15.0_setup.exe(65.81 MB)
    ubuntu18-frepple-6.15.0.deb(24.13 MB)
  • 6.14.0(May 29, 2021)

    File | Description
    --- | ------------ frepple-6.14.0-doc.tgz | Documentation frePPLe_6.14.0_setup.exe | 64-bit Windows installer ubuntu18-frepple-6.14.0.deb | Installer for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-doc-6.14.0.tgz(22.93 MB)
    frePPLe_6.14.0_setup.exe(65.76 MB)
    ubuntu18-frepple-6.14.0.deb(24.12 MB)
  • 6.13.0(Apr 20, 2021)

    File | Description
    --- | ------------ frepple-6.13.0-doc.tgz | Documentation frePPLe_6.13.0_setup.exe | 64-bit Windows installer ubuntu18-frepple-6.13.0.deb | Installer for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-doc-6.13.0.tgz(22.86 MB)
    frePPLe_6.13.0_setup.exe(65.22 MB)
    ubuntu18-frepple-6.13.0.deb(23.96 MB)
  • 6.12.0(Mar 1, 2021)

    File | Description
    --- | ------------ frepple-6.12.0-doc.tgz | Documentation frePPLe_6.12.0_setup.exe | 64-bit Windows installer ubuntu18-frepple-6.12.0.deb | Installer for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-doc-6.12.0.tgz(22.94 MB)
    frePPLe_6.12.0_setup.exe(65.23 MB)
    ubuntu18-frepple-6.12.0.deb(23.88 MB)
  • 6.11.0(Jan 24, 2021)

    File | Description
    --- | ------------ frepple-6.11.0-doc.tgz | Documentation frePPLe_6.11.0_setup.exe | 64-bit Windows installer ubuntu18-frepple-6.11.0.deb | Installer for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-6.11.0-doc.tgz(16.50 MB)
    frePPLe_6.11.0_setup.exe(62.82 MB)
    ubuntu18-frepple-6.11.0.deb(23.84 MB)
  • 6.10.0(Dec 6, 2020)

    File | Description
    --- | ------------ frepple-6.10.0-doc.tgz | Documentation frePPLe_6.10.0_setup.exe | 64-bit Windows installer frepple_6.10.0_linux_debian.tgz | Source packages for Linux Debian-based distributions and binaries for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-6.10.0-doc.tgz(16.24 MB)
    frepple_6.10.0_linux_debian.tgz(60.84 MB)
    frePPLe_6.10.0_setup.exe(62.75 MB)
  • 6.9.0(Nov 7, 2020)

    File | Description
    --- | ------------ frepple-6.9.0-doc.zip | Documentation frePPLe_6.9.0_setup.exe | 64-bit Windows installer frepple_6.9.0_linux_debian.tgz | Source packages for Linux Debian-based distributions and binaries for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-6.9.0-doc.tgz(16.25 MB)
    frepple_6.9.0_linux_debian.tgz(60.52 MB)
    frePPLe_6.9.0_setup.exe(60.80 MB)
  • 6.8.0(Oct 3, 2020)

    File | Description
    --- | ------------ frepple-6.8.0-doc.zip | Documentation frePPLe_6.8.0_setup.exe | 64-bit Windows installer frepple_6.8.0_linux_debian.tgz | Source packages for Linux Debian-based distributions and binaries for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-6.8.0-doc.tgz(16.24 MB)
    frepple_6.8.0_linux_debian.tgz(51.97 MB)
    frePPLe_6.8.0_setup.exe(58.56 MB)
  • 6.7.0(Aug 29, 2020)

    File | Description
    --- | ------------ frepple-6.7.0-doc.zip | Documentation frePPLe_6.7.0_setup.exe | 64-bit Windows installer frepple_6.7.0_linux_debian.tgz | Source packages for Linux Debian-based distributions and binaries for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-6.7.0-doc.zip(16.11 MB)
    frepple_6.7.0_linux_debian.tgz(51.47 MB)
    frePPLe_6.7.0_setup.exe(57.95 MB)
  • 6.6.0(Jun 19, 2020)

    File | Description
    --- | ------------ frepple-6.6.0-doc.zip | Documentation frePPLe_6.6.0_setup.exe | 64-bit Windows installer frepple_6.6.0_linux_debian.tgz | Source packages for Linux Debian-based distributions and binaries for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-6.6.0-doc.tgz(15.16 MB)
    frepple_6.6.0_linux_debian.tgz(50.90 MB)
    frePPLe_6.6.0_setup.exe(57.37 MB)
  • 6.5.0(May 16, 2020)

    File | Description
    --- | ------------ frepple-6.5.0-doc.zip | Documentation frePPLe_6.5.0_setup.exe | 64-bit Windows installer frepple_6.5.0_linux_debian.tgz | Source packages for Linux Debian-based distributions and binaries for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-6.5.0-doc.tgz(15.07 MB)
    frepple_6.5.0_linux_debian.tgz(50.54 MB)
    frePPLe_6.5.0_setup.exe(57.28 MB)
  • 6.4.0(Feb 28, 2020)

    File | Description
    --- | ------------ frepple-6.4.0-doc.zip | Documentation frePPLe_6.4.0_setup.exe | 64-bit Windows installer frepple_6.4.0_linux_debian.tgz | Source packages for Linux Debian-based distributions and binaries for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-6.4.0-doc.tgz(15.03 MB)
    frepple_6.4.0_linux_debian.tgz(49.57 MB)
    frePPLe_6.4.0_setup.exe(57.13 MB)
  • 6.3.0(Jan 17, 2020)

    File | Description
    --- | ------------ frepple-6.3.0-doc.zip | Documentation frePPLe_6.3.0_setup.exe | 64-bit Windows installer frepple_6.3.0_linux_debian.tgz | Source packages for Linux Debian-based distributions and binaries for Ubuntu 18.04 LTS Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes are available on https://frepple.org/docs/current/release-notes.html

    Source code(tar.gz)
    Source code(zip)
    frepple-6.3.0-doc.zip(12.44 MB)
    frepple_6.3.0_linux_debian.tgz(38.63 MB)
    frePPLe_6.3.0_setup.exe(53.89 MB)
  • 6.2.0(Nov 30, 2019)

    File | Description
    --- | ------------ frePPLe_6.2.0_setup.exe | 64-bit Windows installer frepple_6.2.0_linux_debian.tgz | Source packages for Linux Debian-based distributions and binaries for Ubuntu 18.04 LTS frepple-6.2.0-doc.tgz | Documentation
    Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes

    Production planning

    • Currentdate parameter now accepts most known formats to represent a date and/or time.

    User interface

    • The last-modified fields and the task execution dates are now shown in the local timezone of your browser. For on-premise installations this doesn't change anything. However, our cloud customers across the world will be happy to better recognize the timestamps.

    • Ability to filter on json fields such as the "Demands" field of manufacturing/distribution/purchase orders table.

    • When exporting Excel files, read-only fields are now visually identifiable in the header row. A color and comment distinguish read-only fields from fields that can be updated when uploading the data file.

    Integration

    • Export of duration fields will not be in seconds anymore but will use same format used in the tool: "DD HH:MM:SS". This change is effective for both csv and Excel exports.

    Development

    • New mechanism to build Linux packages. The new, docker-based process makes supporting multiple linux distributions much easier.

    Security

    • A vulnerability in the django web application framework was identified and corrected. The password reset form could be tricked to send the new password to a wrong email address. The same patch can be applied to earlier releases. Contact us if you need help for this. See https://www.djangoproject.com/weblog/2019/dec/18/security-releases/ for full details. By default frePPLe doesn't configure an SMTP mail server. The password reset functionality isn't active then, and you are NOT impacted by this issue.
    Source code(tar.gz)
    Source code(zip)
    frepple-6.2.0-doc.tgz(12.15 MB)
    frepple_6.2.0_linux_debian.tgz(38.71 MB)
    frePPLe_6.2.0_setup.exe(54.18 MB)
  • 6.1.0(Sep 17, 2019)

    File | Description
    --- | ------------ frePPLe_6.1.0_setup.exe | 64-bit Windows installer frepple_6.1.0_linux_debian.tgz | Source packages for Linux Debian-based distributions and binaries for Ubuntu 18.04 LTS frepple-6.1.0-doc.tar.gz | Documentation
    Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes

    Production planning

    • Bug fixes in the solver algorithm when using alternate materials.

    • Bug fixes in the solver algorithm when using post-operation times at many places in the supply path.

    • The demand Gantt report got a long overdue refreshed look and now displays more information.

    User interface

    • Filter arguments are now trimmed to provide a more intuitive filtering. The invisible leading or trailing whitespace lead to confusion and mistakes. On the other hand, if you were filtering on purpose with such whitespace: this is no longer possible.

    • Support for user-defined attributes on purchase orders, manufacturing orders and distribution orders.

    • Bug fix: The user permissions "can copy a scenario" and "can release a scenario" were not working properly.

    • Enhancement of the supply path to draw cases where producing operation materials record is missing (produced item declared at operation level) or produced item is only declared at routing level.

    Integration

    • Renamed the command "create_database" to "createdatabase" for consistency with the other commands.

    • Bug fix: remote execution API failure on scenarios

    • Various fixes to the connector for Odoo 12.

    Development

    • A new screen allows to execute SQL commands on the database. This new app is only intended to facilitate development and testing, and shouldn't be activated in production environments.
    Source code(tar.gz)
    Source code(zip)
    frepple-6.1.0-doc.tgz(12.15 MB)
    frepple_6.1.0_linux_debian.tgz(38.66 MB)
    frePPLe_6.1.0_setup.exe(54.17 MB)
  • 6.0.0(Jul 9, 2019)

    File | Description
    --- | ------------ frePPLe_6.0.0_setup.exe | 64-bit Windows installer frepple_6.0.0_linux_debian.tgz | Source packages for linux debian-based distributions and binaries for Ubuntu 18.04 LTS frepple-6.0.0-doc.tar.gz | Documentation
    Source code (zip) | Source code in zip format Source code (tar.gz) | Source code in gzip compressed tar format

    Release notes

    Production planning

    • The name column in the buffer table is removed. The item and location fields are what uniquely defines a buffer. This data model simplification makes data interfaces simpler and more robust.

    • Data model simplification: The suboperation table is now deprecated. All data it contained can now be stored in the operation table. This data model simplification makes development of data interfaces easier.

    • The default minimum shipment for a demand is changed from "round_down(quantity / 10)" to "round_up(quantity / 10)". This provides a better default for planning very slow moving forecasts.

    • The resource type 'infinite' is now deprecated. It is replaced by a new field 'constrained' on resource. This approach allows easier activation and deactivation of certain resources as constraints during planning.

    • When generating a constrained plan, the material constraint has been removed. It didn't really have any impact on the plan algorithm. The constraints actually used by the planning engine are capacity, lead time and the operation time fence.

    • Improvements to the solver algorithm for bucketized resources and time-per operations. The improvements provide a more realistic plan when manufacturing orders span across multiple capacity buckets.

    • Performance improvements in the evaluation of setup matrices.

    • Bug fixes and improved log messages in the propagation of work-in-progress status information.

    User interface

    • Bug fix: When uploading a Purchase/Distribution/Manufacturing orders file with the "First delete all existing records AND ALL RELATED TABLES" selected, all purchase, manufacturing and distribution records were deleted.

    • Addition of the duration, net duration and setups fields in the manufacturing order screen.

    • Addition of Hebrew translations, contributed by https://www.minet.co.il/ Many thanks!

    • Give a warning when users try to upload spreadsheets in the (very) old .XLS Excel format instead of the new .XLSX spreadsheet format.

    • Performance improvement for the "supply path" and "where used" reports for complex and deep bill of materials.

    Integration

    • The REST API for manufacturing orders now returns the resources and materials it uses. Updated resources and materials can also written back with API.

    • Added support for integration with Odoo 12.

    Third party components

    • The third party components we depend on have been upgraded to new releases. Most notably upgrades are postgres 11 and django 2.2. Postgres 10 remains supported, so upgrading your database isn't a must for installing this release. When upgrading a linux installation from a previous release, use the following command to upgrade the Python packages. On Windows the new packages are part of the installer.

          sudo -H pip install --force-reinstall https://raw.githubusercontent.com/frepple/frepple/6.0.0/requirements.txt
      
    • Support for running in Python virtualenv environments.

    Documentation

    • Addition of "cookbook" example models on the following functionalities: alternate resources, resource efficiency.
    Source code(tar.gz)
    Source code(zip)
    frepple-6.0.0-doc.tgz(11.92 MB)
    frepple_6.0.0_linux_debian.tgz(38.15 MB)
    frePPLe_6.0.0_setup.exe(53.59 MB)
Parameterising Simulated Annealing for the Travelling Salesman Problem

Parameterising Simulated Annealing for the Travelling Salesman Problem Abstract The Travelling Salesman Problem is a well known NP-Hard problem. Given

Gary Sun 55 Jun 15, 2022
Wordle-solver - A program that solves a Wordle using a simple algorithm

Wordle Solver A program that solves a Wordle using a simple algorithm. To see it

Luc Bouchard 3 Feb 13, 2022
A Python implementation of Jerome Friedman's Multivariate Adaptive Regression Splines

py-earth A Python implementation of Jerome Friedman's Multivariate Adaptive Regression Splines algorithm, in the style of scikit-learn. The py-earth p

431 Dec 15, 2022
A Python program to easily solve the n-queens problem using min-conflicts algorithm

QueensProblem A program to easily solve the n-queens problem using min-conflicts algorithm Performances estimated with a sample of 1000 different rand

0 Oct 21, 2022
This repository is an individual project made at BME with the topic of self-driving car simulator and control algorithm.

BME individual project - NEAT based self-driving car This repository is an individual project made at BME with the topic of self-driving car simulator

NGO ANH TUAN 1 Dec 13, 2021
8 Puzzle with A* , Greedy & BFS Search in Python

8_Puzzle 8 Puzzle with A* , Greedy & BFS Search in Python Python Install Python from here. Pip Install pip from here. How to run? 🚀 Install 8_Puzzle

I3L4CK H4CK3l2 1 Jan 30, 2022
This repository explores an implementation of Grover's Algorithm for knights on a chessboard.

Grover Knights Welcome to my Knights project! Project Description: I explore an implementation of a quantum oracle for knights on a chessboard.

Will Sun 8 Feb 22, 2022
Visualisation for sorting algorithms. Version 2.0

Visualisation for sorting algorithms v2. Upped a notch from version 1. This program provides animates simple, common and popular sorting algorithms, t

Ben Woo 7 Nov 08, 2022
A pure Python implementation of a mixed effects random forest (MERF) algorithm

Mixed Effects Random Forest This repository contains a pure Python implementation of a mixed effects random forest (MERF) algorithm. It can be used, o

Manifold 199 Dec 06, 2022
Using A * search algorithm and GBFS search algorithm to solve the Romanian problem

Romanian-problem-using-Astar-and-GBFS Using A * search algorithm and GBFS search algorithm to solve the Romanian problem Romanian problem: The agent i

Mahdi Hassanzadeh 6 Nov 22, 2022
A command line tool for memorizing algorithms in Python by typing them.

Algo Drills A command line tool for memorizing algorithms in Python by typing them. In alpha and things will change. How it works Type out an algorith

Travis Jungroth 43 Dec 02, 2022
A litle algorithm that i made for transform a picture in a spreadsheet.

PicsToSheets How it works? It is an algorithm designed to transform an image into a spreadsheet file. this converts image pixels to color cells of she

Guilherme de Oliveira 1 Nov 12, 2021
Minimal examples of data structures and algorithms in Python

Pythonic Data Structures and Algorithms Minimal and clean example implementations of data structures and algorithms in Python 3. Contributing Thanks f

Keon 22k Jan 09, 2023
Genetic algorithms are heuristic search algorithms inspired by the process that supports the evolution of life.

Genetic algorithms are heuristic search algorithms inspired by the process that supports the evolution of life. The algorithm is designed to replicate the natural selection process to carry generatio

Mahdi Hassanzadeh 4 Dec 24, 2022
🌟 Python algorithm team note for programming competition or coding test

🌟 Python algorithm team note for programming competition or coding test

Seung Hoon Lee 3 Feb 25, 2022
Esse repositório tem como finalidade expor os trabalhos feitos para disciplina de Algoritmos computacionais e estruturais do CEFET-RJ no ano letivo de 2021.

Exercícios de Python 🐍 Esse repositório tem como finalidade expor os trabalhos feitos para disciplina de Algoritmos computacionais e estruturais do C

Rafaela Bezerra de Figueiredo 1 Nov 20, 2021
Optimal skincare partition finder using graph theory

Pigment The problem of partitioning up a skincare regime into parts such that each part does not interfere with itself is equivalent to the minimal cl

Jason Nguyen 1 Nov 22, 2021
PathPlanning - Common used path planning algorithms with animations.

Overview This repository implements some common path planning algorithms used in robotics, including Search-based algorithms and Sampling-based algori

Huiming Zhou 5.1k Jan 08, 2023
Zipline, a Pythonic Algorithmic Trading Library

Zipline, a Pythonic Algorithmic Trading Library

Stefan Jansen 463 Jan 08, 2023
Policy Gradient Algorithms (One Step Actor Critic & PPO) from scratch using Numpy

Policy Gradient Algorithms From Scratch (NumPy) This repository showcases two policy gradient algorithms (One Step Actor Critic and Proximal Policy Op

1 Jan 17, 2022