Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions AddSchedulingProblem/README.md
Original file line number Diff line number Diff line change
@@ -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.
11 changes: 0 additions & 11 deletions AddSchedulingProblem/readme.md

This file was deleted.

33 changes: 27 additions & 6 deletions AutoLockMilestone/README.md
Original file line number Diff line number Diff line change
@@ -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.

27 changes: 23 additions & 4 deletions AvoidSameSorting/README.md
Original file line number Diff line number Diff line change
@@ -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.

57 changes: 45 additions & 12 deletions BuildSignatures/README.md
Original file line number Diff line number Diff line change
@@ -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.

46 changes: 46 additions & 0 deletions CIM Migration To PTE/README.md
Original file line number Diff line number Diff line change
@@ -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.
47 changes: 47 additions & 0 deletions CIM Move Controller and Device Data to PrintVis/README.md
Original file line number Diff line number Diff line change
@@ -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.
25 changes: 25 additions & 0 deletions Copy Price Method/README.md
Original file line number Diff line number Diff line change
@@ -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.
9 changes: 0 additions & 9 deletions Copy Price Method/readme.md

This file was deleted.

6 changes: 3 additions & 3 deletions Copy with Lookup/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Loading
Loading