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)
Genetic algorithm which evolves aoe2 DE ai scripts

AlphaScripter Use the power of genetic algorithms to evolve AI scripts for Age of Empires II : Definitive Edition. For now this package runs in AOC Us

6 Nov 04, 2022
An NUS timetable generator which uses a genetic algorithm to optimise timetables to suit the needs of NUS students.

A timetable optimiser for NUS which uses an evolutionary algorithm to "breed" a timetable suited to your needs.

Nicholas Lee 3 Jan 09, 2022
ROS Basics and TurtleSim

Homework 1: Turtle Control Package Anna Garverick This package draws given waypoints, then waits for a service call with a start position to send the

Anna Garverick 1 Nov 22, 2021
This repository is not maintained

This repository is no longer maintained, but is being kept around for educational purposes. If you want a more complete algorithms repo check out: htt

Nic Young 2.8k Dec 30, 2022
This repository provides some codes to demonstrate several variants of Markov-Chain-Monte-Carlo (MCMC) Algorithms.

Demo-of-MCMC These files are based on the class materials of AEROSP 567 taught by Prof. Alex Gorodetsky at University of Michigan. Author: Hung-Hsiang

Sean 1 Feb 05, 2022
A raw implementation of the nearest insertion algorithm to resolve TSP problems in a TXT format.

TSP-Nearest-Insertion A raw implementation of the nearest insertion algorithm to resolve TSP problems in a TXT format. Instructions Load a txt file wi

sjas_Phantom 1 Dec 02, 2021
marching Squares algorithm in python with clean code.

Marching Squares marching Squares algorithm in python with clean code. Tools Python 3 EasyDraw Creators Mohammad Dori Run the Code Installation Requir

Mohammad Dori 3 Jul 15, 2022
Given a list of tickers, this algorithm generates a recommended portfolio for high-risk investors.

RiskyPortfolioGenerator Given a list of tickers, this algorithm generates a recommended portfolio for high-risk investors. Working in a group, we crea

Victoria Zhao 2 Jan 13, 2022
Our implementation of Gillespie's Stochastic Simulation Algorithm (SSA)

SSA Our implementation of Gillespie's Stochastic Simulation Algorithm (SSA) Requirements python =3.7 numpy pandas matplotlib pyyaml Command line usag

Anoop Lab 1 Jan 27, 2022
causal-learn: Causal Discovery for Python

causal-learn: Causal Discovery for Python Causal-learn is a python package for causal discovery that implements both classical and state-of-the-art ca

589 Dec 29, 2022
Rover. Finding the shortest pass by Dijkstra’s shortest path algorithm

rover Rover. Finding the shortest path by Dijkstra’s shortest path algorithm Задача Вы — инженер, проектирующий роверы-беспилотники. Вам надо спроекти

1 Nov 11, 2021
sudoku solver using CSP forward-tracking algorithms.

Sudoku sudoku solver using CSP forward-tracking algorithms. Description Sudoku is a logic-based game that consists of 9 3x3 grids that create one larg

Cindy 0 Dec 27, 2021
A calculator to test numbers against the collatz conjecture

The Collatz Calculator This is an algorithm custom built by Kyle Dickey, used to test numbers against the simple rules of the Collatz Conjecture. Get

Kyle Dickey 2 Jun 14, 2022
8-puzzle-solver with UCS, ILS, IDA* algorithm

Eight Puzzle 8-puzzle-solver with UCS, ILS, IDA* algorithm pre-usage requirements python3 python3-pip virtualenv prepare enviroment virtualenv -p pyth

Mohsen Arzani 4 Sep 22, 2021
Sign data using symmetric-key algorithm encryption.

Sign data using symmetric-key algorithm encryption. Validate signed data and identify possible validation errors. Uses sha-(1, 224, 256, 385 and 512)/hmac for signature encryption. Custom hash algori

Artur Barseghyan 39 Jun 10, 2022
Implementation of an ordered dithering algorithm used in computer graphics

Ordered Dithering Project In this project, we use an ordered dithering method to turn an RGB image, first to a gray scale image and then, turn the gra

1 Oct 26, 2021
Python sample codes for robotics algorithms.

PythonRobotics Python codes for robotics algorithm. Table of Contents What is this? Requirements Documentation How to use Localization Extended Kalman

Atsushi Sakai 17.2k Jan 01, 2023
A collection of Python Scripts made for fun, while exploring Python 🐍

JFF-Python-Scripts A collection of Python Scripts made for fun, while exploring Python 🐍 Inspiration 💡 Many of the programs in this repository are i

Pushkar Patel 16 Oct 07, 2022
Planning Algorithms in AI and Robotics. MSc course at Skoltech Data Science program

Planning Algorithms in AI and Robotics course T2 2021-22 The Planning Algorithms in AI and Robotics course at Skoltech, MS in Data Science, during T2,

Mobile Robotics Lab. at Skoltech 6 Sep 21, 2022
There are some basic arithmatic in Pattern Recognization and Machine Learning writed in Python in this repository

There are some basic arithmatic in Pattern Recognization and Machine Learning writed in Python in this repository

1 Nov 19, 2021