Skip to main content

Cut Stock Planner

Cut Stock Planner creates practical one-dimensional cutting sheets for bars, pipes and profiles. It combines required finished lengths with a standard-bar allowance and measured remnants linked to native Inventory serials. Odoo Inventory and Manufacturing remain the source of stock quantities and operations.

Installation and edition​

Install corvus_cut_stock_planner on Odoo 20. Dependencies are stock, mrp and mail; install them through the normal Apps process. The addon has no external service, hardware or additional Python package dependency. Installation with and without demo data, focused workflow and access checks, and native HTML report rendering have passed on Odoo 20 Enterprise. Community edition has not been qualified.

The optional demo creates fictional workshop profiles, serials, native stock movements and plans. It is intended for a demonstration database. A normal installation supplies the cutting-plan sequence and safe field defaults; your material products and profiles are deliberate setup steps.

Roles and company scope​

A system administrator assigns Cutting Operator or Cutting Manager in the user's access rights. These roles include native Inventory User and Manufacturing User access. Operators create plans and measured remnants, generate sheets, start approved work, record measurements and complete plans. Managers additionally create and maintain material profiles and approve plans. Approval is enforced on the server. Company rules apply to every planning record and line; links must belong to the same company. Access does not grant an external or portal workflow.

Configure a material profile​

  1. In native Inventory create an inventory-tracked product for a material and section, such as aluminium square tube 40 × 40 × 3.
  2. Set tracking to By Unique Serial Number and the native inventory unit to Units. Each physical remnant is one serialized piece. Its geometric length is recorded separately.
  3. Open Cut Stock → Material Profiles and create the material profile.
  4. Enter its standard bar length, blade kerf and minimum reusable-remnant length in millimetres. Defaults are 6,000 mm, 3 mm and 200 mm.
  5. Add machine or handling instructions if useful.

A used profile cannot change product or company. Create a new profile for a different section or company. Editing default lengths affects newly created plans; existing plan measurements remain snapshots.

Register native remnants​

Receive or produce each physical remnant with a unique serial through normal Inventory or Manufacturing. Then open Measured Remnants, choose the profile, native serial and exact internal bin, and enter its usable measured length in millimetres. Exclude damage and unusable ends from that measurement.

Native Quantity reads on-hand quantity minus reserved quantity for the serial, product, exact bin and company, excluding owner-specific stock. The source is available only when this is exactly one piece and no cutting allocation is retained. This is a live read, not an independent stock balance. Refresh the view after inventory changes. The planner does not reserve inventory; another native process can still move or reserve that serial.

A remnant referenced by a generated cutting sheet cannot change its identity, bin or measured length. Input allocations are retained after completion to prevent accidentally reusing an old serial whose native consumption has not yet been processed. Resetting a reviewed, uncut plan or cancelling before cutting releases its claims.

Create and review a cutting plan​

Choose Cutting Plans → New. Enter the fabrication reference, material profile, date and operator. Select millimetres, metres or inches before adding requirements. All plan setup, required lengths, bar lengths, losses and actual measurements then use that selected unit. Profiles and the remnant register always use millimetres.

Enter the standard length, kerf and reusable threshold for this plan, and the maximum number of new standard bars that may be opened. Standard bars are a planning allowance, not a checked or reserved inventory quantity. Set the allowance to zero for a remnants-only plan.

Add a part mark, finished length and whole quantity for each requirement. Select candidate remnants on the next tab. Generate the plan. The process sorts required pieces from longest to shortest, chooses the tightest fit among opened bars, otherwise takes the shortest fitting selected remnant, and finally opens a standard bar. Results are deterministic for the same records and inputs. They are practical proposals, not proof of globally optimal yield.

One blade kerf is charged for every finished piece, including the last piece. This conservative convention is part of feasibility checking. Length arithmetic uses integer micrometres, with half-up rounding when converting values. A required cut must fit together with its kerf. There is no automatic trim or angle allowance: remove unusable material from source length before planning.

Inspect the Cutting Sheet tab and totals. A Cutting Manager checks the physical material and approves the plan. Approval and Start Cutting both recheck that used native remnants still have exactly one unreserved piece. While in Review, Reset to Draft removes generated bars and releases claims, allowing requirements to be changed and regenerated. Approved work can be cancelled with a reason before it starts; create a new plan when approved inputs need changing.

Worked example​

Create a 6,000 mm standard-bar plan with a 3 mm kerf, a 200 mm reusable threshold and three 1,750 mm uprights. Generate one bar. Finished length is 5,250 mm, blade loss is 9 mm, and the proposed leftover is 741 mm. Yield is 87.50%; the reusable tail is reported separately from finished output.

