Giter VIP home page Giter VIP logo

frepple's Introduction

Continous integration

frePPLe

Open source supply chain planning

FrePPLe is an easy-to-use and easy-to-implement open source demand forecasting and 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 time series forecasting algorithms to analyze the sales history and compute the forecasted sales for the future.

FrePPLe implements production planning and scheduling algorithms 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 MIT licence.

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.

frepple's People

Contributors

albertca avatar annisapci avatar businesstec avatar dependabot[bot] avatar hichamlahlou avatar jdetaeye avatar jemoreira avatar keiichiroy avatar kobsam avatar kunesj avatar lucagez avatar mat02 avatar olaf-wagner avatar robinhli avatar sbadux avatar tjheiska avatar tortest2 avatar zipus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

frepple's Issues

Improve planning of buffers for safety stock & initial infeasibilities

Safety stock and initial infeasibilities of the buffer plan are now solved as part of loop that is planning the demands.
It is better to:

  • solve & propagate the initial feasibilities of the plan (caused by locked operationplans) before planning any demand, ie give it highest priority
  • add a final safety stock planning loop for all buffers after planning all demands. Not all buffers with safety stock levels defined may be visited in the demand planning loop.

Improved demand minshipment and maxlateness handling

Currently we can set a minimum shipment size. If we additionally provide the capability to specify the shipment multiple, we can better control the delivery schedule.
(As a workaround you can specify a multiple on the delivery operation)

The maximum lateness is limit at which we reject replies. The algorithm never checks how much we could actually deliver with a delay that is exactly matching the allowed lateness.

Broken image link and 500 error from /demandpegging URL

Beta 2.2 downloaded 2014-09-01

To produce the bug

  1. From cockpit, click a link for a missing sale order (e.g. http://172.16.2.39:8000/demandpegging/XXX/ )
  2. A Server Error 500 page appears but the SVG link is broken:
    http://172.16.2.39:8000/demandpegging/XXX/img/frepple.svg

Expected:

  1. frepple.svg is found and displayed
  2. No server error 500 should be displayed - a user friendly message is required.

Note we've purposely used a URL above to display the error message screen. A different report will be logged as what we think are valid SO are also showing this error page.

Plan update and status progress

Freeple is a very good planning system, with very simple and intuitive interface, but is missing the plan status update feature based on real data buffer status.
Could be a good improvement to have possibility to update the buffers for a released plan and review the plan if is still on time or there is some delay based on new buffer status
Otpimal is to color the plan with % of progress with respect with the plan

Resource with bucketized capacity

FrePPLe's resources represent capacity as continuous.

For master planning models, it is more common to model capacity (or raw material supply) per time bucket. As long as the total bucket is not overloaded the plan is feasible.

Requires an new resource subclass and appropriate solver logic.

Mass edit capability in input tables

Eg: set the field x to value y for all currently filtered records.
Eg: increase the field x by y% for all currently filtered records.

Workaround is currently to export as an excel spreadsheet, do magic in excel and import back. Not too bad...

Package for installation on mac / Apple

Mac users have to follow the Linux instructions now, and compile te application themselves.
It'ld be nice to have a proper, fast&easy installation process for the mac.

Operation-2-operation dependencies

In some models we need to introduce a dummy buffer between operations.
For such models, a new modelling construct to directly define a dependency between operations will be cleaner and more efficient. A bit similar to task dependencies you define in a project management tool...

Operation model by product

Actually model needs to duplicate operations, even if the operation is the same for Product A and Product B. Production operations are tipically commen to many products, what could change are the quantity, loads, duration etc..
Moving the process parametes to the Product Model will help a lot on maintainance when more and more products are added to the system

Support Python 3

Django now supports Python 3, and new Linux distributions are about to make Python 3 the default Python version. It makes sense also for frePPLe to migrate to Python 3.

RHEL and Ubuntu LTS will lag in their adoption of Python 3, so we must be sure not to rush things either...

Improved breadcrumbs

  • ability to walk backward and forward in the history
  • preserve filters and ordering
  • visually cleaner layout

Visual supply chain editor

Current graph is read-only.
Ideally it can supports easy editing of all objects in the chain, and the ability to add or remove entities in the chain.

Beta2.2 - 'Settings' object has no attribute 'DEFAULT_DASHBOARD'

Error after logging in as admin on fresh build of Beta2.2 downloaded 2014-12-02
(Built with ./configure --disable-lp_solver)

Environment:
Ubuntu 14.04.1 LTS
64-bit

Request Method: GET
Request URL: http://localhost:8000/admin/

Django Version: 1.6
Python Version: 2.7.6
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.admin',
'django.contrib.messages',
'django.contrib.staticfiles',
'freppledb.input',
'freppledb.output',
'freppledb.execute',
'freppledb.common')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'freppledb.common.middleware.LocaleMiddleware',
'freppledb.common.middleware.DatabaseSelectionMiddleware',
'django.middleware.common.CommonMiddleware')

$ frepplectl runserver
Validating models...

