Search 1.9 billion lines of Odoo code on GitHub

stock_reorder_forecast

Author: Therp BV,Odoo Community Association (OCA)
License: AGPL-3
Branch: 9.0-stock_reorder_forecast
Repository: hbrunn/stock-logistics-warehouse
Dependencies: base, decimal_precision, product, purchase, sale, and stock
Languages: Python (1018, 67.2%), XML (392, 25.9%), and reStructuredText (106, 7.0%)
Other repositories: NL66278/stock-logistics-warehouse, daramousk/stock-logistics-warehouse, and gfcapalbo/stock-logistics-warehouse

<a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.svg"> </a> <a name="stock-reorder-forecast"></a> <h2>Stock Reorder Forecast</h2> <p>Allows to predict date when stock levels will reach minimum by analizying sales volume in a period and therefore to trigger RFQ's ahead of time</p> <p>Extends stock to calculate period turnover and ultimate date of order (the date where we reach minimum stock) This module allows to create RFQ's by checking the product form and examining the ultimate purchase value.</p> <p>The ultimate purchase value is the date we forecast this product will not be available. It is obtained by calculating the average sales rate of this product and predicting at this rate how long will it take for the stock to reach 0 at this speed.</p> <p>The period upon wich we calculate this average rate be personalized, default is:</p> <p>TURNOVER_PERIOD = Amount of time to calculate average (default 365) TURNOVER_AVERAGE = Average sale rate in that period. Ultimate Purchase = Day in the future where stock should finish at current rate.</p> <dl class="docutils"> <dt>All values are (period, average) are kept on (in order of importance):</dt> <dd><ul class="first last simple"> <li>Supplier Info</li> <li>Partner</li> <li>Category</li> </ul> </dd> </dl> <p>if the values are not set on supplier info it will default to values on partner, if not set on supplier will default to category, if not set anywhere will default to Hardcoded values (ir.config.parameters period=365 days).</p> <p>THe user can also trigger orders from the supplier form. There is a wizard that would allow to order:</p> <blockquote> <ul class="simple"> <li>All the products provided by this partner (in required amounts considering turnover_average, current stock and maximum_stock)</li> <li>All the products provided by this partner as primary supplier</li> </ul> <p>This wizard also provides an overview of existing RFQ lines</p> </blockquote> <p>The turnover average and the ultimate purchase derived by it are calculated in bulk by a daily cron job.</p> <a name="configuration"></a> <h3>Configuration</h3> <p>To configure this module, you need to: set turnover_period stock_period_max , stock_period_min on:</p> <blockquote> <ul class="simple"> <li>Product</li> <li>Supplier Infos</li> <li>Partners</li> <li>Categories</li> <li>Default value</li> </ul> </blockquote> <p>These values will be taken in this order of priority (highest to lowest) if the values in product, Supplier Info, Partners, Categories are all not set it will revert to Default Value, defined in installation data is a company parameter.</p> <p>Also set the frequency of turnover and purchase date calculation by setting in Automatic Actions the execution of cron job &quot;Purchase Proposal Refresh&quot; (by default set at once a day).</p> <a name="usage"></a> <h3>Usage</h3> <p>Set on product and/or partner(supplier) and/or product category the values of turnover period.</p> <p>Make sure the cron job &quot;Purchase Proposal Refresh&quot; is activated, launch it manually the first time in order to have all &quot;ultimate dates&quot; for products calculated. Set the cron job time/date at a convenient time and frequency, this job will refresh all stats used for forcasting ultimate purchase date. If you have a high volume of sales and do frequent resupplies it is advisable to launch it multiple times a day.</p> <p>View products to see all products with an ultimate order date, for that interface you can generate a RFQ to desired date.</p> <p>You can also view from the partner/supplier form all products ordered by this partner.</p> <ol class="arabic simple"> <li>Go to ...</li> </ol> <a class="reference external image-reference" href="https://runbot.odoo-community.org/runbot/{repo_id}/{branch}"><img alt="Try me on Runbot" src="https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas" /></a> <a name="known-issues-roadmap"></a> <h3>Known issues / Roadmap</h3> <ul> <li><p class="first">Does not support Multicompany, calculation of stats will allways work on cross-company products purchases and pickings. It will only calculate outgoing moves , not internal moves. So the stats will be representative of all companies global stats (all sales from all companies/turnover period of product).</p> <p>Implementing a full multicompany support will require additional support datastrutures.</p> <p>from a functional stand point, the global stats may be still usefull in some multicompany configurations, not all.</p> </li> <li><p class="first">Another useful feature would be to trigger RFQ's automatically. Currently the users receive stats and can press a button to make a RFQ based on their decisions. we could make options to make an automatic RFQ when ultimate purchase gets up to X days from now.</p> </li> </ul> <a name="bug-tracker"></a> <h3>Bug Tracker</h3> <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/{project_repo}/issues">GitHub Issues</a>. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.</p> <a name="images"></a> <h4>Images</h4> <ul class="simple"> <li>Odoo Community Association: <a class="reference external" href="https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg">Icon</a>.</li> </ul> <a name="contributors"></a> <h4>Contributors</h4> <ul class="simple"> <li>Giovanni Francesco Capalbo &lt;<a class="reference external" href="mailto:giovanni&#64;therp.nl">giovanni&#64;therp.nl</a>&gt;</li> <li>Holger Brunn &lt;<a class="reference external" href="mailto:hbrunn&#64;therp.nl">hbrunn&#64;therp.nl</a>&gt;</li> <li>Hans Van Dijk &lt;<a class="reference external" href="mailto:hvd400&#64;gmail.com">hvd400&#64;gmail.com</a>&gt;</li> <li>Ronald Portier &lt;<a class="reference external" href="mailto:rportier&#64;therp.nl">rportier&#64;therp.nl</a>&gt;</li> </ul> <a name="funders"></a> <h4>Funders</h4> <p>The development of this module has been financially supported by:</p> <ul class="simple"> <li>Therp B.V.</li> </ul> <a name="maintainer"></a> <h4>Maintainer</h4> <a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a> <p>This module is maintained by the OCA.</p> <p>OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.</p> <p>To contribute to this module, please visit <a class="reference external" href="https://odoo-community.org">https://odoo-community.org</a>.</p> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.svg"> </a>