Approve and start the plan. Suppose end dressing leaves a measured reusable tail of 700 mm. Create the new unique output serial and process its native output receipt into your remnant bin. In Actual Remnants, tick Actual Recorded, enter 700, select the output serial and bin, and explain the 41 mm extra loss. Complete the plan. Actual waste is 50 mm: 6,000 minus 5,250 minus 700. The measured output is now available in the remnant register if it is unreserved.

The optional fictional completed record Willow Works · Display stand batch 18 follows this example.

Execute and record actual remnants​

Start Cutting confirms the job has reached physical execution. After this point the plan cannot be reset or cancelled. Complete all planned cuts before completing the sheet; the app assumes their stated finished lengths and counts were achieved. It does not count accepted finished pieces or model partial piece production.

For every bar, tick Actual Recorded, even when the reusable remainder is zero. Enter zero when all leftover is scrap or below the reusable threshold; describe damage or extra waste in the operator note. A reusable measured tail must be at least the threshold and no longer than the planned leftover.

A positive reusable length requires a new native serial for the same product and its internal bin. The serial must already hold exactly one unreserved native piece. Do not reuse an input serial or attach the same output serial to several bars. Completion creates measured-remnant metadata and freezes the completed sheet. It posts no inventory or accounting transactions.

The Native Operations tab links your existing draft or completed consumption moves, output moves and optional manufacturing order. The smart button opens the linked moves. Input and output moves must use the plan product, belong to the plan company and not be cancelled; the same move cannot be both input and output on one plan.

Create and validate your stock and manufacturing operations through the normal native workflow. A plan never creates moves, bills, valuation entries or manufacturing orders. Plan completion does not prove those native operations are posted. Operation links can be added after completion for traceability; the cut measurements cannot be edited. For transformations needing several products, bills of materials, costing or unit conversions, configure the appropriate native process separately.

Reports, lists and measures​

Use the Print menu for Cutting Sheet or Remnant Labels. The sheet includes job, profile, unit, kerf, ordered cuts per bar, source serial, yield and leftover. A completed sheet adds measured outputs and operator notes. Labels print actual output serial, usable length, profile, bin and plan reference. They are simple printable identification panels, not a calibrated label-printer layout or machine-readable barcode integration.

Both report templates have been verified through native Odoo HTML rendering. PDF printing requires a working native Odoo PDF engine; PDF output was not qualified in the tested runtime. The addon does not bundle a PDF renderer.

The plan register supports search by reference and material, filters for awaiting approval, cutting and completed work, and grouping by status, profile, month or length unit. Bar and piece counts can be summed. Do not add mixed-unit length columns together. Yield equals finished length divided by source length; reusable tails are not finished output. Planned waste includes all kerf plus tails below the threshold. Actual waste uses planned finished lengths and measured reusable tails once completed.

Corrections and exceptions​

  • Cuts do not fit: check the chosen unit, longest cut plus kerf, candidate remnant lengths and standard-bar allowance.
  • Source unavailable: refresh native quantities and reservations in the exact bin. Choose a different serial or restore the legitimate stock condition through Inventory.
  • Source already allocated: open its allocation plan. Reset or cancel only if it has not started. Completed inputs remain allocated intentionally.
  • Incorrect reviewed plan: Reset to Draft, correct requirements, then generate again. Record an explanatory note before cancelling a superseded sheet.
  • No approval button: request Cutting Manager access from your administrator.
  • Actual remainder rejected: use the same plan unit, stay within planned leftover, and use zero for scrap below the threshold.
  • Output not available: receive the new serial through native operations, confirm its exact internal bin and release unrelated reservations appropriately.
  • Started job needs a correction: retain the plan and explain the issue in chatter; this version has no reversal or amendment workflow for started cuts. Do not claim completion until all planned pieces were cut.
  • Missing company records: select an allowed company and check the profile, product, serial and location companies.
  • PDF unavailable: ask your administrator to configure a supported native Odoo PDF engine before using the Print actions.

Limits and upgrade preservation​

The planner supports up to 2,000 pieces, 100 candidate remnants and 500 theoretical standard bars per plan; a requirement line supports up to 1,000 pieces. It supports linear lengths only, with one serial for one physical source. It does not include two-dimensional nesting, global optimality guarantees, angle cutting, hardware integration, automatic stock posting, multi-product transformation design or actual finished-piece quality acceptance.

The cutting sequence is normal data protected from upgrade overwrite. Your profiles, measurements and business records are not overwritten by module upgrades. Optional demonstration records are also preserved. Back up the database and filestore and follow the normal Odoo module upgrade process. Retain completed and cancelled plans rather than deleting their history.

Support and license​

Corvus Nexus Technologies LTD — https://corvusnexus.com. Contact support@corvusnexus.com with your Odoo version, plan reference, selected length unit and reproducible steps. Do not send credentials or real customer data. The addon is licensed under Odoo Proprietary License v1.0 (OPL-1).

Availability​

This guide covers the Odoo 20 package. Older-version packages are not part of this release.

Browse the Corvus Odoo Apps catalogue.