From 82599cfc378e17e5476dfe5170c01f8f9b91510a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Apr 2026 17:53:31 +0000 Subject: [PATCH] Update all README files to match JobTicket Split Signatures format Agent-Logs-Url: https://github.com/printvis/OpenSource/sessions/fef4fc1e-60eb-461e-8a52-50850f0eaf05 Co-authored-by: basprintvis <141929448+basprintvis@users.noreply.github.com> --- AddSchedulingProblem/README.md | 26 +++++++++ AddSchedulingProblem/readme.md | 11 ---- AutoLockMilestone/README.md | 33 +++++++++-- AvoidSameSorting/README.md | 27 +++++++-- BuildSignatures/README.md | 57 +++++++++++++++---- CIM Migration To PTE/README.md | 46 +++++++++++++++ .../README.md | 47 +++++++++++++++ Copy Price Method/README.md | 25 ++++++++ Copy Price Method/readme.md | 9 --- Copy with Lookup/README.md | 6 +- FilterOrderOnly/README.md | 36 +++++++++++- JobTicketCommentsRichText/README.md | 41 ++++++++++--- .../README.md | 31 +++++++--- PrintVis FG Valuation PTE/README.md | 41 +++++++++++++ PrintVis FG Valuation PTE/Readme.md | 15 ----- ReleaseFinishedGoodsShowJobItems/README.md | 35 ++++++++++++ ReleaseFinishedGoodsShowJobItems/ReadMe.md | 15 ----- RollJobItem/README.md | 40 +++++++++++-- Sales Order Integration/README.md | 52 +++++++++++++++++ Sales Order Integration/ReadMe.md | 44 -------------- .../README.md | 25 ++++++++ .../ReadMe.md | 14 ----- Split by Versions/README.md | 44 ++++++++++++++ Split by Versions/ReadMe.md | 17 ------ SplitProduction/README.md | 51 +++++++++++++++++ SplitProduction/ReadMe.md | 56 ------------------ .../README.md | 32 +++++++++++ .../ReadMe.md | 24 -------- Sync/README.md | 53 +++++++++++++++++ 29 files changed, 699 insertions(+), 254 deletions(-) create mode 100644 AddSchedulingProblem/README.md delete mode 100644 AddSchedulingProblem/readme.md create mode 100644 CIM Migration To PTE/README.md create mode 100644 CIM Move Controller and Device Data to PrintVis/README.md create mode 100644 Copy Price Method/README.md delete mode 100644 Copy Price Method/readme.md create mode 100644 PrintVis FG Valuation PTE/README.md delete mode 100644 PrintVis FG Valuation PTE/Readme.md create mode 100644 ReleaseFinishedGoodsShowJobItems/README.md delete mode 100644 ReleaseFinishedGoodsShowJobItems/ReadMe.md create mode 100644 Sales Order Integration/README.md delete mode 100644 Sales Order Integration/ReadMe.md create mode 100644 ShopFloorPreventCompleteWithoutConsumption/README.md delete mode 100644 ShopFloorPreventCompleteWithoutConsumption/ReadMe.md create mode 100644 Split by Versions/README.md delete mode 100644 Split by Versions/ReadMe.md create mode 100644 SplitProduction/README.md delete mode 100644 SplitProduction/ReadMe.md create mode 100644 Status Code Lookup - filtered by Case Type/README.md delete mode 100644 Status Code Lookup - filtered by Case Type/ReadMe.md create mode 100644 Sync/README.md diff --git a/AddSchedulingProblem/README.md b/AddSchedulingProblem/README.md new file mode 100644 index 0000000..a1ca088 --- /dev/null +++ b/AddSchedulingProblem/README.md @@ -0,0 +1,26 @@ +# Add Scheduling Problem + +This extension provides a framework for adding custom scheduling problem notifications to the PrintVis Planning Board. The included example adds a scheduling problem called **"Planned after delivery date"**, which turns any planning unit red and displays the problem if the scheduled ending time falls after the requested delivery date on the case. + +## What this extension includes + +- Codeunit 80195 **"SchedulingProblem"** + +## How it works + +The codeunit subscribes to the `OnBeforeInfoText` event on the `PVS Job Planning Unit` table. When the info text for a planning unit is being evaluated: + +1. It calculates and reads the **Requested Delivery DateTime** from the related case. +2. If a delivery date is set and the planning unit's **Ending** time is after that date, it sets the info text to `'Planned after delivery date'`. +3. This causes the planning unit to appear red on the Planning Board with the problem description shown. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 25.0.0.0). +- Business Central application compatible with version 26.0.0.0. + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the dependency version. +- The scheduling problem check runs automatically — no additional configuration is required. diff --git a/AddSchedulingProblem/readme.md b/AddSchedulingProblem/readme.md deleted file mode 100644 index fba9382..0000000 --- a/AddSchedulingProblem/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# Add Scheduling Problem - -This extension can be used at companies that would like to have more scheduling problem notifications when working with the planning units. The example provided was to add a new scheduling problem called "Planned after delivery date" which will turn any planning unit red and give this scheduling problem if the scheduled ending time is after the requested delivery date. - -## What this extension includes: - -- A custom codeunit (80195) that will add scheduling problem notifications. - -## What you will need to do for this extension to work - -- Install the extension. diff --git a/AutoLockMilestone/README.md b/AutoLockMilestone/README.md index 85af4cc..ecb64b8 100644 --- a/AutoLockMilestone/README.md +++ b/AutoLockMilestone/README.md @@ -1,10 +1,31 @@ -# Auto lock milestones +# Auto Lock Milestones -Planning units in PrintVis can be marked as locked as a manual process by the user. Depending on setup, a locked planning unit cannot be moved unless it is unlocked. - -This code automates the setting of status locked on planning units. If a planning unit marked as a milestone, is moved by the user, it will automatically be marked as locked. So it will require a manual unlocking before the milestone can be moved again +Planning units in PrintVis can be marked as locked as a manual process by the user. Depending on setup, a locked planning unit cannot be moved unless it is first unlocked. -## What this extension includes: +This extension automates the locking of planning units that are marked as milestones. If a milestone planning unit is moved by the user, it is automatically set to **Locked** status. It must then be manually unlocked before the milestone can be moved again. -- An event subscriber (codeunit 80199) that potentially replaces the normal procedure controlling the planning status after a manual move. +## What this extension includes + +- Codeunit 80199 **"PTE AutoLock Milestone"** + +## How it works + +The codeunit subscribes to the `On_Before_Check_Planning_Method` event in `PVS Planning Management`. When the planning status of a planning unit is being evaluated after a move: + +1. It checks if the planning unit is marked as a **Milestone**. +2. It verifies that the planning unit has a start time (i.e., it has been moved). +3. It confirms the current planning status is **Variable Planned**. +4. If all conditions are met, the planning status is set to **Locked** and the standard procedure is bypassed. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 24.0.0.0). +- Business Central application compatible with version 24.0.0.0. +- Planning units must be marked as **Milestone** for the auto-lock logic to apply. + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the dependency version. +- Mark the relevant planning units as **Milestone**. The lock is applied automatically when a milestone is moved. diff --git a/AvoidSameSorting/README.md b/AvoidSameSorting/README.md index 0ff3c69..f148c46 100644 --- a/AvoidSameSorting/README.md +++ b/AvoidSameSorting/README.md @@ -1,8 +1,27 @@ -# Avoid same planning sorting -Whenever a new planning unit is created (for sheet 0), this codeunit ensures its Sorting Order doesn't collide with an existing planning unit that shares the same Unit and Capacity Unit, bumping the order up by 1 if a conflict is found. +# Avoid Same Planning Sorting +Whenever a new planning unit is created for sheet 0, this extension ensures its Sorting Order does not collide with an existing planning unit that shares the same Unit and Capacity Unit. If a conflict is found, the Sorting Order is incremented by 1 to avoid duplication. -# What this extension includes: +## What this extension includes -- An event subscriber (codeunit 80421) that check a potential sorting conflict after a new Planning Unit Record has been inserted. +- Codeunit 80421 **"PTE Avoid Same Sorting"** + +## How it works + +The codeunit subscribes to the `OnAfterFind_Create_TempPlanUnit` event in `PVS Planning Units Generate`. When a new planning unit is created: + +1. It checks if the unit was just created (not pre-existing) and is on sheet 0. +2. It searches the temporary planning unit records for existing units in the same job with the same Unit and Capacity Unit that share the same Sorting Order. +3. If a conflict is found, the Sorting Order of the new planning unit is incremented by 1. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 24.0.0.0). +- Business Central application compatible with version 27.0.0.0. + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the dependency version. +- The conflict check runs automatically when new planning units are created — no additional configuration is required. diff --git a/BuildSignatures/README.md b/BuildSignatures/README.md index 05b528a..59d7bd8 100644 --- a/BuildSignatures/README.md +++ b/BuildSignatures/README.md @@ -1,14 +1,47 @@ # Automated Job Signatures -PrintVis is writing the AssemblySection into the Assembly Node of the JDF, which describes how the sections for the PrintVis Job Items are bound together. The Assembly setting must be made manually in the **PrintVis Job Signatures** by the user. - -This code automates the building of the **PrintVis Job Signatures** and covers the following topics: -- Sheets/Job Items with component type setting _JDF Product Type =Cover_ exists, this will be the first line (Assembly Order =1) in the list. (Only 1 cover is supported). -- Residual sheets with 4 pages on the last job item are moved to be the second last line. -- Job Signatures are indented based on the CIP3 Binding/Finishing setup on the **PrintVis Cost Center Configuration** or **PrintVis Finishing Types**. The supported settings are, HardCover (Assembly Order=List), SoftCover (Assembly Order=List) and SaddleStitch (Assembly Order=Collecting). -The code will only build the Job Signatures automatically if no manual changes has been made. To reset the manual settings the user can hit the action **Rebuild Signatures**. - -## What this extension includes: - -- An event subscriber (codeunit 88200) that potentially replaces the normal procedure that is building the sorting order of signatures -- A page extension (80200) on the "PVS Job Print Signature" worksheet adding an action to rebuild the sorting orders of signatures. +PrintVis writes the Assembly Section into the Assembly Node of the JDF, which describes how the sections for the PrintVis Job Items are bound together. The Assembly setting must be made manually in **PrintVis Job Signatures** by the user. + +This extension automates the building of **PrintVis Job Signatures** and covers the following scenarios: + +- Sheets/Job Items with a component type marked as a cover are placed as the first line (Assembly Order = 1). Only one cover is supported. +- Residual sheets with 4 pages on the last job item are moved to the second-to-last position. +- Job Signatures are indented based on the CIP4 Binding/Finishing setup on the **PrintVis Cost Center Configuration** or **PrintVis Finishing Types**. Supported settings are HardCover (Assembly Order = List), SoftCover (Assembly Order = List), and SaddleStitch (Assembly Order = Collecting). + +The code will only build the Job Signatures automatically if no manual changes have been made. To reset the manual settings, the user can use the **Rebuild Signatures** action. + +## What this extension includes + +- Codeunit 80198 **"PTE BuildSignatures"** — event subscriber that replaces the standard procedure for building the sorting order of signatures. +- Page extension 80198 **"PTE Job Print Signatures"** extends **"PVS Job Print Signatures"** — adds the **Rebuild Signatures** action. + +## How it works + +The codeunit subscribes to the `OnBeforeBuild_Entries` event on the `PVS Job Signatures` table. When job signatures are being built: + +1. It determines the Assembly Style by checking the CIP4 Binding setting on the finishing calculation unit's Cost Center Configuration. If not found there, it falls back to the Finishing Types setup on the job. If neither is set, it defaults to **Gathering**. +2. Based on the binding type, the Assembly Style is set to: **List** (HardCover/SoftCover), **Collecting** (SaddleStitch), or **Gathering** (default). +3. Cover sheets are assigned Assembly Order 1. Remaining sheets follow in order, with residual sheets placed second-to-last. +4. Indentation is applied per the Assembly Style: Collecting uses incremental indentation, List indents all entries except the first, and Gathering applies no indentation. +5. If signatures have been set manually previously, those stored values are reused rather than overwritten. + +## How to configure + +Step 1 Install the extension in your Business Central environment. + +Step 2 Ensure your Cost Center Configuration or Finishing Types have the **CIP4 Binding** field set to the appropriate binding type (HardCover, SoftCover, or SaddleStitch). + +Step 3 Open a PrintVis Job and navigate to the Job Signatures worksheet. Signatures are built automatically based on the setup. Use the **Rebuild Signatures** action to reset any manual changes. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 24.0.0.0). +- Business Central application compatible with version 24.0.0.0. +- CIP4 Binding must be configured on Cost Center Configuration or Finishing Types for automatic indentation to apply. + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the dependency version. +- The logic runs automatically when job signatures are built — no additional configuration is required beyond the CIP4 Binding setup. + diff --git a/CIM Migration To PTE/README.md b/CIM Migration To PTE/README.md new file mode 100644 index 0000000..7b20889 --- /dev/null +++ b/CIM Migration To PTE/README.md @@ -0,0 +1,46 @@ +# CIM App Migration to PTE + +This project provides the tools needed to migrate data from the old CIM OnPrem app to the new PTE app. The migration is a three-part process that moves data through temporary tables before loading it into the new extension. + +## What this extension includes + +- Source code and app.json for three migration app parts, each in its own folder under `src`. +- Enum and table definitions shared across migration parts. + +## How it works + +The migration is split into three parts, each requiring a separately compiled app: + +1. **Part 1 — Move CIM data to the migration app**: Installs temporary tables and runs an upgrade that copies CIM data into them. +2. **Part 2 — Remove the old dependency**: Uninstalls the old CIM app and installs the new PrintVis and CIM versions. +3. **Part 3 — Move data to the new PTE app**: Installs the final migration app, which transfers data from the temporary tables into the new PrintVis CIM extension. + +## How to configure + +Step 1 Review the code in each `Upgrade Part` folder and compile the app for each part by copying the relevant app.json to the root directory and commenting/uncommenting the corresponding codeunit. + +Step 2 Install **Part 1** (`PTE CIM 1 - upg temp tables`). This triggers the upgrade codeunit that moves data from PrintVis into the temporary tables. + +Step 3 Uninstall and unpublish the old **PrintVis CIM** app. + +Step 4 Install the new **PrintVis** (version 26.1.1.0) and **PrintVis CIM** (version 26.1.1.0) apps. Install PrintVis CIM with mode = Force. + +Step 5 Install **Part 3** (`PTE CIM 1 - Move Data into PrintVis`). This triggers the upgrade that moves data from the temporary tables into the new PrintVis CIM extension. + +Step 6 Uninstall and remove **Part 3** (select **Delete Extension Data**). + +Step 7 Verify that data exists in PrintVis CIM Controller, CIM Device, and Cost Center Device Code. + +Step 8 Uninstall and remove **Part 1** (select **Delete Extension Data**). + +## Prerequisites to run the functionality + +- The old PrintVis CIM app must be installed before starting the migration. +- PrintVis version 26.1.1.0 and PrintVis CIM version 26.1.1.0 must be available for installation. +- If the `PVS CIM Controller` or `PVS CIM Device` tables have custom fields, add them to the `PTE CIM 1 - upg temp tables` app before starting the migration, or those custom fields will not be migrated. + +## What you will need to do for this extension to work + +- Compile each migration app part separately by updating the app.json and commenting/uncommenting the relevant codeunit as described in each folder. +- Follow the migration steps in order. Do not skip steps. +- For OnPrem or Container environments, run the appropriate PowerShell script (found in the `OnPrem Scripts` folder) and update the input section at the top of the script before running. diff --git a/CIM Move Controller and Device Data to PrintVis/README.md b/CIM Move Controller and Device Data to PrintVis/README.md new file mode 100644 index 0000000..96be54c --- /dev/null +++ b/CIM Move Controller and Device Data to PrintVis/README.md @@ -0,0 +1,47 @@ +# CIM Move Controller and Device Data to PrintVis + +PrintVis version 26 introduced breaking changes to the PrintVis CIM app. Two tables — `PVS CIM Controller` and `PVS CIM Device` — were moved from the PrintVis CIM PTE app into the core PrintVis app. This project provides upgrade apps and scripts to transfer existing data from older installations into the new structure without data loss. + +## What this extension includes + +- App 1: **PTE CIM 1 - upg temp tables** — installs temporary tables and triggers an upgrade to move data out of the old CIM app. +- App 3: **PTE CIM 1 - Move Data into PrintVis** — triggers an upgrade to move data from the temporary tables into the new PrintVis CIM extension. +- PowerShell scripts for OnPrem/Container environments, located in the `OnPrem Scripts` folder. + +## How it works + +The upgrade process uses two temporary apps as intermediaries to safely transfer data through a breaking dependency change: + +1. App 1 creates temporary tables and runs an upgrade codeunit that copies CIM Controller and Device data from the existing PrintVis CIM installation into those tables. +2. The old PrintVis CIM app is removed and the new versions of PrintVis and PrintVis CIM are installed. +3. App 3 runs an upgrade codeunit that reads the data from the temporary tables and inserts it into the new PrintVis CIM tables. + +## How to configure + +Step 1 If `PVS CIM Controller` or `PVS CIM Device` contain custom fields, add those fields to App 1 (`PTE CIM 1 - upg temp tables`) before proceeding, otherwise they will not be migrated. + +Step 2 Install App 1 (`PTE CIM 1 - upg temp tables`). This triggers the upgrade and moves data from PrintVis into App 1. + +Step 3 Uninstall and unpublish the old **PrintVis CIM** app. + +Step 4 Install **PrintVis** version 26.1.1.0, then install **PrintVis CIM** version 26.1.1.0 with mode = Force. + +Step 5 Install App 3 (`PTE CIM 1 - Move Data into PrintVis`). This triggers the upgrade and moves data from App 1 into the new PrintVis CIM tables. + +Step 6 Uninstall and remove App 3 (select **Delete Extension Data**). + +Step 7 Open Business Central and verify that data exists in PrintVis CIM Controller, CIM Device, and Cost Center Device Code (tables 80265, 80264, and 80263). + +Step 8 Uninstall and remove App 1 (select **Delete Extension Data**). + +## Prerequisites to run the functionality + +- An existing installation of PrintVis CIM on a version prior to 26.1.1.0. +- PrintVis version 26.1.1.0 and PrintVis CIM version 26.1.1.0 available for installation. +- For OnPrem/Container environments, access to run PowerShell scripts against the Business Central instance. + +## What you will need to do for this extension to work + +- For Cloud environments: follow the steps above using the Business Central admin center. +- For OnPrem/Container environments: update and run the appropriate PowerShell script from the `OnPrem Scripts` folder before following the steps above. +- Follow the upgrade steps in order. Skipping steps may result in data loss. diff --git a/Copy Price Method/README.md b/Copy Price Method/README.md new file mode 100644 index 0000000..a38c143 --- /dev/null +++ b/Copy Price Method/README.md @@ -0,0 +1,25 @@ +# Copy Price Method + +PrintVis Copy-To and Copy-From functionality makes an exact copy of the case or job being copied. This extension adjusts that behavior so that the job line price method is automatically reset to **Calculated** when the copy is completed, rather than retaining the price method from the source job. + +## What this extension includes + +- Codeunit 80279 **"OS Copy Price Method"** + +## How it works + +The codeunit subscribes to the `OnAfterCopyCompleteJob` event in `PVS Copy Management`. When a job copy is completed: + +1. It validates the **Price Method** field on the newly created job, setting it to **Calculated**. +2. It saves the change by calling Modify on the job record. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 26.4.1.1). +- Business Central application compatible with version 26.0.0.0. + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the dependency version. +- The price method reset runs automatically after every job copy — no additional configuration is required. diff --git a/Copy Price Method/readme.md b/Copy Price Method/readme.md deleted file mode 100644 index bbd610b..0000000 --- a/Copy Price Method/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Copy Price Method - -PrintVis Copy-To and Copy-From functionality makes an exact copy of the case / job being copied. - -This code adjusts this functionality so that the job line price method is automatically set back to Calculated when the copy is completed. - -## What this extension includes: - -- An event subscriber (codeunit 80279) that extends the normal procedure by changing the price method to calculated after the copy is complete. diff --git a/Copy with Lookup/README.md b/Copy with Lookup/README.md index 6dd6f8e..deab839 100644 --- a/Copy with Lookup/README.md +++ b/Copy with Lookup/README.md @@ -21,11 +21,11 @@ The codeunit subscribes to the `OnAfterMainCopyJobToOrder` event in `PVS Copy Ma ## How to configure -**Step 1** Open the **PVS Calculation Unit Setup** page and locate the calculation units that should be re-inserted when a job is copied. +Step 1 Open the **PVS Calculation Unit Setup** page and locate the calculation units that should be re-inserted when a job is copied. -**Step 2** Enable the **Lookup on Copy** field on each applicable calculation unit. Note: this field is only available for units that are not of the "List Of Units" type. +Step 2 Enable the **Lookup on Copy** field on each applicable calculation unit. Note: this field is only available for units that are not of the "List Of Units" type. -**Step 3** Once configured, no further action is needed. The re-insertion happens automatically whenever a job is copied using the standard PrintVis copy functionality. +Step 3 Once configured, no further action is needed. The re-insertion happens automatically whenever a job is copied using the standard PrintVis copy functionality. ## Prerequisites to run the functionality diff --git a/FilterOrderOnly/README.md b/FilterOrderOnly/README.md index 367fc31..1956e36 100644 --- a/FilterOrderOnly/README.md +++ b/FilterOrderOnly/README.md @@ -1,5 +1,35 @@ -# PrintVis.BusinessCentral.ShowOnlyOrders +# Filter Order Only -Small example of only showing orders from the Case card +This extension adds a **Show Only Orders** toggle to the PrintVis Case Card that filters the jobs list to display only jobs with a status of **Order**. When the Case Card is opened for a case of type Order, the filter is applied automatically. -![]( https://github.com/printvis/PrintVis.BusinessCentral.ShowOnlyOrders/blob/main/docs/chrome-capture.gif) \ No newline at end of file +## What this extension includes + +- Page extension 80196 **"PTE Case Card"** extends **"PVS Case Card"** — adds the **Show Only Orders** toggle field. +- Page extension 80197 **"PTE Job ListPart"** extends **"PVS Job ListPart"** — filters the jobs list based on the toggle value. + +## How it works + +The page extensions work together to control the jobs list filter: + +1. When the Case Card is opened, if the case type is **Order**, the **Show Only Orders** toggle is automatically set to true and the jobs list is filtered to show only Order-status jobs. +2. When the user changes the **Show Only Orders** toggle, the jobs list filter is immediately applied or removed. +3. If the user tries to enable **Show Only Orders** on a case that is not of type Order or higher, an error is raised. + +## How to configure + +Step 1 Install the extension in your Business Central environment. + +Step 2 Open a PrintVis Case Card. + +Step 3 Use the **Show Only Orders** toggle to filter the jobs list. The toggle is set automatically when opening an Order-type case. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 25.3.0.0). +- Business Central application compatible with version 25.3.0.0. + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the dependency version. +- No additional configuration is required. The filter is applied automatically on Order-type cases. diff --git a/JobTicketCommentsRichText/README.md b/JobTicketCommentsRichText/README.md index 64edd36..2857d93 100644 --- a/JobTicketCommentsRichText/README.md +++ b/JobTicketCommentsRichText/README.md @@ -1,14 +1,41 @@ # Add Rich Text Case Description to Job Ticket -This extension can be used at companies that want to have the Rich Text case descriptions added to the standard PrintVis printed job tickets (6010303 and 6010900). Be aware that some rich text formatting cannot be recognized within RDLC reports (example: images, tables, colors) +This extension adds the rich text case description to the standard PrintVis printed job tickets (reports 6010303 and 6010900). Be aware that some rich text formatting cannot be rendered within RDLC reports — for example, images, tables, and colors are not supported. -## What this extension includes: +## What this extension includes -- Report extensions (80500 and 80501) to extend 6010303 and 6010900 job ticket reports. -- Codeunits (80500 and 80501) to add rich text descriptions to the dataset. -- Table extensions (80500 and 80501) to add the rich text fields to the job ticket temporary tables. -- Enum extension 80501 to extend line type. +- Report extension 80500 extends job ticket report 6010303. +- Report extension 80501 extends job ticket report 6010900. +- Codeunit 80500 adds rich text descriptions to the report dataset for report 6010303. +- Codeunit 80501 adds rich text descriptions to the report dataset for report 6010900. +- Table extension 80500 adds the rich text fields to the job ticket temporary table for report 6010303. +- Table extension 80501 adds the rich text fields to the job ticket temporary table for report 6010900. +- Enum extension 80501 extends the line type enum. + +## How it works + +Each report extension hooks into the job ticket dataset generation process. When a job ticket is generated: + +1. The codeunit reads the rich text description from the PrintVis case and formats it for inclusion in the report dataset. +2. The formatted rich text lines are inserted into the temporary job ticket table using the extended line type. +3. The report layout renders the rich text lines as plain text, since RDLC does not support full rich text formatting. + +## How to configure + +Step 1 Install the extension in your Business Central environment. + +Step 2 Open the report layout selection for the PrintVis job ticket reports (6010303 and 6010900). + +Step 3 Select the **Job Ticket Rich Text** layout for the desired report. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 24.0.0.0). +- Business Central application compatible with version 24.0.0.0. +- Rich text case descriptions must be entered on the PrintVis case for content to appear in the job ticket. ## What you will need to do for this extension to work -- Select the new report layout (Job Ticket Rich Text) when generating the job ticket report. \ No newline at end of file +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the dependency version. +- Select the **Job Ticket Rich Text** report layout when generating the job ticket report. diff --git a/Planning Board - ToolTip Performance/README.md b/Planning Board - ToolTip Performance/README.md index c409971..68b174f 100644 --- a/Planning Board - ToolTip Performance/README.md +++ b/Planning Board - ToolTip Performance/README.md @@ -1,13 +1,28 @@ -# Performance when reloading planning board +# Planning Board Tooltip Performance -When loading the planning board, most performance is used by generating Toolstips based on the setup. -By using an event, we can the the tools tip by code - and thus bypassing the setup, which can improve performace a lot. +When loading the Planning Board, significant time is spent generating tooltips for each planning unit based on the configured setup. This extension improves reload performance by caching the generated tooltip text on the planning unit record and reusing it on subsequent loads, only generating new tooltips for planning units that have not been cached yet. - -This code is using the normal setup rules when opening the planning board, but saves the tool tip on the planning unit, and reuses this text when reloading the planing board - only generating new ttol tips for planning units not used before. +## What this extension includes -## What this extension includes: +- Table extension 80800 **"PTE Planning Unit"** extends **"PVS Job Planning Unit"** — adds two fields to store the cached tooltip text and search text. +- Codeunit 80800 **"PTE ToolTip"** — event subscribers that cache and reuse tooltip text. -- A table extension (80800) on the "PVS Job Planning Unit" adding two extra fields to hold the tool text and search text. +## How it works + +The codeunit subscribes to three events in the Planning Board data pipeline: + +1. When the Planning Board is opened (`OnBeforeSetJSONSettings`), all cached tooltip texts are cleared so they are regenerated fresh on the first load. +2. After a tooltip is generated for a planning unit (`OnAfterTooltipText2`), the tooltip text and search text are saved to the two new fields on the planning unit record. +3. Before a tooltip is generated (`OnBeforeTooltipText`), if a cached tooltip text already exists on the planning unit, it is returned immediately and `IsHandled` is set to true, skipping the standard tooltip generation entirely. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 26.0.0.0). +- Business Central application compatible with version 26.0.0.0. + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the dependency version. +- The caching logic runs automatically — no additional configuration is required. -- An event subscriber (codeunit 80800) that saves the generated tooltip/searchtext on the planning unit, and reuses it later insted of rebuilding again diff --git a/PrintVis FG Valuation PTE/README.md b/PrintVis FG Valuation PTE/README.md new file mode 100644 index 0000000..b3c01a9 --- /dev/null +++ b/PrintVis FG Valuation PTE/README.md @@ -0,0 +1,41 @@ +# Finished Goods Valuation + +This extension provides a way to keep accurate cost values for finished goods output with a PrintVis case. It tracks the actual cost of finished goods items produced against PrintVis cases and supports adjusting those costs automatically through a job queue or manually through a dedicated page. + +> **Note:** This extension currently assumes there is only one finished goods item per case. + +## What this extension includes + +- Table 80260 **"PTE PVS FG Valuation"** — stores a summary of PrintVis output per case and item, including estimated and actual costs. +- Page 80260 **"PTE PVS FG Valuation List"** — displays all PrintVis output summaries with actions to create output entries for existing output, adjust the current output cost, and perform general adjustments. +- Codeunit 80260 **"PTE PVS FG Valuation Mngt."** — manages the full valuation logic including cost adjustment. This codeunit can be scheduled via a job queue entry to keep valuations updated automatically. +- Codeunit **"PTE PVS FG Valuation Event Sub."** — event subscriber that automatically marks output lines for re-evaluation when relevant changes occur. + +## How it works + +The extension monitors PrintVis output and adjusts the cost of finished goods items to reflect actual production costs: + +1. When output is posted against a PrintVis case, the event subscriber marks the corresponding valuation record as requiring re-evaluation. +2. The valuation management codeunit reads the estimated and actual costing entries from PrintVis and calculates the correct cost for the finished goods item. +3. The cost adjustment is written back to the item ledger using standard Business Central costing mechanisms. +4. The process can be triggered manually from the **PTE PVS FG Valuation List** page or automatically via a job queue entry pointing to codeunit 80260. + +## How to configure + +Step 1 Install the extension in your Business Central environment. + +Step 2 Open the **PTE PVS FG Valuation List** page to view and manage existing valuation entries. + +Step 3 Optionally, create a job queue entry pointing to codeunit 80260 to run the valuation adjustment automatically on a schedule. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 23.0.0.0). +- Business Central application compatible with version 25.0.0.0. +- Only one finished goods item per case is supported in the current version. + +## What you will need to do for this extension to work + +- Install the extension in a Business Central environment with PrintVis installed. +- Ensure the PrintVis app is installed and meets the dependency version. +- Optionally configure a job queue entry for automated valuation updates. diff --git a/PrintVis FG Valuation PTE/Readme.md b/PrintVis FG Valuation PTE/Readme.md deleted file mode 100644 index 68f8793..0000000 --- a/PrintVis FG Valuation PTE/Readme.md +++ /dev/null @@ -1,15 +0,0 @@ -# Finished Goods Valuation - -This extension provide a way to keep proper value for finished good outputed with a printvis Case. -Currently this extention assume that there is only one finished goods item per case. - -## What this extension includes: - -- Table (80260) wich keep the summarize of an printvis output. -- Page (80260) that contains the summarize of all printvis output with following actions: creating an output entries (for already existing output), current output adjustement and general adjustements. -- A codeunit (codeunit 80260) that manage the whole logic of valuation. This codeunit can be run with a job queue entries if we want to keep the valuation automatically. -- An event subscriber (codeunit 80260) to automatically mark a output line to be reevaluate. - -## What you will need to do for this extension to work - -- Install the extention in a BC 23(or earlier) BC env. with printvis. \ No newline at end of file diff --git a/ReleaseFinishedGoodsShowJobItems/README.md b/ReleaseFinishedGoodsShowJobItems/README.md new file mode 100644 index 0000000..a7ef8cc --- /dev/null +++ b/ReleaseFinishedGoodsShowJobItems/README.md @@ -0,0 +1,35 @@ +# Release Finished Goods Show Job Items + +This extension adds an option to the PrintVis Release Finished Goods page to filter estimated quantity and entries by Job Item rather than by Job. This gives more granular control when releasing finished goods for cases that have multiple job items with different output items. + +## What this extension includes + +- Codeunit 80175 **"PTE RFG Job Item Sub"** +- Table extension on **"PVS General Setup"** — adds the **Use Job Item** field to the Production tab. +- Page extension on **"PVS General Setup"** — exposes the **Use Job Item** field on the Production tab of the PrintVis General Setup page. + +## How it works + +The codeunit subscribes to two events on the **PVS Release finished goods** page and the **PVS Warehouse Mgt** codeunit: + +1. When the **Use Job Item** flag is enabled in PrintVis General Setup, the `OnBeforeBuildItemVariantTMP` subscriber filters the item variant list by job item rather than by job, building the list from the item numbers assigned to each job item. +2. When suggesting quantity for release (`OnBeforeSuggest_Quantity`), the subscriber calculates the estimated quantity based on the job item's item number and the already-posted item ledger entries, computing the remaining quantity to release. + +## How to configure + +Step 1 Install the extension in your Business Central environment. + +Step 2 Open **PrintVis General Setup** and go to the **Production** tab. + +Step 3 Enable the **Use Job Item** field at the bottom of the tab. Once enabled, the Release Finished Goods page will filter by Job Item. + +## Prerequisites to run the functionality + +- PrintVis version PV22: 22.16.3.0 or later, PV23: 23.10.1.4 or later, or PV24: 24.5.1.4 or later. +- The **Use Job Item** flag must be enabled in PrintVis General Setup. + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the minimum version requirement. +- Enable the **Use Job Item** field in PrintVis General Setup under the Production tab. diff --git a/ReleaseFinishedGoodsShowJobItems/ReadMe.md b/ReleaseFinishedGoodsShowJobItems/ReadMe.md deleted file mode 100644 index a5b11a8..0000000 --- a/ReleaseFinishedGoodsShowJobItems/ReadMe.md +++ /dev/null @@ -1,15 +0,0 @@ -# Release Finished Goods Show Job Items - - -## What this extension includes: - -adds an option to filter Estimed Quantity + Entries by Job Items rather than Jobs. -To activate it, go to "PrintVis General Setup" --> "Production" tab, -at the end of it should be a field called "Use Job Item". - -## What you will need to do for this extension to work - -This works with the following versions of PrintVis -PV24: 24.5.1.4 -PV23: 23.10.1.4 -PV22: 22.16.3.0 \ No newline at end of file diff --git a/RollJobItem/README.md b/RollJobItem/README.md index 6777534..bf82c75 100644 --- a/RollJobItem/README.md +++ b/RollJobItem/README.md @@ -1,13 +1,41 @@ # Roll Job Item -This extension can be used at companies that often cut roll stock down before printing and print on sheets. It would require the cutting operator to consume the amount of roll stock that is cut and use release finished goods to release sheets into stock. The press operator would then consume the sheets at the press. Either the sheets or the roll would need to have a 0 price in PrintVis estimating so it does not charge twice for the paper. +This extension is intended for companies that cut roll stock down before printing and print on sheets. The cutting operator consumes roll stock and uses Release Finished Goods to release cut sheets into inventory. The press operator then consumes those sheets at the press. To avoid double-charging for paper, either the sheet item or the roll item should have a price of zero in PrintVis estimating. -## What this extension includes: +## What this extension includes -- A table extension (80100) on the PVS Job Sheet table to add Roll Item No. -- A page extension (80100) on the PVS Job Items ListPart for the user to enter the Roll Item No. -- A custom calculation formula codeunit (80100) that will calculate the weight/length of the roll paper and add the roll item no. to the calculation detail line. +- Table extension 80100 **"PTE Sheet Roll"** extends **"PVS Job Sheet"** — adds the **Roll Item No.** field. +- Page extension 80100 extends **"PVS Job Items ListPart"** — allows the user to enter the Roll Item No. on each job item. +- Codeunit 80100 **"PTE Roll Custom Formula"** — custom calculation formula that calculates the weight, area, or length of the roll paper and assigns the roll item number to the calculation detail line. + +## How it works + +The custom formula codeunit is triggered during PrintVis calculation when formula 80100 is evaluated: + +1. It retrieves the Roll Item No. from the job sheet and looks up the item record. +2. It sets the item number on the calculation detail line to the roll item, replacing the standard sheet paper item. +3. It calls standard formula 16 to get the base quantity of paper (sheets with scrap). +4. Based on the roll item's price unit, the quantity is converted: weight (price unit 2), area (price unit 3), or length (price unit 4). +5. The converted quantity and the roll item's price unit are written back to the calculation detail line. + +## How to configure + +Step 1 Install the extension in your Business Central environment. + +Step 2 Create a custom calculation formula with number **80100** pointing to Codeunit 80100. + +Step 3 Assign this formula to a material line on your cutting machine calculation unit. + +Step 4 On the Job Items ListPart, enter the Roll Item No. on each job sheet that uses roll stock. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 24.0.0.0). +- Business Central application compatible with version 24.0.0.0. +- A roll stock item must exist in Business Central with the appropriate price unit (weight, area, or length). ## What you will need to do for this extension to work -- Create a custom calculation formula with # 80100 that points to Codeunit 80100. Assign this formula on a material line on your cutting machine calculation unit. \ No newline at end of file +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the dependency version. +- Create the custom calculation formula 80100 and assign it to the cutting machine calculation unit as described above. diff --git a/Sales Order Integration/README.md b/Sales Order Integration/README.md new file mode 100644 index 0000000..1256e8c --- /dev/null +++ b/Sales Order Integration/README.md @@ -0,0 +1,52 @@ +# Sales Order Integration + +PrintVis has long supported integration with standard Business Central sales orders. This allows companies that sell printed items alongside other merchandise, or that prefer to organize orders on a sales order, to use BC sales orders as the entry point for PrintVis production orders. + +Each sales order line can refer to its own production order and have a separate production route and status code flow. Because requirements vary greatly between customers, this integration is provided as open source so partners and customers can modify it directly to meet their exact needs. + +The extension adds fields to the sales order header and lines. These extra fields are numbered in the 80101..80133 range and can be identified by using the field inspection shortcut (CTRL+ALT+F1) while on the header or line. + +## What this extension includes + +If you are new to the sales order integration, you only need the **PTE SalesOrder Integration** folder. + +Two additional apps are included for customers migrating from the previous Sales Order Integration app: + +- **PTE Sales Order Integration Move Data** — moves data from temporary tables into the open source app after migration. +- **PTE Sales Order Integration Temporary DataTransfer** — a temporary app that moves data from the existing app into temporary tables before migration. + +## How it works + +The extension subscribes to Business Central sales order events to create and manage linked PrintVis production orders: + +1. When a sales order line is created or modified with a PrintVis item, the extension creates or updates the corresponding PrintVis case and job. +2. The sales order header and line carry additional fields that track the linked PrintVis case, job, and production status. +3. Status changes on the PrintVis case are reflected back on the sales order line, allowing sales staff to track production progress directly from the sales order. + +## How to configure + +Step 1 Install the **PTE SalesOrder Integration** app in your Business Central environment. + +Step 2 Follow the setup guide at [learn.printvis.com/Legacy/salesorder/](https://learn.printvis.com/Legacy/salesorder/) to configure the integration. + +Step 3 If migrating from the previous Sales Order Integration app, follow the migration steps described below. + +## Migration from previous Sales Order Integration + +If you are migrating from the existing Sales Order Integration app, follow these steps: + +1. Install **PTE Sales Order Integration Temporary DataTransfer** and run codeunit 80108 using the **PrintVis Run Generic Object** page to move existing data into temporary tables. +2. Uninstall and unpublish the existing Sales Order Integration or PTE Sales Order Integration extension. +3. Install **PTE SalesOrder Integration**, then install **PTE Sales Order Integration Move Data** and run codeunit 80109 using the **Run Generic Object** page to move data from temporary tables into the new app. +4. Uninstall and unpublish both the **PTE Sales Order Integration Move Data** and **PTE Sales Order Integration Temporary DataTransfer** apps. + +## Prerequisites to run the functionality + +- PrintVis installed and configured in Business Central. +- Sales order integration setup completed as described in the setup guide. + +## What you will need to do for this extension to work + +- Install the **PTE SalesOrder Integration** .app extension in your environment. +- Ensure the PrintVis app is installed. +- Complete the setup following the guide at [learn.printvis.com/Legacy/salesorder/](https://learn.printvis.com/Legacy/salesorder/). diff --git a/Sales Order Integration/ReadMe.md b/Sales Order Integration/ReadMe.md deleted file mode 100644 index b7111e9..0000000 --- a/Sales Order Integration/ReadMe.md +++ /dev/null @@ -1,44 +0,0 @@ -# Sales Order Integration - -For many years, PrintVis has been able to integrate from regular BC sales orders. - -The use-cases would be for example; - - The company sells printed items among other things which are just merchandise from a purchased stock - The company often takes orders of different printed items and likes how this can be organized on a sales order - The company sells a lot of re-orders and the customers orders by item numbers - -The sales order lines offer a nice way to organize these orders in a way which is easy to understand for the sales staff. Each line can refer to its own production order and have a separate production route through production and status code flow. An alternative (more advanced and with complexity) is to use PrintVis Project Management. - -Over the years we've had many requests for changes to the way the Sales Order integration functions for specific customers with many of these requests conflicting with requests from other customers. This is the reason we have decided to provide this sales order integration as an Open Source app so partners/customers can modify this code directly to meet the exact customer requirements. - -The extension will add some fields to the sales order header and sales order lines. The extra fields can be identified by zooming (CTRL+ALT+F1) while on the header or line, the fields will be numbered in the 80101..80133 range. - -## What this extension includes: - -If you are new to the sales order integration you only need the **PTE SalesOrder Integration** folder. - -We have included 2 additional folders/apps: -* PTE Sales Order Integration Move Data -* PTE Sales Order Integration Temporary DataTransfer -to be used if migrating from our previous SalesOrder Integration app to this new OpenSource app. - -## What you will need to do for this extension to work - -If you are new to the sales order integration, you can follow our setup guide to learn how this is setup and used here: Sales Order Integration guide - -If you are migrating from existing sales order integration to this open source sales order integration, follow these steps: - -1. Add DataTransfer extension - a) Upload and install the "PrintVis_PTE Sales Order Integration Temporary DataTransfer_1.0.0.0.app" extension from the PTE Sales Order Integration Temporary DataTransfer folder. - - This is a temporary app that can be removed later. - - Run the codeunit 80108 using the "PrintVis Run Generic Object" page. This will move the data from existing Sales Order Integration into temporary tables. -2) Remove the existing "Sales Order Integration" or "PTE Sales Order Integration" extension. -3) Add Remaining extensions - a) Upload and install the "PrintVis_PTE Sales Order Integration_1.0.0.0.app" extension from the PTE SalesOrder Integration folder - b) Upload and install the "PrintVis_PTE Sales Order Integration Move Data_1.0.0.0" extension from the PTE Sales Order Integration Move Data folder - - The Move Data app is a temporary app that can be removed later. - - Run the codeunit 80109 using the "Run Generic Object" page. This will move the data from the temporary tables into the open source sales order integration. -4) Remove Apps - a) uninstall and unpublish the "PTE Sales Order Integration Move Data" app. - b) uninstall and unpublish the "PTE Sales Order Integration Temporary DataTransfer" app. diff --git a/ShopFloorPreventCompleteWithoutConsumption/README.md b/ShopFloorPreventCompleteWithoutConsumption/README.md new file mode 100644 index 0000000..bd45922 --- /dev/null +++ b/ShopFloorPreventCompleteWithoutConsumption/README.md @@ -0,0 +1,25 @@ +# Shop Floor Prevent Complete Without Consumption + +This extension adds a validation check to the Shop Floor completion process in PrintVis. When an operator attempts to complete a plan through Shop Floor, the extension verifies that material consumption has already been registered. If no consumption has been recorded, an error is thrown and the completion is blocked. + +## What this extension includes + +- Codeunit 80176 **"PTE SF post check compl. sub"** + +## How it works + +The codeunit subscribes to the `OnBeforeShopFloorJournalEntryCompleteJob` event in `PVS Shop Floor Management`. When a plan is being completed through Shop Floor: + +1. It checks the **PVS Job Costing Entry** table for any entries linked to the planning unit that have an item number (material consumption). +2. It also checks the **PVS Job Costing Journal Line** table for any unposted journal lines with an item number for the same planning unit. +3. If neither table has consumption entries, an error is raised and the completion is blocked. + +## Prerequisites to run the functionality + +- PrintVis version PV22: 22.16.3.0 or later, PV23: 23.10.1.4 or later, or PV24: 24.5.1.4 or later. + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the minimum version requirement. +- The consumption check runs automatically during Shop Floor completion — no additional configuration is required. diff --git a/ShopFloorPreventCompleteWithoutConsumption/ReadMe.md b/ShopFloorPreventCompleteWithoutConsumption/ReadMe.md deleted file mode 100644 index 7633383..0000000 --- a/ShopFloorPreventCompleteWithoutConsumption/ReadMe.md +++ /dev/null @@ -1,14 +0,0 @@ -# Shop Floor Prevent Complete Without Consumption - - -## What this extension includes: - -adds a check during completing a Plan throgh ShopFloor, will check if Consumption has been done already. -If this check fails, it will throw an error. - -## What you will need to do for this extension to work - -This works with the following versions of PrintVis -PV24: 24.5.1.4 -PV23: 23.10.1.4 -PV22: 22.16.3.0 \ No newline at end of file diff --git a/Split by Versions/README.md b/Split by Versions/README.md new file mode 100644 index 0000000..e528f15 --- /dev/null +++ b/Split by Versions/README.md @@ -0,0 +1,44 @@ +# Split by Versions + +This extension allows companies to use product versions to describe different bind types and their quantities. A **Split by Version** action is added to the Job Items section. When used, the operator selects whether the current sheet is a common text sheet and then selects the product versions for the split. Special boolean fields and custom calculation formulas control how planning, calculation, and platemaking are handled for each version type. + +- A **Common Text** sheet (boolean = true) creates only one platemaking calculation unit and one planning unit with the combined total time for all common text sheets. +- An **Additional Version** sheet (boolean = true) uses special formulas 8199, 8200, and 8201. Formula 8199 (printing) uses formula 22 for the first version and formula 155 for additional versions. Formula 8200 (paper) uses formula 14 for the first version and formula 145 for additional versions. Formula 8201 (setup) returns 1 for the first version and 0 for additional versions. + +## What this extension includes + +- Codeunit 80280 **"PTE Split Bind Formula"** — adds three new calculation formulas (8199, 8200, and 8201). +- Codeunit 80281 — builds combined planning units for common text sheets. +- Table extension 80280 and page extension 80280 on **"PVS Job Item"** — adds three fields: **Additional Version** (boolean), **Common Text** (boolean), and **Split Version** (text showing Process Group). +- Table extension 80281 and page extension 80281 on **"PVS Job Planning Unit"** — adds the Process Group value to the planning unit. +- Page 80280 — lookup page for product versions used by the **Split by Version** action. + +## How it works + +When the **Split by Version** action is used on the Job Items section: + +1. The operator is asked whether the selected sheet is a common text sheet. +2. A list of product versions is presented. The operator selects the versions to split across. +3. The selected versions are applied to the job items, setting the **Common Text** and **Additional Version** boolean fields accordingly. +4. During calculation, formulas 8199, 8200, and 8201 use the version type flags to apply the correct formula logic for printing, paper, and setup. +5. During planning, common text sheets are combined into a single planning unit with aggregated time. + +## How to configure + +Step 1 Install the extension in your Business Central environment. + +Step 2 Create three new custom calculation formulas with numbers **8199**, **8200**, and **8201**, each pointing to codeunit 80280. + +Step 3 Assign formula 8201 to the setup process and formula 8199 to the printing process on the printing machine calculation unit. Assign formula 8200 to the paper process. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 25.0.0.0). +- Business Central application compatible with version 26.0.0.0. +- PrintVis System Library dependency available (minimum version 25.0.0.0). + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app and PrintVis System Library are installed and meet the dependency versions. +- Create the three custom calculation formulas (8199, 8200, 8201) and assign them to the appropriate calculation units as described above. diff --git a/Split by Versions/ReadMe.md b/Split by Versions/ReadMe.md deleted file mode 100644 index b9acfc5..0000000 --- a/Split by Versions/ReadMe.md +++ /dev/null @@ -1,17 +0,0 @@ -# Split bind open source app - -This extension can be used at companies that want to be able to use product versions to describe different bind types and their quantities. A new action is added to the Job Items section called Split by Version. This action will ask if the selected Sheet is a common text or not and then give a list of the product versions to select for the split process. If you select Common Text = yes, a Common Text boolean will be set to true. There is also a new Additional Version boolean that will be marked true for every sheet created after the first one in the split process. These boolean fields have impact on the creation of the calculation units, how new special formulas are calculated, and how planning is set. - -- Common Text boolean = true will only create 1 platemaking calculation unit. It will also only create 1 planning unit with the combined total time for each common text sheet. -- Additional version boolean = true will be used in the new 8199, 8200, and 8201 formulas. 8199 (printing) will use formula 22 for first version and formula 155 for all additional versions, 8200 (paper) will use formula 14 for first version and formula 145 for all additional versions, and 8201 (setup) will return "1" for first version and "0" for additional versions. - -## What this extension includes: - -- Codeunits (80280) to add 3 new formulas (8199, 8200, and 8201) and codeunit (80281) to build planning units for common text that are combined. -- Table and page extension (80280) adds 3 fields to the job items table: Additional Version (boolean), Common Text (boolean), Split Version (Text[250]) to show Process Group and table and page extension (80281) adds the Process Group value to the pvs job planning units table/page. -- Page (80280) is a lookup page to the product versions when using the Split by version action. - -## What you will need to do for this extension to work - -- Create 3 new formulas 8199, 8200, 8201 as a codeunit formulas pointing to codeunit 80280. -- Assign these formulas to the printing machine setup (8201) / printing (8199) processes and the paper (8200) process. \ No newline at end of file diff --git a/SplitProduction/README.md b/SplitProduction/README.md new file mode 100644 index 0000000..2ccc377 --- /dev/null +++ b/SplitProduction/README.md @@ -0,0 +1,51 @@ +# Split Production + +This extension adds functionality to the PrintVis versioning feature. After creating product parts in PrintVis, it is possible to create versions and variants and combine them on a sheet or create plate changes. Normally, a plate change is produced on the same machine — the machine is stopped, plates are changed, and production continues for the next version. + +This extension supports an alternative workflow: instead of a plate change on the same machine, a version can be moved to a different machine so that versions are produced in parallel, completing production faster. + +## What this extension includes + +- Table 80180 **"PTE Job Shift Split"** +- Page 80181 **"PTE Job Split"** — opened by the **Split Production** action on the Job Card. +- Page 80180 **"PTE Job Item Combined Variants"** +- Codeunit 80182 **"PTE Prepare Job"** — automates creation of versions/variants and plate changes. +- Codeunit 80183 **"PTE Split Mgt"** — manages the split process. +- Codeunit 80180 **"PTE Split Process"** — creates and merges job items as configured on the split page. +- Codeunit 80181 **"PTE Helperfunction"** +- Table extension 80180 **"PTE Job Item"** extends **"PVS Job Item"** +- Page extension 80180 **"PTE Job Card"** extends **"PVS Job Card"** — adds the **Prepare Job for Split Production** and **Split Production** actions. +- Page extension 80181 **"PTE Job Item Listpart"** extends **"PVS Job Items ListPart"** + +## How it works + +Two new actions are added to the **PVS Job Card**: + +1. **Prepare Job for Split Production** — automatically creates versions/variants, creates plate changes for each additional version/variant, and assigns each version/variant to a plate change. +2. **Split Production** — opens the **PTE Job Split** page, which shows one line per sheet and plate change. From here, the operator can assign each plate change to a new or existing job item on a different machine. + +On the **PTE Job Split** page, for each line the operator can: +- Enter a new job item number to assign the plate change to a new sheet. If the job item number does not exist, a new sheet is created. +- Change the printing machine (**Controlling Unit**), the **Paper Item No.**, and the finishing type (**Finishing**). + +When the **Create Split Job Items** action is run, the sheets and job items are created and merged as configured. The **Undo Changes** action resets all changes to the state when the page was opened. **Copy Mode** lets the operator copy settings from one line to multiple selected lines using **Copy Settings to Marked Lines**. + +## How to configure + +Step 1 Install the extension in your Business Central environment. + +Step 2 Open a PrintVis Job Card for a job line of type **Production Order** that has product parts and sheets/job items already entered. + +Step 3 Use the **Prepare Job for Split Production** action to automatically create versions and plate changes, then use **Split Production** to assign versions to different machines. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 24.0.0.0). Events used in this extension are available from PV23 and later. +- The job line must be of type **Production Order**. +- Product parts and sheets/job items must be entered before running the split functionality. + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the dependency version. +- Use the **Prepare Job for Split Production** action before using **Split Production**. diff --git a/SplitProduction/ReadMe.md b/SplitProduction/ReadMe.md deleted file mode 100644 index 433453f..0000000 --- a/SplitProduction/ReadMe.md +++ /dev/null @@ -1,56 +0,0 @@ -# Split Production - -This extension adds functionality to the PrintVis **versioning functionality**. After creating product parts in PrintVis, it is possible to create versions and variants and combine these versions on a sheet or create plate changes. -Typically, a plate change is produced on the machine that is set up on the current sheet. It means the machine is stopped, plates are changed and then the machine proceeds producing the next version based on the plate change. - -If plate changes are created, this extension comes into play. It supports to create new job items/sheets and combine plates changes on the sheet, in case it is desired instead of a plate change on the same machine, to move the production for a version to another machine. The idea is that the production can be processed and finished much faster because the versions are produced in parallel on different machine. - -## What this extension includes: - -- New actions “Prepare Job for Split Production” and "Split Production" on the Job Card. Description below. -- Table 80180 "PTE Job Shift Split" -- Page 80181 "PTE Job Split" -- Page 80180 "PTE Job Item Combined Variants" -- Codeunit 80182 "PTE Prepare Job" -- Codeunit 80183 "PTE Split Mgt" -- Codeunit 80180 "PTE Split Process" -- Codeunit 80181 "PTE Helperfunction" -- Table extension 80180 "PTE Job Item" extends "PVS Job Item" -- Page extension 80180 "PTE Job Card" extends "PVS Job Card" -- Page extension 80181 "PTE Job Item Listpart" extends "PVS Job Items ListPart" - -A new action **Prepare Job for Split Production** is added on Page PVS Job Card (6010334). This action triggers: -- An automated creation of Version/Variants -- The creation of plate changes for each additional Version/Variants -- The assignment for each Version/Variant on a plate change -A new action ** Split Production** is added on Page PVS Job Card (6010334). This action opens the page PTE Job Split (80181) that displays 1 line per sheet and plate change. - -### How to use page **Job Item Split** that open when action "Split Production" is hit? - -**Step 1** -For each line it is now possible to enter a new job item no. to add this job item/plate change to. When entering a new (not existing) job item no. a new sheet/job items is created. - -**Step 2** -It is now possible to change: -- The printing machine (field **Controlling Unit**) -- The **Paper Item No.** -- The finishing type (field **Finishing**) - -**Step 3** -When hitting action **Create Split Job Items** the sheets and job items are created and merge together as set on this page. - -**Additional actions** -**Undo changes** is resetting all changes made on this page to the initial settings when opening this page. - -**Copy Mode** -This filters for the current line and only shows the other lines for the same sheet. Lines can be multi-select to copy the changes that were made on the current line before running the copy mode by using the action **Copy Settings to Marked Lines**. The Action **Normal Mode** is switching back to the initial view. - -### Prerequisites to run the functionality - -- The job line to run this code must be of type **Production Order**. -- Product Parts and Sheets/Job Items must be entered/created before running this functionality. - -## What you will need to do for this extension to work - -- Create a PTE and install it on an environment. -- Events are in use that are available from PV23 and ongoing. diff --git a/Status Code Lookup - filtered by Case Type/README.md b/Status Code Lookup - filtered by Case Type/README.md new file mode 100644 index 0000000..5b236ba --- /dev/null +++ b/Status Code Lookup - filtered by Case Type/README.md @@ -0,0 +1,32 @@ +# Status Code Lookup Filtered by Case Type + +This extension adds an extra filter to the Status Code lookup on the PrintVis Case Card. When a user looks up a status code, only status codes appropriate for the current case type are shown, preventing selection of status codes that are not valid for the case's stage in the workflow. + +The filter works as follows based on the case type: +- **Request** — shows status codes with Status set to Request, Quote, Order, or Production Order. +- **Quote** — shows status codes with Status set to Quote, Order, or Production Order. +- **Order** — shows status codes with Status set to Order or Production Order. +- **Production Order** — shows only status codes with Status set to Production Order. + +The **Status** field used for filtering can be found on the Status Code card under the **General** tab in the **System Status** group. + +## What this extension includes + +- Codeunit 80174 **"PTE Status Code Sub. Filter"** + +## How it works + +The codeunit subscribes to the `OnLookUp_StatusCode_OnBeforeSettingStatusCodeFilter` event on the `PVS Case` table. When the Status Code lookup is triggered: + +1. It reads the current case type from the case record. +2. It applies a range filter on the Status Code's **Status** field, starting from the current case type value upward, so only status codes at or above the current case stage are shown. + +## Prerequisites to run the functionality + +- PrintVis version PV22: 22.x.x.x or later, PV23: 23.x.x.x or later, or PV24: 24.x.x.x or later (the required event was introduced in these versions). + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the minimum version requirement. +- Ensure the **Status** field is set on your Status Code records. The filter runs automatically during the Status Code lookup — no additional configuration is required. diff --git a/Status Code Lookup - filtered by Case Type/ReadMe.md b/Status Code Lookup - filtered by Case Type/ReadMe.md deleted file mode 100644 index 2fd90a6..0000000 --- a/Status Code Lookup - filtered by Case Type/ReadMe.md +++ /dev/null @@ -1,24 +0,0 @@ -# Status Code Lookup - filtered by Case Type - - -## What this extension includes: - -it adds to the CaseCard status code lookup a extra filter, -it will filter the Status Code by the Case's "Type" -Request --> allows Request, Quote, Order or Production Order to be shown. -Quote --> allows Quote, Order or Production Order to be shown. -Order --> allows Order or Production Order to be shown. -Production Order --> allows Produciton Order to be shown. - -where to find this status code field? -on the Status Code there is a field "Status" that will be used to filter Status Code's by. -The field "Status" can be found in the Status Code --> "General" tab --> in the "System Status" group. - - -## What you will need to do for this extension to work - -a new event was introduced recently, so the following version is minimum required: - -PV24: 24.x.x.x -PV23: 23.x.x.x -PV22: 22.x.x.x diff --git a/Sync/README.md b/Sync/README.md new file mode 100644 index 0000000..9289dda --- /dev/null +++ b/Sync/README.md @@ -0,0 +1,53 @@ +# PrintVis Sync + +This extension provides multi-company data synchronization for PrintVis across Business Central environments. It allows selected PrintVis tables to be kept in sync between a master company and one or more local companies, supporting scenarios where setup data or configuration records need to be shared consistently across multiple Business Central companies or tenants. + +## What this extension includes + +- Table 80200 **"PVS Sync Table Setup"** — defines which tables are synchronized and their sync direction. +- Table 80201 **"PVS Sync Log Entry"** — logs all synchronization events for auditing and processing. +- Table 80202 **"PVS Sync Field Setup"** — controls per-field sync behavior (force sync, skip, or skip if not empty). +- Table 80203 **"PVS Sync Field Mapping"** — maps field values between companies during sync. +- Page 80200 **"PVS Sync Table Setup"** — administration page for configuring which tables to sync and their direction, with actions to configure fields and field mappings. +- Page 80204 **"PVS Sync Log"** and query **"PVS Sync Log Entries"** — view and monitor sync log entries. +- Codeunit 80200 **"PVS Sync Processing Management"** — processes sync log entries and applies changes to target companies via API calls. +- Codeunit 80204 **"PVS Sync Communication Mgt"** — handles HTTP API communication with target Business Central companies. +- Codeunit 80205 **"PVS Sync Change Management"** — tracks record changes and writes sync log entries. +- Codeunit 80206 **"PVS Sync OAuth Comm. Mgt."** — handles OAuth 2.0 authentication for Business Central Online environments. +- Codeunit 80203 **"PVS Sync Json Exchange"** — handles JSON serialization and deserialization for API communication. +- Report 80200 **"PVS Sync Job Queue Processor"** — can be run via a job queue entry to process the sync log automatically. +- Page extensions on **"PVS Business Group Setup"** and **"PVS Business Group Setup List"** — adds API connection fields and OAuth configuration to the Business Group setup. + +## How it works + +The extension monitors changes to configured tables and synchronizes those changes to target companies through the Business Central API: + +1. When a record in a tracked table is inserted, modified, renamed, or deleted, the change management codeunit writes an entry to the sync log table, recording the affected record and operation type. +2. The sync log is processed either manually or via a scheduled job queue entry. For each log entry, the processing management codeunit determines the target companies based on the sync direction configured for the table. +3. For each target company, the codeunit reads the current record data, serializes it to JSON, and sends it to the target company via the Business Central API using Basic authentication or OAuth 2.0. +4. Processed log entries are marked as complete and are automatically cleaned up after two days. + +## How to configure + +Step 1 Open **PrintVis Business Group Setup** and configure the API connection settings for each business group (server, port, instance, credentials). For Business Central Online, enable **OAuth 2.0** and provide the Client ID, Client Secret, and Redirect URL. Use the **Verify Connection** action to test connectivity. + +Step 2 Open the **PrintVis Sync Table Setup** page and add the tables you want to synchronize. Set the **Sync Direction** for each table (Master to Local, Local to Master, or All Business Groups). + +Step 3 For each table, use the **Fields** action to exclude specific fields from sync, and the **Field Mapping** action to configure value transformations between companies. + +Step 4 Create a job queue entry pointing to Report 80200 (**PVS Sync Job Queue Processor**) to process the sync log automatically on a schedule. + +## Prerequisites to run the functionality + +- PrintVis dependency available (minimum version 21.0.0.0). +- Business Central application compatible with version 20.0.0.0 or later. +- API access must be enabled on all target Business Central environments. +- For Business Central Online, an Azure AD app registration with the appropriate API permissions is required for OAuth 2.0 authentication. + +## What you will need to do for this extension to work + +- Install the .app extension in your environment. +- Ensure the PrintVis app is installed and meets the dependency version. +- Configure Business Group API connection settings and verify connectivity. +- Set up the Sync Table Setup to define which tables to synchronize. +- Create a job queue entry for automated sync processing.