Skip to Content

PMIS Glass Sheet Configurator

Beta License: LGPL-3 PMISuite/vertical-glass-working Version: 18.0

Create drawings connected to sale order lines, review glass fabrications, and preserve approved designs as numbered revisions and PDFs. Manufacturing is optional: drawing approval does not require a stockable, unit-based product.

The configurator does not calculate prices, configure product variants, generate bills of materials, or produce cutting-machine instructions.

Features

Drawing and review

  • Rectangles, circles, ellipses, and centered isosceles trapezoids.

  • Circular holes and axis-aligned rectangular notches/slots.

  • Live containment/overlap feedback and validation before approval.

  • Numeric placement, centering, mirroring, duplication, and hole patterns.

  • Searchable fabrication labels show coordinates, sizes, and optional notes.

  • Selection, dragging, snapping, keyboard/touch movement, positional undo/redo, and zoom on saved, loaded fabrications.

  • Material/treatment/coating instructions and original-outline edge finishes.

  • Mobile shape selection through Odoo 18's native image-card picker.

  • Gross, removed, and net area; per-sheet and total net glass weight.

Sales and document ownership

  • One drawing per sale line, with the sales product retained.

  • Physical sheet counts separate from area-based sales quantities.

  • Drawing reference/status on quotation lines and navigation back to the order.

  • Independent draft copies, reusable templates, and archiving.

  • Immutable approval snapshots/PDFs with approver, date, and reason.

  • Latest approved PDF and selectable revision history on the sale line, including while a replacement draft is being edited.

  • Frozen customer, quotation/order, and sale-line identity in approval evidence.

  • Deletion/reassignment safeguards that retain drawing ownership and history.

Optional manufacturing

  • Direct dispatch of an approved stockable product in standard Units.

  • Warning or blocking company-specific manufacturing profiles.

  • Manufacturing links to the drawing and its dispatched revision.

  • Progress across splits/backorders and replacement of canceled remainders.

Configuration

Installation and products

Install on Odoo 18 Community. Dependencies are base, web, sale, and mrp. PDF generation requires an Odoo-supported wkhtmltopdf installation.

The module creates the Custom-made glass stockable product in standard Units. It is a default for standalone drawings, not a mandatory sales product. Quotation drawings retain the line's accessible product, including service and area-based products.

If the seeded product is inaccessible or incompatible with the selected company, a standalone form leaves Product empty: select an accessible product. Optional pmis_base_multi_company sharing is supported, not required. Existing product sharing is not widened; an administrator must configure the intended product companies or maintain separate products.

For production, configure bills of materials and normal MRP setup separately. The configurator creates the manufacturing order; it does not build raw-material requirements or workcenter operations from the drawing.

Access and companies

  • Sales users can create, edit, approve, print, and reuse accessible drawings. Quotation entry and Copy Drawing require write access to the destination line.

  • Manufacturing users can also configure drawings and dispatch approved designs. Manufacturing access alone does not grant access to sale orders.

  • Manufacturing managers maintain profiles. Sales managers and Manufacturing managers can maintain the shape catalog.

  • Company rules apply to configurations, fabrications, finishes, revisions, and profiles. Personal-sales users see their own/unassigned quotation designs; standalone designs are shared within allowed companies.

  • All-document sales and Manufacturing roles see allowed-company designs. Attachments follow configuration access. Portal drawing access and customer portal approval are not provided.

Set manufacturing review limits

  1. As a Manufacturing manager, open Glass Configurator / Manufacturing Profiles and create a profile for the relevant company.

  2. Choose Warning or Block Confirmation and Dispatch.

  3. Enter applicable width, height, thickness, hole-diameter, edge-clearance, and fabrication-spacing limits in millimeters. Zero disables a limit.

  4. Save. Select the profile on a draft drawing and review its feedback.

Warning profiles do not block approval. Blocking profiles prevent confirmation and dispatch; the same checks also block Print Drawing when limits are violated. A visible Confirm Design button is not proof that all checks will pass.

Boundary notches are exempt from hole/slot edge clearance. Rectangular clearances use a conservative expanded bounding rectangle. Profiles are review limits, not certified manufacturing tolerances.

Usage

1. Start from a quotation line

  1. Create/open the quotation, choose its customer, and add a regular product line. Sections and notes cannot own drawings.

  2. Save the quotation and line first. Unsaved lines hide drawing actions; the quotation displays saving guidance.

  3. Click Configure Glass on the saved line. Its embedded form uses Open Glass Configuration instead. Mobile line cards also expose drawing actions and reference/status.

  4. An existing drawing opens directly, including an archived drawing. Otherwise a new form opens with the line's product and company.

  5. Check Number of Sheets. Unit-category sales quantities convert to physical Units without rounding and must produce a positive whole number. Area-based quantities do not determine pieces: enter the count explicitly; a new drawing otherwise starts at one sheet.

  6. Complete and save the drawing using the following workflows.

  7. Use Open Sale Order to return to the accessible owning order.