0 errors found
December 02, 2014 - 18:33:31
Django version 1.6, using settings 'freppledb.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[02/Dec/2014 18:33:41] "GET / HTTP/1.1" 301 0
[02/Dec/2014 18:33:41] "GET /admin/ HTTP/1.1" 200 3208
[02/Dec/2014 18:33:41] "GET /data/jsi18n/ HTTP/1.1" 200 3220
[02/Dec/2014 18:33:41] "GET /static/css/sunny/jquery-ui.min.css HTTP/1.1" 200 27045
[02/Dec/2014 18:33:41] "GET /static/js/jquery-ui-1.10.4.min.js HTTP/1.1" 200 228539
[02/Dec/2014 18:33:41] "GET /static/js/i18n/jquery.ui.datepicker-en.js HTTP/1.1" 200 874
[02/Dec/2014 18:33:41] "GET /static/css/font-awesome.min.css HTTP/1.1" 200 20766
[02/Dec/2014 18:33:41] "GET /static/js/jquery-1.11.0.min.js HTTP/1.1" 200 96381
[02/Dec/2014 18:33:41] "GET /static/js/i18n/grid.locale-en.js HTTP/1.1" 200 6612
[02/Dec/2014 18:33:41] "GET /static/img/frepple.svg HTTP/1.1" 200 6009
[02/Dec/2014 18:33:41] "GET /static/css/ui.jqgrid.css HTTP/1.1" 200 12642
[02/Dec/2014 18:33:41] "GET /static/css/frepple.css HTTP/1.1" 200 9065
[02/Dec/2014 18:33:41] "GET /static/js/jquery.jqGrid.min.js HTTP/1.1" 200 260457
[02/Dec/2014 18:33:41] "GET /static/js/frepple.js HTTP/1.1" 200 55503
[02/Dec/2014 18:33:41] "GET /static/favicon.ico HTTP/1.1" 200 36220
[02/Dec/2014 18:33:45] "POST /admin/ HTTP/1.1" 302 0
ERROR Internal Server Error: /admin/
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 139, in get_response
response = response.render()
File "/usr/local/lib/python2.7/dist-packages/django/template/response.py", line 105, in render
self.content = self.rendered_content
File "/usr/local/lib/python2.7/dist-packages/django/template/response.py", line 82, in rendered_content
content = template.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 140, in render
return self._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", line 123, in render
return compiled_parent._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", line 123, in render
return compiled_parent._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", line 123, in render
return compiled_parent._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", line 62, in render
result = block.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py", line 78, in render_node
return node.render(context)
File "/usr/local/lib/python2.7/dist-packages/freppledb/common/templatetags/base_utils.py", line 406, in render
context[self.varname] = [ {'width': i['width'], 'widgets': [ regj[0] for j in i['widgets'] if reg[j[0]].has_permission(req.user)]} for i in settings.DEFAULT_DASHBOARD ]
File "/usr/local/lib/python2.7/dist-packages/django/conf/init.py", line 55, in getattr
return getattr(self._wrapped, name)
AttributeError: 'Settings' object has no attribute 'DEFAULT_DASHBOARD'

Odoo connection: upgrade to v10

Following issues are still open on the connector for v9:

  • frepple addon logo not displayed - DONE
  • mapping of suppliers and supplied items is not up to date (migrated version of the connector was apparantly not the latest + mapping needs to change to account for the new supplier model in frePPLe v3) DONE
  • mapping of resources in a routing. Looks like this is also not fully correct in the connector of v7.
  • support wo+mo mapping
  • mapping of sales orders without auxilary operations DONE
  • single-signon - DONE
  • CRSF protection on post - DONE
  • update mapping documentation

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

Frepplectl help message needs updated

Help message in frepplectl shows outdated command(s), e.g. sqlinitialdata
Please remove outdated commands or mark them as obsolete/replaced.

$ frepplectl help
Usage: frepplectl subcommand [options] [args]

Options:
-v VERBOSITY, --verbosity=VERBOSITY
Verbosity level; 0=minimal output, 1=normal output,
2=verbose output, 3=very verbose output
--settings=SETTINGS The Python path to a settings module, e.g.
"myproject.settings.main". If this isn't provided, the
DJANGO_SETTINGS_MODULE environment variable will be
used.
--pythonpath=PYTHONPATH
A directory to add to the Python path, e.g.
"/home/djangoprojects/myproject".
--traceback Raise on exception
--version show program's version number and exit
-h, --help show this help message and exit

Type 'frepplectl help ' for help on a specific subcommand.

Available subcommands:

[auth]
changepassword
createsuperuser

[django]
check
cleanup
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
runfcgi
shell
sql
sqlall
sqlclear
sqlcustom
sqldropindexes
sqlflush
sqlindexes
sqlinitialdata
sqlsequencereset
startapp
startproject
syncdb
test
testserver
validate

[execute]
frepple_backup
frepple_copy
frepple_createbuckets
frepple_createmodel
frepple_dotgraph
frepple_flush
frepple_loadxml
frepple_restore
frepple_run
frepple_runserver
frepple_runworker

[staticfiles]
collectstatic
findstatic
runserver

$ frepplectl sqlinitialdata
CommandError: This command has been renamed. Use the 'sqlcustom' command instead.

$ frepplectl --version
1.6
(Github pull from 2014-08-28)

Temporary buffer

Actual model request to have of Item for each Buffer, even if the Item is internal product only (ie: not a selling product)
A better approach could be to have internal buffer not necessary linked to an Item, this also will simplify a lot the maintainance in case of long production flows and many products. The buffer is necessary to link operations in a flow, so that the inventory still there, but is not request to manually create items just to create buffers

Build errors 2.2beta

Getting build errors on frepple-2.2.beta downloaded 2014-12-02.

Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
64-bit