Opening/copying from a canceled order is blocked. Drawing edits do not change the line's ordered quantity, area, or price.

3. Choose the outline and dimensions

  1. Select the shape, or click Browse Shapes followed by Use This Shape on its catalog card.

  2. Enter millimeter dimensions: width/height for a rectangle or ellipse; diameter for a circle; bottom width, top width, and height for a trapezoid. A trapezoid's top is centered, positive, and no wider than its bottom.

  3. Enter positive thickness and a positive whole-number sheet count. Required outline dimensions must be positive before printing/approval.

  4. Optionally set Requested Production Date and a profile. The requested date becomes the deadline of a directly created manufacturing order.

  5. Review preview and material summary. Invalid-draft figures are provisional.

The supported trapezoid is always isosceles. Catalog names/images do not define additional geometry types.

4. Add holes, notches, and slots

  1. Open Fabrications and add a row.

  2. Choose its type and enter coordinates in millimeters. The origin is the bottom-left corner of the sheet's bounding box.

  3. For a Hole, enter center X/Y and diameter.

  4. For a Notch or Slot, enter lower-left X/Y, width, and height. A notch must touch the outline; use Slot for an interior rectangular cut.

  5. Add an optional note and reorder rows with their handles if needed. Drawing numbers follow fabrication order.

  6. Save. New rows must be saved before selection/dragging in the drawing.

For example, on a 1000 × 800 mm rectangle, a 40 mm hole at X = 100, Y = 100 has its center 100 mm from the left and bottom edges.

Cuts must fit inside/on the outline, may touch but cannot overlap, and must leave positive net glass area. Invalid layouts can remain correctable drafts, but cannot be printed or approved. Negative/nonfinite dimensions and invalid sheet counts are rejected on save.

5. Move and inspect fabrications

  1. Select a saved cut using its drawing anchor, the selector, or the numbered details below the drawing.

  2. Drag a hole by its center or a rectangular cut by its lower-left position; alternatively use the directional move buttons.

  3. Set Snap (mm) to round absolute coordinates to a grid. Zero disables grid snapping; key/button movement then uses a 1 mm step.

  4. With drawing focus, use arrow keys to move; Shift multiplies the step by ten. Previous/Next fabrication and Page Up/Page Down cycle through loaded rows.

  5. Use Undo move / Redo move, or Ctrl/Command + Z and Ctrl/Command + Shift + Z while the drawing has focus.

  6. Review feedback, then Save to retain moves or Discard to revert the form's unsaved changes.

Undo/redo covers positional drawing moves only. Changes to geometry, fabrication coordinates/types/sizes, or the loaded row set can reset history.

Only saved fabrications currently loaded in the table are selectable. Use Fabrications pagination to load other rows. Zoom and Fit drawing change presentation only and work on locked designs too; scroll within a zoomed drawing.

6. Apply numeric placement helpers

  1. Save the draft and its fabrication rows.

  2. Click Placement Helpers, select a fabrication, and choose an operation:

    • Center: center within the sheet's bounding width/height.

    • Mirror Horizontally / Vertically: move to the reflected position, without creating a copy.

    • Place from Opposite Edges: enter right/top bounding-box distances. Hole distances identify the center; rectangular distances identify the right/top edges.

    • Duplicate: create one copy at the entered X/Y offsets from the original.

    • Evenly Spaced Holes: select a hole, enter X/Y steps, and set a total count of 2–100 positions, including the original.

  3. Click Apply and review the refreshed layout and validation.

Helpers modify saved draft records, not the drawing's positional undo buffer. Undo move does not reverse them; correct coordinates or remove unwanted copies. Bounding-box placement can be invalid for curved/trapezoidal outlines or notches.

7. Add specifications and edge finishes

  1. Open Specifications and Edge Finishes on a draft.

  2. Enter material, treatment, and coating/surface instructions.

  3. Add either one Whole Outline finishing instruction, or one instruction per selected Bottom, Right, Top, or Left edge of a rectangle/trapezoid.

  4. Enter the finishing instruction and optional note. Curved sheets support Whole Outline only. Do not mix it with individual edges or repeat an edge.

  5. Review Length per Sheet (m) and save.

Lengths follow the original outer outline: no notch deductions or cut boundaries are included. Ellipse lengths are approximate. Instructions are preserved in quotation descriptions, snapshots, and PDFs, but do not change products, density, bills of materials, or routes.

8. Confirm and retrieve drawings

  1. Correct geometry errors and review sales/profile feedback.

  2. Optionally enter Approval / Reopen Reason for this approval.

  3. Click Confirm Design. Odoo saves pending form changes before the action.

  4. Successful confirmation creates a numbered revision with approver/date, snapshot, and PDF. It locks design inputs and updates the managed drawing description on the linked sale line while retaining other quotation prose.

  5. Use Print Drawing to download the preserved approved PDF.

  6. On the quotation line, Latest Approved Revision and Approved PDF retain the last approval independently of Draft / Drawing Status. Approved Drawings lists all revisions; select a row or use Open Approved PDF / Download Approved PDF. Older revisions are labeled Superseded after another approval.

  7. Open Revisions and History for past approval details and attachment links. Open a revision for its recorded preview and snapshot.

A valid draft can also Print Drawing, but its PDF is marked DRAFT — NOT APPROVED FOR PRODUCTION. Draft printing does not approve the design or create an approval revision.

Approved PDFs freeze the customer name, quotation/order name, line identifier, sequence, and description at approval. Renaming sales records does not regenerate them. PDFs show numbered drawing anchors and exact dimensions in a full fabrication table with repeated headers; coordinate-origin guidance and finishing instructions remain alongside the drawing. Approval failures roll back the entire publication.

The reference is assigned on save from one shared sequence across companies. Reapproval increments the revision, not the reference. History/status are read-only; use workflow buttons rather than direct status edits/imports.

9. Reopen and reconcile quotation changes

  1. On a Confirmed design, enter an optional Approval / Reopen Reason and click Reopen Design. The event is recorded; prior PDFs remain intact.

  2. Edit the draft. If the quotation product/Unit count changed, review the warning and use Use Quotation Product and Count to adopt its saved values. Area-based lines retain the drawing's physical sheet count.

  3. Obtain the previous approved PDF from the sale line while editing. Its approval applies to that revision; it does not approve the current draft.

  4. Review and Confirm Design again to create the next revision/PDF and update the quotation's managed description.

Quotation changes do not silently overwrite drawings. Reconciliation is offered only on a draft with sales feedback. A sales mismatch is not itself a geometric approval error, but blocks dispatch. A canceled quotation also blocks dispatch and cannot be used for reconciliation.

In Production/Done designs cannot reopen. Cancel all unfinished orders first. A canceled batch with no completed sheets can reopen; partially completed batches require the remainder workflow below.

10. Copy a drawing or reuse a template

Copy onto another quotation line

  1. Save the destination product line. It must have no drawing and be in the source drawing's company.

  2. Click Copy Drawing, select an accessible Source Drawing by reference or description, and confirm the dialog.

  3. Review the independent draft: destination product/company, copied geometry, fabrications, specifications, and finishes.

  4. Check count. Unit lines supply converted physical Units; area-based lines retain the source's count.

  5. Set the requested date/reason and approve independently.

The copy has a new reference and no approval/production history. Duplicating a quotation/line does not automatically copy its drawing. Use Copy Drawing explicitly. A copied quotation may retain the original description until the new drawing is confirmed.

Reuse a standalone design

  1. On a draft, enable Reusable Template and save.

  2. In Configurations, apply the Reusable Templates filter and open a template.

  3. Click Use Template to create an active standalone draft.

  4. Select its intended sale line/product, check count, and enter a requested date before approval.

Use Template copies design content, but clears sales ownership, approval, production history, requested date, and approval/reopen reason. Templates cannot dispatch directly; manufacture working copies. Standard configuration duplication likewise creates an independent draft without original sales ownership or approval/production history.

11. Send an approved design to production

  1. With Manufacturing access, open a Confirmed, non-template drawing.

  2. Check that Product is stockable and uses the exact standard Units UoM. Drawing approval eligibility does not imply direct-manufacturing eligibility.

  3. Resolve canceled-quotation or product/Unit-count mismatches and blocking profile violations.

  4. Click Send to Production to create/open a manufacturing order for the physical sheet count.

  5. Review, confirm, and process it through normal Odoo Manufacturing workflows; the configurator does not itself complete the order.

  6. Use the drawing's Manufacturing button for current/historical orders. Their Miscellaneous tab contains configuration/revision links, and their chatter carries the approved PDF.

Dispatch sets the drawing In Production even while the new order is still draft. The PDF remains owned by the configuration. Sales-only users cannot dispatch.