make[3]: Entering directory `/home/jbradshaw/frepple/frepple-2.2.beta/modules/lp_solver'
/bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT lpsolver.lo -MD -MP -MF .deps/lpsolver.Tpo -c -o lpsolver.lo lpsolver.cpp
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT lpsolver.lo -MD -MP -MF .deps/lpsolver.Tpo -c lpsolver.cpp -fPIC -DPIC -o .libs/lpsolver.o
In file included from lpsolver.cpp:21:0:
lpsolver.h:171:5: error: 'LPX' does not name a type
LPX* lp;
^


Full log for ./configure and "make":

~/frepple/frepple-2.2.beta$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '1000' is supported by ustar format... yes
checking whether GID '1000' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define EXTENSIONS... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @file support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether make sets $(MAKE)... (cached) yes
checking for glpsol... true
checking for dot... YES
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for ANSI C header files... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking perl.h usability... no
checking perl.h presence... no
checking for perl.h... no
checking python.h usability... no
checking python.h presence... no
checking for python.h... no
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking whether time.h and sys/time.h may both be included... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for alarm... yes
checking for working mktime... yes
checking whether lstat correctly handles trailing slash... yes
checking whether stat accepts an empty string... no
checking for strftime... yes
checking for dup2... yes
checking for memset... yes
checking for strncasecmp... yes
checking for strnicmp... no
checking for strptime... yes
checking for putenv... yes
checking for _putenv... no
checking for localtime_r... yes
checking ext/slist usability... yes
checking ext/slist presence... yes
checking for ext/slist... yes
checking slist usability... no
checking slist presence... no
checking for slist... no
checking vector usability... yes
checking vector presence... yes
checking for vector... yes
checking map usability... yes
checking map presence... yes
checking for map... yes
checking set usability... yes
checking set presence... yes
checking for set... yes
checking stack usability... yes
checking stack presence... yes
checking for stack... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking xercesc/util/XercesDefs.hpp usability... yes
checking xercesc/util/XercesDefs.hpp presence... yes
checking for xercesc/util/XercesDefs.hpp... yes
checking for main in -lxerces-c... yes
configure: checking for xerces-c version >= 2.8 ...
checking for glp_simplex in -lglpk... yes
checking glpk.h usability... yes
checking glpk.h presence... yes
checking for glpk.h... yes
checking for a Python interpreter with version >= 2.6... python
checking for python... /usr/bin/python
checking for python version... 2.7
checking for python platform... linux2
checking for python script directory... ${prefix}/lib/python2.7/dist-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.7/dist-packages
checking for PyModule_GetDict in -lpython2.7... yes
checking Python.h usability... yes
checking Python.h presence... yes
checking for Python.h... yes
checking django Python module... yes
checking windows.h usability... no
checking windows.h presence... no
checking for windows.h... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating bin/Makefile
config.status: creating doc/Makefile
config.status: creating include/Makefile
config.status: creating include/frepple/Makefile
config.status: creating src/Makefile
config.status: creating src/model/Makefile
config.status: creating src/solver/Makefile
config.status: creating src/utils/Makefile
config.status: creating modules/Makefile
config.status: creating modules/lp_solver/Makefile
config.status: creating contrib/Makefile
config.status: creating contrib/vc/Makefile
config.status: creating contrib/django/Makefile
config.status: creating contrib/installer/Makefile
config.status: creating contrib/rpm/Makefile
config.status: creating contrib/debian/Makefile
config.status: creating contrib/odoo/Makefile
config.status: creating test/Makefile
config.status: creating test/buffer_batch/Makefile
config.status: creating test/cluster/Makefile
config.status: creating test/custom_fields/Makefile
config.status: creating test/calendar/Makefile
config.status: creating test/constraints_combined_1/Makefile
config.status: creating test/constraints_combined_2/Makefile
config.status: creating test/constraints_leadtime_1/Makefile
config.status: creating test/constraints_leadtime_2/Makefile
config.status: creating test/constraints_material_1/Makefile
config.status: creating test/constraints_material_2/Makefile
config.status: creating test/constraints_material_3/Makefile
config.status: creating test/constraints_material_4/Makefile
config.status: creating test/datetime/Makefile
config.status: creating test/flow_alternate_1/Makefile
config.status: creating test/flow_alternate_2/Makefile
config.status: creating test/flow_fixed/Makefile
config.status: creating test/lpsolver_1/Makefile
config.status: creating test/scalability_1/Makefile
config.status: creating test/scalability_2/Makefile
config.status: creating test/scalability_3/Makefile
config.status: creating test/jobshop/Makefile
config.status: creating test/xml/Makefile
config.status: creating test/xml_remote/Makefile
config.status: creating test/constraints_resource_1/Makefile
config.status: creating test/constraints_resource_2/Makefile
config.status: creating test/constraints_resource_3/Makefile
config.status: creating test/constraints_resource_4/Makefile
config.status: creating test/constraints_resource_5/Makefile
config.status: creating test/constraints_resource_6/Makefile
config.status: creating test/criticality/Makefile
config.status: creating test/problems/Makefile
config.status: creating test/deletion/Makefile
config.status: creating test/demand_policy/Makefile
config.status: creating test/operation_alternate/Makefile
config.status: creating test/operation_available/Makefile
config.status: creating test/operation_effective/Makefile
config.status: creating test/operation_pre_post/Makefile
config.status: creating test/operation_routing/Makefile
config.status: creating test/operation_split/Makefile
config.status: creating test/multithreading/Makefile
config.status: creating test/name/Makefile
config.status: creating test/python_1/Makefile
config.status: creating test/python_2/Makefile
config.status: creating test/python_3/Makefile
config.status: creating test/sample_module/Makefile
config.status: creating test/callback/Makefile
config.status: creating test/pegging/Makefile
config.status: creating test/safety_stock/Makefile
config.status: creating test/buffer_procure_1/Makefile
config.status: creating test/flow_effective/Makefile
config.status: creating test/load_alternate/Makefile
config.status: creating test/load_effective/Makefile
config.status: creating test/setup_1/Makefile
config.status: creating test/setup_2/Makefile
config.status: creating test/setup_3/Makefile
config.status: creating test/skills/Makefile
config.status: creating test/wip/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands


Configuration is complete

Run the following commands to compile and install:
make
make install


jbradshaw@jbradshaw1:~/frepple/frepple-2.2.beta$ make
make all-recursive
make[1]: Entering directory /home/jbradshaw/frepple/frepple-2.2.beta' Making all in src make[2]: Entering directory/home/jbradshaw/frepple/frepple-2.2.beta/src'
Making all in utils
make[3]: Entering directory /home/jbradshaw/frepple/frepple-2.2.beta/src/utils' /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -DDATADIRECTORY='"/usr/local/share/frepple"' -DLIBDIRECTORY='"/usr/local/lib"' -DSYSCONFDIRECTORY='"/usr/local/etc/frepple"' -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT pythonutils.lo -MD -MP -MF .deps/pythonutils.Tpo -c -o pythonutils.lo pythonutils.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -DDATADIRECTORY=\"/usr/local/share/frepple\" -DLIBDIRECTORY=\"/usr/local/lib\" -DSYSCONFDIRECTORY=\"/usr/local/etc/frepple\" -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT pythonutils.lo -MD -MP -MF .deps/pythonutils.Tpo -c pythonutils.cpp -fPIC -DPIC -o .libs/pythonutils.o mv -f .deps/pythonutils.Tpo .deps/pythonutils.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -DDATADIRECTORY='"/usr/local/share/frepple"' -DLIBDIRECTORY='"/usr/local/lib"' -DSYSCONFDIRECTORY='"/usr/local/etc/frepple"' -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT date.lo -MD -MP -MF .deps/date.Tpo -c -o date.lo date.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -DDATADIRECTORY=\"/usr/local/share/frepple\" -DLIBDIRECTORY=\"/usr/local/lib\" -DSYSCONFDIRECTORY=\"/usr/local/etc/frepple\" -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT date.lo -MD -MP -MF .deps/date.Tpo -c date.cpp -fPIC -DPIC -o .libs/date.o mv -f .deps/date.Tpo .deps/date.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -DDATADIRECTORY='"/usr/local/share/frepple"' -DLIBDIRECTORY='"/usr/local/lib"' -DSYSCONFDIRECTORY='"/usr/local/etc/frepple"' -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT xmlparser.lo -MD -MP -MF .deps/xmlparser.Tpo -c -o xmlparser.lo xmlparser.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -DDATADIRECTORY=\"/usr/local/share/frepple\" -DLIBDIRECTORY=\"/usr/local/lib\" -DSYSCONFDIRECTORY=\"/usr/local/etc/frepple\" -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT xmlparser.lo -MD -MP -MF .deps/xmlparser.Tpo -c xmlparser.cpp -fPIC -DPIC -o .libs/xmlparser.o mv -f .deps/xmlparser.Tpo .deps/xmlparser.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -DDATADIRECTORY='"/usr/local/share/frepple"' -DLIBDIRECTORY='"/usr/local/lib"' -DSYSCONFDIRECTORY='"/usr/local/etc/frepple"' -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT actions.lo -MD -MP -MF .deps/actions.Tpo -c -o actions.lo actions.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -DDATADIRECTORY=\"/usr/local/share/frepple\" -DLIBDIRECTORY=\"/usr/local/lib\" -DSYSCONFDIRECTORY=\"/usr/local/etc/frepple\" -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT actions.lo -MD -MP -MF .deps/actions.Tpo -c actions.cpp -fPIC -DPIC -o .libs/actions.o mv -f .deps/actions.Tpo .deps/actions.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -DDATADIRECTORY='"/usr/local/share/frepple"' -DLIBDIRECTORY='"/usr/local/lib"' -DSYSCONFDIRECTORY='"/usr/local/etc/frepple"' -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT library.lo -MD -MP -MF .deps/library.Tpo -c -o library.lo library.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -DDATADIRECTORY=\"/usr/local/share/frepple\" -DLIBDIRECTORY=\"/usr/local/lib\" -DSYSCONFDIRECTORY=\"/usr/local/etc/frepple\" -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT library.lo -MD -MP -MF .deps/library.Tpo -c library.cpp -fPIC -DPIC -o .libs/library.o mv -f .deps/library.Tpo .deps/library.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -DDATADIRECTORY='"/usr/local/share/frepple"' -DLIBDIRECTORY='"/usr/local/lib"' -DSYSCONFDIRECTORY='"/usr/local/etc/frepple"' -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT name.lo -MD -MP -MF .deps/name.Tpo -c -o name.lo name.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -DDATADIRECTORY=\"/usr/local/share/frepple\" -DLIBDIRECTORY=\"/usr/local/lib\" -DSYSCONFDIRECTORY=\"/usr/local/etc/frepple\" -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT name.lo -MD -MP -MF .deps/name.Tpo -c name.cpp -fPIC -DPIC -o .libs/name.o mv -f .deps/name.Tpo .deps/name.Plo /bin/bash ../../libtool --tag=CXX --mode=link g++ -pthread -O3 -s -g -O2 -o libutils.la pythonutils.lo date.lo xmlparser.lo actions.lo library.lo name.lo -ldl -lpython2.7 -L/usr/lib/python2.7/config -lxerces-c libtool: link: ar cru .libs/libutils.a .libs/pythonutils.o .libs/date.o .libs/xmlparser.o .libs/actions.o .libs/library.o .libs/name.o libtool: link: ranlib .libs/libutils.a libtool: link: ( cd ".libs" && rm -f "libutils.la" && ln -s "../libutils.la" "libutils.la" ) make[3]: Leaving directory/home/jbradshaw/frepple/frepple-2.2.beta/src/utils'
Making all in model
make[3]: Entering directory /home/jbradshaw/frepple/frepple-2.2.beta/src/model' /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT buffer.lo -MD -MP -MF .deps/buffer.Tpo -c -o buffer.lo buffer.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT buffer.lo -MD -MP -MF .deps/buffer.Tpo -c buffer.cpp -fPIC -DPIC -o .libs/buffer.o mv -f .deps/buffer.Tpo .deps/buffer.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT flow.lo -MD -MP -MF .deps/flow.Tpo -c -o flow.lo flow.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT flow.lo -MD -MP -MF .deps/flow.Tpo -c flow.cpp -fPIC -DPIC -o .libs/flow.o mv -f .deps/flow.Tpo .deps/flow.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT flowplan.lo -MD -MP -MF .deps/flowplan.Tpo -c -o flowplan.lo flowplan.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT flowplan.lo -MD -MP -MF .deps/flowplan.Tpo -c flowplan.cpp -fPIC -DPIC -o .libs/flowplan.o mv -f .deps/flowplan.Tpo .deps/flowplan.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT pegging.lo -MD -MP -MF .deps/pegging.Tpo -c -o pegging.lo pegging.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT pegging.lo -MD -MP -MF .deps/pegging.Tpo -c pegging.cpp -fPIC -DPIC -o .libs/pegging.o mv -f .deps/pegging.Tpo .deps/pegging.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT calendar.lo -MD -MP -MF .deps/calendar.Tpo -c -o calendar.lo calendar.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT calendar.lo -MD -MP -MF .deps/calendar.Tpo -c calendar.cpp -fPIC -DPIC -o .libs/calendar.o mv -f .deps/calendar.Tpo .deps/calendar.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT item.lo -MD -MP -MF .deps/item.Tpo -c -o item.lo item.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT item.lo -MD -MP -MF .deps/item.Tpo -c item.cpp -fPIC -DPIC -o .libs/item.o mv -f .deps/item.Tpo .deps/item.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT load.lo -MD -MP -MF .deps/load.Tpo -c -o load.lo load.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT load.lo -MD -MP -MF .deps/load.Tpo -c load.cpp -fPIC -DPIC -o .libs/load.o mv -f .deps/load.Tpo .deps/load.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT loadplan.lo -MD -MP -MF .deps/loadplan.Tpo -c -o loadplan.lo loadplan.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT loadplan.lo -MD -MP -MF .deps/loadplan.Tpo -c loadplan.cpp -fPIC -DPIC -o .libs/loadplan.o mv -f .deps/loadplan.Tpo .deps/loadplan.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT location.lo -MD -MP -MF .deps/location.Tpo -c -o location.lo location.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT location.lo -MD -MP -MF .deps/location.Tpo -c location.cpp -fPIC -DPIC -o .libs/location.o mv -f .deps/location.Tpo .deps/location.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT demand.lo -MD -MP -MF .deps/demand.Tpo -c -o demand.lo demand.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT demand.lo -MD -MP -MF .deps/demand.Tpo -c demand.cpp -fPIC -DPIC -o .libs/demand.o mv -f .deps/demand.Tpo .deps/demand.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT operation.lo -MD -MP -MF .deps/operation.Tpo -c -o operation.lo operation.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT operation.lo -MD -MP -MF .deps/operation.Tpo -c operation.cpp -fPIC -DPIC -o .libs/operation.o mv -f .deps/operation.Tpo .deps/operation.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT operationplan.lo -MD -MP -MF .deps/operationplan.Tpo -c -o operationplan.lo operationplan.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT operationplan.lo -MD -MP -MF .deps/operationplan.Tpo -c operationplan.cpp -fPIC -DPIC -o .libs/operationplan.o mv -f .deps/operationplan.Tpo .deps/operationplan.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT plan.lo -MD -MP -MF .deps/plan.Tpo -c -o plan.lo plan.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT plan.lo -MD -MP -MF .deps/plan.Tpo -c plan.cpp -fPIC -DPIC -o .libs/plan.o mv -f .deps/plan.Tpo .deps/plan.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT problem.lo -MD -MP -MF .deps/problem.Tpo -c -o problem.lo problem.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT problem.lo -MD -MP -MF .deps/problem.Tpo -c problem.cpp -fPIC -DPIC -o .libs/problem.o mv -f .deps/problem.Tpo .deps/problem.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT problems_demand.lo -MD -MP -MF .deps/problems_demand.Tpo -c -o problems_demand.lo problems_demand.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT problems_demand.lo -MD -MP -MF .deps/problems_demand.Tpo -c problems_demand.cpp -fPIC -DPIC -o .libs/problems_demand.o mv -f .deps/problems_demand.Tpo .deps/problems_demand.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT problems_operationplan.lo -MD -MP -MF .deps/problems_operationplan.Tpo -c -o problems_operationplan.lo problems_operationplan.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT problems_operationplan.lo -MD -MP -MF .deps/problems_operationplan.Tpo -c problems_operationplan.cpp -fPIC -DPIC -o .libs/problems_operationplan.o mv -f .deps/problems_operationplan.Tpo .deps/problems_operationplan.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT resource.lo -MD -MP -MF .deps/resource.Tpo -c -o resource.lo resource.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT resource.lo -MD -MP -MF .deps/resource.Tpo -c resource.cpp -fPIC -DPIC -o .libs/resource.o mv -f .deps/resource.Tpo .deps/resource.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT leveled.lo -MD -MP -MF .deps/leveled.Tpo -c -o leveled.lo leveled.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT leveled.lo -MD -MP -MF .deps/leveled.Tpo -c leveled.cpp -fPIC -DPIC -o .libs/leveled.o mv -f .deps/leveled.Tpo .deps/leveled.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT actions.lo -MD -MP -MF .deps/actions.Tpo -c -o actions.lo actions.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT actions.lo -MD -MP -MF .deps/actions.Tpo -c actions.cpp -fPIC -DPIC -o .libs/actions.o mv -f .deps/actions.Tpo .deps/actions.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT library.lo -MD -MP -MF .deps/library.Tpo -c -o library.lo library.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT library.lo -MD -MP -MF .deps/library.Tpo -c library.cpp -fPIC -DPIC -o .libs/library.o mv -f .deps/library.Tpo .deps/library.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT customer.lo -MD -MP -MF .deps/customer.Tpo -c -o customer.lo customer.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT customer.lo -MD -MP -MF .deps/customer.Tpo -c customer.cpp -fPIC -DPIC -o .libs/customer.o mv -f .deps/customer.Tpo .deps/customer.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT problems_resource.lo -MD -MP -MF .deps/problems_resource.Tpo -c -o problems_resource.lo problems_resource.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT problems_resource.lo -MD -MP -MF .deps/problems_resource.Tpo -c problems_resource.cpp -fPIC -DPIC -o .libs/problems_resource.o mv -f .deps/problems_resource.Tpo .deps/problems_resource.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT problems_buffer.lo -MD -MP -MF .deps/problems_buffer.Tpo -c -o problems_buffer.lo problems_buffer.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT problems_buffer.lo -MD -MP -MF .deps/problems_buffer.Tpo -c problems_buffer.cpp -fPIC -DPIC -o .libs/problems_buffer.o mv -f .deps/problems_buffer.Tpo .deps/problems_buffer.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solver.lo -MD -MP -MF .deps/solver.Tpo -c -o solver.lo solver.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solver.lo -MD -MP -MF .deps/solver.Tpo -c solver.cpp -fPIC -DPIC -o .libs/solver.o mv -f .deps/solver.Tpo .deps/solver.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT setupmatrix.lo -MD -MP -MF .deps/setupmatrix.Tpo -c -o setupmatrix.lo setupmatrix.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT setupmatrix.lo -MD -MP -MF .deps/setupmatrix.Tpo -c setupmatrix.cpp -fPIC -DPIC -o .libs/setupmatrix.o mv -f .deps/setupmatrix.Tpo .deps/setupmatrix.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT skill.lo -MD -MP -MF .deps/skill.Tpo -c -o skill.lo skill.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT skill.lo -MD -MP -MF .deps/skill.Tpo -c skill.cpp -fPIC -DPIC -o .libs/skill.o mv -f .deps/skill.Tpo .deps/skill.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT resourceskill.lo -MD -MP -MF .deps/resourceskill.Tpo -c -o resourceskill.lo resourceskill.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT resourceskill.lo -MD -MP -MF .deps/resourceskill.Tpo -c resourceskill.cpp -fPIC -DPIC -o .libs/resourceskill.o mv -f .deps/resourceskill.Tpo .deps/resourceskill.Plo /bin/bash ../../libtool --tag=CXX --mode=link g++ -pthread -O3 -s -g -O2 -o libmodel.la buffer.lo flow.lo flowplan.lo pegging.lo calendar.lo item.lo load.lo loadplan.lo location.lo demand.lo operation.lo operationplan.lo plan.lo problem.lo problems_demand.lo problems_operationplan.lo resource.lo leveled.lo actions.lo library.lo customer.lo problems_resource.lo problems_buffer.lo solver.lo setupmatrix.lo skill.lo resourceskill.lo -ldl -lpython2.7 -L/usr/lib/python2.7/config -lxerces-c libtool: link: ar cru .libs/libmodel.a .libs/buffer.o .libs/flow.o .libs/flowplan.o .libs/pegging.o .libs/calendar.o .libs/item.o .libs/load.o .libs/loadplan.o .libs/location.o .libs/demand.o .libs/operation.o .libs/operationplan.o .libs/plan.o .libs/problem.o .libs/problems_demand.o .libs/problems_operationplan.o .libs/resource.o .libs/leveled.o .libs/actions.o .libs/library.o .libs/customer.o .libs/problems_resource.o .libs/problems_buffer.o .libs/solver.o .libs/setupmatrix.o .libs/skill.o .libs/resourceskill.o libtool: link: ranlib .libs/libmodel.a libtool: link: ( cd ".libs" && rm -f "libmodel.la" && ln -s "../libmodel.la" "libmodel.la" ) make[3]: Leaving directory/home/jbradshaw/frepple/frepple-2.2.beta/src/model'
Making all in solver
make[3]: Entering directory /home/jbradshaw/frepple/frepple-2.2.beta/src/solver' /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverprocure.lo -MD -MP -MF .deps/solverprocure.Tpo -c -o solverprocure.lo solverprocure.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverprocure.lo -MD -MP -MF .deps/solverprocure.Tpo -c solverprocure.cpp -fPIC -DPIC -o .libs/solverprocure.o mv -f .deps/solverprocure.Tpo .deps/solverprocure.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverbuffer.lo -MD -MP -MF .deps/solverbuffer.Tpo -c -o solverbuffer.lo solverbuffer.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverbuffer.lo -MD -MP -MF .deps/solverbuffer.Tpo -c solverbuffer.cpp -fPIC -DPIC -o .libs/solverbuffer.o mv -f .deps/solverbuffer.Tpo .deps/solverbuffer.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverdemand.lo -MD -MP -MF .deps/solverdemand.Tpo -c -o solverdemand.lo solverdemand.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverdemand.lo -MD -MP -MF .deps/solverdemand.Tpo -c solverdemand.cpp -fPIC -DPIC -o .libs/solverdemand.o mv -f .deps/solverdemand.Tpo .deps/solverdemand.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solveroperation.lo -MD -MP -MF .deps/solveroperation.Tpo -c -o solveroperation.lo solveroperation.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solveroperation.lo -MD -MP -MF .deps/solveroperation.Tpo -c solveroperation.cpp -fPIC -DPIC -o .libs/solveroperation.o mv -f .deps/solveroperation.Tpo .deps/solveroperation.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverplan.lo -MD -MP -MF .deps/solverplan.Tpo -c -o solverplan.lo solverplan.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverplan.lo -MD -MP -MF .deps/solverplan.Tpo -c solverplan.cpp -fPIC -DPIC -o .libs/solverplan.o mv -f .deps/solverplan.Tpo .deps/solverplan.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverresource.lo -MD -MP -MF .deps/solverresource.Tpo -c -o solverresource.lo solverresource.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverresource.lo -MD -MP -MF .deps/solverresource.Tpo -c solverresource.cpp -fPIC -DPIC -o .libs/solverresource.o mv -f .deps/solverresource.Tpo .deps/solverresource.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverflow.lo -MD -MP -MF .deps/solverflow.Tpo -c -o solverflow.lo solverflow.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverflow.lo -MD -MP -MF .deps/solverflow.Tpo -c solverflow.cpp -fPIC -DPIC -o .libs/solverflow.o mv -f .deps/solverflow.Tpo .deps/solverflow.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverload.lo -MD -MP -MF .deps/solverload.Tpo -c -o solverload.lo solverload.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT solverload.lo -MD -MP -MF .deps/solverload.Tpo -c solverload.cpp -fPIC -DPIC -o .libs/solverload.o mv -f .deps/solverload.Tpo .deps/solverload.Plo /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT operatordelete.lo -MD -MP -MF .deps/operatordelete.Tpo -c -o operatordelete.lo operatordelete.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT operatordelete.lo -MD -MP -MF .deps/operatordelete.Tpo -c operatordelete.cpp -fPIC -DPIC -o .libs/operatordelete.o mv -f .deps/operatordelete.Tpo .deps/operatordelete.Plo /bin/bash ../../libtool --tag=CXX --mode=link g++ -pthread -O3 -s -g -O2 -o libsolver.la solverprocure.lo solverbuffer.lo solverdemand.lo solveroperation.lo solverplan.lo solverresource.lo solverflow.lo solverload.lo operatordelete.lo -ldl -lpython2.7 -L/usr/lib/python2.7/config -lxerces-c libtool: link: ar cru .libs/libsolver.a .libs/solverprocure.o .libs/solverbuffer.o .libs/solverdemand.o .libs/solveroperation.o .libs/solverplan.o .libs/solverresource.o .libs/solverflow.o .libs/solverload.o .libs/operatordelete.o libtool: link: ranlib .libs/libsolver.a libtool: link: ( cd ".libs" && rm -f "libsolver.la" && ln -s "../libsolver.la" "libsolver.la" ) make[3]: Leaving directory/home/jbradshaw/frepple/frepple-2.2.beta/src/solver'
make[3]: Entering directory /home/jbradshaw/frepple/frepple-2.2.beta/src' /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT dllmain.lo -MD -MP -MF .deps/dllmain.Tpo -c -o dllmain.lo dllmain.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT dllmain.lo -MD -MP -MF .deps/dllmain.Tpo -c dllmain.cpp -fPIC -DPIC -o .libs/dllmain.o mv -f .deps/dllmain.Tpo .deps/dllmain.Plo /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT tags.lo -MD -MP -MF .deps/tags.Tpo -c -o tags.lo tags.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT tags.lo -MD -MP -MF .deps/tags.Tpo -c tags.cpp -fPIC -DPIC -o .libs/tags.o mv -f .deps/tags.Tpo .deps/tags.Plo /bin/bash ../libtool --tag=CXX --mode=link g++ -pthread -O3 -s -g -O2 -version-info 0:0:0 -no-undefined -o libfrepple.la -rpath /usr/local/lib dllmain.lo tags.lo ./solver/libsolver.la ./model/libmodel.la ./utils/libutils.la -ldl -lpython2.7 -L/usr/lib/python2.7/config -lxerces-c libtool: link: g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginS.o .libs/dllmain.o .libs/tags.o -Wl,--whole-archive ./solver/.libs/libsolver.a ./model/.libs/libmodel.a ./utils/.libs/libutils.a -Wl,--no-whole-archive -L/usr/lib/python2.7/config -ldl -lpython2.7 -lxerces-c -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.8/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o -pthread -O3 -O2 -pthread -Wl,-soname -Wl,libfrepple.so.0 -o .libs/libfrepple.so.0.0.0 libtool: link: (cd ".libs" && rm -f "libfrepple.so.0" && ln -s "libfrepple.so.0.0.0" "libfrepple.so.0") libtool: link: (cd ".libs" && rm -f "libfrepple.so" && ln -s "libfrepple.so.0.0.0" "libfrepple.so") libtool: link: ( cd ".libs" && rm -f "libfrepple.la" && ln -s "../libfrepple.la" "libfrepple.la" ) g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp mv -f .deps/main.Tpo .deps/main.Po /bin/bash ../libtool --tag=CXX --mode=link g++ -pthread -O3 -s -g -O2 -dynamic -export-dynamic -o frepple main.o libfrepple.la -ldl -lpython2.7 -L/usr/lib/python2.7/config -lxerces-c libtool: link: g++ -pthread -O3 -s -g -O2 -dynamic -o .libs/frepple main.o -Wl,--export-dynamic ./.libs/libfrepple.so -L/usr/lib/python2.7/config -ldl -lpython2.7 -lxerces-c -pthread if test -f .libs/frepple; then cp .libs/frepple ../bin; fi if test -f .libs/cygfrepple*.dll; then cp .libs/cygfrepple*.dll ../bin; fi if test -f .libs/libfrepple.so; then cp .libs/libfrepple*.so* ../bin; fi make[3]: Leaving directory/home/jbradshaw/frepple/frepple-2.2.beta/src'
make[2]: Leaving directory /home/jbradshaw/frepple/frepple-2.2.beta/src' Making all in modules make[2]: Entering directory/home/jbradshaw/frepple/frepple-2.2.beta/modules'
Making all in lp_solver
make[3]: Entering directory /home/jbradshaw/frepple/frepple-2.2.beta/modules/lp_solver' /bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT lpsolver.lo -MD -MP -MF .deps/lpsolver.Tpo -c -o lpsolver.lo lpsolver.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/include/python2.7 -pthread -O3 -s -g -O2 -MT lpsolver.lo -MD -MP -MF .deps/lpsolver.Tpo -c lpsolver.cpp -fPIC -DPIC -o .libs/lpsolver.o In file included from lpsolver.cpp:21:0: lpsolver.h:171:5: error: 'LPX' does not name a type LPX* lp; ^ lpsolver.cpp: In member function 'void module_lp_solver::LPSolver::solveObjective(const string&)': lpsolver.cpp:86:26: error: 'lp' was not declared in this scope int col = glp_find_col(lp, colname.c_str()); ^ lpsolver.cpp:89:32: error: 'lpx_set_obj_coef' was not declared in this scope lpx_set_obj_coef(lp, col, 1.0); ^ lpsolver.cpp:99:34: error: 'lpx_get_obj_val' was not declared in this scope double val = lpx_get_obj_val(lp); ^ lpsolver.cpp:109:29: error: 'LPX_DB' was not declared in this scope lpx_set_col_bnds(lp, col, LPX_DB, ^ lpsolver.cpp:111:54: error: 'lpx_set_col_bnds' was not declared in this scope val>=-ROUNDING_ERROR ? val+ROUNDING_ERROR : 0.0); ^ lpsolver.cpp: In member function 'virtual void module_lp_solver::LPSolver::solve(void*)': lpsolver.cpp:144:5: error: 'lp' was not declared in this scope lp = lpx_read_model(modelfilename.c_str(), NULL, NULL); ^ lpsolver.cpp:144:58: error: 'lpx_read_model' was not declared in this scope lp = lpx_read_model(modelfilename.c_str(), NULL, NULL); ^ lpsolver.cpp:146:5: error: 'lp' was not declared in this scope lp = lpx_read_model(modelfilename.c_str(), datafilename.c_str(), NULL); ^ lpsolver.cpp:146:74: error: 'lpx_read_model' was not declared in this scope lp = lpx_read_model(modelfilename.c_str(), datafilename.c_str(), NULL); ^ lpsolver.cpp:147:7: error: 'lp' was not declared in this scope if (lp == NULL) ^ lpsolver.cpp:155:19: error: 'lp' was not declared in this scope lpx_write_mps(lp,c.c_str()); ^ lpsolver.cpp:155:31: error: 'lpx_write_mps' was not declared in this scope lpx_write_mps(lp,c.c_str()); ^ lpsolver.cpp:159:18: error: 'lp' was not declared in this scope lpx_scale_prob(lp); ^ lpsolver.cpp:159:20: error: 'lpx_scale_prob' was not declared in this scope lpx_scale_prob(lp); ^ lpsolver.cpp:183:46: error: 'lpx_print_sol' was not declared in this scope lpx_print_sol(lp,solutionfilename.c_str()); ^ lpsolver.cpp:186:21: error: 'lpx_delete_prob' was not declared in this scope lpx_delete_prob(lp); ^ make[3]: *** [lpsolver.lo] Error 1 make[3]: Leaving directory/home/jbradshaw/frepple/frepple-2.2.beta/modules/lp_solver'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory /home/jbradshaw/frepple/frepple-2.2.beta/modules' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory/home/jbradshaw/frepple/frepple-2.2.beta'
make: *** [all] Error 2

Create a new permission for read-only access to models

Rationale:
When all data records for a certain model are imported from an external system by an automated interface, it doesn't make sense for users to edit, change or delete data records.
But it may still be useful to give them read-only access to the data.

Solution:
Add a new permission type for read-only access.

Improved pre- and post-operation times

Currently only post-operation time is used as soft constraint by the solver.

In some cases we need to model a post-operation time as a hard constraint

  • Either as a required maximum time between operations.
    Eg time between production and packaging can't be too long to prevent the product from drying out or getting damaged
    Eg perishable products
  • Either as a required minimum time between operations
    Eg drying time for paint, cooling time after an oven

Choose which tables to truncate

Similar to the "export spreadsheet" action, the "empty database" action should allow selecting the tables to empty.

The selection should be smart enough to see dependencies: eg selecting "location" should also automatically mark all tables which depend on "location", plus their child tables as well, ...

Create native windows 64-bit

On windows we provide only 32-bit executables - which work fine on 64-bit platforms as well.
A low-priority enhancement is to provide a true 64-bit executable on Windows.

The codebase is already fully ready for 64-bit, as proven on Linux 64-bit platforms.
So the task at hand is only a matter of compiling with 64-bit Visual Studio compiler and with 64-bit Python.

PO expediting workflow

Give users an easy workflow to identify open POs that need expediting.
Asking your suppliers to speed up delivery of some critical materials helps improving the on time delivery of customer orders.

Redesign pegging data

  1. Make database structure simpler and more compact
  2. Handle safety stock pegging better?

Purchasing workflow

Easier workflow for purchasing: review, approve, adjust and mark-for-export

Phantom BoM from Odoo/OpenERP

When pulling in BoM (Bill of Material) data from OpenERP, frePPLe will encounter an error that will break the operation of the "Create a Plan" command.

Namely that the BoMs in question have repeating parts consumed within the manufacture of the parent part.

It's possible to have the same product more than once in a mrp_production when using phantom BOMs:

A + B =>C
A + C =>D

If in D's BOM part C has type=phantom then the MO (mrp_production model) will require A + B (the children of C) and A again (directly).
So the MO will have 3 lines but product A will appear on 2 lines.

That's a valid business case (there are bugs around phantom BOMs on Odoo which have been raised) - FrePPLe needs to handle these too, especially if it's generating MO (mrp_production) instances directly.


log file error 2
(Log file)


https://www.dropbox.com/sh/rlneb3b2d56vks2/AAAv0oyc7_cCkVz7YRGLybZea?dl=0
(Dropbox file of the above image)

Resource is silently ignored by the solver when an empty string is affected to the alternate field

Python code to illustrate the issue:

import frepple
item=frepple.item(name="item")
buffer=frepple.buffer_default(name="buffer",item=item)
resource=frepple.resource_default(name="resource")
operation=frepple.operation(name="operation")
load=frepple.load(operation=operation,resource=resource)
load.alternate="" #comment this
flow=frepple.flow(operation=operation, buffer=buffer,quantity=1.0)
demand=frepple.demand(name="demand", item=item,quantity=20,operation=operation)
solver=frepple.solver_mrp(name="solver")
solver.solve()
for op in frepple.operationplans():
print op.operation.name
for l in op.loadplans:
print "....",op.operation.name,l.resource, l.quantity

Deleting operationplan deletes demand entries.

Lubuntu 12.04
Frepple 2.3

Deleting an operationplan warns that it will delete also demand entries. It indeed does. This may or may not be a feature, but deleting the operation plan should imho leave the demand intact.

Timo

Repeated child bug

When attempting to pull BoMs (Bill of Material) into frePPLe via the "Create a Plan" command, the operation will fail due to the parts involved in the BoM not being unique.

That is to say, sometimes the same part will be used in a BoM twice, once to build a child part which is then used to make the parent product, and once again used in the construction of the parent product itself.

A + B =>C
A + C =>D

If in D's BoM, part C has type=phantom then the MO (mrp_production model) will require A + B (the children of C) and A again (directly).
So the MO will have 3 lines but product A will appear on 2 lines.


log file error 2
(Log file entry)


https://www.dropbox.com/sh/rlneb3b2d56vks2/AAAv0oyc7_cCkVz7YRGLybZea?dl=0
(Dropbox file of the above image)

Rework & enhance C++ metadata classes

There are some seperate classes and methods to support 1) XML interface and 2) Python interface.
Ideally there should be 1 common structure, to avoid the extra boilerplate code.

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.