12. Track completion and recover canceled production

Splits/backorders retain the dispatched revision. Completed Sheets sums done orders for the current dispatched revision; Remaining Sheets is demand less that completed count.

  • Any open current-revision order keeps the drawing In Production.

  • Once all are done/canceled, the drawing is Done if completed count meets demand, or Production Cancelled if sheets remain unfinished.

Nothing completed

  1. Cancel unfinished manufacturing orders.

  2. Open the configuration and Reopen Design.

  3. Correct, reconfirm, and Send to Production under the new revision. Historical orders remain linked.

Some sheets completed

  1. Cancel all unfinished orders until the design is Production Cancelled.

  2. Check Completed Sheets and Remaining Sheets.

  3. With Manufacturing access, click Replace Cancelled Remainder.

  4. Process the new order for only unfinished sheets under the same revision.

Partially completed designs cannot reopen for geometry changes. Replacement requires a positive remainder and an eligible design without blocking sales/profile issues. Do not dispatch the original full count again.

13. Archive, find, or remove a configuration

  1. Search by reference/description, customer, or product; filter by status or group by status, customer, or shape.

  2. Archive through Odoo's archive action or disable Active. Use the Archived filter to find it and unarchive when needed.

  3. Remember: archive does not cancel orders, release sale-line ownership, or remove evidence.

  4. Delete only an unapproved draft without revision/manufacturing history.

Even archived drawings block line/order deletion. Remove an eligible draft drawing first, or cancel the order to retain evidence. Drawn lines cannot move to another order, and their orders cannot change company. Salesperson reassignment follows existing access rules. Drawings with history cannot detach/change sale lines, even after reopening.

Shape catalog maintenance

Sales managers and Manufacturing managers can maintain Glass Configurator / Shapes. Enter a name, code, supported shape type, image, and description. Additional catalog entries reuse the four implemented geometry types; uploading an image does not define an outline.

Use Browse Shapes from a saved draft to apply a catalog card. Use This Shape needs that selection context: opening the catalog directly does not start a configuration. A shape's type cannot change when an active non-draft drawing uses it; create another catalog entry instead.

Data and integration notes

  • glass.item owns the design, company, physical count, reference, and optional sale.order.line link. A database constraint enforces one drawing per line.

  • glass.item.feature and glass.item.edge hold fabrications/finishes and follow the parent's draft-only editing rules.

  • glass.revision retains immutable approval snapshots and protected PDF links. Reopening clears current pointers, not prior revision evidence.

  • mrp.production keeps drawing/revision links across splits/backorders.

  • The managed sale description is refreshed on confirmation, not every draft edit. This update does not rewrite commercial product/quantity/price fields.

  • No automatic sibling-addon measurement or ASC export, variant pricing, or workcenter-cost integration is implemented here.

Known limitations

  • No arbitrary polygons, asymmetric trapezoids, rotated cuts, CAD import, direct drawing creation/resizing tools, or customer-portal approval.

  • Create/resize cuts numerically; the interactive editor moves saved loaded cuts.

  • Weight uses fixed glass density 2,500 kg/m³. Estimates are not structural checks, manufacturing tolerances, optimization plans, or machine instructions.

  • Finishing lengths exclude fabrication boundaries/notch deductions. Ellipses use Ramanujan's second perimeter approximation.

  • Specifications/images are descriptive, not route or machine-operation setup.

  • Immutable approval evidence does not freeze all catalog metadata. Shape type changes are guarded for active non-draft designs; names/images remain catalog metadata.

  • Pricing and variant extra prices are outside the configurator's scope.

TODO

See the enhancement checklist for historical validation evidence. Iterations 1–3 cover sale-line entry/ownership, complete drawing authoring, and approved revisions/PDFs. Iteration 4 connects native quotation duplication, independent Unit/Surface drawing copies, editing, approval, reopening and actual current/historical PDF downloads under ordinary sales permissions. Completed downloads must match their approved binary checksum; sales quantities stay intact. Final acceptance passes in English and Slovenian on desktop and mobile. Proposed items are not current functionality.

See the browser testing guide for desktop/mobile checks and frontend execution versus Python coverage boundaries. Measurement and machine-export bridges are separate follow-ups.

Bug Tracker

Bugs are tracked on PMISuite Repository Issues. 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.

Credits

Authors

Contributors

  • No additional contributors listed.

Maintainers

LUXIM MATMOZ

Current maintainer:

sysadminmatmoz

Luxim is an independent R&D and deployment company focused on solving complex problems in the Odoo ecosystem.

Odoo Community Association

Luxim is an active member of OCA (Odoo Community Association).